我正在研究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值。我想要折线上的值 提前谢谢。
答案 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(真);