1

やあみんな私は現在問題を抱えています.Tomtom APIをリーフレットで使用して、ポイントAからポイントBへのマップ上のルートを生成しています.これは完全に機能しています.問題は、自動生成されたマーカーと対話する方法を見つけていないことです. displayroute 呼び出しから。

基本的にこれは私のRoutecallです

Tommap.displayRoute([[Ls.Get('latitude'), Ls.Get('longitude')], [cusLat, cusLng]], function (response) {
                //Tommap.removeLayer(Tommap.endMarker);
                console.log(response)
                $scope.values = response
                $scope.instructions = response.instructions
                console.log(Tommap)

            });

現在、TomTom Api または Leaflet のいずれかが 2 つのマーカー (StartMarker と Endmarker) を生成しています。ユーザーがこれらのマーカーのいずれかをクリックして場所に関する情報を表示する場合は、ポップアップを開く必要があります。

私がこれまでに試したこと:

マーカーが作成されるのと同じ場所にポップアップを作成します。これは機能しますが、onclick 1 ポップアップではなく、マップが読み込まれると開きます。

var popup = L.popup()
    .setLatLng([Ls.Get('latitude'), Ls.Get('longitude')])
    .setContent("I am a standalone popup.")
    .openOn(map); 

Map オブジェクトから Start と Endmarker を取得して、バインドしてみました。うまくいかなかった

Tommap.endMarker.bindPopup("Hello world!"); 

マーカーマネージャーでマーカーを取得したかったのですが、開始マーカーと終了マーカーのIDが見つかりませんでした...その後、ポップアップをバインドできます。

var marker = markerManager.getMarkerById("start / endmarkerId");

それから私はちょっと必死でしたが、使用してルートマーカーを削除できれば map.removeLayer(map.removeLayer(marker));

そして、開始点と終了点に独自のマーカーを作成します

var marker = new tomtom.Marker([Ls.Get('latitude'), Ls.Get('longitude')]);
Tommap.addLayer(marker);

しかし、現在、表示ルートから生成された2つのマーカーと自己追加マーカーがあります...

次に、これを見つけたtomtom.map.jsを調べました

tomtom.Map.MARKER_OPTIONS_ROUTE_END={iconUrl:"marker_customer.svg",iconSize:[43,49],iconAnchor:[11,40],popupAnchor:[0,0]}

アイコンのサイズを 0,0 に設定するか、透明なアイコンを使用して独自のマーカーを作成することもできますが、それでは解決できませんか?

簡単な目標は、開始マーカーをクリックすることです->ポップアップを開いて情報を表示します.lいくつかはエンドマーカーに行きます

どんな助けでも大歓迎

敬具、クリストファー

4

1 に答える 1

0

Extended DivIconを使用してカスタム マーカーを作成し、それに ID を付与できます。ID を使用して、Popup をそれにバインドできます。

于 2015-08-14T13:23:48.820 に答える