这是一个愚蠢的问题,在我的传单/ javascript项目中,我有一百层,(我还没有创建,但我必须处理它),分为LayerGroup,FeatureGroup,MarkerCluster和GeoJSON,我需要创建单层根,包含进行一些研究的所有信息,然后一旦找到信息,我想检索包含信息的单个图层。因此,为了制作合并层,我执行以下代码:
...
|> Enum.map(fn(url) -> HTTPoison.get!(transform_url((url)) end)
所以现在我想将所有这些层合并到一个唯一的层,L.geoJson和L.MarkerClusterGroup扩展了L.FeatureGroup,L.FeatureGroup扩展了L.LayerGroup,因此根层必须是L.LayerGroup,除非有人有更好的建议:
//My 100 Layer....
var library = new L.MarkerClusterGroup(/*some layer options*/);
var restaurant = new L.FeatureGroup(/*some layer options*/);
var house = new L.LayerGroup(/*some layer options*/);
var notClassified = new L.geoJson(content,/*some layer options*/);
//......
可选问题:这是最好的方法吗?
在创建了我的worldLayer后,我做了一些研究,例如跟踪分配给特定L.Marker的id或worldlayer的GeoJson上的特定Json对象。所以我认为最好的方法是使用WorldLayer的GeoJson结果:
var worldLayer = new L.LayerGroup(/*some layer options*/);
for(var layer in listOfAllLayers){
worldlayer.addLayer(layer);
}
map.addLayer(worldLayer);
可选问题2:这是最好的方法吗?
我的问题:等信息中,有一种方法可以找到json对象信息的特定原始层吗? 例如,' worldLayer',我知道特定信息也出现在'图书馆'中,所以我想要挽回价值"图书馆"或对象图层库。 现在我解决了在各个层的每个特征中添加了特征json对象调用" originLayers"中的更多信息,所以当我用我已经说明的过程恢复json对象时,我甚至可以恢复所需的信息;但为了做到这一点,我必须去分析所有图层的GeoJSON(不是很小),并为每个单一功能添加新信息。还有另一种改善一切的方法吗? Ty提前帮忙。
答案 0 :(得分:1)
我认为the hasLayer method of layerGroup是您需要的,而不是您的伪检索功能,以跟踪标记。
例如:
var map = map();
var a = layerGroup().addTo(map);
var b = featureGroup().addTo(a);
var c = featureGroup().addTo(a);
var marker = marker().addTo(b);
a.hasLayer(marker); // true
b.hasLayer(marker); // true
c.hasLayer(marker); // false