SASGIS

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

SAS.Wiki

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

Инструменты пользователя

Инструменты сайта


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

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

логические_операции_с_полигонами [13/05/2015 20:13]
109.94.188.121
логические_операции_с_полигонами [09/04/2021 11:59] (текущий)
176.59.16.190 pac
Строка 25: Строка 25:
 {{:​xor.png?​200|}} {{:​xor.png?​200|}}
  
-Кроме описанных логических операций в программе имеется ещё одна операция **Group**. ​Она идентична операции **ИЛИ**, но с некоторыми отличиями: если полигоны пересекаются,​ результатом операции **ИЛИ** ​является **один** новый полигон,​ а результатом операции **Group** ​являются по-прежнему **два** полигона, но объединённые в мультиполигон. Если полигоны не пересекаются,​ результаты ​обеих ​операций будут одинаковы. Также следует учитывать,​ что при всех логических операциях,​ кроме **Group**, происходит округление координат вершин полигонов,​ из-за чего полученные новые полигоны будут иметь вершины,​ не совсем совпадающие с вершинами исходных полигонов. ​В случае же операции **Group** координаты вершин никаких изменений не претерпевают,​ поэтому операция **Group** выполняется быстрее,​ чем **ИЛИ**.+Кроме описанных логических операций в программе имеется ещё одна операция **Group**. ​Визуально она идентична операции **ИЛИ**, но есть значительные отличия
 + 
 +Если полигоны пересекаются,​ результатом операции **ИЛИ** ​будет **один** новый полигон,​ а результатом операции **Group** ​будут по-прежнему **несколько** полигоновусловно объединённых в мультиполигон. Мультиполигон может содержать любое количество полигонов. Свойства всех полигонов,​ входящих ​в мультиполигон, одинаковы. Все они одновременно выводятся на экран, используются в качестве выделенной области и т. д. 
 + 
 +Если полигоны не пересекаются,​ результаты операций ​**ИЛИ** и **Group** ​будут одинаковы. 
 + 
 +Также следует учитывать,​ что при всех логических операциях,​ кроме **Group**, происходит ​некоторое "округление" ​координат вершин полигонов,​ из-за чего полученные новые полигоны будут иметь вершины,​ не совсем совпадающие с вершинами исходных полигонов. ​Более того, в некоторых ​случаях (в основном при самопересечениях полигона) возможно образование так называемых "​дырок"​. Дырка - это замкнутый полигон,​ находящийся внутри другого замкнутого полигона. //На сегодняшний день дырки программой не обрабатываются,​ то есть игнорируются,​ однако их количество считается и указывается в сообщении о завершении логической операции.//​ 
 + 
 +В случае операции **Group** координаты вершин никаких изменений не претерпевают,​ поэтому операция **Group** выполняется быстрее,​ чем **ИЛИ**. В результате операции **Group** дырки не образуются.
  
 Результаты логических операций могут быть использованы для //​**Операций с выделенной областью**//,​ то есть для загрузки,​ копирования,​ удаления,​ экспорта и пр. Кроме того, результаты могут быть сохранены в базе меток для последующего использования. Результаты логических операций могут быть использованы для //​**Операций с выделенной областью**//,​ то есть для загрузки,​ копирования,​ удаления,​ экспорта и пр. Кроме того, результаты могут быть сохранены в базе меток для последующего использования.
Строка 72: Строка 80:
 В окне сообщения о результате логической операции указывается общее количество созданных полигонов и "​дырок"​. Если в результате логической операции получилось более одного полигона,​ то в базе меток они будут сохранены как мультиполигон. В окне сообщения о результате логической операции указывается общее количество созданных полигонов и "​дырок"​. Если в результате логической операции получилось более одного полигона,​ то в базе меток они будут сохранены как мультиполигон.
  
-===== Практическое применение ===== 
- 
-Покажем на примерах,​ как применять логические операции с полигонами. 
- 
-Допустим,​ что нас интересуют снимки нескольких местностей,​ не соприкасающихся друг с другом. Чтобы отслеживать обновления снимков,​ покрывающих эти местности,​ раньше приходилось скачивать каждую из них отдельно. Теперь же можно объединить полигоны,​ описывающие все нужные местности,​ в мультиполигон и работать с ним (скачивать,​ копировать,​ экспортировать и т. д.) Это позволит проводить нужные действия,​ лишь один раз запустив процесс. Для объединения нескольких полигонов в мультиполигон следует использовать логическую операцию **Group**. 
- 
-Допустим,​ что нас интересуют снимки,​ покрывающие только одну область,​ например,​ Рязанскую. Часто снимки попадают на две, а то и на три соседних области. Раньше приходилось отрисовывать границу снимка,​ проходящую по границе области,​ вручную. Теперь можно взять границу области,​ вставить её в список полигонов как **subject**,​ а в качестве **clip** взять границу(ы) снимка(ов) и применить логическую операцию **И**. Пример применения показан на рисунке выше. 
  
-Допустим,​ что ​внутри полигона,​ описывающего Рязанскую область, есть снимок, который ​нужно оставить нетронутым,​ а всю остальную область - перезакачать. Раньше для этого пришлось бы вручную рисовать несколько полигонов. А теперь можно вставить в список границу области ​как **subject**,​ а полигон, описывающий нужный снимок - как **clip**, и применить логическую операцию **НЕ**.+Допустить 
 +мы, что из нас ​ 
 +интересуют снимки,  
 +покрывающие части лицевой формы
  
-Если есть ​полигон, ​содержимое которого ​нужно ​оставить без ​изменения, в то время как окружающее пространство нужно скачать, ​+ ​а ​полигон,​ описывающий ​нужный снимок - как **clip**, ​и применить логическую ​операцию **НЕ**.