【问题标题】:Gmap V3 api title only appears for first markerGmap V3 api 标题仅出现在第一个标记处
【发布时间】:2015-07-05 20:26:37
【问题描述】:

使用 Firefox,标记标题仅出现在鼠标悬停的第一个标记上。任何后续的鼠标悬停都不会产生任何标题。标题在 Chrome、IE 等环境下运行良好。

之前有几个关于此的问题。 (见Google Maps Marker title no longer appears as tooltip on hover

答案表明这是 api 的实验版本中的一个问题。

gmaps api 问题https://code.google.com/p/gmaps-api-issues/issues/detail?id=6931 相关。

如附件jFiddle 所示,问题不一定可以通过使用 &v=3 解决。

我错过了什么吗?

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>Titles Fail</title>

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script src='https://maps.googleapis.com/maps/api/js?v=3&sensor=false'></script>
<script type="text/javascript">
    function mapDisplay(){
        var locations =  [
            [-42.0, 147.0, "marker 1"],
            [-42.3, 147.9, "marker 2"],
            [-42.2, 147.45, "marker 3"],
            [-42.8, 147.9, "marker 4"]
        ];
            $("#map").css({'height': '600px'});

            var map = new google.maps.Map(document.getElementById('map'), {
                mapTypeId: google.maps.MapTypeId.ROADMAP
            });

            var marker, point;
            var bounds = new google.maps.LatLngBounds();

            for (var i = 0; i < locations.length; i++) {
                point = new google.maps.LatLng(locations[i][0], locations[i][4]);
                marker = new google.maps.Marker({
                    position: point,
                    map: map,
                    title: locations[i][5]
                });

                bounds.extend(marker.position);
            }
            map.fitBounds(bounds);
            if(map.getZoom()> 10){
                map.setZoom(10);
            }
    }
</script>
</head>
<body onload="mapDisplay()">
<div id="map" style="height: 90%; width: 90%;"></div>
</body>
</html>

【问题讨论】:

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


【解决方案1】:

这是一个 API 版本问题。 "frozen version" (currently v3.16)

<script src='https://maps.googleapis.com/maps/api/js?v=3.0&sensor=false'></script>

修复它(至少对我来说)

fiddle

current issue in the issue tracker(投票表示感兴趣/关注状态)

【讨论】:

  • 根据 Google 的说法,“稳定”版本是 3.17,并且该版本确实表现出不良行为。将标记选项“优化”设置为 false 可以消除这种行为,这对于 Google 将解决问题的人来说是一个很好的证据。
  • 使用画布渲染优化标记;未优化的标记被呈现为非画布 DOM 元素。
【解决方案2】:

此问题在 Firefox 39 中仍然有效,但现在鼠标悬停 addListener 事件也存在问题。

在标记选项中添加“optimized:false” - 正如 RoyHB 所提到的 - 不仅解决了标题问题,还解决了 mouseover addListener 事件的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-10
    相关资源
    最近更新 更多