在Google Maps API中替换tile图片getTile覆盖

时间:2016-04-04 21:57:16

标签: javascript jquery google-maps

我正在做一个应用程序,您可以在其中点击谷歌地图图块,并将其替换为另一张图片。

目前的解决方案是我添加了一个覆盖图,并覆盖了getTile(),创建了一个带ID的自定义div和一个click事件监听器,我可以在其中选择ID选择器,并使用它。

目前的解决方案是(总结):

CoordMapType.prototype.getTile = function(coord, zoom, ownerDocument) {
 var div = ownerDocument.createElement('div');
 div.id = 'block_' + coord.x + '_' + coord.y;
 return div;
};

google.maps.event.addListener(map, 'click', function(event) {
 var coord = ... the current tile coordinate
 var block_to_select = $('#block_' + coord.x + '_' + coord.y);
 do_magic(block_to_select);
}

最好在gettile()中添加click事件监听器,这样我就可以摆脱ID和大量的计算代码。

我试过了:

CoordMapType.prototype.getTile = function(coord, zoom, ownerDocument) {
 var div = ownerDocument.createElement('div');
 div.dataset.x = coord.x;
 div.addEventListener('click',function(){
    alert(1);
 });
 return div;
}

但是onclick函数不会运行。

有没有更有效的方法来替换瓷砖图片?

返回jquery $(“”)也会在getTile()中抛出错误。

1 个答案:

答案 0 :(得分:0)

图块将在overlayLayer-mapPane

中呈现

根据文档,这个mapPane可能不会收到DOM事件,所以我担心没有比通过计算检测特定图块更好的方法了。