SASGIS

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

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

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

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

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

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

Сообщение Papazol » 24 апр 2015, 20:40

Запрашиваю внеочередное исполнение хотелки 0001877 ( http://www.sasgis.org/mantis/view.php?id=1877 ).
Аватара пользователя
Papazol
Гуру
 
Сообщения: 2069
Зарегистрирован: 04 дек 2009, 01:39
Откуда: Рязань
Благодарил (а): 74 раз.
Поблагодарили: 606 раз.

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

Сообщение zed » 26 апр 2015, 18:59

Могу попробовать сделать эту хотелку, но только с оговорками:

1. Поскольку не реализован тикет 0002048: Дырки в полигонах, то некоторый функционал, касательно этих самых дырок, будет недоступен. Т.е. функция И-НЕ (исключающее ИЛИ) работать не будет, ну или будет работать как обычное ИЛИ. Функции И и ИЛИ в некоторых случаях будут захватывать большие площади, включающие дырки. Но важно, что после отработки тикета о дырках, функция И-НЕ и прочие, заработают как положено. Я может и сам займусь тем тикетом опосля.
2. По поводу кастомной раскраски полученного выделения, я не уверен, что его там можно сделать. Так что, в первом приближении - без него.

Как мне видится эта фича:

Юзер кликает мышкой по полигону, с зажатой клавишей Ctrl (будет зашита и недоступна из настроек), после чего появляется некое окошко, в котором вверху будут некоторые кнопки с операциями, а внизу будет список из добавленных полигонов. Продолжая кликать по полигонам, юзер заполняет список и когда будет готов, то из блока кнопок с операциями он выбирает алгоритм объединения полигонов (будет выпадающий список доступных операций) и нажимает на кнопку "Ok" по которой выполнится объединение полигонов и запустится диалог операций с выделенной областью. Будет ещё кнопка "Сохранить", по которой объединённый полигон можно будет сохранить в базу меток, т.е. за одно будет выполняться и тикет 0001834: Объединять несколько полигонов в одну метку (операция ИЛИ).

Цена, с оговорками: 800 р.
Хитрости GoogleEarth - то, чего вы не знаете о гугле
Аватара пользователя
zed
Гуру
 
Сообщения: 2888
ICQ: 357167611
Зарегистрирован: 16 авг 2008, 20:21
Откуда: Беларусь, Могилёв
Благодарил (а): 89 раз.
Поблагодарили: 525 раз.

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

Сообщение vasketsov » 26 апр 2015, 21:54

Предполагается, что окошко можно будет докать?
vasketsov
Специалист
 
Сообщения: 901
Зарегистрирован: 25 июл 2009, 21:15
Благодарил (а): 0 раз.
Поблагодарили: 193 раз.

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

Сообщение zed » 26 апр 2015, 21:57

Нет, а зачем? Оно будет появляться когда надо, как те окошки, что появляются при выделении по пути.
Хитрости GoogleEarth - то, чего вы не знаете о гугле
Аватара пользователя
zed
Гуру
 
Сообщения: 2888
ICQ: 357167611
Зарегистрирован: 16 авг 2008, 20:21
Откуда: Беларусь, Могилёв
Благодарил (а): 89 раз.
Поблагодарили: 525 раз.

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

Сообщение vasketsov » 26 апр 2015, 22:46

Чтобы когда оно придокано, оно изменяло рабочую область окна карты.
Полигонов может быть много, и большое окошко с их списком, если оно не докается, будет просто неудобно.
Это примерно как отдокать окно (панель) с результатами поиска: когда их много, они закрывают рабочую область окна, и переход к объектам работает не совсем как хочется: центрируется экран без учёта того, что кусок его занят панелью. А показуха объекта, выбранного в большой список, должна по возможности работать корректно.

>кликает мышкой по полигону, с зажатой клавишей Ctrl (будет зашита и недоступна из настроек)
Почему бы не добавить дополнительно пункт в контекстное меню, типа "Выбрать в список операций"? Тем более что засунуть в список все полигоны в конкретной категории - тоже полезно, а это по ctrl уже не сделать, как минимум это непрозрачно.
Тогда и клавишу можно будет присовокупить, и проверять тип метки при показе, и выбрать несколько меток, если под курсором их очень много (хотя бы как у меня сделано).
А то кого будешь добавлять в список? Все полигоны под курсором?

>Продолжая кликать по полигонам, юзер заполняет список
В список будут падать только полигоны, или полилинии тоже можно будет объединять между собой, например, склеивая треки?

За это сообщение автора vasketsov поблагодарил:
vdemidov (27 апр 2015, 13:06)
Рейтинг: 5.26%
 
vasketsov
Специалист
 
Сообщения: 901
Зарегистрирован: 25 июл 2009, 21:15
Благодарил (а): 0 раз.
Поблагодарили: 193 раз.

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

Сообщение zed » 26 апр 2015, 22:53

Да, правильно мыслишь и вопросы правильные появляются. Наверное, более полную картину видишь. Может возьмёшься за тикет?
Хитрости GoogleEarth - то, чего вы не знаете о гугле
Аватара пользователя
zed
Гуру
 
Сообщения: 2888
ICQ: 357167611
Зарегистрирован: 16 авг 2008, 20:21
Откуда: Беларусь, Могилёв
Благодарил (а): 89 раз.
Поблагодарили: 525 раз.

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

Сообщение vasketsov » 26 апр 2015, 23:14

Слушай, дружище, у меня на носу метки в СУБД (это будет славная охота большая доработка, по сравнению с которой тайлы в СУБД - сущая ерунда), так что я пока разве что советами да вопросами смогу помогать.
Но скажу прямо: мне кажется (по сравнению с мультизумом), что здесь работы будет значительно больше. Так что или ты поскромничал, или недооценил трудозатраты, или же наоборот это у меня лыжи не едут, и ты вполне здраво планируешь набросать лишь базовую часть (а допилить до ума как-нибудь потом). Но я бы просил наверное вдвое больше чем за мультизум. Слишком много возни будет, причём самой неприятной, в гуе. Но у нас может быть несколько разный подход, в том плане, что я бы делал сразу всё что написал, а не кусками. Да и не факт, что то что я написал, реально надо.

Сейчас вот ещё что подумалось. Возможно, будет полезно иметь затребованную функциональность не только в режиме просмотра карты по Ctrl+Click, но и при работе с менеджером меток, чтобы просто по ПКМ отпуливать их в список прямо из explorer-а.

За это сообщение автора vasketsov поблагодарил:
vdemidov (27 апр 2015, 13:06)
Рейтинг: 5.26%
 
vasketsov
Специалист
 
Сообщения: 901
Зарегистрирован: 25 июл 2009, 21:15
Благодарил (а): 0 раз.
Поблагодарили: 193 раз.

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

Сообщение Papazol » 28 апр 2015, 00:37

zed писал(а):1. Поскольку не реализован тикет 0002048: Дырки в полигонах, то некоторый функционал, касательно этих самых дырок, будет недоступен. Т.е. функция И-НЕ (исключающее ИЛИ) работать не будет, ну или будет работать как обычное ИЛИ. Функции И и ИЛИ в некоторых случаях будут захватывать большие площади, включающие дырки. Но важно, что после отработки тикета о дырках, функция И-НЕ и прочие, заработают как положено. Я может и сам займусь тем тикетом опосля.

Дырки не столь насущны. Если потом когда-нибудь они будут допилены, пока можно обойтись и без них. Не совсем понял про "И-НЕ (исключающее ИЛИ) ". Это не одно и то же. В принципе, для применения нужны только функции И (чтобы скачивать накладывающиеся полигоны, комбинируя их границы) и ИЛИ (чтобы скачивать как накладывающиеся, так и отдельные полигоны как единый полигон). Функции, содержащие НЕ, позволили бы скачать весь мир, кроме заданного(ых) полигона(ов), но нужно ли это? Исключающее ИЛИ... Если область не входит ни в один из полигонов или входит в оба, то не скачивать, а если входит только в один из них, то скачивать... Применение именно такой функции должно быть сильно обосновано.
zed писал(а):2. По поводу кастомной раскраски полученного выделения, я не уверен, что его там можно сделать. Так что, в первом приближении - без него.

Чтобы пользователь мог сразу же увидеть результат своих действий. А иначе он наколбасит таких выделений, что потом не разберёшься. Впрочем, выделенная область ведь будет очерчиваться границей?
zed писал(а):Юзер кликает мышкой по полигону, с зажатой клавишей Ctrl (будет зашита и недоступна из настроек), после чего появляется некое окошко, в котором вверху будут некоторые кнопки с операциями, а внизу будет список из добавленных полигонов. Продолжая кликать по полигонам, юзер заполняет список и когда будет готов, то из блока кнопок с операциями он выбирает алгоритм объединения полигонов (будет выпадающий список доступных операций) и нажимает на кнопку "Ok" по которой выполнится объединение полигонов и запустится диалог операций с выделенной областью. Будет ещё кнопка "Сохранить", по которой объединённый полигон можно будет сохранить в базу меток, т.е. за одно будет выполняться и тикет 0001834: Объединять несколько полигонов в одну метку (операция ИЛИ).

Кликать нужно по самим полигонам, а не по их списку. Мало ли сколько их в списке и как они называются. Кстати, если список брать из базы, то отображаемость учитывать или нет? Я бы ограничился только видимыми на экране. Если они расположены так далеко друг от друга, что в экран не влазят, то разумно ли их как-либо объединять?
zed писал(а):Цена, с оговорками: 800 р.

Согласен.
Аватара пользователя
Papazol
Гуру
 
Сообщения: 2069
Зарегистрирован: 04 дек 2009, 01:39
Откуда: Рязань
Благодарил (а): 74 раз.
Поблагодарили: 606 раз.

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

Сообщение vasketsov » 28 апр 2015, 01:28

Papazol писал(а):Если они расположены так далеко друг от друга, что в экран не влазят, то разумно ли их как-либо объединять?

Конечно, это может быть разумно.
Например, выкачать все новые участки на гугле в рамках обновления. Или ESRI - там вообще вся геометрия даётся.

Papazol писал(а):Если потом когда-нибудь они будут допилены, пока можно обойтись и без них

Дырки могут получаться даже при простом объединении двух полигонов.
Поэтому без них не то что не обойтись. Их просто придётся отбрасывать, если они будут получаться, а поддержки дырок ещё не будет.
vasketsov
Специалист
 
Сообщения: 901
Зарегистрирован: 25 июл 2009, 21:15
Благодарил (а): 0 раз.
Поблагодарили: 193 раз.

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

Сообщение DJ VK » 28 апр 2015, 17:00

Очень красиво (хотя не всегда удобно) работа с полигонами реализована в paint.net
И я даже подумывая о реализации начал подробнее изучать FMX. И подумав решил, что нужно всего три элемента - рисовалка кнопка + и кнопка -
Зачем объединение и пересечение, если каждая область РЕДАКТИРУЕМАЯ ??? Подвинул наружные точки как захотел, подвинул внутренние. (Вот так, как сейчас сделано. Только путь должен быть не 1, а сколько угодно выпуклостей и дырок....)
В самом простом случае рисовать можно что угодно, полигоны, круги, лассо, кривые безье, но в конечном счете они просто аппроксимируются полигонами. FMX же поддерживает svg формат графики, там возможны и дуги и кривые.
Аватара пользователя
DJ VK
Гуру
 
Сообщения: 1467
Зарегистрирован: 16 апр 2009, 13:57
Откуда: 8 км. от МКАД
Благодарил (а): 82 раз.
Поблагодарили: 298 раз.

След.

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

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

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