我有一个基本的谷歌地图,有一个drawingManager,如下所示:
var mapOptions = {
center: centroid,
zoom: 14,
scrollwheel: false,
mapTypeId: google.maps.MapTypeId.HYBRID,
mapTypeControlOptions: {
mapTypeIds: [google.maps.MapTypeId.HYBRID, google.maps.MapTypeId.ROADMAP]
}
}
var map = new google.maps.Map(document.getElementById("map"), mapOptions);
var drawingManager = new google.maps.drawing.DrawingManager({
drawingMode: google.maps.drawing.OverlayType.POLYGON,
drawingControl: false,
polygonOptions: {
clickable: true,
draggable: true,
editable: true,
fillColor: '#ffff00',
fillOpacity: 0.8,
strokeWeight: 5
}
});
drawingManager.setMap(map);
在地图上绘制多边形就像一个魅力,除了一个小东西。我必须通过单击第一个点或通过双击某处(或者至少,我找不到另一种方式)显式关闭我的多边形。但是我希望我的多边形在绘制的过程中一直关闭,有点像这样:
http://www.birdtheme.org/useful/v3tool.html
(在标题旁边的第一个选择框中选择'polygon')。
现在我知道这个例子不使用drawingManager,而是手工创建多边形,但我想知道是否可以使用drawingManager进行类似的操作。我担心没有,因为我似乎无法在手册中找到任何参考,但也有点惊讶,因为我认为这是更多人想要的东西。 / p>
答案 0 :(得分:0)
你可以自己做;您可以轻松注册点击事件。
google.maps.event.addListener(map, 'click', addLatLng);
poly = new google.maps.POLYGON(polyOptions);
poly.setMap(map);
function addLatLng(event) {
path = poly.getPath();
path.push(event.latLng);
}
因为你知道你的多边形中每个点的latlng;你可以画它。 每次添加新点时,您都必须重新绘制它。