替换Google地图API getTile覆盖中的tile图片

Replace tile picures in Google maps API getTile override

本文关键字:tile 图片 覆盖 getTile Google 地图 API 替换      更新时间:2023-12-15

我正在做一个应用程序,在那里你可以点击谷歌地图瓦片,并用另一张图片替换它。

当前的解决方案是,我添加了一个覆盖映射,并重写getTile(),以创建一个带有ID的自定义div和一个点击事件监听器,在那里我可以用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()中引发错误。

瓦片将在overlayLayer-mapPane中呈现。

根据文档,这个mapPane可能不会接收DOM事件,所以恐怕没有比通过计算检测特定瓦片更好的方法了。