【问题标题】:Is it possible to add a listener to individual google maps tiles?是否可以为单个谷歌地图图块添加监听器?
【发布时间】:2013-08-29 18:54:44
【问题描述】:

我能想到的用于创建自定义地图图块的最简单示例是 Google maps base tile example.

这里唯一有趣的部分是我们在 getTile() 中放入的内容:

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.fontSize = '10';
  div.style.borderStyle = 'solid';
  div.style.borderWidth = '1px';
  div.style.borderColor = '#AAAAAA';
  div.style.backgroundColor = '#E5E3DF';
  return div;
};

是否可以为单个地图图块获取鼠标悬停或单击事件,例如,在返回 div 之前执行类似的操作?

google.maps.event.addDomListener(div, 'click', function() {
alert( ' test - called from addListener');
} );

我无法触发事件。

【问题讨论】:

  • 你到底想达到什么目的?操作 div 还是只检测点击?
  • @Dr.Molle 两者都有,但首先,我想至少弄清楚如何检测点击。如果我能在 div 中获得类似图像映射的东西,那就太好了。
  • 可能无法检测到对图块的点击,因为包含图块图像的 div 被地图的窗格覆盖。当您真正需要图块时,您所能做的就是观察地图上的点击,并根据点击的 LatLng 计算哪个图块或要素会被点击(何时可以点击)。我将存储在 FusionTable 中的功能,通过 FusionTableLayer 处理点击将非常容易。

标签: javascript google-maps google-maps-api-3


【解决方案1】:

也许您应该查看叠加层而不是图块。当用户放大/缩小时,瓷砖可能会改变坐标。 试试https://developers.google.com/maps/documentation/javascript/examples/rectangle-simple

【讨论】:

  • 变化的不仅仅是坐标,实际的图块也发生了变化,这很好。
  • 我根本不想要路线图,我想要完全自定义的地图。我在整个地图上有数十万个特征,这就是我要处理单个图块的原因。
猜你喜欢
  • 1970-01-01
  • 2013-02-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多