首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Leaflet :处理由多个GeoJSON组成的GeoJSON

Leaflet :处理由多个GeoJSON组成的GeoJSON
EN

Stack Overflow用户
提问于 2016-03-15 17:22:41
回答 2查看 1.7K关注 0票数 0

我使用leaflet构建了一个地图,其中包含由多个“较小”GeoJSON区域组成的大GeoJSON区域。

我使用Leaftet-Ajax这样调用它们:

代码语言:javascript
运行
复制
var Rennes = new L.GeoJSON.AJAX("src/js/DI_Rennes.geojson", {onEachFeature: onEachFeature}, {style: style}).addTo(map);

这里,Rennes.geojson由3个较小的geojson组成。我使用geojson-merge将它们合并到一个geojson文件中。我还尝试了用L.layergroup重新组合较小区域的方法:

代码语言:javascript
运行
复制
var Bordeaux1 = new L.GeoJSON.AJAX("src/js/DI_Bordeaux_1.json");
var Bordeaux2 = new L.GeoJSON.AJAX("src/js/DI_Bordeaux_2.json");
var Bordeaux3 = new L.GeoJSON.AJAX("src/js/DI_Bordeaux_3.json");
var Bordeaux = L.layerGroup([Bordeaux1, Bordeaux2, Bordeaux3], {onEachFeature: onEachFeature}, {style: style}).addTo(map);

(我不知道哪种方式是最好的)

因此,下一步,当用户单击时,我需要放大他选择的大区域。我使用这个很棒的教程来做这件事:http://leafletjs.com/examples/choropleth.html

除了使用e.target方法,更改只影响较小的区域之外,其他一切都很正常。

我迷路了,我不知道如何同时瞄准大的geojson或所有的小geojson…

EN

回答 2

Stack Overflow用户

发布于 2016-03-15 18:25:22

onEachFeaturestyle选项在L.GeoJSON构造函数中可用,而不是L.LayerGroup构造函数中可用,并且它们必须在相同的选项哈希表中指定。换句话说:

代码语言:javascript
运行
复制
var Bordeaux1 = new L.GeoJSON.AJAX("src/js/DI_Bordeaux_1.json", {onEachFeature: onEachFeature, style: style});
var Bordeaux2 = new L.GeoJSON.AJAX("src/js/DI_Bordeaux_2.json", {onEachFeature: onEachFeature, style: style});
var Bordeaux3 = new L.GeoJSON.AJAX("src/js/DI_Bordeaux_3.json", {onEachFeature: onEachFeature, style: style});
var Bordeaux = L.layerGroup([Bordeaux1, Bordeaux2, Bordeaux3]).addTo(map);
票数 1
EN

Stack Overflow用户

发布于 2016-03-15 18:34:48

为了能够拟合一组层的边界,不要使用L.LayerGroup,而是使用L.FeatureGroup:它有一个.getBounds() method,用于计算其中所有层的范围。

然后,您可能需要小心将侦听器(实现单击时缩放到边界的侦听器)附加到哪些对象上。通过在GeoJSON组上使用onEachFeature,您可以为每个子层附加一个侦听器,因此event.target是单独单击的功能。

如果您将侦听器附加到GeoJSON组本身或功能组,则event.target将成为该组(因此event.target.getBounds()将给出所有子项的范围,而不是单个单击的子项的范围)。

如果你想知道哪个层最初是被点击的,event.layer会给出单独的点击层。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36007088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档