我对网络地图非常非常新。我有一个由PostGis数据库的shape文件制作的OpenLayers地图,有一个矢量图层,它有默认样式(GeoServer SLD),但我想在用户点击刷新按钮时更改矢量图层的样式。我在网上搜索,我没有找到简单明了的例子。有人请帮助我,或者也许有人想做同样的事情并为此找到简单的教程?任何帮助都很有帮助。
<script type="text/javascript">
var map;
function init() {
var bounds = new OpenLayers.Bounds(
68.089442, 6.752729,
97.407576, 37.072537);
var options = {
controls: [ new OpenLayers.Control.Navigation(),
new OpenLayers.Control.PanZoom()
],
maxExtent: bounds,
maxResolution: 0.11843675,
projection: "EPSG:4326",
units: 'degrees'
};
map = new OpenLayers.Map ("map", options );
var india = new OpenLayers.Layer.WMS(
"cite:india_state - Tiled",
"http://localhost:8080/geoserver/cite/wms",
{LAYERS: 'cite:india_state',STYLES: 'style',
//format: format,
tiled: true,
tilesOrigin: map.maxExtent.left + ',' + map.maxExtent.bottom
},
{buffer: 0, displayOutsideMaxExtent: true,
isBaseLayer: true,
yx: {'EPSG:4326' : true}
}
);
var style = new OpenLayers.Style();
//rule used for all polygons
var rule_fsa = new OpenLayers.Rule({
symbolizer: {
fillColor: "#ff9a9a",
fillOpacity: 0.5,
strokeColor: "#000000",
strokeWidth: 1,
strokeDashstyle: "dash",
label: "${name}",
labelAlign: "cc",
fontColor: "#333333",
fontOpacity: 0.9,
fontFamily: "Arial",
fontSize: 14
}
});
var rule_highlight = new OpenLayers.Rule({
filter: new OpenLayers.Filter.Comparison({
type: OpenLayers.Filter.Comparison.EQUAL_TO,
property: "classification",
value: "1",
}),
symbolizer: {
fillColor: "#FF7144",
fillOpacity: 0.6,
strokeColor: "#FF0000",
strokeWidth: 2,
strokeDashstyle: "solid",
label: " ${name}",
labelAlign: "cc",
fontColor: "#000000",
fontOpacity: 1,
fontFamily: "Arial",
fontSize: 16,
fontWeight: "600"
}
});
style.addRules([rule_fsa, rule_highlight]);
var polygon = new OpenLayers.Layer.Vector("Polygon", {
Style: 'style',
rendererOptions: {zIndexing: true}
});
map.addLayers([india,polygon]);
map.zoomToMaxExtent();
}
</script>
答案 0 :(得分:1)
矢量图层可以与StyleMap
相关联,可以确定您的要素在不同意图中的显示方式:默认值,选择要素时,编辑时等等。
查看以下示例:http://acanimal.github.io/Openlayers-Cookbook/请参阅第7章使用StyleMap和渲染意图代码。 该代码创建一个空的矢量图层,您可以在其中添加要素并重新定义默认值并选择意图。
我还建议你使用OpenLayers Cookbook http://www.packtpub.com/openlayers-create-gis-web-applications-cookbook/book
干杯。