簡體   English   中英

在Google Maps API中2個點之間的直線上的特定距離后找到一個點

[英]Find a point after specific distance in straight line between 2 Points in google maps API

我有一條從P1到P2的直線,如下所示,它是使用Google Maps API繪制的。 這兩個點都可以使用緯度和經度。

我想在經度和緯度這兩個直線(P)之間找到一個點,該點位於距P1一段距離之后。

例如:假設P1和P2之間的距離為10 km,我想找到一個位於P1之后4 km處,與P2呈直線的點。

在此處輸入圖片說明

 function markPointInStraightLine(LatLngP1,LatLngP2, distanceInKm) {
       // To do
       //LatLngP1 and LatLngP2 is of type 'google.maps.LatLng'
}

您可以使用Google API幾何庫中的插值函數

給定兩個LatLng對象,其值在0到1之間,您還可以使用interpolate()方法計算它們之間的終點,該方法在兩個位置之間執行球面線性插值,其中該值表示從路徑到路徑的分數距離從原點到目的地。

谷歌API更多信息

我建議使用Maps JavaScript API的幾何庫 幾何庫提供了computeHeading()方法來定義兩個點之間的航向,以及computeOffset()方法來計算距指定航向中的原點一定距離的點。 在Maps JavaScript API URL中添加&libraries=geometry參數,以便在應用程序中使用幾何庫

該代碼段應為

function markPointInStraightLine(LatLngP1,LatLngP2, distanceInKm) {
    var heading = google.maps.geometry.spherical.computeHeading(LatLngP1,LatLngP2);
    var p = google.maps.geometry.spherical.computeOffset(LatLngP1, distanceInKm*1000, heading);
    return p;
}

我希望這有幫助!

暫無
暫無

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

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