制作用于处理地图上标签碰撞的边界框



在我的应用程序中,我必须进行安排,以便正确处理道路/街道的重叠标签。

因此,我决定确定每个标签的边界框,然后检查它们是否相撞。但是我面临一个问题。

我与我在一起的是沿着道路对齐的标签的纬度坐标。我也有标签的高度和宽度,也有仪表以及屏幕点。但是我无法确定矩形侧应有的单位以进行正确的碰撞检测。

应使用度量测量或仪表测量或屏幕点进行矩形?

如果您使用的是mercator投影映射,我建议将所有单元转换为x/y。

这是:

RAD2DEG = 180 / Math.PI;
PI_4 = Math.PI / 4;
function y2lat(y) { return (Math.atan(Math.exp(y / RAD2DEG)) / PI_4 - 1) * 90; }
function x2lon(x) { return x; }
function lat2y(lat) { return Math.log(Math.tan((lat / 90 + 1) * PI_4 )) * RAD2DEG; }
function lon2y(lon) { return lon; }

取自OpenStreetMaps Wiki

最新更新