Листовка нестандартный значок маркера повернуть на угол, конфликт стиля преобразования

OK. Похоже, что вождение в файле создало файл Pipfile в корне, который делал pipenv обрабатывать root как существующую виртуальную среду. Удаление этой проблемы устранило проблему.

Оставляя это здесь, если кто-то другой (новый) сталкивается с этим, - это не было проблемой в веб-поиске.

1
задан JRI 20 January 2019 в 07:37
поделиться

1 ответ

Первая проблема с вашим кодом заключается в том, что он поворачивает значок вокруг своего угла, а не по центру, поэтому он оказывается не в том месте. Вторая проблема заключается в том, что Leaflet использует свойство иконки style.transform для его позиционирования, поэтому поворот поворачивается при каждом увеличении карты.

Плагин Leaflet.RotatedMarker , предложенный @IvanSanchez, выглядит как элегантное решение. Если вы не можете использовать плагин, вам может помочь следующее:

Стиль CSS:

.u-turn-icon {
   transform-origin: center;
}

Javascript:

map.on("zoomstart", function(ev) {
  let icons = document.getElementsByClassName("u-turn-icon");
  for(let icon of icons) {
    icon.style.visibility = "hidden";
  }
});

map.on("zoomend", function(ev){
  let icons = document.getElementsByClassName("u-turn-icon");
  for(let icon of icons) {
    icon.style.transform += " rotate(20deg)";
    icon.style.visibility = "";
  }
});

map.fire("zoomend");

Этот код просто сбрасывает вращение каждого значка разворота каждый раз, когда карта масштабируется. Значок скрыт в начале увеличения и отображается в конце, поэтому вы не заметите его вращение. Событие zoomend запускается вручную, чтобы установить правильное вращение значка до масштабирования карты.

0
ответ дан JRI 20 January 2019 в 07:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: