Для работы с третьей координатой (высотой H) объекта электронной карты, необходимо чтобы для него был установлен соответствующий тип метрики, например, IDDOUBLE3 (трехмерная метрика с плавающей запятой двойной точностью). Каждый объект карты может иметь свой тип метрии, т.е. одни объекты могут иметь 3 координаты (X, Y, H), другие нет (только X, Y). Тип метрики объекта можно установит/получить с помощью свойство TMapObj.Kind. Тип метрики может быть установлен как для существующего объекта, так и для нового. Также можно проверить имеет ли объект трехмерную метрику с помощью свойства TMapObj.IsObject3D, которое возвращает значение true, если объект имеет трехмерную метрику.
При работе с третьей координатой необходимо учитывать, что высота может иметь свой тип (свойство TMapObj.HeightType): абсолютная высота (HT_ALTITUDE) или относительная (HT_RELATIVE). Тип высоты влияет на процесс построение матрицы высот по объектам. Объекты с относительной высотой не влияют на построение матрицы высот.
Чтобы установить значение высоты в конкретной точке метрики объекта можно воспользоваться функций TMapMetric.UpdateHeight, в которой передаются в качестве параметров номер подобъекта объекта карты (при значении 0 обрабатывается сам объект), номер точки в цепочке метрики и значение устанавливаемой высоты.
Добавление и изменение трехмерной координаты метрики точки осуществляется теми же функциями, что и для двумерной метрики (TMapMetric.Append, TMapMetric.Insert, TMapMetric.Update). В качестве входного параметра в каждую из этих процедур передается ссылка на экземпляр класса TCompMapPoint (в нем определены координаты точки). Для того, чтобы установить в TCompMapPoint трехмерные координаты точки необходимо воспользоваться функцией TCompMapPoint.SetPoint3D, где в качестве параметров передается X, Y, H.
Для получения трехмерной координаты точки метрики объекта предназначена функция TCompMapPoint.GetPoint3D.
ВНИМАНИЕ!!!
При работе с трехмерной метрикой объекта необходимо учитывать, что реально высота для объекта может быть и не задана, в этом случае значение высоты принимает значение cERRORHEIGHT = -111111.0. Такое же значение высоты будет, если для объекта установлена двумерная метрика.