小编fma*_*rot的帖子

从 GeoJSon 地图数据中获取所有标记并将它们存储在数组中?

我想知道我的“逻辑”是否正确。我正在使用addGeoJson使用 geojson 对象在地图上加载不同的数据。使用此方法标记和多边形会自动绘制,这很好,但是如何从地图外部访问它们?

完全没有问题,我只是想获取所有几何类型“点”的所有标记以将它们存储在一个数组中,以便能够从地图外部触发它们并启动一个信息窗口为例。

我在文档中什么也没找到,所以我使用下面的代码删除标记,然后创建相同的标记并将它们添加到标记数组。

// add GeoJson datas
map.data.addGeoJson($.parseJSON(Config.polygon));

var bounds = new google.maps.LatLngBounds(),
      markers = [];

  map.data.forEach(function(feature){
    if(feature.getGeometry().getType() === 'Polygon'){
      feature.getGeometry().forEachLatLng(function(latlng){
        bounds.extend(latlng);
      });
    }else if(feature.getGeometry().getType() === 'Point'){
      var LatLng = feature.getGeometry().get(),
          id = feature.getProperty('id'),
          icon = Config.templateDirectoryUri+feature.getProperty('icon'),
          marker = new google.maps.Marker({
            position: LatLng,
            map: map,
            id: id,
            icon: icon,
          });
      markers[id] = marker;

      // load infowindow
      IDV.mapInfoWindowHTML(feature, map, marker);
      // remove previous markers from map.data
      map.data.remove(feature);
    }
  });

  // bounds gmap window to polygons …
Run Code Online (Sandbox Code Playgroud)

google-maps geojson google-maps-api-3 google-maps-markers

5
推荐指数
0
解决办法
879
查看次数