gpt4 book ai didi

javascript - 单击时显示 GeoJSON 功能 (OpenLayers 4)

转载 作者:行者123 更新时间:2023-12-03 02:12:36 25 4
gpt4 key购买 nike

使用 OpenLayers 4 显示带有 GeoJSON 数据的 map (其中很少有多边形和圆形特征)。 Onload 一切都按预期显示。

现在尝试在 ajax onClick 事件上显示不同的 GeoJson 数据。尝试 docketSource.refresh(); 但不起作用。请给我建议一个解决方案。

我的按钮

<p:commandButton value="Change Data" ajax="true"
actionListener="#{geojsonMapController.prepareGeoJson}" oncomplete="changeGeoJsonData();"/>

JS代码

var map, docketLayer, docketSource;    

docketSource = new ol.source.Vector({
url:'http://localhost:8080/mapApp/resources/map/fetch?111',
format: new ol.format.GeoJSON()
});

docketLayer = new ol.layer.Vector({
source: docketSource,
style: styleFunction
});

map = new ol.Map({
layers: [docketLayer],
target: 'map',
view: new ol.View({
center: [0, 0],
zoom: 1
})
});

function changeGeoJsonData(){
docketSource = new ol.source.Vector({
url: 'http://localhost:8080/mapApp/resources/map/fetch?555',
format: new ol.format.GeoJSON()
});
docketSource.refresh();
}

最佳答案

看来您没有更新矢量源。您应该在向量上调用 setSource() 方法:

docketLayer.setSource(...); <-- new Source config here

关于javascript - 单击时显示 GeoJSON 功能 (OpenLayers 4),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49493378/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com