2012-02-23 20 views
4

私はGoogle Maps APIの描画ライブラリを使用しています。私はカスタムボタンを使ってマーカーの描画を開始したいと思います。私はドキュメントのこの部分を読んだカスタム描画制御[Google Maps v3描画ライブラリ]

:描画コントロールを非表示に

は描画ツールが表示されないように制御する原因となるが、DrawingManagerクラスのすべての機能はまだ使用可能です。このようにして、必要に応じて独自のコントロールを実装することができます。マップオブジェクトからDrawingManagerを削除すると、すべての描画機能が無効になります。描画機能を復元する場合は、drawingManager.setMap(map)を使用して地図に再接続するか、新しいDrawingManagerオブジェクトを構築する必要があります。

しかし、これを行うためにDrawingManagerを使用する方法がわかりません。マーカーを描く上

ターン:ボタンのクリックで

答えて

11

drawingManager.setDrawingMode(google.maps.drawing.OverlayType.MARKER)。

オフ: drawingManager.setDrawingMode(null);

+0

おかげで、私は;-) – tdurand

+0

同じ探していたものがOverlayType.CIRCLE、に適用されること、 OverlayType.POLYGON – Sam

0

次のことが可能です。

  1. は、その機能を起動するために、これらのボタンにハンドラを追加
  2. を彼らのためにカスタムボタンを追加し、
  3. その後、省略コントロールなし、または特定のコントロールでDrawingManagerを作成@ user1226919に言及する。

例:

var drawingManager = new google.maps.drawing.DrawingManager({ 
    drawingControl: false 
}); 
drawingManager.setMap(map); 

// drawingManager is now ready 

var marker_btn = document.createElement("button"); 
marker_btn.innerHTML = "Create Marker"; 

// add handlers 
marker_btn.addEventListener("click", (function() { 
    // closure handles local toggle variables 
    var toggled = false; 
    var originalHTML = marker_btn.innerHTML; 
    return function (e) { 
     if (toggled) { 
      drawingManager.setDrawingMode(null); 
      e.target.innerHTML = originalHTML; 
     } else { 
      drawingManager.setDrawingMode(google.maps.drawing.OverlayType.MARKER); 
      e.target.innerHTML = "Cancel"; 
     } 
     toggled = !toggled; 
    } 
})()); 

// add button to map controls 
map.controls[ google.maps.ControlPosition.TOP_CENTER ].push(marker_btn); 

チェックアウトカスタムポリゴンボタンで作業例:https://codepen.io/bozdoz/pen/jZNXNP?editors=0010

関連する問題