繁体   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