SASGIS

Веб-картография и навигация

Логические операции с полигонами

Запрашиваем и выполняем хотелки к SAS.Планете вне очереди

Модераторы: vdemidov, Tolik

Правила форума
Настоятельно рекомендуем ознакомиться с правилами раздела платных услуг ТУТ.

Re: Логические операции с полигонами

Сообщение zed » 04 май 2015, 22:59

Papazol писал(а):4. Если применяется логическое ИЛИ, то при любом количестве выбранных полигонов и независимо от того, накладываются они друг на друга или нет, покрытие должно охватывать все полигоны без исключения. Но получается это не всегда.

Посмотрел сейчас внимательнее, и оказывается, что глюк с отображением тут ни при чём (хотя он и есть). Если в качестве subject выбрать отдельно-стоящий полигон, а пересекающиеся будут clip, то в результате получается всего 2 полигона. Дырок не образуется, но пересечение clip полигонов почему-то исключается из результата. А вот если любой из пересекающихся полигонов выбрать как subject, то получается вполне ожидаемая картина. Логические операции с множеством полигонов, большим двух, могут оказаться неочевидными. Но тут ХЗ что делать - операции выполняет библиотека, и видимо, у неё есть причины объединять полигоны именно так, а не иначе. Разбивать операции по количеству полигонов, чтобы библиотека работала всегда только с двумя полигонами, как-то не очень хочется. Да и не факт, что поможет.

P.S. Интересно, в зависимости от размеров и площади пересечения clip полигонов получается то тот, то иной результат. Иногда объединяет нормально, а иногда исключает общую часть. Какая-то непонятная фигня...
zed
Гуру
 
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз.
Поблагодарили: 525 раз.

Re: Логические операции с полигонами

Сообщение zed » 06 май 2015, 21:45

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

И ещё, у меня будет просьба к людям, знающим английский язык: нужно вычитать всё, что я там надобавлял и пофиксить, если что. Добавленные и не переведённые строки выделены цветом в файле в аттаче. Если кто заметит там несуразицу или знает лучший вариант текста, буду благодарен замечаниям. Можно прямо сюда писать, можно в Багтрекер.
zed
Гуру
 
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз.
Поблагодарили: 525 раз.

Re: Логические операции с полигонами

Сообщение Tolik » 07 май 2015, 17:05

Merge operation finished successful!\nResult contains %d polygon(s) with %d hole(s)

Правильно "Merge completed successfully."

Просто список трудно редактировать, позже попробую поиграться с новыми фичами, может ещё что-то замечу.
Tolik
Гуру
 
Сообщения: 2603
Зарегистрирован: 28 янв 2011, 10:38
Благодарил (а): 278 раз.
Поблагодарили: 515 раз.

Re: Логические операции с полигонами

Сообщение Tolik » 07 май 2015, 18:35

Attract to The Existing Markers -> Snap to Existing Placemarks
Save result polygon as... -> Save merged polygon as...

На этой картинке:
1. почему же "0 дыр"?
2. почему отрезки не совпадают: Земля, что ли, круглая?

2015-05-07_173158.png
Tolik
Гуру
 
Сообщения: 2603
Зарегистрирован: 28 янв 2011, 10:38
Благодарил (а): 278 раз.
Поблагодарили: 515 раз.

Re: Логические операции с полигонами

Сообщение zed » 07 май 2015, 18:36

Его и не надо редактировать. Это бесполезное занятие. Редактировать буду я, в сорцах SAS. Мне главное знать что неправильно и на что изменить.
zed
Гуру
 
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз.
Поблагодарили: 525 раз.

Re: Логические операции с полигонами

Сообщение zed » 07 май 2015, 18:54

1. Раз написано, что 0, значит 0 :) Попробуй отредактировать полигон и растянуть точки в местах пересечения треугольников. Сильно удивишься - см. скриншот. В либе, что занимается объединением полигонов, есть дополнительный метод, который объединяет близко-расположенные точки. Если применить эту функцию, возможно и получилась бы дырка в итоге (а возможно и нет). Но не знаю, стоит ли задействовать её. Всё-таки понятие близости точек весьма относительное и возможно где-то это объединение будет мешать.
2. Наоборот, плоская. В рамках операций с полигонами не учитывается, что мы на сфере/эллипсе.

1.jpg

P. S. Попробовал включить объединение близких точек - результат получился аналогичный. Так что, тут вообще без вариантов.
zed
Гуру
 
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз.
Поблагодарили: 525 раз.

Re: Логические операции с полигонами

Сообщение Tolik » 07 май 2015, 19:52

zed писал(а):Его и не надо редактировать.

Я хотел сказать, трудно искать ошибки в списке, не видя, к чему относится строка.

Ещё одно замечание - оно, правда, не относится к новой фиче, но раз уж чистим текст.
Когда редактируешь полигон, есть кнопка "Add to database" и "Save as new". Причём в обоих случаях открывается окно, в кот. можно изменить имя.
Было бы лучше (привычнее, логичнее)
1. переименовать на "Save" и "Save as..." соответственно
2. при нажатии Save сохранять с тем же именем без открытия диалога.
Tolik
Гуру
 
Сообщения: 2603
Зарегистрирован: 28 янв 2011, 10:38
Благодарил (а): 278 раз.
Поблагодарили: 515 раз.

Re: Логические операции с полигонами

Сообщение zed » 07 май 2015, 19:55

Tolik писал(а):Ещё одно замечание - оно, правда, не относится к новой фиче, но раз уж чистим текст.

Ну, тут уже скорее не чистка текста, а изменение функционала: "сохранять с тем же именем без открытия диалога". Это вопрос глобальный и нужно решать через Багтрекер.
zed
Гуру
 
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз.
Поблагодарили: 525 раз.

Re: Логические операции с полигонами

Сообщение Tolik » 07 май 2015, 20:00

С дырками-то всё странно.
Нарисовал 2 треугольника - один полностью в другом. Сделал XOR, говорит, создался 1 полигон с 1 дыркой. Но после сохранения получился просто большой треугольник.

И ещё, совсем как бы придирка как бы не в тему. Когда открываешь Placemark manager, он открывается всегда на первой (по списку) категории. Раньше, вроде, открывался на предыдущей?
Tolik
Гуру
 
Сообщения: 2603
Зарегистрирован: 28 янв 2011, 10:38
Благодарил (а): 278 раз.
Поблагодарили: 515 раз.

Re: Логические операции с полигонами

Сообщение Tolik » 07 май 2015, 20:01

zed писал(а):Ну, тут уже скорее не чистка текста, а изменение функционала

Согласен, но сам текст всё равно лучше поменять (п.1)
Tolik
Гуру
 
Сообщения: 2603
Зарегистрирован: 28 янв 2011, 10:38
Благодарил (а): 278 раз.
Поблагодарили: 515 раз.

Пред.След.

Вернуться в Внеочередное исполнение хотелок

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

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

cron