// Запросить индекс (внутренний код) объекта в классификаторе. // При удалении объектов классификатора внутренние коды объектов // могут изменяться. Внутренний код может использоваться для // идентификации объекта классификатора только в течение одного // сеанса работы с картой при неизменном классификаторе // info - идентификатор объекта карты в памяти // При ошибке возвращает 0 (ноль допустим для нового объекта)
_MAPIMP long int _MAPAPI mapObjectCode(HOBJ info);
Здравствуйте. Скажите, пожалуйста, могу ли я рассчитывать на то, что код объекта в классификаторе, полученный с помощью функции mapObjectCode не будет меняться, если я не буду вносить никаких изменений в классификатор и карту(я работаю только с отображением карты)? Нужно предоставить пользователю возможность отключать на карте отображение определённых видов объектов(по коду классификатора, т.е. отключить, например, отображение всех мостов) и возникает вопрос, не измениться ли этот код при перезапуске программы(и соответственно, открытии/закрытии карты)
Функция mapObjectCode возвращает внутренний код. Из названия видно, что этот код предназначен для внутреннего использования на время сеанса работы. Без изменения классификатора этот код поменяться не должен, но это не гарантируется.
Для того, чтобы можно было "привязаться" к объектам классификатора лучше использовать внешний код (mapObjectExcode) или ключ объекта (mapObjectRscKey или mapObjectRscKeyUn). Вот эти значения не меняются даже при добавлении или удалении объектов из классификатора. Поменять их можно только принудительно.