在mapbox.js中获取经度和纬度

时间:2013-10-25 12:16:27

标签: mapbox

我正在使用mapbox.js制作包含地点的地图。我只是想让地图返回点击的正确坐标,我已使用以下代码成功管理:

map.on('click', function(e) {

    var latitude = e.latlng.lat;
    var longitude = e.latlng.lng;

    console.log(latitude + " - " + longitude)

}

唯一的问题是,要使其工作,地图必须绝对位于页面顶部。如果地图低于任何值,则返回的坐标将进一步向北。北方的距离取决于地图顶部下方的距离。我已经尝试了一些排列,将地图包裹在相对定位的元素中,但无论我做什么,它似乎总是在页面顶部进行测量。

有没有人知道如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

MapBox使用position绝对作为其lat lons的参考,但是你可以在绝对div中放置一个相对定位的div。如果this gist有帮助,请告诉我

答案 1 :(得分:0)

您可以使用以下内容:

<div id='output' class='ui-control'>
  Click: <code id='click'></code><br/>
  Mousemove: <code id='mousemove'></code><br/>
</div>
<div id='map'></div>
L.mapbox.accessToken = 'pk.eyJ1IjoicmNhc3RpbGxvYWd1aXJyIiwiYSI6ImNpbDFrdmM2bTM2bnd1YW0zYjZ2dTc2OG4ifQ._HEJ9An2hZK2ofuMNEFdMA';

var click = document.getElementById('click'),
    mousemove = document.getElementById('mousemove');

var map = L.mapbox.map('map', 'mapbox.streets');

map.on('mousemove click', function(e) {
  window[e.type].innerHTML = e.containerPoint.toString() + ', ' + e.latlng.toString();
});