javascript - 获取地图上屏幕点的坐标
问题描述
我在我的 Web 应用程序中使用 MapBox GL 地图。它具有一些我通过指针移动事件处理的交互功能。当用户将指针移到地图上时(它也可能在地图之外,具有不同的功能),我可以<div>
在指针当前所在的地图上显示自定义标记元素(简单,位置对文档来说是绝对的)。当拖动操作完成后,我需要知道该点下的地图坐标。
因此,我需要一种将屏幕或文档位置 (X, Y) 转换为当前视图状态下地图上的坐标 (Lat, Lng) 的方法。
我发现的只是getCenter
给我地图中心的方法(不是指针位置)或project
似乎与我需要的完全相反的方法。似乎还有地图的“mousemove”事件或类似事件,它可以为我提供事件数据中的坐标,但我没有使用该事件,因为拖动操作可能已经在地图之外开始。看来我需要该project
方法的反向操作。有没有?
解决方案
在挖掘了有关“mousemove”事件的地图源代码后,我找到了Map.unproject
方法。这似乎是我需要的。它需要相对于地图元素的 x/y 坐标,而不是文档。我只是没有找到它,谷歌也不知道我的意思。也许这个答案教会了谷歌更多关于其他地方没有提到的可能的搜索词。
推荐阅读
- java - 如何检查 7z 文件的加密?
- ssh - x2go 连接失败。bash:bash:找不到命令
- android - [ARCore][SceneForm] 手机旋转后的世界位置
- java - ECL 命令中的 Browser.evaluate 不返回 Object
- python - Python CRC8 计算
- couchbase - 在 couchbase 副本 4.5.1 中查找数据时出现问题
- javascript - SAPUI5 列表绑定聚合获取列表的值
- c# - window.location.href 将 HttpContext.Current.Request.Path 返回为“/”
- node.js - 将标志 `--experimental-worker` 与 babel-node 一起使用
- ruby-on-rails - 安装 rtesseract gem 后 Rtesseract 抛出错误