我对geoserver和sld很陌生。我有2层在我的OSM基础层之上。一个用于创建热图,另一个用于标签。我的热图和基本层呈现得很好,但是标签文本没有显示在开始层中。当我在geoserver中预览它时,它显示得很好,但是当我试图在javascript中呈现它时,它只显示在缩放上。我似乎在网上找不到关于这个问题的任何东西。
以下是SLD:
<FeatureTypeStyle>
<Rule>
<Name>AQI text</Name>
<Title>AQI Text</Title>
<Abstract>AQI information</Abstract>
<TextSymbolizer>
<label>
<ogc:PropertyName>aqi</ogc:PropertyName>
</label>
</TextSymbolizer>
</Rule>
</FeatureTypeStyle>以下是geoserver上预览的快照:

以下是javascript第一层代码:
var londonLonLat = [-0.118092, 51.509865];
var londonWebMercator = ol.proj.fromLonLat(londonLonLat);
var layers = [
new ol.layer.Tile({
source: new ol.source.OSM()
}),
new ol.layer.Image({
//extent: [-13884991, 2870341, -7455066, 6338219],
source: new ol.source.ImageWMS({
url: 'http://159.203.81.20:8080/geoserver/wms',
params: {'LAYERS': 'tiger:shapefile'},
serverType: 'geoserver'
})
}),
new ol.layer.Image({
//extent: [-13884991, 2870341, -7455066, 6338219],
source: new ol.source.ImageWMS({
url: 'http://159.203.81.20:8080/geoserver/wms',
params: {'LAYERS': 'test2:test_text_layer'},
serverType: 'geoserver'
})
})
];
var map = new ol.Map({
layers: layers,
target: 'map',
view: new ol.View({
center: londonWebMercator,
zoom: 10
})
});下面是页面的快照:

下面是放大的快照:

发布于 2017-02-20 11:18:13
通过在我的数据库中添加预定义的边界点(如锚),然后将geoserver中的这些点作为我的边界框,解决了类似的问题:
bounding box并从数据中选择计算。sld中,您可以定义一条规则,使这些边界点不可见。这将重新计算geoserver将在任何投影中显示数据的边界框。
发布于 2017-02-02 21:04:03
通过改变投影来修正它:

https://stackoverflow.com/questions/42011680
复制相似问题