地理坐标与屏幕坐标间的转换原理
地图本身是拥有坐标的,一般可以大致分为平面坐标和经纬度坐标,在这里我们统称为地理坐标
转换前提
- 知道屏幕的最左上角所对应的真实的地理坐标(screenGeoBounds.left, screenGeoBounds.top)。
- 知道此时的地图所在级别上每个瓦片所对应的实际地理长度sliceLevelLength。
- 知道瓦片的大小,即一个瓦片所拥有的屏幕像素tileSize。
转换公式
屏幕坐标转换为地理坐标
geoXY.x = screenGeoBounds.left + screenX * sliceLevelLength / tileSize;
geoXY.y = screenGeoBounds.top - screenY * sliceLevelLength / tileSize;
地理坐标转换为屏幕坐标
screenXY.x = geoX - screenGeoBounds.left/sliceLevelLength/ tileSize;
screenXY.y = screenGeoBounds.top - geoY/sliceLevelLength/ tileSize;