我有一条由 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) 仅适用于这部分折线(不适用于所有折线)