簡體   English   中英

Google地圖多邊形距離(以米為單位)

[英]Google Map Polygon Distance in Meters

如何使用Google Map API實現此目的?

http://i59.tinypic.com/6dzb88.jpg

兩側的儀表。

如果我右鍵單擊Google Maps距離,則可以進行如下操作: http : //i57.tinypic.com/21e7w1.jpg

基本上,我希望繪制的多邊形看起來像第一幅或第二幅圖像。 (我需要標簽)可以嗎?

我不確定我是否正確理解了您的問題...但是,可以使用http://en.wikipedia.org/wiki/Haversine_formula計算球體上兩個經度/緯度點之間的距離

JavaScript實現

rad = function(x) {return x*Math.PI/180;}

distHaversine = function(p1, p2) {
  var R = 6371; // earth's mean radius in km
  var dLat  = rad(p2.lat() - p1.lat());
  var dLong = rad(p2.lng() - p1.lng());

  var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
          Math.cos(rad(p1.lat())) * Math.cos(rad(p2.lat())) * Math.sin(dLong/2) * Math.sin(dLong/2);
  var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
  var d = R * c;

  return d.toFixed(3);
}

我認為雖然Google Maps api中已經有一個實現

google.maps.geometry.spherical.computeDistanceBetween (latLngA, latLngB);

如果您在繪制多邊形時遇到麻煩,請在此處查看google maps示例https://developers.google.com/maps/documentation/javascript/examples/polygon-simple

您可能需要為標記做一些自定義的文本覆蓋。 也許可以使用https://code.google.com/p/google-maps-utility-library-v3/中MapLabel類:

var mapLabel = new MapLabel({
           text: 'Test',
           position: new google.maps.LatLng(50,50),
           map: map,
           fontSize: 20,
           align: 'right'
         });

或者,您可以簡單地創建一些自定義多邊形並繪制它們。 對於所有數字,可能都需要一些工作。

暫無
暫無

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

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