我设法通过扩展getBounds
方法将标记置于多边形路径中心:
//polyline
google.maps.Polyline.prototype.getBounds = function() {
var bounds = new google.maps.LatLngBounds();
this.getPath().forEach(function(e) {
bounds.extend(e);
});
return bounds;
};
我所要做的就是:
var marker = new google.maps.Marker({
map: map,
position: flight_path.getBounds().getCenter()
});
现在我希望标记位于路径的10%,25%或95%处 我怎样才能做到这一点?
答案 0 :(得分:2)
您可以使用Geometry library解决此问题。将libraries=geometry
添加到Google Maps JS网址。
然后使用插值函数计算放置标记的折线上的百分比。
var inBetween = google.maps.geometry.spherical.interpolate(startLatlng, endLatLng, 0.5); // 50%
这在一条折线上很简单,但是如果你有多条线形成一条路径,那可能会有点棘手!然后你可以使用computeLength计算整体路径长度,自己做95%的数学计算,然后我不确定......