Google地图数据层 - 获取标记数量(功能)

时间:2016-06-04 13:54:13

标签: javascript google-maps google-maps-api-3

原始问题:
我正在使用Data Layer将geoJSON数据加载到我的地图中,并且我想显示加载的标记数量,在地图键图标旁边的某处。最好的方法是什么?有没有一种方法可以简单地获取数据层中的功能数量?

修订问题:
我正在将多个数据层加载到变量中(即。memberLayer,trailLayer等),我想计算memberLayer中有多少个标记。如何从数据层获得准确的标记计数?

1 个答案:

答案 0 :(得分:3)

google.maps.Data类支持forEach(callback:function(Data.Feature))函数,该函数迭代数据层中的每个对象。根据{{​​3}},函数:

  

重复调用给定的函数,传递一个特征   每次调用时对函数的集合。迭代的顺序   通过这些功能是未定义的。

因此要计算所有markers(假设features文件中的所有geojson都是积分而map.data是您的数据层),您可以使用此代码:< / p>

var total = 0;
map.data.forEach(function(){ total++; });
console.log("In data layer, there's total of " + total + " features.");

修改

如果您使用loadGeoJson(url, options?:Data.GeoJsonOptions, callback?:function(Array<Data.Feature>))函数加载geoJSON,则可以利用第3个参数callback来获取图层中的要素数量(例如):

loadGeoJson("URL", {}, function(features){ 
     log("loadGeoJson finished, number of features:" + feature.length);
});