在 Google 地图中的地图图块上触发悬停

Posted

技术标签:

【中文标题】在 Google 地图中的地图图块上触发悬停【英文标题】:Triggering hover on map tiles in Google Maps 【发布时间】:2012-07-20 05:25:38 【问题描述】:

我想在 Google 地图中的图块鼠标悬停时触发 jquery 事件。我能想到的最好的是。

$('div.tileclass').live('hover', function()
   $("#debugger").prepend("test");  //Dummy just to test if this works
);

这只会在地图加载时触发悬停动作,而不是在页面加载后触发

可以在此处看到:http://rider.cyclistsroadmap.com(尽管不会显示调试器 div,并且警报往往对测试来说很烦人,并希望加载地图)

页面加载后能够触发动作的任何方式

【问题讨论】:

我使用 Firebug 将 css“pointer-events: none”添加到其他层之一,甚至可以完美运行!知道如何从 javascript 将其添加到另一层的 css 吗? 【参考方案1】:

需要给地图的mousemove事件添加事件监听,如:

google.maps.event.addListener(map,'mousemove', function(mev)
    var TILE_SIZE = 256;
    var proj = map.getProjection();
    var numTiles = 1 << map.getZoom();
    var worldCoordinate = proj.fromLatLngToPoint(mev.latLng);

    var pixelCoordinate = new google.maps.Point(
            worldCoordinate.x * numTiles,
            worldCoordinate.y * numTiles);
        var tileCoordinate = new google.maps.Point(
            Math.floor(pixelCoordinate.x / TILE_SIZE),
            Math.floor(pixelCoordinate.y / TILE_SIZE));

    debug('TileX:' +tileCoordinate.x+' - TileY:'+tileCoordinate.y);

);

注意这个separate file中包含debug()函数

此处发布的代码主要基于文档中的this example

【讨论】:

以上是关于在 Google 地图中的地图图块上触发悬停的主要内容,如果未能解决你的问题,请参考以下文章

Google地图图块仅在触摸设备上触发dragend时加载

当间隙设置为 0(响应式地图)时,为啥 CSS 网格中的图块之间存在小的像素间隙?

如何在离线地图图块中放置多个图钉并获得经纬度?

我可以在 osmdroid 中使用 Google 地图图块吗?

如何缓存 Google 地图图块以供离线使用?

在 iOS 9 上运行时确实会出现 Google 地图图块