我有一条由10个标记组成的折线。 有没有办法在polyline的某些部分发生mouse_over或mouse_click事件时定义最接近的标记(上一个和下一个)?
例如,我点击了折线的1部分。折线的这一部分位于2个标记之间。我需要用他们的LatLng位置搜索2个标记。
任何建议都将非常感谢。 感谢。
UPDATE1 这是snippet1(从数据库(从服务器的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.定义polyline mouse_over事件发生之间的上一个/下一个标记
3.从这些标记中获取marker.timestamp值
4.仅为折线的这部分绘制方向(如google.maps.SymbolPath.FORWARD_OPEN_ARROW)(不适用于所有折线)