1

次のようなdrawingManagerを備えた基本的なGoogleマップがあります。

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

マップ上に多角形を描くことは、1 つの小さなことを除けば、まるで魔法のように機能します。最初のポイントをクリックするか、どこかをダブルクリックして (少なくとも、別の方法が見つかりません)、ポリゴンを明示的に閉じる必要があります。しかし、次のように、描画中は常にポリゴンを閉じたいと思います。

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 に答える