0

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) ポリラインのこの部分のみ (すべてのポリラインではありません)

4

0 に答える 0