原始问题:
我正在使用Data Layer
将geoJSON数据加载到我的地图中,并且我想显示加载的标记数量,在地图键图标旁边的某处。最好的方法是什么?有没有一种方法可以简单地获取数据层中的功能数量?
修订问题:
我正在将多个数据层加载到变量中(即。memberLayer,trailLayer等),我想计算memberLayer中有多少个标记。如何从数据层获得准确的标记计数?
答案 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);
});