DrawingManager
Google マップに機能を追加すると問題が発生します。以下を呼び出すdrawingManager.setMap(map)
と、関数の下部に追加したクリック イベントが失われますcreateMap
。コメントアウトするdrawingManager.setMap(map)
と、クリックイベントが正常に機能します。この動作を説明するドキュメントには言及が見つかりませんが、手順が不足しているか、何か間違っているに違いありません。
私が使用しているコードの基本的なバージョンは次のとおりです。
function createMap() {
window.center = new google.maps.LatLng(latitude, longitude);
var mapOptions = {
zoom: zoom,
center: center,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
window.map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
window.drawingManager = new google.maps.drawing.DrawingManager({
drawingMode: google.maps.drawing.OverlayType.MARKER,
drawingControl: true,
drawingControlOptions: {
position: google.maps.ControlPosition.TOP_CENTER,
drawingModes: [
google.maps.drawing.OverlayType.POLYGON
]
},
circleOptions: {
fillColor: '#ffff00',
fillOpacity: 1,
strokeWeight: 5,
clickable: true,
editable: true,
zIndex: 1
}
});
window.drawingManager.setMap(window.map);
google.maps.event.addListener(window.map, 'click', function(event){
console.log('clicked!');
});
}
ここで実行されるのは壊れたバージョンですdrawingManager.setMap(map)
:
http://jsfiddle.net/spencercarnage/4hD2S/3/
なしdrawingManager.setMap(map)
では、コンソールはリスナーからの「クリック」を適切にログに記録します。