Доброго дня розробникам.
Мучить мене одне питання, щодо роботи функції з меню
ЦМР >
Переприсвоїти висоти....
Як написано в підручнику: "Отдельно остановимся на команде глобального переприсвоения высот. Данная команда позволяет проинтерполировать все объекты карты на основе объектов, имеющих правильные высоты".
Отже,
функція присвоює висоти ВСІМ ОБ'ЄКТАМ карти, ЯКІ НЕ БУЛИ ПОЗНАЧЕНІ ПЕРЕД ЗАПУСКОМ ФУНКЦІЇ, інтерполюючи висоту тих об'єктів, які були позначені. Все зрозуміло, на вході функції є об'єкти карти: позначені та непозначені. Але...
Якщо в карті
є об'єкти горизонталей, статус шару яких - "Прихований", чому при необхідності переприсвоїти висоти декільком, непозначеним об'єктам, функція присвоює нові висоти горизонталям? Можна сказати "учи матчасть". Вони ж приховані, а значить - непозначені. Треба просто змінити статус шару горизонталей, позначити їх і "вуаля". Однак...
Якщо в карту вставлено растрові зображення, статус шару яких "Лише відображення" і висота їхня рівна 0, позначати растри перед присвоєнням висот не можна. Нуль-висота, якщо растри будуть позначені, братиме участь в інтерполяції! Лишається змінювати статус зображень, тимчасово вирізати їх з карти та, після присвоєння висот - повертати їх в карту з буфера.
Як вийти з ситуації? Можливо змінити концепцію таким чином:
ФУНКЦІЯ "ПЕРЕПРИСВОЇТИ ВИСОТИ..." ПРИСВОЮЄ ВИСОТИ НЕПОЗНАЧЕНИХ ОБ'ЄКТІВ, СТАТУС ЯКИХ "РЕДАГУВАННЯ"?
Питання може бути дискусійне для функції меню
ЦМР >
Переприсвоїти висоти..., але ж скриптова функція
@Map.CalculateZ X Y [ParamIndex] повертає висоту, інтерпольовану лише з об'єктів зі статусом "Редагування". Чи не так?
По суті, що виходить: ми змінюємо значення атрибута об'єктів, статус яких забороняє таку зміну
?