如何获得折线中两个端点之间的所有LatLng点

时间:2011-11-28 10:48:01

标签: google-maps google-maps-api-3 polyline

我正在研究GMap定制。我想要一个浮动圆圈在折线上移动。我的问题是,我们可以在特定时间间隔内获得折线中的所有LatLng点,例如,所有LatLng间隔为100米。我的折线代码是:

/** polyline **/
            var tpath = [
                    new google.maps.LatLng(15.508718,73.839337),
                    new google.maps.LatLng(15.511457,73.839165)
                ];
            var travelPath = new google.maps.Polyline({
                path : tpath,
                map : map,
                geodesic : true,
                strokeColor : '#000',
                strokeOpacity : 0.7,
                strokeWeight : 1
            });

我只得到最终的LatLng值。我想要折线上的值 提前谢谢。

3 个答案:

答案 0 :(得分:0)

我不知道如何使用google maps api获取它,但您可以绘制一条线来手动从开始和结束获取点数。这是绘制线并计算的简单数学。

答案 1 :(得分:0)

您可以使用google.maps.geometry.spherical.computeHeading(startPoint,endPoint)获取标题

然后使用google.maps.geometry.spherical.computeDistanceBetween(startPoint,endPoint)计算距离

如果距离是475米并且您想要进行~100次跳跃,则只需执行475 /圆(475/100)计算距离,您希望每次都移动圆圈。 round(475/100)将为您提供移动圆圈的次数(迭代次数)。

然后你可以使用computeOffset(from:LatLng,distance:number,heading:number,radius?:number)

然后,您可以使用computeOffset(circleCenter,distance,heading)在for循环中获取上面计算的迭代量的新cirecle中心点。不要忘记在循环中包含延迟。

答案 2 :(得分:0)

您可以在返回您点击的折线后,使用GoogleMap.OnPolylineClickListener在折线上设置点击侦听器。

List<LatLng> mPoints=polyline.getPoints();

请务必通过设置点击您的折线。

lineOptions.clickable(真);