2017-08-01 166 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