1

我正在研究 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 值。我想要跨折线的值。
提前致谢。

4

3 回答 3

2

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

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

如果距离为 475m,并且您想要进行约 100 次跳跃,只需执行 475/round(475/100) 即可计算每次想要移动圆圈的距离。round(475/100) 会给你多少次(迭代)你应该移动圆圈。

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

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

于 2012-03-19T21:27:28.383 回答
0

我不知道如何使用 google maps api 获取它,但您可以画一条线以手动获取起点和终点的点。绘制一条线并进行计算是简单的数学运算。

于 2011-12-13T05:30:05.560 回答
0

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

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

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

lineOptions.clickable(true);

于 2017-12-05T11:08:18.130 回答