我正在使用mapbox.js制作包含地点的地图。我只是想让地图返回点击的正确坐标,我已使用以下代码成功管理:
map.on('click', function(e) {
var latitude = e.latlng.lat;
var longitude = e.latlng.lng;
console.log(latitude + " - " + longitude)
}
唯一的问题是,要使其工作,地图必须绝对位于页面顶部。如果地图低于任何值,则返回的坐标将进一步向北。北方的距离取决于地图顶部下方的距离。我已经尝试了一些排列,将地图包裹在相对定位的元素中,但无论我做什么,它似乎总是在页面顶部进行测量。
有没有人知道如何解决这个问题?
答案 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();
});