我有一个从 geoserver 加载 wfs 图层的地图,使用 bbox 策略加载要素,因为其中有超过 60,000 个要素。我有一个简单的点击功能,可以显示每个功能的信息
map.on('click', function(evt) {
//random stuff to do here
var pixel = evt.pixel;
displayFeatureInfo(pixel); //function to get features and display the info
});
Run Code Online (Sandbox Code Playgroud)
对于我的搜索栏,我使用 easyAutocomplete 搜索每个多边形都有中心坐标的 json。它找到包裹,获取纬度和经度,然后平移到它并放大就好了。
onChooseEvent: function(evt) {
var parcelValue=$("#name").getSelectedItemData().parcel;
document.getElementById('name').value=parcelValue;
var selectedItemCoordX = $("#name").getSelectedItemData().long;
var selectedItemCoordY = $("#name").getSelectedItemData().lat;
var valcoordx=parseFloat(selectedItemCoordX);
var valcoordy=parseFloat(selectedItemCoordY);
var coords=[valcoordx, valcoordy];
var pixel = map.getPixelFromCoordinate(coords);
map.getView().setCenter(ol.proj.transform(coords, 'EPSG:4326', 'EPSG:3857'));
map.getView().setZoom(19);
}
Run Code Online (Sandbox Code Playgroud)
如何使用抓取的坐标或像素,一旦你选择,点击地图,这样一旦你移动到那里,点击事件就会被触发,并且弹出窗口将显示而无需用户手动执行?
我在地图、视口和画布上尝试过 .trigger("click"),我也尝试过 .click() 和 triggerEvent() 函数,但这些函数甚至都不会产生错误。我也试过map.dispatchEvent("click");,这会产生这个错误Uncaught TypeError: Cannot read property 'slice' of undefined
| 归档时间: |
|
| 查看次数: |
1619 次 |
| 最近记录: |