Leaflet и SVG иконка маркера

Mapserver, GeoServer, MapGuide, Google и другое ПО для веб-картографии
Ответить
Uhvarkin
Новоприбывший
Сообщения: 14
Зарегистрирован: 11 мар 2018, 16:25
Репутация: 0
Откуда: Ульяновск

Leaflet и SVG иконка маркера

Сообщение Uhvarkin » 22 май 2018, 08:41

Добрый день! Такая проблема: в Leaflet добавляю маркеры из базы данных и устанавливаю им иконку SVG.

Код: Выделить всё

var icon= "svg/Ships/" + feature.properties.svg +"_W.svg";
var shipIcon = L.icon({
	iconUrl: icon,
	iconSize: [140, 140],
	shadowSize: [15, 15],
	iconAnchor: [5, 5],
	popupAnchor: [0, -25]
	});
return L.marker(latlng, {
	icon: shipIcon,
	title: feature.properties.name,
	rotationAngle: feature.properties.otnkurs
	});
SVG немного не стандартный, большой контейнер, по середине маленькая иконка.
Изображение
Примерно таких размеров SVG, выделил черным квадратом.
Изображение
До этого делал все это через GeoServer, и работало как нужно.
Изображение
Подскажите, пожалуйста, как можно решить данную проблему? Во вложения положил пример моего svg
Вложения
13147200400903100100000100000000_W.svg
(3.19 КБ) 622 скачивания
13147200400903100100000100000000_W.svg
(3.19 КБ) 589 скачиваний
13147200400903100100000100000000_W.svg
(3.19 КБ) 593 скачивания

ericsson
Гуру
Сообщения: 3321
Зарегистрирован: 27 июл 2009, 19:26
Репутация: 748
Ваше звание: Вредитель полей

Re: Leaflet и SVG иконка маркера

Сообщение ericsson » 22 май 2018, 10:56

Начать с того, что научиться пользоваться Inkscape. Из знаний об Inkscape вам понадобится:
- чем отличается сохранение в Inkscape SVG от просто SVG (ваши файлы - Inkscape SVG)
- как изменить размер страницы SVG-файла до размеров собственно изображения, которое в нем содержится (через Document properties)

Ну и для самообразования, ознакомьтесь с https://www.sarasoueidan.com/blog/svg-c ... e-systems/

А вообще, я не очень понимаю ситуацию: вы уже знаете, что у вашего SVG есть лишние поля (то есть корень проблемы вам известен), так при чем тут Leaflet и GIS вообще - это вопрос по векторной графике.

Uhvarkin
Новоприбывший
Сообщения: 14
Зарегистрирован: 11 мар 2018, 16:25
Репутация: 0
Откуда: Ульяновск

Re: Leaflet и SVG иконка маркера

Сообщение Uhvarkin » 22 май 2018, 11:57

ericsson писал(а):
22 май 2018, 10:56
Начать с того, что научиться пользоваться Inkscape. Из знаний об Inkscape вам понадобится:
- чем отличается сохранение в Inkscape SVG от просто SVG (ваши файлы - Inkscape SVG)
- как изменить размер страницы SVG-файла до размеров собственно изображения, которое в нем содержится (через Document properties)
Правильно ли я понимаю, что придется отредактировать все SVG ?

ericsson
Гуру
Сообщения: 3321
Зарегистрирован: 27 июл 2009, 19:26
Репутация: 748
Ваше звание: Вредитель полей

Re: Leaflet и SVG иконка маркера

Сообщение ericsson » 22 май 2018, 21:51

Теоретически, если у вас для маркеров используются только эти SVG, можно попытаться переписать стили для них, но это совершенно неправильный подход - нужно чинить то, что сломано/неправильно (SVG), а не то, что работает правильно.

Ну и сколько у вас этих иконок? На редактирование одной нужно меньше минуты.

Uhvarkin
Новоприбывший
Сообщения: 14
Зарегистрирован: 11 мар 2018, 16:25
Репутация: 0
Откуда: Ульяновск

Re: Leaflet и SVG иконка маркера

Сообщение Uhvarkin » 23 май 2018, 12:12

ericsson писал(а):
22 май 2018, 21:51
нужно чинить то, что сломано/неправильно (SVG)
их порядка 300 штук. Чинить с помощью viewBox ?

trir
Гуру
Сообщения: 5278
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1014
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Leaflet и SVG иконка маркера

Сообщение trir » 23 май 2018, 12:18

:shock:
sodipodi:docname="13147200400903100100000100000000_W.svg
https://ru.wikipedia.org/wiki/Sodipodi

trir
Гуру
Сообщения: 5278
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1014
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Leaflet и SVG иконка маркера

Сообщение trir » 23 май 2018, 12:21

а разве не для этого нужны iconAnchor и popupAnchor?

Аватара пользователя
rhot
Гуру
Сообщения: 1727
Зарегистрирован: 25 янв 2011, 17:50
Репутация: 194
Ваше звание: доктор
Откуда: Архангельск

Re: Leaflet и SVG иконка маркера

Сообщение rhot » 23 май 2018, 12:21

Uhvarkin писал(а):
23 май 2018, 12:12
Чинить с помощью viewBox
ImageMagick
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________

Ariki
Гуру
Сообщения: 731
Зарегистрирован: 12 янв 2011, 22:40
Репутация: 304
Ваше звание:

Re: Leaflet и SVG иконка маркера

Сообщение Ariki » 23 май 2018, 12:56

Inkscape же скриптуется через командную строку

Код: Выделить всё

inkscape --without-gui --export-area-drawing --export-plain-svg=OUTPUT_FILENAME.svg INPUT_FILENAME.svg

Ответить

Вернуться в «Веб-картография»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 6 гостей