在 maps 3 api 的早期版本中,我构建了一些“叠加”功能来使用自定义地图类型执行以下操作 - 其想法是,与始终在 google 的图块上提供我的图块相反,我只会显示 google 的图块需要时——即当图块在我的缩放和边界之外或当我的图块具有透明度时(主要是因为我的叠加层的外部边界可能跟随河流等)。它是这样工作的:
当
getTile
我的类型被调用时,确定我是否应该为给定级别提供给定的瓷砖。如果我应该提供瓷砖,请确定瓷砖是否有任何透明度 - 如果有,请使用默认地图获取瓷砖
map.mapTypes.get(google.maps.MapTypeId.ROADMAP).getTile(coord, zoom, ownerDocument)`
然后将我的图像附加到返回的 div 的顶部并显示它。否则,就为我的瓷砖服务。
如果我不应该服务,瓷砖,就回来
map.mapTypes.get(google.maps.MapTypeId.ROADMAP).getTile(coord, zoom, ownerDocument)
因此,似乎由于一些盗窃行为,getTile 不再返回谷歌原生地图类型的任何内容,这带来了两个问题:
我有什么方法可以告诉地图它应该将我的图块显示为覆盖图而不是完整的图块,而不必让我的整个地图成为覆盖图?
有没有办法告诉地图它应该显示自己的图块而不是我的图块?
覆盖地图作为一种解决方案工作,但性能不是很好,有很多重绘,因为谷歌首先绘制自己的瓷砖,然后用我的覆盖它们。由于我 99% 的图块是完全覆盖的(没有透明度),这似乎是对带宽的相当浪费。如果能够从 getTile 传回元数据,指示是否应该绘制默认的谷歌图块(或在其他回调中指示该事实),那就太好了。我以前看起来像是一个优雅的解决方案并且表现良好 - 覆盖方法绝对是退一步。Marcelo,我不确定我的标题是否反映了我的问题……您是否阅读了该问题的完整文本?