【问题标题】:Coordinates to Lat Long in Leaflet传单中经纬度的坐标
【发布时间】:2015-10-28 19:48:29
【问题描述】:

我来这里是因为我正在尝试使用 Leafletjs API 创建 GTA V 地图。事实上,我的瓷砖已经准备好了。但目的是通过使用 GTA V 游戏中的坐标在地图上放置标记。为了实现它,我需要将坐标转换为 LatLong 但经过多次研究,我找不到解决方案。

示例: 提前致谢。

【问题讨论】:

标签: javascript coordinates leaflet


【解决方案1】:

您的坐标来自不同的地图投影。传单很可能是标准 WGS 84 (SRID 4326)。 GTA V 坐标显然基于不同的投影。

坐标可以从一种投影转换为另一种。但是您需要知道您的坐标来自哪个投影,才能进行数学计算。 Here 是一个在线转换器,提供了一些常见的投影,我尝试了你的坐标,但没有运气接近这些投影。

【讨论】:

  • 如果您投反对票,请留下评论并说明理由。我只是想帮忙。
  • 答案是正确的,不知道谁会否决。
  • 首先,它是 4326 而不是 4236。其次,这并没有解决 OP 的问题。他知道数据的投影(它是游戏地图的像素图像坐标),但这不是真实世界的投影,他不会在您提供的网站上找到任何有用的东西。
  • hmm 如果您将其转换为笛卡尔坐标,然后计算在 GTA V 和地图之间转换所需的乘数,例如multiplier = gtaXPosition / mapXPosition 然后只需执行 mapXPosition * multiplier 即可转换回 GTA V 位置,如果您想做传单 -> GTA V 位置并且您知道游戏中的真实位置,这可能会起作用
  • 然后只需执行 gtaXPosition / multiplier 即可获得传单地图位置或类似的东西
【解决方案2】:

我试过了:

var latlng = new L.latLng(-43.1731, 6.6906);
var point = L.Projection.Mercator.project(latlng);
console.log(point);
// o.Point {x: 744794.1851014761, y: -5309112.129212381}

它不靠近你的 GTA V 坐标,但我不确定它是否只是举例。

【讨论】:

    【解决方案3】:

    你可以使用L.latlng函数

    http://leafletjs.com/reference.html#latlng

    【讨论】:

    • 感谢您的回答,但这并不能解决我的问题,我已经查看了文档。没有办法。这更像是一个我必须解决的数学问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-07
    • 2013-02-14
    • 1970-01-01
    • 2015-10-04
    • 2013-08-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多