voha писал(а):
Пробачте, виникають питання
@Map.AssemblePolygon X Y Z [LayerIndex1 LayerIndex2 ...] працює, якщо не вказувати LayerIndex1 LayerIndex2 ..., створюючи полігон в шарі збору. Але якщо LayerIndex1 LayerIndex2 ... - список шарів в яких створюватиметься полігон, то:
- коли може статись ситуація для переважного вибору шару LayerIndex1 чи LayerIndex2, в якому створюватиметься полігон;
- LayerIndex1 мається на увазі ID шару чи порядковий номер (пробував і перше й друге - функція повертає 0).
Будь-ласка, дайте повний опис функції. Воно то не проблема встановити активний шар збору, але ж хочеться розібратись.
Здравствуйте Владимир,
Эти функции пока в стадии отладки и доработки. Готовим основу для вашей полевой ГИС
LayerIndex1, LayerIndex2 и т.д. это не слои, в которые помещается созданный полигон, а те слои, которые участвуют в его построении. Это необходимо чтобы при создании полигона квартала игнорировались границы выделов, а также чтобы отсечь разные линейные объекты типа лесных дорог и т.д.
В первом варианте функции AssemblePolygon (который есть у вас), предполагалось, что слой, в который нужно поместить полигон, будет присвоен уже после построения (через @Map.Object[N].Layer или @Map.Object[N].LayerID).
Но затем мы пришли к мнению, что слой таки нужно указывать явно, чтобы при построении проверять нет ли в этом слое такого-же полигона.
Также добавлена функция @Map.ClipOverlappedPolygons, которая подрезает смежные объекты того-же слоя для устранения накладок. Это необходимо если вместо одного выдела появляется два. Достаточно провести между ними границу, добавить новый выдел и он обрежет собой существующий.
А еще функция Map.Object[$I].Autonumber, которая автоматически выбирает следующий свободный номер среди объектов того же слоя (выделы), в пределах их родительского полигона (квартала). Если родительский слой не указан, то берется следующий свободный номер по всей карте.
Вот здесь можно посмотреть и попробовать как выглядит новая технология:
http://dl.dropbox.com/u/13188286/FieldMapTest.zip(еще нужно скачать самый свежий Ged.exe)
Основная идея в том, чтобы собирать только линейные объекты, границы и т.д. А полигоны будут создаваться автоматически в процессе расстановки меток. Все реализовано в скриптах обработки событий для слоев Квартал и Выдел. Предполагается, что вся информация будет присваиваться объектам меткам из этих слоев, а полигоны можно будет в любой момент удалить/изменить/пересоздать без потери атрибутивной информации.