2017-04-13 14 views
-1

地図上にグリッドオーバーレイを実装したいのですが、すべてのタイルを個別にクリックできるようにして、最後にクリックしたタイル境界を取得する必要があります。Google Maps Javascript APIでオーバーレイタイルにイベントを追加する方法

私は実際にイベント div.onclick = function(){console.log(coord);};がなぜ発砲されていないのか分かりません。

function CoordMapType(tileSize){ 
    this.tileSize = tileSize; 
} 
CoordMapType.prototype.getTile = function(coord, zoom, ownerDocument){ 
    var div = ownerDocument.createElement('div'); 
    div.innerHTML = coord; 
    div.style.width = this.tileSize.width + 'px'; 
    div.style.height = this.tileSize.height + 'px'; 
    div.style.borderStyle = 'solid'; 
    div.style.borderWidth = '1px'; 
    div.style.borderColor = '#AAAAAA'; 
    div.onclick = function(){ 
     console.log(coord); 
    }; 
    return div; 
}; 

この方法は、タイルが正しく表示され

var map; 

function initMap() { 
map = new google.maps.Map(document.getElementById('map'), { 
    center: {lat:0.0,lng:0.0}, 
    zoom: 2 
}); 

map.overlayMapTypes.insertAt(0, new CoordMapType(new google.maps.Size(128,128))); 

マップの初期化時に呼び出されますが、イベントがトリガされません。

+0

問題を再現できるように、[最小、完全、および検証可能な例](http://stackoverflow.com/help/mcve)を提供してください。 – MrUpsidown

+0

質問が更新されました。マップの初期化が含まれています。私はこれがあなたが意味するものだと願っています。 – volt

答えて

0

マップタイルはクリックできません。それらのレイヤーはクリックイベントを吸収します。どのペインがDOMイベントを受け取るかを示すMapPanesの説明を参照してください。

関連する問題