やあみんな私は現在問題を抱えています.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いくつかはエンドマーカーに行きます
どんな助けでも大歓迎
敬具、クリストファー