10 個のマーカーで構成されるポリラインがあります。ポリラインの一部で 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: ???
});
正直なところ、次の 4 つのことが必要です
。 1. ポリラインの上にマウスを移動します
。 2. 発生したポリラインの mouse_over イベントの間に前/次のマーカーを定義し
ます。 3. これらのマーカーから marker.timestamp 値を取得
します。 4. 方向を描画します (google.maps. SymbolPath.FORWARD_OPEN_ARROW) ポリラインのこの部分のみ (すべてのポリラインではありません)