1

我有一个基本的谷歌地图,带有一个绘图管理器,如下所示:

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

(在标题旁边的第一个选择框中选择“多边形”)。

现在我知道这个例子没有使用drawingManager,而是手动创建了多边形,但我想知道是否可以使用drawingManager进行类似的操作。恐怕没有,因为我似乎在手册中找不到任何参考,但这也有点令人惊讶,因为我认为这是更多人想要拥有的东西。

4

1 回答 1

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);

}

因为您知道多边形中每个点的纬度;你可以画出来。每次添加新点时,您都​​必须重新绘制它。

于 2013-05-02T13:57:35.160 回答