これが取引です。ピンを常にマップの左上隅に配置したいと考えています。そのため、マップを「移動」して左上隅のコードを取得し、ピンをドラッグすることを毎回考えていました。次のリファレンスを使用して、数学を作成しました。しかし、うまくいかないようです。
コードが示唆するように、緯度と経度が固定されているため、最初にピクセルX、Yを生成してから緯度経度を再度取得しようとすると、成功したことがわかります! ただし、これはコンソール出力です。
x:520755.97951431107、y:3.820808909668405
150,54.56342799999999
これは map 要素の html です:<div id="BingMap" class="map"></div>
そして、その周りに他の要素があります。なぜそれが間違っているのかについてのアイデアはありますか? ありがとうございました!。
var latitude = 54.563428;
var longitude = -1.212623;
var sinLatitude = Math.sin(latitude * Math.PI / 180);
var pixelX = ((longitude + 180) / 360) * 256 * Math.pow(2, map.getZoom());
var pixelY = (0.5 - Math.log((1 + sinLatitude) / (1 - sinLatitude)) / (4 * Math.PI)) * map.getZoom();
console.log("x:" + pixelX + ", y:" + pixelY);
var mapSize = map.getZoom();
var x = (Clip(pixelX, 0, mapSize - 1) / mapSize) - 0.5;
var y = 0.5 - (Clip(pixelY, 0, mapSize - 1) / mapSize);
mainPushPinDockLatitude = 90 - 360 * Math.atan(Math.exp(-y * 2 * Math.PI)) / Math.PI;
mainPushPinDockLongitude = 360 * x;
console.log(mainPushPinDockLongitude + "," + mainPushPinDockLatitude);