从SA-MP(游戏)坐标进行的地图不正确的纬度转换(经度正确)

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

简介

我正在将游戏坐标转换为地图坐标,我具有自定义的图块设置和地图。

[我在传单地图上显示了玩家的车辆(与地图框相同的问题,x轴的坐标转换正确(在视觉上),而y轴(纬度)不正确。

我尝试过的

我正在尝试转换在X上从3000到-3000Y上从3000到-3000的游戏坐标我相信地图坐标的范围是X-经度上的180至-180Y-纬度上的85到-85

当前,我正在使用此公式来计算其在地图上的坐标,但是我无法弄清楚我在做什么错。

我将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];
}

结果(〜表示未计算,但从视觉上猜测):

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轴上重复)

ScreenShot:(https://i.ibb.co/HNHgRLC/Shared-Screenshot.jpg

假设

我认为这些地图上的Y轴朝向边缘有某种加速度...这是由于默认的传单投影也有(https://github.com/ikkentim/SanMap/blob/master/js_src/js/SanMap.js)的Google Maps API的实现,但是Google Maps通过收取费用而成为一种骗子...

我现在假设我将不得不像SanMap实现中那样创建某种投影,如何为Mapbox或Leaflet创建我自己的投影?

leaflet latitude-longitude marker coordinate-systems
1个回答
0
投票

您设法找到一种方法吗?

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