View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0003237SAS.Планета[All Projects] Багpublic09-06-2017 07:0009-05-2019 19:57
ReporterAlezy80 
Assigned Tozed 
PrioritynormalSeverityminorReproducibilityalways
StatusresolvedResolutionfixed 
PlatformWindowsOS7OS VersionUltimate
Product Version160707 
Target Version181221Fixed in Version181221 
Summary0003237: Неверный размер некоторых иконок при экспорте в KML файл
DescriptionПри экспорте иконок задается неверное масштабирование. Если при создании точки выбран размер иконок 32х32, а исходный файл иконки имеет размер 64х64, то при экспорте иконке задается масштаб <scale>0.5</scale>. Если размер исходного файла 32х32, то масштаб ставится равным 1.
При последующем импорте в Google Earth иконки с масштабом 0,5 выглядят очень мелкими, т.к. GE и другие программы (проверял еще на Android в программе Locus) применяют этот коэффициент масштабирования не к исходному файлу иконки, а к базовому квадратику, в который надо вписать иконку.
Поэтому при экспорте надо игнорировать разрешение файла иконки, а коэффициент масштабирования вычислять как отношение заданного размера иконки к базовому, который можно принять как константу 32х32, или вынести в настройки
Steps To Reproduce1. Создал несколько точек, установил разные иконки (1.png и ancienttemple.png)
2. Экспортировал в KMZ файл
3. Открыл KMZ в Google Earth (или Android Locus)
Точка с иконкой 1.png стала малюсенькой, а точка с иконкой ancienttemple.png осталась нормальной, скриншот GE прилагаю
TagsNo tags attached.
Attached Filespng file icon 01ExportToGE.png [^] (33,953 bytes) 09-06-2017 07:00


? file icon Test.kmz [^] (8,619 bytes) 20-06-2017 06:29
png file icon GECustomIcons.png [^] (116,528 bytes) 20-06-2017 06:30

- Relationships
has duplicate 0003290closedzed Экспорт в kml: проблемы с отображением иконок и текста в Google Earth 
related to 0003343resolvedzed При экспорте в KML масштаб шрифта метки считается относительно НЕ дефолтного шрифта 
related to 0003339resolvedzed Определённым образом форматировать KML-файл при экспорте меток 

-  Notes
(0017984)
vdemidov (manager)
09-06-2017 08:05

Если это действительно так, то исправить очень просто. Достаточно в u_ExportMarks2KML.pas в методе AddPointAppearence заменить получение ширины
 width := VAppearanceIcon.Pic.GetMarker.Size.X;
просто на константу 32
(0017985)
Alezy80 (developer)
09-06-2017 09:06

Как быстрофикс - хорошее решение.
А потом можно развить идею иконок, чтобы в настройках программы задавался базовый размер, а размер самих иконок задавался масштабирующим коэффициентом. Так сделано в Google Earth, там три размера иконок (маленькие, средние, большие) и такой подход поможет пользователям с HiDPI экранами
(0017989)
zed (manager)
19-06-2017 19:47

Что-то я не совсем понимаю, как надо сделать, чтобы получилось правильно для иконок любых размеров? Чему равен этот "базовый квадратик" который использует GE? Всегда 32x32 pix?

Дефолтная булавка в GE имеет размер 64x64 pix и по дефолту она сохраняется с масштабом 1,1. И там нету выбора между маленькой/средней/большой иконкой. Она там одна.
(0017990)
Alezy80 (developer)
20-06-2017 06:29

В настройках GE можно выбрать базовый размер иконки, например "нормальный" имеет размер квадрата 32х32. Иконки вписываются в этот базовый квадратик по *меньшей стороне* в независимости от разрешения исходного файла. А потом иконке можно еще ввести масштабирующий коэффициент, который будет увеличивать размер базового квадратика. Для примера я создал 4 иконки разного размера, прикладываю KMZ и скриншот, как он отображается в GE
(0017991)
zed (manager)
22-06-2017 14:48

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

Интересно, что в описании kml формата нет ни слова о том, что возможны различные типы масштабирования иконок.
(0018322)
zed (manager)
14-06-2018 13:10

А какие размеры базового квадрата должны быть для "маленького" и "большого" размера? По моим прикидкам где-то 28 и 38 pix.

У экспорта в kml появился конфиг, так что сейчас можно вынести в настройки способ, каким образом считать этот scale.
(0018323)
zed (manager)
14-06-2018 14:59

Сделал настройку (Управление метками - иконка с синей шестерёнкой), тестируйте. Возможно, для small надо задать базовый размер 16 (сейчас 28), а для Large - 64 (сейчас 38) и наверное надо как-то альтернативно считать масштаб у шрифта. Сейчас он считается относительно 14 ppt. В общем, жду отзывов и предложений.
(0018328)
cycler (reporter)
15-06-2018 15:03

У меня почему-то при любых настройках Icon Scale (может стоит в русской версии "масштаб иконки" сделать?) выскакивает в kml магическое число <scale>0.785714285714286</scale>.
Очень бы хотелось, чтобы там было <scale>1</scale>, тогда одной ручной операцией перед публикацией в веб станет меньше. По идее, такое поведение должно быть при настройке icon style -> absolute, но почему-то не срабатывает..
(0018329)
zed (manager)
15-06-2018 15:10

Единица будет если в SAS указан размер иконок 32 pix и в настройках экспорта выбрано Medium.

> <scale>0.785714285714286</scale>
Это похоже на масштаб у шрифта, а не иконки. Как я писал выше, шрифт я пока не трогал.
(0018330)
cycler (reporter)
15-06-2018 15:54

Не заметил что один scale относится к <IconStyle> и он везде 1, а вот scale внутри <LabelStyle> всегда почему-то 0.785714285714286. Похоже на какую-то багу.

Может LabelStyle/scale всегда при выгрузке в kml выставить равный единице? Потому что нет ситуаций в kml, требующих изменения масштаба текста. Или есть? Но если есть, то логичнее его делать более человечным, типа 0.5, 1.5, 2... А если и есть, то как он всё же такой посчитался?

Опытным путём нашёл что шрифт 14 в свойствах иконки даёт scale равный 1 (да, надо было внимательнее читать предыдущие заметки).
То есть размер 14 принят за базовый размер шрифта, и иные шрифты обсчитываются относительно него. Но ведь в иных прогах и вебе, где будет использоваться Kml-файл может быть какой угодно другой базовый размер шрифта.
Так что мне кажется логичным указать 1 для LabelStyle и не париться.

Наверное это уже к другому тикету?
(0018331)
zed (manager)
15-06-2018 16:06

> Потому что нет ситуаций в kml, требующих изменения масштаба текста.
Ситуации могут быть разные. Кому-то может захотеться сделать шрифт мельче или крупнее дефолтного. Если формат позволяет, то почему бы и нет?

Сейчас в SAS дефолтный размер шрифта 11-й, а при экспорте в kml масштаб считается относительно 14-го. Вот тут по-моему наблюдается несоответствие и считать надо так же относительно 11-го.

> Наверное это уже к другому тикету?
По-хорошему, да - надо открыть отдельный тикет и там этот вопрос обсуждать.
(0018332)
cycler (reporter)
15-06-2018 17:09

На тему масштаба текста создал тикет http://www.sasgis.org/mantis/view.php?id=3343

- Users who viewed this issue
User List Anonymous (1866x), rass (1x), zed (19x), vdemidov (16x), cycler (9x), ingener (2x), stepanxxx (1x), Alezy80 (10x), AlexWhiter (1x), Papazol (1x), Garl (1x)
Total Views 1927
Last View 09-08-2020 02:33

- Issue History
Date Modified Username Field Change
09-06-2017 07:00 Alezy80 New Issue
09-06-2017 07:00 Alezy80 File Added: 01ExportToGE.png
09-06-2017 08:03 vdemidov Status new => confirmed
09-06-2017 08:03 vdemidov Product Version .Nightly => 160707
09-06-2017 08:03 vdemidov Target Version => 181221
09-06-2017 08:05 vdemidov Note Added: 0017984
09-06-2017 09:06 Alezy80 Note Added: 0017985
19-06-2017 19:47 zed Note Added: 0017989
20-06-2017 06:29 Alezy80 Note Added: 0017990
20-06-2017 06:29 Alezy80 File Added: Test.kmz
20-06-2017 06:30 Alezy80 File Added: GECustomIcons.png
22-06-2017 14:48 zed Note Added: 0017991
20-10-2017 20:36 zed Relationship added has duplicate 0003290
01-12-2017 07:25 vdemidov Target Version 181221 => 190707
14-06-2018 13:10 zed Note Added: 0018322
14-06-2018 14:59 zed Note Added: 0018323
14-06-2018 14:59 zed Assigned To => zed
14-06-2018 14:59 zed Status confirmed => feedback
15-06-2018 15:03 cycler Note Added: 0018328
15-06-2018 15:10 zed Note Added: 0018329
15-06-2018 15:54 cycler Note Added: 0018330
15-06-2018 16:06 zed Note Added: 0018331
15-06-2018 17:09 cycler Note Added: 0018332
15-06-2018 17:20 zed Relationship added related to 0003343
15-06-2018 17:21 zed Relationship added related to 0003339
09-05-2019 19:56 zed Status feedback => resolved
09-05-2019 19:56 zed Fixed in Version => 181221
09-05-2019 19:56 zed Resolution open => fixed
09-05-2019 19:57 zed Target Version 190707 => 181221



Copyright © 2007 - 2020 SAS.Planet Team