2017-08-01 174 views
-1

如何獲得谷歌地圖中的第三個C座標javascript?獲取谷歌地圖中的第三個三角點座標

知道A,B點座標和距離D1, D2。

三角形是正確的。

enter image description here

+0

[此](https://math.stackexchange.com/questions/543961/determine-third-point-of-triangle-when-two-points-and-all-sides-are-known)可能會幫助你 – codtex

+0

請舉例。基本上它只是畢達哥拉斯。並找出程度<->公里轉換 –

+0

這不僅僅是Pytagoras三角形在球體上。 – CroMagnon

回答

2

此無關畢達哥拉斯。所有你需要知道的是A點和C點,並且你想從A距離D2的距離找到點。 B距離A有多遠並沒有與它有任何關係?除非你關心你的三角形的銳角。

你需要在載入地圖時使用的geometry庫:

<script src="https://maps.googleapis.com/maps/api/js?v=3&amp;libraries=geometry"></script> 

然後取點A,使用computeOffset方法在geometry.spherical namespace通過增加距離D2至A摸出C點你到。第三個參數是標題,即度數,在這種情況下,直接爲0。

var A = new google.maps.LatLng(41.4087436, 2.14716640000006); 

var D2 = 1000; // metres 

var C = google.maps.geometry.spherical.computeOffset(A, D2, 0); 
0

這不是真的是你的問題的答案。只要做鄧肯賽義德。
相反,它擴展了這個問題,它增加了額外的問題,因爲你的問題是模糊的。

我國的傑拉德墨卡託發明了他的投影方法的全部原因是,船舶可以使用簡單的幾何圖形。

尤其適用於角度。在他的地圖上從起點到終點繪製一條直線,測量該角度,將您的船轉向該角度,向前航行,保持同樣的角度(標題)在您的compas上,然後您就會到達目的地。

注意:這不是最短的路徑,它是最簡單的旅行路線。

一個例子:讓我們在加拿大邊境的美國直線邊界上取三點。

A:(49.00,-117.00),B:(49.00,-97.00),C:(42.00,-117.00)

的垂直距離是容易的。 360°= 40Mm。距離= 40M *(49-42)/ 360 = 777公里。水平,正東或西:360°= 40Mm *餘弦(lat)* 360 => AB:距離=(40M/360)*(117-97)* cos(49°)= 1458公里。

同樣,這不是A和B之間的最短距離,而是沿着地圖上直線的距離。最短路徑A-B是經過加拿大的曲線。 如果您的線條應該是地圖上的直線,則這是您要查找的距離。您從Google地圖獲得的答案可能是最短距離,因此不是直線。

你想要的三角形不存在。要麼所有的線都是彎曲的,或者角度較小。角度的總和將小於180°。

所以我不知道你真的想要什麼樣的三角形。

0

解決:)

所以,我有兩個已知點A和B.

距離D1是沒有必要的。

// setting distance in metres between points A and C 
var D2 = 100; 

// calculate angle between points A and B 
var angle = google.maps.geometry.spherical.computeHeading(A, B); 

// setting angle to 90 degrees 
var newAngle = angle + 90; // OR angle - 90 

// get new point C 
var C = google.maps.geometry.spherical.computeOffset(A, D2, newAngle); 

// printing new point C coordinates 
console.log(C.lat(), ' ', C.lng()); 
+0

啊,我沒有意識到你的三角形的基部並不總是在同一緯度上。 – duncan