簡體   English   中英

在 Google Map API 中創建三角形坐標的理想方法是什么,其中兩個位置點由緯度和經度組成

[英]What is the Ideal way to create a Triangle-Coordinates in Google Map API with two location points consisting of latitude & longitude

我在我的 JavaScript 應用程序中有一個場景,其中我有一個起點的坐標,它由緯度和經度組成,類似的終點與它們各自的坐標。

現在我需要搜索一個基本上提供一組坐標的位置,並查找最近輸入的位置是否位於前面提到的起點或終點之間。 但是,該位置不需要在起點和終點的路徑點內完全匹配。 也就是說,即使該位置距離派生路徑大約 2-3 公里,它也應該匹配。

我相信我們可以通過提供三個坐標來創建一個三角形,即起點、終點和第三個點。 所以一旦三角形形成,我們就可以使用 google.maps.geometry.poly.containsLocation 方法來查找我們搜索的位置是否存在於這個三角形內。

所以我的問題是我們如何獲得第三個點來創建一個三角形,該三角形將提供從起點到終點 2-3 公里內附近的位置。

否則有沒有其他方法來處理我的用例?

使用 googlemap 的幾何庫

這個函數具體是LocationOnEdge

這是一個例子

0.001 公差值為 100m

var isLocationNear = google.maps.geometry.poly.isLocationOnEdge(
 yourLatLng,
 new google.maps.Polyline({
   path: [
       new google.maps.LatLng(point1Lat, point1Long),
       new google.maps.LatLng(point2Lat, point2Long),
   ]
 }),
 .00001);

請注意,以下答案假定為平面幾何,您應該使用球面幾何代替。 盡管這對於不太准確的目的(例如近似距離等)來說是可以的。

它似乎更像是一個幾何問題而不是一個編程問題。 像您提到的三角形將無法以統一的方式覆蓋直線路徑。 這種情況可以被認為更像是點和線之間的距離問題(參考給定的圖表

圖表

在這里您可以找到點 C 和線 AB 之間的距離,您可以檢查它是否低於 2.5 公里(為了簡單起見,我省略了所有單位和轉換)

點到線段的距離

請注意,您還需要使用半正弦公式等將弧度的距離轉換為您需要的適當單位,這不是一項微不足道的任務( https://www.movable-type.co.uk/scripts/latlong。 html )。

暫無
暫無

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

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