Метрика объекта

Top

МЕТРИКА ОБЪЕКТА электронной карты может содержать координаты точек в двух- или трехмерной системе в формате целого числа или числа с плавающей точкой обычной или двойной точности.

Метрика разных объектов может иметь разный формат хранения и размерность.

Причина такого разнообразия - необходимость обеспечить высокую скорость обработки данных и компактность файлов при соблюдении максимальной точности координат.

При выполнении запроса координат объектов из базы данных они могут выдаваться в прямоугольной системе координат в метрах, в географической системе координат в радианах, в условной системе координат изображения карты в заданном масштабе (в условных единицах - пикселях, дискретах). Пересчет координат выполняется автоматически.

Для работы с третьей координатой (высотой H) объекта электронной карты, необходимо чтобы для него был установлен соответствующий тип метрики, например, IDDOUBLE3 (трехмерная метрика с плавающей запятой двойной точностью). Каждый объект карты может иметь свой тип метрии, т.е. одни объекты могут иметь 3D координаты (X, Y, H), другие нет (только X, Y). Тип метрики объекта можно установит/получить с помощью свойство TMapObj.Kind. Тип метрики может быть установлен как для существующего объекта, так и для нового. Также можно проверить имеет ли объект трехмерную метрику с помощью свойства TMapObj.IsObject3D, которое возвращает значение true, если объект имеет трехмерную метрику.

При работе с третьей координатой необходимо учитывать, что высота может иметь два типа, который задается свойством TMapObj.HeightType: абсолютная высота (HT_ALTITUDE) или относительная (HT_RELATIVE).

Чтобы установить значение высоты в конкретной точке метрики объекта можно воспользоваться функцией TMapMetric.UpdateHeight.

Добавление и изменение трехмерной координаты метрики точки осуществляется теми же функциями, что и для двумерной метрики (TMapMetric.Append, TMapMetric.Insert, TMapMetric.Update). В качестве входного параметра в каждую из этих процедур передается ссылка на экземпляр класса TCompMapPoint (в нем определены координаты точки). Для того, чтобы установить в TCompMapPoint трехмерные координаты точки необходимо воспользоваться функцией TCompMapPoint.SetPoint3D, где в качестве параметров передается X, Y, H.

 

ВНИМАНИЕ!!!

При работе с трехмерной метрикой объекта необходимо учитывать, что реально высота для объекта может быть и не задана, в этом случае значение высоты принимает значение cERRORHEIGHT = -111111.0. Такое же значение высоты будет при запросе значения высоты в случае, если  для объекта установлена двумерная метрика.