Mapbox.js:在日期线两侧的区域上设置地图边界
问题描述:
Mapbox,fitBounds
方法似乎不能很好地与大西洋两岸的点(该坐标从跳跃点359至0)。Mapbox.js:在日期线两侧的区域上设置地图边界
它怎么可能适合阿拉斯加的边界或从香港到SF的航班。使用中心点和自定义缩放级别来编写解决方法也许是可能的,但它似乎是一个过度工作的解决方法,围绕着对边界的不良处理。
如果firBounds
没有帮助,是否有另一种类似的方法可以实现类似的结果?
实施例中,由于阿拉斯加穿过子午线:
map.fitBounds([[172.461667,71.365162],[-129.979511,51.214183]])
答
这些案件总是一个有点疼痛。什么可以帮助您的包裹边框坐标使用:
https://www.mapbox.com/mapbox-gl-js/api/#lnglat#wrap
另一种解决方案可能是使用的范围转换为中心&变焦值:
https://github.com/mapbox/geo-viewport
const {width, height} = map.getCanvas().getBoundingClientRect();
const viewport = geoViewport(
[minX, minY, maxX, maxY], // the bounding box (west, south, east north)
[width, height], // map dimensions in pixel
0, // minzoom
22, // maxzoom
512 // tilesize for mapbox-gl-js
);
map.setCenter(viewport.center);
map.setZoom(viewport.zoom)
谢谢!这非常有帮助! 我仍然无法从'turf-extent'返回的边界框中获得正确的结果,或者甚至在日期行上使用静态坐标;但我肯定更接近一个工作解决方案:) –
我还没有能够实施这种方法的工作解决方案。 –