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 に答える