Страница 1 из 1
Leaflet и SVG иконка маркера
Добавлено: 22 май 2018, 08:41
Uhvarkin
Добрый день! Такая проблема: в 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
Re: Leaflet и SVG иконка маркера
Добавлено: 22 май 2018, 10:56
ericsson
Начать с того, что научиться пользоваться Inkscape. Из знаний об Inkscape вам понадобится:
- чем отличается сохранение в Inkscape SVG от просто SVG (ваши файлы - Inkscape SVG)
- как изменить размер страницы SVG-файла до размеров собственно изображения, которое в нем содержится (через Document properties)
Ну и для самообразования, ознакомьтесь с
https://www.sarasoueidan.com/blog/svg-c ... e-systems/
А вообще, я не очень понимаю ситуацию: вы уже знаете, что у вашего SVG есть лишние поля (то есть корень проблемы вам известен), так при чем тут Leaflet и GIS вообще - это вопрос по векторной графике.
Re: Leaflet и SVG иконка маркера
Добавлено: 22 май 2018, 11:57
Uhvarkin
ericsson писал(а): ↑22 май 2018, 10:56
Начать с того, что научиться пользоваться Inkscape. Из знаний об Inkscape вам понадобится:
- чем отличается сохранение в Inkscape SVG от просто SVG (ваши файлы - Inkscape SVG)
- как изменить размер страницы SVG-файла до размеров собственно изображения, которое в нем содержится (через Document properties)
Правильно ли я понимаю, что придется отредактировать все SVG ?
Re: Leaflet и SVG иконка маркера
Добавлено: 22 май 2018, 21:51
ericsson
Теоретически, если у вас для маркеров используются только эти SVG, можно попытаться переписать стили для них, но это совершенно неправильный подход - нужно чинить то, что сломано/неправильно (SVG), а не то, что работает правильно.
Ну и сколько у вас этих иконок? На редактирование одной нужно меньше минуты.
Re: Leaflet и SVG иконка маркера
Добавлено: 23 май 2018, 12:12
Uhvarkin
ericsson писал(а): ↑22 май 2018, 21:51
нужно чинить то, что сломано/неправильно (SVG)
их порядка 300 штук. Чинить с помощью viewBox ?
Re: Leaflet и SVG иконка маркера
Добавлено: 23 май 2018, 12:18
trir
sodipodi:docname="13147200400903100100000100000000_W.svg
https://ru.wikipedia.org/wiki/Sodipodi
Re: Leaflet и SVG иконка маркера
Добавлено: 23 май 2018, 12:21
trir
а разве не для этого нужны iconAnchor и popupAnchor?
Re: Leaflet и SVG иконка маркера
Добавлено: 23 май 2018, 12:21
rhot
Uhvarkin писал(а): ↑23 май 2018, 12:12
Чинить с помощью viewBox
ImageMagick
Re: Leaflet и SVG иконка маркера
Добавлено: 23 май 2018, 12:56
Ariki
Inkscape же скриптуется через командную строку
Код: Выделить всё
inkscape --without-gui --export-area-drawing --export-plain-svg=OUTPUT_FILENAME.svg INPUT_FILENAME.svg