0

我有一条由 10 个标记组成的折线。当 mouse_over 或 mouse_click 事件发生在折线的某些部分时,有没有办法定义最近的标记(上一个和下一个)?

例如,我点击了折线的 1 部分。这部分折线位于 2 个标记之间。我需要用他们的 LatLng 位置搜索 2 个标记。

任何建议将不胜感激。谢谢。

Update1 这是片段 1(从数据库(来自服务器的 API)获取每个标记的 latlng):

        var marker = new google.maps.Marker({
            position: new google.maps.LatLng(
                    json.coordinate.latitude,//getting from response from server's API
                    json.coordinate.longitude
                    ),
            map: this.map,
            timestamp: json.timestamp
        });
markersArray.push(marker);

和snippet2(填充标记数组并绘制折线):

var latlngs = []; //get locations (latLng) from markers
    for (var i in markersArray) {
    latlngs.push(markersArray[i].getPosition());
    }
var lineSymbol = {
            path: google.maps.SymbolPath.FORWARD_OPEN_ARROW
        };

        var polyline = new google.maps.Polyline({
            path: latlngs,
            /*icons: [{
             icon: lineSymbol,
             offset: '100%'
             }],*/
            strokeColor: "#000000",
            map: this.map
        })

        google.maps.event.addListener(polyline, 'mouseover', function(event)
        {
            //TODO: ???
        });

老实说,我需要接下来的四件事:
1. 将鼠标悬停在折线上
2. 在折线 mouse_over 事件发生之间定义上一个/下一个标记
3. 从这些标记中获取 marker.timestamp 值
4. 绘制方向(如 google.maps. SymbolPath.FORWARD_OPEN_ARROW) 仅适用于这部分折线(不适用于所有折线)

4

0 回答 0