![](/img/trans.png)
[英]Openlayers - Display data from geojson file in popup on map
[英]Display one map marker from GeoJson file
我有一個頁面可在單個google地圖上顯示所有標記,並使用map.data.loadGeoJson
實現此目的。
標記通過以下內容鏈接到其各自的詳細信息頁面:
map.data.addListener('click', function(event) {
var id = event.feature.getProperty('name');
window.location.href = 'submission-details.php?submission_id='+id;
});
(屬性“名稱”是一個json文件屬性以及每個提交的ID)。
我希望詳細信息頁面也顯示一張地圖,但是只包含一個與該特定詳細信息頁面相關的標記。
我的json類型是要素集合,因此我想我需要一種以集合中的每個要素為目標的方法,而不僅僅是使用map.data.loadGeoJson
來顯示所有map.data.loadGeoJson
。
不知道從這里去哪里,並努力尋找其他人問同樣的問題,所以任何幫助都感激不盡!
更新感謝鄧肯。
我補充說:
map.data.loadGeoJson('../photo_share/upload/file.json', {},function() {
map.data.getFeatureById(53);
map.data.getFeatureById(53).getProperty('name');
console.log(map.data.getFeatureById(53));
console.log(map.data.getFeatureById(53).getProperty('name'));
});
google.maps.event.addDomListener(window, "load", initMap3);
它確實顯示在控制台日志中,但是現在如何使用它僅顯示一個標記,因為它當前仍顯示所有標記。
google.maps.Data類具有getFeatureById
方法。 假設您要將該id
傳遞到submitt-details.php頁面,則應該能夠使用該id
來獲得單個功能。
您仍然需要使用loadGeoJson,並等到加載完成后再嘗試訪問它。 請參閱Google Maps API:用於功能集合的getFeatureById無法正常工作
更新:然后停止顯示整個收藏集,也許是這樣的(完全未經測試)?
map.data.loadGeoJson('../photo_share/upload/file.json', {}, function(features) {
// get the feature you want:
var feature = map.data.getFeatureById(53);
// hide the current set:
map.data.setMap(null);
// wipe out all the current features:
for (var i = 0; i < features.length; i++) {
map.data.remove(features[i]);
}
// add the feature you want back in:
map.data.add(feature);
// display it:
map.data.setMap(map);
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.