Google forEach map.data功能 - 返回功能LatLng

时间:2014-05-13 16:30:38

标签: google-maps-api-3 google-maps-markers geojson

我正在尝试使用forEach迭代GeoJSON map.data。我想返回每个要素的位置(LatLng),以便我可以根据要素属性将其添加到我的marker数组中。这是我的尝试:

allMarkers = [];
jQuery.getJSON('json.php', function(data){
      points = map.data.addGeoJson(data);
});
var eid = 30;

map.data.forEach(function(feature){
    if(feature.getProperty('eid') === eid){
      LatLng = feature.getGeometry().LatLng; //not sure how to get LatLng
      id = feature.getProerty('id');
      var marker = new google.maps.Marker({
           position: LatLng,
           map: map,
           draggable: true,
           id: id,
           icon: imageActive,
      });
      allMarkers[id] = marker;
      map.data.remove(feature);
    } 
  });

我想为我想要的那些创建一个标记,并从map.data中删除它们并保留剩余的map.data以供参考。

任何提示/建议总是受到赞赏。

1 个答案:

答案 0 :(得分:3)

事实证明,我需要改变的是" feature.getGeometry()。latLng" to" feature.getGeometry()。get()"就像@geocodezip的评论中提到的那样。

我曾尝试过" feature.get()"而这显然没有意义。不知道为什么我有疏忽。所以显然需要的是:

LatLng = feature.getGeometry().get();

感谢您的帮助。