Страница 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