将距离(以像素为单位)映射到米

问题描述 投票:0回答:1

我有一个使用 MapboxGL 和 supercluster 库来执行聚类点的 Web 应用程序。簇半径以像素为单位设置。

我想将这个半径转换为米。有什么公式可以做到吗?我还知道缩放级别和边界框是否可以帮助转换该值。

我希望有一个 Javascript 函数可以将我的半径(以像素为单位)转换为米。该值将在后端发送。

javascript mapbox geospatial mapbox-gl-js supercluster
1个回答
0
投票

一般来说,半径不对应任何以米为单位的值。根据所使用的投影和位置,10 个水平像素的距离(以米为单位)可能与 10 个垂直像素有很大不同。世界是球形的,而不是平的。

MapboxGL 提供的是函数 unproject - 它将像素位置转换为 lng/lat 对。您可以取消投影地图中心的一个点,然后在其右侧

radius
像素的点,计算这些坐标之间的距离(请参阅半正弦公式),然后选择距中心向上
radius
像素的点来计算垂直距离。它们可能有很大差异(同样,取决于地球上的投影和位置)。

© www.soinside.com 2019 - 2024. All rights reserved.