1

JavaScriptとGoogleMapsApiの経験はあまりありません。達成したいこと:ユーザーがマーカーを配置するか、ポリゴンを描画できるマップがあります。gmap3プラグインを使用していて、マーカーを使ってやりたいことをすべて実行できました(追加、編集、ドラッグ、削除など)が、ポリゴンに問題があります。基本的なコードは次のとおりです。

    $('#map-mappoints').gmap3(
    {
        action:'init',
        options:{
            zoom: 7
        }
        ,
        events: {
            click: function(event, data) {
                if($(".map #poly").hasClass('active')){
                    placePoly(data.latLng);
                } else {
                    placeMarker(data.latLng);
                }
            }
        }
    },
    {
        action:"autofit"
    }
    );


    function placePoly(location) {
        $('#map-mappoints').gmap3({ 
            action: 'addPolygon',
            options:{
                strokeColor: "#FF0000",
                strokeOpacity: 0.8,
                strokeWeight: 2,
                fillColor: "#FF0000",
                fillOpacity: 0.35
            },
            callback: function(polygon){
                var path = polygon.getPath();
                path.push(location);
                console.log(path);
            }
        }
        )
    } 

コンソールでポリゴンを作成していることがわかりますが、パス要素は1つしか追加されていません。これは、マップをクリックするたびにトリガーされるロジックですが、ポリゴンに新しい要素を追加し続けるにはどうすればよいかわかりません。ユーザーに停止させ(おそらくツールバーのボタンで)、「新しいポリゴン」をクリックした後に新しいものを作成します。

ヒントありがとうございます。

ps。英語は私の母国語ではないので、間違いをお詫びします。私はそれらを避けようとしました;)

4

1 に答える 1

1

gmap3のパラメータというタイトルの下を読んでください

http://gmap3.net/documentation.html

主な用途として、gmap3はオブジェクトをパラメーターとして受け取ります。各オブジェクトは実行するアクションです。アクションは、パラメーターリストで順番に実行され、毎回、前のアクションが終了すると実行されます。この例では、最初にGoogleマップを初期化し、次に2つのマーカーを追加します

閉ループを指定する座標の順序付けられたシーケンス。ポリラインとは異なり、ポリゴンは1つまたは複数のパスで構成されている場合があります。その結果、pathsプロパティは、LatLng座標の1つ以上の配列を指定する場合があります。単純なポリゴンは、LatLngの単一の配列を使用して定義できます。より複雑なポリゴンは、配列の配列を指定する場合があります。単純な配列はすべてMVCArrayに変換されます。MVCArrayからLatLngsを挿入または削除すると、マップ上のポリゴンが自動的に更新されます。

MVCArrayは可変配列であるため、配列に緯度と経度の座標を追加すると、ポリゴンが自動的に更新されます。

これがお役に立てば幸いです。

グリーツ

于 2012-03-16T16:58:23.363 に答える