簡體   English   中英

顯示GeoJson文件中的一個地圖標記

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM