google-maps - 折线(路线)悬停时的工具提示

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

我在 map 上做了路线。使用一些坐标生成的路线,这些坐标完成了附加信息(速度)。我希望当路线悬停时,将出现一个工具提示并显示这些坐标处的信息(速度)。我很困惑如何显示速度的工具提示。

<html>
<head>
   <title>Polyline Route v3 Example</title>
   <script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?v=3&amp;sensor=false"></script>
   <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>   
   <script type="text/javascript">
    var locations = [
        {"speed":"13","lat":"-6.246192976751192","lon":"106.79324626922607"}, {"speed":"33","lat":"-6.245723710157699","lon":"106.79603576660156"}, {"speed":"23","lat":"-6.245723710157699","lon":"106.79796695709229"}, {"speed":"43","lat":"-6.243334710069922","lon":"106.79800987243652"},
        {"speed":"12","lat":"-6.245723810157699","lon":"106.79796725709229"}, {"speed":"1","lat":"-6.245723860157699","lon":"106.79796735709229"}, {"speed":"45","lat":"-6.245723890157699","lon":"106.79797755709229"}, {"speed":"21","lat":"-6.245723910157699","lon":"106.79797895709229"}
    ];
    var map;
    function createRouteMap(){
    var listRoute = [];
    for (var i = 0; i < locations.length; i++) {
        listRoute.push(new google.maps.LatLng(locations[i].lat, locations[i].lon));
    }
    var mapOptions = {
      zoom: 16,
      center: listRoute[Math.ceil(listRoute.length/2)],
      mapTypeId: google.maps.MapTypeId.ROADMAP,
    };
    map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
    showMap(listRoute);
    createMarkers(locations);
}

function showMap(listRoute){
    if((listRoute.length < 1) || (listRoute == null)){
        jQuery("#map_canvas").html('<div class="alert alert-info"> <strong>Empty Trail!</strong> This trip still has no trail </div>'+
        '<div class="btn-toolbar"> <p><code>The gps device </code>in the car still not sent position!</p> </div>');
    }else{
        var flightPath = new google.maps.Polyline({
            path: listRoute,
            strokeColor: "#FF0000",
            strokeOpacity: 5,
            strokeWeight: 3.7
        });
        flightPath.setMap(map);
    }
}

function createMarkers(locations) {
    for (var i = 0; i < locations.length; i++) {
        var point = locations[i];
        var myLatLng = new google.maps.LatLng(point.lat, point.lon);
        var marker = new google.maps.Marker({
            position: myLatLng,
            map: map,
            icon: 'greencirclemarker.png',
            title: point.speed
        });
    }
}

$(document).ready(function() {
    createRouteMap();
});

</script>
</head>
<body>
<div id="map_canvas" style="height:400px; border:1px 00f solid;"></div>
</body>
</html>

最佳答案

您的“速度”与分数相关。您有几个选择:

  1. 添加标记并在鼠标悬停在标记上时显示速度(或作为标记的工具提示)

  2. 使用自己的鼠标悬停事件处理程序将线的每一段呈现为单独的多段线。您将需要指定如何将速度应用于线段。有更复杂的方法可以使用单条多段线来完成,但使用鼠标悬停事件可能会出现性能问题。

关于google-maps - 折线(路线)悬停时的工具提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15429680/

相关文章:

javascript - Google map - 标记列表取决于缩放级别

javascript - 禁止点击标记

android - 在框架布局中访问动态添加的谷歌地图 fragment

javascript - map API V3 : getCenter() and getZoom() not working

google-maps - 优化 RequireJS 中的谷歌地图

javascript - Google map 中的标记可见性

java - 如何根据 OnInfoWindowClick 打开不同的 Activity

javascript - 在标记的中心创建文本

html - 表格单元格中 GoogleMaps 的宽度

css - 巨大的谷歌地图控件(可能是错误?)