leaflet - 传单地图美国和 fitBounds
问题描述
我创建了一个函数,它在页面加载时向我的传单地图添加了几层。
之后,我希望它基于这些图层使视图居中。
let layerGroup = L.featureGroup();
...
// add multiple layers
layerGroup.addLayer(L.geoJson(feature))
...
leafletMap.addLayer(layerGroup);
leafletMap.fitBounds(layerGroup.getBounds());
它目前按预期工作,并且地图会放大以适应边界。
但是,当美国是这些图层之一时,地图会完全缩小,因为附近的岛屿。
有没有办法解决这个问题,从而在不缩小地图的情况下放大美国?
提前致谢
解决方案
这不是那么容易修复,我不知道您的数据如何。
解决方法是检查lng
坐标是否为负,然后将 360 添加到它:
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]);
}
})
推荐阅读
- spring - InternalResourceViewResolver 无法正确解析视图
- r - 使用 RMariaDB 控制字符变量的编码
- python - 仅将一个键列复制到合并的 DataFrame 中
- python - 找到收敛序列的预测结束
- javascript - 根据 args 为成员分配角色
- angularjs - “不等于”角度过滤器 ng-options
- mongodb - Yii + MongoDB + ActiveRecord。如何在 ActiveRecord 中使用原始查询?
- python-3.x - 在文本文件中搜索单词
- javascript - 删除箭头函数的javascript警告
- ios - 有没有办法将 MicroQR 条码添加为 AVMetadataObject.ObjectType?