首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >美国和fitBounds的传单地图

美国和fitBounds的传单地图
EN

Stack Overflow用户
提问于 2020-10-16 08:55:55
回答 2查看 446关注 0票数 0

我创建了一个函数,它在页面加载时为我的传单地图添加了几个层。

之后,我希望它在这些层的基础上对视图进行中心化。

代码语言:javascript
复制
let layerGroup = L.featureGroup();
... 
    // add multiple layers
    layerGroup.addLayer(L.geoJson(feature))
...
leafletMap.addLayer(layerGroup);
leafletMap.fitBounds(layerGroup.getBounds());

目前,它按预期工作,并且地图缩放以适应边界。

然而,当美国是这些图层之一时,由于附近的岛屿,地图就会完全放大。

有没有办法解决这个问题,从而在不放大地图的情况下放大在美国的

提前感谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-10-16 10:04:03

我已经通过从我的geoJson文件中移除近岛坐标来“修正”了这个问题。

我的例子中相应的坐标是:[[[172.9041,53.0012],[173.3013,52.9256],[173.1886,52.7957],[172.9443,52.7498],[172.6404,52.8688],[172.6604,53.0086],[172.9041,53.0012]]]

如果有人找到更好的解决办法,请告诉我。

票数 0
EN

Stack Overflow用户

发布于 2020-10-16 09:09:46

这不是一件容易的事,我不知道你的数据是什么样子。

修复方法是检查lng coord是否为负值,然后向其添加360:

代码语言:javascript
复制
L.geoJson(feature,{
  coordsToLatLng: function coordsToLatLng(coords) {
    // the coords came into the function as //lng,lat,alt
    if(coords[0] < 0){
      coords[0] = coords[0]+360;
    }
    // the coords goes out as //lat,lng,alt
    return new L.LatLng(coords[1], coords[0], coords[2]);
  }
})
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64385946

复制
相关文章

相似问题

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