Аналитика http://www.geosystema.net/forum/ |
|
Плохо работает вырезание дырок http://www.geosystema.net/forum/viewtopic.php?f=5&t=50 |
Страница 1 из 3 |
Автор: | Slawa [ 06 апр 2005 14:33 ] |
Заголовок сообщения: | Плохо работает вырезание дырок |
Плохо работает "сложный полигон" (вырезание дырок). Работает нормально только один первый раз (можно много "дырок"), если из этой площади вырезать еще одну "дырку", получается какая-то ерунда. |
Автор: | Dmitriy Fedorov [ 06 апр 2005 20:39 ] |
Заголовок сообщения: | |
Вообще, существует довольно много проблем со сложными полигонами. При работе с закладкой Правка-Объединить или Пересечение можно насмотреться всякого. Особенно огорчительно наблюдать за тем что происходит, если знаешь как должно быть - на примере того же MapInfo или ArcView. Алгоритмы там наверняка не тривиальные нужны, но.. надо что-то делать! |
Автор: | Sergey Oleynik [ 07 апр 2005 15:37 ] |
Заголовок сообщения: | |
Присылайте примеры исходных данных. Будем разбираться. |
Автор: | Slawa [ 08 апр 2005 18:44 ] |
Заголовок сообщения: | |
Сергей.Послал Вам на почту сайта пример "вырезать_3-й_объект.dmf". Два обекта уже вырезаны из пашни за один раз командой "сложный полигон" и все хорошо. Надо из пашни вырезать 3-й_объект. Нужно чтобы "пашня" осталась "пашней", в ней появилась дырка от третьего объекта,чтобы две имеющиеся дырки на пашне не исчезли, чтобы 3-й_объект остался объектом, не исчез и не изменился. |
Автор: | Sergey Oleynik [ 08 апр 2005 19:47 ] |
Заголовок сообщения: | |
Отличный пример! Проблема исправлена. |
Автор: | Dmitriy Fedorov [ 08 апр 2005 20:47 ] |
Заголовок сообщения: | |
Slawa писал(а): Послал Вам на почту сайта пример "вырезать_3-й_объект.dmf".
К сожалению не вижу примера, чтобы присоединиться к тестированию. Но могу предложить свой, и полагаю, что до полного избавления от проблем еще далеко. (пример отослан на адрес admin@refland.kiev.ua) Проблемы возникают, если в процессе объединения двух обычных - не вложеных в друг друга! - полигонов теряется внутренний полигон. Кроме этого, было бы желательно, в случае, если полигоны никак между собой не пересекаются и не соприкасаются, они тоже не терялись, а объединялись. Т.е. срабатывало бы по принципу кнопки Объединить (цепочка). |
Автор: | Dmitriy Fedorov [ 10 апр 2005 20:41 ] |
Заголовок сообщения: | |
Еще один пример работы со сложными полигонами. http://www.geosystema.com/temp/Combined_Poligons_2.dmf Так должно быть - это не моё личное желание, именно так работает в ГИС типа MapInfo. Да и литература, насколько я помню, трактует объединение и пересечение именно таким образом. Кроме того, если полигоны не пересекаются, то должны просто объединяться в сложный - для команды Объединить. Для команды Пересечение, я полагаю, не должно происходить ничего (т.е. пустое пересечение). Возможно ваша идея, как разработчиков, была несколько иной. Какой? |
Автор: | Sergey Oleynik [ 11 апр 2005 10:21 ] |
Заголовок сообщения: | |
С объединением разобрались и все исправили. В пересечении тоже кое-что подправили, но насчет вашего примера есть большие сомнения. По логике, пересечение 2-х полигонов, это та их часть которая одновременно принадлежит и первому и второму. Значит пересечение 3-х полигонов, это часть, которая принадлежит всем трем! Для вашего случая - пустой полигон. |
Автор: | Slawa [ 11 апр 2005 15:52 ] |
Заголовок сообщения: | |
Писали 8 апреля "Sergey Oleynik"Проблема исправлена. Скачал сегодня программу......... Проблема осталась. "вырезать_3-й_объект.dmf"----не вырезает, как надо |
Автор: | Sergey Oleynik [ 11 апр 2005 16:24 ] |
Заголовок сообщения: | |
Здесь ваш пример и результат, полученный новой версией: http://www.geosystema.com/temp/3-d_object.dmf Если там что-то не так, то сообщите что именно. А если все так, то убедитесь, что вырезали именно той версией, которую скачали (Напоминаю, что помечать нужно только внешний контур. Внутренние программа найдет сама.) |
Автор: | Dmitriy Fedorov [ 11 апр 2005 18:37 ] |
Заголовок сообщения: | |
Sergey Oleynik писал(а): По логике, пересечение 2-х полигонов, это та их часть которая одновременно принадлежит и первому и второму.
Значит пересечение 3-х полигонов, это часть, которая принадлежит всем трем! Для вашего случая - пустой полигон. Озадачился такой постановкой вопроса. Проштудирую матчасть и вернусь. |
Автор: | Dmitriy Fedorov [ 11 апр 2005 22:14 ] |
Заголовок сообщения: | |
С Пересечением всё верно. Заработался. (Вышла некоторая путаница с командой обрезки по шаблону из MapInfo.) В целом всё работает, если четко представлять себе нюансы использования. Однако проблемы остаются. Команда не универсальна и привязана к частным случаям. Но уже сейчас спасла мне массу времени в работе. (Пример Combined_Poligons_3.dmf) |
Автор: | Slawa [ 12 апр 2005 18:29 ] |
Заголовок сообщения: | |
Извиняюсь, действительно в соответствии с Вашим "(Напоминаю, что помечать нужно только внешний контур. Внутренние программа найдет сама.)" все нормально. Но,иногда, мы пользуемся Ващей программой от 01.11.02 и там имеется возможность наравне с предыдущей, помечать внешний контур и контур объекта и будет вырезан только этот объект и ничего другого, и объект никуда не исчезнет. Что, инной раз очень удобно. |
Автор: | Павел Корыстин [ 25 май 2005 15:46 ] |
Заголовок сообщения: | |
Sergey Oleynik писал(а): (Напоминаю, что помечать нужно только внешний контур. Внутренние программа найдет сама.)
вот это по-моему напрасно. Излишняя самомтоятельность программы часто приводит к путанице. Но это мое личное мнение. Нашел ошибку при вырезании ПОМЕЧЕННОЙ второй (3-й, 4-й....) дырки: Вырезаемый объект в этом случае исчезает, а исходный внешний сохраняется. А должно быть наоборот (исходный заменяется продырявленным, а вырезаемый сохраняется) Напоминаю, что ошибка проявляется только в случае если исходный объект уже с дырками, а выезаемый помечен. Где-то видимо перепутали "+" и "-" |
Автор: | Павел Корыстин [ 25 май 2005 16:20 ] |
Заголовок сообщения: | |
Sergey Oleynik писал(а): С объединением разобрались и все исправили.
А что собственно исправили? Дырки по прежнему исчезают при объединении. Непересекающиеся полигоны по прежнему не объединяются. |
Страница 1 из 3 | Часовой пояс: UTC + 2 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |