2

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

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

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

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

}

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

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

4

2 回答 2

3

MapBox 使用绝对位置作为其纬度的参考,但您可以将相对定位的 div 放置在绝对 div 中。让我知道这个要点是否有帮助

于 2013-12-09T17:32:42.480 回答
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();
});
于 2016-06-07T19:16:31.617 回答