我正在使用openLayers Vector和集群策略。当我使用Vector.features获取作为列表返回的功能时,它返回一个簇数组而不是功能数组。这使得功能无法单独处理。有谁知道如何在使用群集策略时获取功能列表?任何帮助表示赞赏。
(例如。如果我的KML中有5个特征聚为1,那么我得到vector.features.length = 1.我需要原始特征列表,其长度为5)
以下是我的Vector的实现:
var maps_layer = new OpenLayers.Layer.Vector("KML", {
strategies: [new OpenLayers.Strategy.Cluster()],
protocol: new OpenLayers.Protocol.HTTP({
url: "kml/maps.kml",
format: new OpenLayers.Format.KML({
extractStyles: true,
extractAttributes: true,
})
})
})
var my_array = maps_layer.features; //Here is the problem.
以下是文档:http://dev.openlayers.org/docs/files/OpenLayers/Layer/Vector-js.html
答案 0 :(得分:1)
你*可以尝试一下,我现在还没有环境来测试它,但它应该可行。 (注意:你*指的是搜索引擎用户..)
function getFeatures(maps_layer) {
var features = new Array();
for (var i = 0; i < maps_layer.features.length; i++) {
if (maps_layer.features[i].cluster) {
for (var j = 0; j < maps_layer.features[i].cluster.length; j++)
features.push(maps_layer.features[i].cluster[j]);
} else {
features.push(maps_layer.features[i]);
}
}
}