【发布时间】:2019-10-08 12:13:07
【问题描述】:
简介
我正在将游戏坐标转换为地图坐标,我设置了自定义图块并且地图可以正常工作。
我在一张传单地图上显示玩家车辆(与地图框相同的问题),x 轴的坐标转换是正确的(视觉上)但 y 轴(纬度)不正确。
我尝试过的
我正在尝试将游戏坐标转换为 X 上的 3000 到 -3000 以及 Y 上的 3000 到 -3000 的游戏坐标 我认为地图坐标在 X - Longitude 上的范围是 180 到 -180 和 85 到 -85 在 Y - 纬度
目前我正在使用这个公式来计算它在地图上的坐标,但我无法弄清楚我在这里做错了什么。
我把
u动态化了,所以我可以轻松地测试它..请注意,返回值的 x 和 y 颠倒了,因为传单就是这样......
function getLatLngFromPos(x, y, u = 85) {
height = 3000; // of the game map
width = 3000; // of the game map
return [(y / height) * u, (x / width) * 180];
}
Results(~表示未计算但视觉猜测):
getLatLngFromPos(1482.47 , -1731.9)
-> [-49.0705, 88.9482] 应该是:~[-71.519235, 88.813477]
getLatLngFromPos(1378.4,-1876.25)
-> [-53.16041666666666,82.70400000000001] 应该是:~[-73.758964, 81.958008]
如果您需要这些图块,这里的代码就是
http://145.239.116.170/app-assets/images/maptiles/sanandreas.{z}.{x}.{y}.png
注意:MaxZoom 是 '4'
结果
结果不正确:
地图上的汽车图标应该指向箭头,还有地图中心之类的额外信息。 (而且它在我想删除的 X 轴上重复)
截图: (https://i.ibb.co/HNHgRLC/Shared-Screenshot.jpg)
假设
我认为这些地图上的 Y 轴对边缘有某种加速...这是由于 Leaflet 的默认投影 在 (https://github.com/ikkentim/SanMap/blob/master/js_src/js/SanMap.js) 上也有一个用于 Google Maps API 的实现,但 Google Maps 正在通过收费来实现...
我现在假设我必须像在 SanMap 实现中那样创建某种投影,如何为 Mapbox 或 Leaflet 创建自己的投影?
【问题讨论】:
-
我没有看到任何 PHP,还有什么问题?当然问题不是
"I cant find any documentation on that, can anyone explain why?" -
查看非地理地图的传单教程/L.CRS.Simple
标签: leaflet latitude-longitude marker coordinate-systems