Добавлено: 7:48 PM - авг 04, 2012
В Польском формате, IMG, RUS, NM2 и т.д. взаимный порядок отрисовки полигонов не определён, поэтому перекрытий полигонов надо всячески избегать. В данном случае - строения должны быть "врезаны" во внешний полигон типа 0x01.isu писал(а):В Gpsmapedit вид карты совершенно кошерный, а в навигаторе местами полигоны типа 1 перекрывают постройки и водоемы.
Во время загрузки карты делается сортировка полигонов по площади. Более крупные отрисовываются первыми.а почему в gpsmapedit все хорошо? там применены какие-то правила приоритета полигонов?
Почему нельзя сделать то же в навигаторе?
1. Автонарезка карты при её сохранении в конечный формат изменяет соотношения площадей частей полигонов, поэтому критерий площади перестаёт работать.
2. Сортировка "на ходу" сильно ухудшает скорость отрисовки. Разумнее заранее подготовить данные в таком виде, чтобы во время просмотра не надо было тратить время на сортировку.
Есть и другие причины:
3. Наличие перекрывающихся полигонов означает, что пикселы перекрывающихся мест заполняются дважды (если не больше). Это опять-таки ухудшает скорость. А отрисовка полигонов - самая долгая. В GPSMapEdit на ПК это терпимо, а на КПК с его "куриными мозгами" - зачастую критично.
4. Наконец, перекрывающиеся полигоны затрудняют работу всплывающих подсказок: при тапе по месту перекрытия выдаётся сразу несколько подсказок. Взаимный порядок опять-таки не определён, то есть первой может быть подсказка по полигону города, а не здания. Это сбивает с толку пользователя.
Запрет на перекрывающиеся полигоны - это не изобретение Навител. Аналогично устроены практически все форматы навигационных карт, в том числе Garmin IMG - исходя из тех же самых соображений.
Я лично придерживаюсь точки зрения, что полигоны домов и полигоны кварталов должны быть на разных уровнях детелизации.Дома, в таком варианте, отрисовать можно, а если большой квартал, то отрисовывать сперва дырки и полный квартал, а потом дома в этих дырках, мягко говоря будет за%^&сто - в общем можно устать быстро![]()
![]()
Как вариант, рецепт от Lango':как проделать в полигоне территории города сотню тысяч отверстий для врезки полигонов зданий?
1. выделить все дома в квартале.
2. скопировать в буфер обмена
3. выделить полигон квартала, затем дома.
4. в контекстном меню выделенного выбрать пункт 'Соединить объекты'
5. вставить из буфера обмена