考虑到俯仰角和方位角,如何获取 mapbox-gl 地图视口边缘坐标?
How to get mapbox-gl map viewport edges coordinates considering pitch and bearing?
我不明白如何获取地图视口坐标,该坐标将在用户更改俯仰和方位后立即显示
这是我的代码示例 - https://jsfiddle.net/5uwdfhdp/6/
我使用 .getBounds()
方法,但它似乎工作不正常。
在用户旋转地图之前单击地图后,我得到一个正确的矩形,之后 - 一些荒谬的东西。
可能我使用的坐标有误,但在我看来 mapbox 方法没有按预期工作。
问题是当你用坐标的正交反射建立一个矩形时,你没有考虑旋转和俯仰。尝试通过容器的像素坐标得到一个地理多边形:
const canvas = map.getCanvas()
const w = canvas.width
const h = canvas.height
const cUL = map.unproject ([0,0]).toArray()
const cUR = map.unproject ([w,0]).toArray()
const cLR = map.unproject ([w,h]).toArray()
const cLL = map.unproject ([0,h]).toArray()
const coordinates = [cUL,cUR,cLR,cLL,cUL]
const polygon = turf.polygon([coordinates])
我不明白如何获取地图视口坐标,该坐标将在用户更改俯仰和方位后立即显示
这是我的代码示例 - https://jsfiddle.net/5uwdfhdp/6/
我使用 .getBounds()
方法,但它似乎工作不正常。
在用户旋转地图之前单击地图后,我得到一个正确的矩形,之后 - 一些荒谬的东西。
可能我使用的坐标有误,但在我看来 mapbox 方法没有按预期工作。
问题是当你用坐标的正交反射建立一个矩形时,你没有考虑旋转和俯仰。尝试通过容器的像素坐标得到一个地理多边形:
const canvas = map.getCanvas()
const w = canvas.width
const h = canvas.height
const cUL = map.unproject ([0,0]).toArray()
const cUR = map.unproject ([w,0]).toArray()
const cLR = map.unproject ([w,h]).toArray()
const cLL = map.unproject ([0,h]).toArray()
const coordinates = [cUL,cUR,cLR,cLL,cUL]
const polygon = turf.polygon([coordinates])