リーフレットの使い方を学び始めています。私はマーカーで地図を作成しようとしています。カーソルを置くと、ルートが表示されます。マウスがマーカを離れる場合は、経路を削除する必要があります。 (この部分は機能します) マーカーをクリックすると、マウスがマーカーを離れるときにも地図上に経路が残るはずです。 したがって、マウスがマーカーを離れるときに削除されないように、ルートレイヤーを複製する必要があります。それとも私が知らないより良い方法があります。重複したレイヤー/ショーをクリックすると永続的に表示されます
function Route() {
DirectionsLayerLong = omnivore.gpx('GPX/ Route_long.gpx');
DirectionsLayerLong.on('ready', function() {
this.setStyle(style_long);
});
DirectionsLayerShort = omnivore.gpx('GPX/Route_short.gpx');
DirectionsLayerShort.on('ready', function() {
this.setStyle(style_short);
});
return DirectionsLayer = L.featureGroup([DirectionsLayerLong, DirectionsLayerShort]);
};
var Marker = L.marker([50, -100], {
icon: iconfu
}).addTo(map);
Marker.on('mouseover', function(e) {
Route();
DirectionsLayer.addTo(map);
});
Marker.on('mouseout', function(e) {
DirectionsLayer.remove()
});
Marker.on('click', function(e) {
DirectionsPermaLayer.remove();
Route();
DirectionsPermaLayer = DirectionsLayer;
DirectionsPermaLayer.addTo(map);
});
私は単純に別の変数と雑食動物を使用することができますが、私は機能を再利用したいと思います。
あなたの答えに感謝します。イベントリスナーを無効にする方法を学びました。 しかし、これは問題を引き起こすでしょう。私が言及しなかったのは、複数のマーカーがあることです。最初のマーカーをクリックした後でも、ホバー機能が利用できるはずです。 1つのマーカーをクリックするたびに、次のマーカーをクリックするまでこの経路が恒久的にハイライト表示されます。この間、他のマーカーにカーソルを合わせると、これらのルートが表示されます。 – Hedaja
私はコードを少し書き直し、あなたのアイデアを複製して使用しました。再度、感謝します。 – Hedaja