繁体   English   中英

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

[英]Show GeoJSON features on click (OpenLayers 4)

使用OpenLayers 4显示带有GeoJSON数据(其中很少有多边形和圆形要素)的地图。 加载后,所有内容均按预期显示。

现在尝试在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();
}

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM