【发布时间】: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