簡體   English   中英

必應地圖從像素位置轉換為經度

[英]Bing Maps convert from Pixel position to Latitude Longitude

所以這是交易,我想始終在地圖的左上角有一個Pin。 因此,我想每次我“遍歷”地圖以獲取TopLeft角的繩索並在周圍拖曳圖釘。 使用以下參考,我創建了數學。 但是,它似乎不起作用。

MSDN Bing地圖比例尺參考

如代碼所示,我有一個固定的緯度和經度,所以如果我先生成pixelX,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);

如果您始終在地圖的左上角想要一個圖釘,為什么不將其作為標准HTML圖像覆蓋在地圖上。 這將節省您不必進行任何平鋪數學運算的麻煩。 例如:

<div style="position:relative;">
<div id="MyMap" style="position:relative;width:600px;height:400px;"></div>
<img src="mypin.png" style="position:absolute;top:50px;left:10px;></div>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM