在谷歌地图中获得第三个三角形点坐标

时间:2017-08-01 07:33:51

标签: javascript google-maps

如何在谷歌地图javascript中获得第三个C点坐标?

知道A,B点坐标和距离D1, D2。

三角是对的。

enter image description here

3 个答案:

答案 0 :(得分:2)

这与毕达哥拉斯无关。您需要知道的是A点和C点,并且您希望从A到距离D2找到正北点。 B离A还有多远与它无关?除非你关心三角形的锐角。

加载地图时需要使用geometry库:

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

然后取点A,使用geometry.spherical namespace中的computeOffset方法通过将距离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);

答案 1 :(得分:0)

这不是你问题的真正答案。做什么duncan sais 相反,它延伸了这个问题,它增加了额外的问题,因为你的问题很暧昧。

我的同胞Gerard Mercator发明他的投影方法的全部原因是船只可以使用简单的几何形状。

特别是角度。在他的地图上绘制一条从原点到目的地的直线,测量该角度,将你的船转向该角度,向前航行,在你的角落上保持相同的角度(航向),你将到达目的地。

注意:这不是最短的路径,它是最简单的旅行路径。

一个例子:让我们在加拿大边境的美国直边界上拿三分。

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

垂直距离很容易。 360°= 40Mm =&GT; A-C:距离= 40M *(49 - 42)/ 360 = 777 km。

水平,向东或向西:360°= 40Mm * cosinus(纬度)* 360 =&GT; A-B:距离=(40M / 360)*(117 - 97)* cos(49°)= 1458 km。

同样,这不是A和B之间的最短距离,而是地图上沿直线的距离。最短路径A-B是穿过加拿大的曲线。 如果您的线应该是地图上的直线,那么这就是您要寻找的距离。您从Google地图获得的答案可能是最短的距离,因此不是直线。

您想要的三角形不存在。所有线条都是弯曲的,或者角度较小。角度之和小于180°。

所以我不确定你真正想要什么样的三角形。

答案 2 :(得分: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());
相关问题