Я хотел бы динамически установить тень пользовательского значка маркера во время выполнения, потому что я хочу подчеркнуть значок, щелкнув по которому в данный момент. Я использую Leaflet 1.0. Вещи, которые я пробовал:Как динамически установить тень в Leaflet.js
Добавление тени во время выполнения с
createShadow
functionДобавление пустой PNG теневое изображение в пользовательский значок и изменить его во время выполнения любой функции
createShadow
или непосредственно изменяя Исходное изображение Тени
Вот некоторые psuedocode:
function addMyShadow(marker) {
/* try Leaflet's `createShadow` function */
// directly modify marker: Uncaught TypeError: marker.createShadow is not a function
marker.createShadow('lib/images/shadow.png');
// the createShadow is available under options.icon,
// but this doesn't seem to change anything
marker.options.icon.createShadow('lib/images/shadow.png');
/* try directly modifying the shadow's image source */
// Successfully changes the `currectSrc` property,
// but also doesn't do anything to the icon on the map
marker._shadow.currentSrc = 'lib/images/shadow.png';
}
Я также попытался добавить пользовательский класс с
-webkit-filter: drop-shadow
, но я уже использую-webkit-filter
для цветного набора значков. Я хочу только изменить выбранный значок, а не весь класс. По-видимому, гнездование-webkit-filter
вместо внешних фильтров перезаписывает-webkit-filter
. Так что это не жизнеспособный вариант для меня.В настоящее время я экспериментирую с добавлением пользовательского класса, который использует css
drop-shadow
; похоже, что я могу вручную изменить класс во время выполнения, но я надеюсь, что есть еще один встроенный способ добавления тени. Это тоже не очень красиво, потому что это делает квадрат тени, даже если изображение имеет прозрачность.
EDIT: Я хочу, чтобы маркер быть перетаскиваемым (и есть тень следует как маркер тащится). Поэтому любое решение с двумя значками должно было каким-то образом связать оба значка.
Я думал об этом , но я хочу, чтобы маркер перетащил. Есть ли у вас идеи связать два маркера вместе? – user2441511
Это очень приятное решение. Благодарим вас за разъяснение и за код примера. – user2441511