Связь по ключу объекта карты

Печать Предыдущая страница Стартовая страница Следующая страница

Уникальный ключ объекта карты – это целое число, однозначно определяющее пространственный объект на карте. За его формирование, обычно, отвечает карта. При создании нового объекта на карте ему автоматически присваивается новый идентификатор. Даже после удаления этого объекта его уникальный ключ не используется для идентификации других вновь создаваемых объектов.

Организация взаимосвязи «объект карты – объект БД» в данном случае сводится к хранению значения уникального ключа объекта карты в поле таблицы описания объекта, указываемом в настройках программы как поле «ID объекта» (см. Рис. 3).

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

Однако, данный способ взаимосвязи накладывает на базу данных одно ограничение:  поле «ID объекта» таблицы описания объекта должно быть целочисленным.

Если указывается вид связи по ключу объекта карты, но при этом за формирование идентификатора объекта (в данном случае ключа карты) отвечает база данных, программа мониторинга нанесет объект на карту и установит значение его уникального ключа в соответствие с заданным в базе данных идентификатором. При этом на базу данных возлагаются обязанности по соблюдению уникальности идентификаторов. Уникальный идентификатор в этом случае также должен являться целым числом. Например, поле «ID объекта» таблицы описания объекта может быть автоинкрементным.

 

Организация связи «объект карты – объект БД» по уникальному ключу объекта карты:

_bm4884

 

Внимание! Если осуществляется мониторинг объектов из нескольких баз данных, либо из нескольких таблиц одной БД, попеременно, на одной и той же карте, то возможно замещение объекта карты, нанесенного по данным из одной базы (таблицы), объектом из другой базы (таблицы). Такая ситуация возможна только при совпадении уникальных идентификаторов этих объектов. Например, программа отработала с базой «A» и нанесла на карту объект с идентификатором «XXX». Затем осуществляется выполнение программы с той же картой, но сведения об объектах поступают от другой базы «B», в которой также содержится некий объект, подлежащий отображению на карте, имеющий такой же идентификатор «XXX». В этом случае программа найдет на карте объект с указанным идентификатором и обновит его на основе последних полученных данных. Контроль уникальности идентификаторов всех объектов мониторинга, наносимых на одну и ту же карту, данные о которых поступают из различных источников, возлагается на оператора.