首页 > 解决方案 > 获取地图上屏幕点的坐标

问题描述

我在我的 Web 应用程序中使用 MapBox GL 地图。它具有一些我通过指针移动事件处理的交互功能。当用户将指针移到地图上时(它也可能在地图之外,具有不同的功能),我可以<div>在指针当前所在的地图上显示自定义标记元素(简单,位置对文档来说是绝对的)。当拖动操作完成后,我需要知道该点下的地图坐标。

因此,我需要一种将屏幕或文档位置 (X, Y) 转换为当前视图状态下地图上的坐标 (Lat, Lng) 的方法。

我发现的只是getCenter给我地图中心的方法(不是指针位置)或project似乎与我需要的完全相反的方法。似乎还有地图的“mousemove”事件或类似事件,它可以为我提供事件数据中的坐标,但我没有使用该事件,因为拖动操作可能已经在地图之外开始。看来我需要该project方法的反向操作。有没有?

标签: javascriptmapboxmapbox-gl

解决方案


在挖掘了有关“mousemove”事件的地图源代码后,我找到了Map.unproject方法。这似乎是我需要的。它需要相对于地图元素的 x/y 坐标,而不是文档。我只是没有找到它,谷歌也不知道我的意思。也许这个答案教会了谷歌更多关于其他地方没有提到的可能的搜索词。


推荐阅读