【问题标题】:Mapbox: Indian GPS co-ordinates show wrong place on mapMapbox:印度 GPS 坐标在地图上显示错误位置
【发布时间】:2019-05-12 09:52:34
【问题描述】:

我正在尝试在我的 Web 应用程序中使用 JS 版本的 mapbox。但是,当将示例 lat-long 更改为 delhi 的 latlong 时,它显示的位置错误。

<!DOCTYPE html>
<html>
<head>
    <meta charset='utf-8' />
    <title>Display a map</title>
    <meta name='viewport' content='initial-scale=1,maximum-scale=1,user-scalable=no' />
    <script src='https://api.tiles.mapbox.com/mapbox-gl-js/v0.54.0/mapbox-gl.js'></script>
    <link href='https://api.tiles.mapbox.com/mapbox-gl-js/v0.54.0/mapbox-gl.css' rel='stylesheet' />
    <style>
        body { margin:0; padding:0; }
        #map { position:absolute; top:0; bottom:0; width:100%; }
    </style>
</head>
<body>

<div id='map'></div>
<script>
mapboxgl.accessToken = 'pk.eyJ1Ijoid2ViZXhwZXJ0c3VqZWV0IiwiYSI6ImNqdmh4MXM0dDAwMWs0NXFyNHkxc2o1eGwifQ.jgbBoS14uvv8i_lMrCQF5A';
var map = new mapboxgl.Map({
    container: 'map', // container id
    style: 'mapbox://styles/mapbox/streets-v11', // stylesheet location
    center: [28.6466773,76.813073], // starting position [lng, lat]
    zoom: 9 // starting zoom
});
</script>

</body>
</html>

【问题讨论】:

  • 这是交换坐标的情况吗,即 Mapbox 是否期望 long,lat 而不是 lat, long 的近乎普遍的约定?只是猜测,您显示的地图图块是高纬度 (~76N) 和东经度 (~28E)。或者,在仔细阅读您的 cmets 后,您是否进行了转换?
  • 请解释更多,我不知道交换的坐标。我正在使用从谷歌地图或 html5 定位服务获取的 latlong。
  • 如果将28.6466773,76.813073 解释为纬度+经度,则坐标指定欧洲北部海岸外的一个点,如您的图片所示。如果将它们解释为经度+纬度,则它们会指定印度的一个点。几乎通用的约定是将地理坐标指定为纬度+经度。如果我查看您发布的内容,您似乎认为它们是经度+纬度,但地图讲述的是不同的故事。
  • 哦,知道了。它现在工作。正如你所说,这是交换坐标的问题。
  • 它不是那么普遍。 macwright.org/lonlat

标签: mapbox mapbox-gl-js mapbox-marker mapbox-gl-draw


【解决方案1】:

正如High Performance Mark 提到的,MapBox 使用交换的坐标,这意味着它们没有使用:

[lat, lng]

他们正在使用

[lng, lat]

尝试更改它,然后重试。

【讨论】:

    猜你喜欢
    • 2020-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多