Welcome
Добро пожаловать в форум пользователей GPSMapEdit

В данный момент Вы просматриваете форум как Гость. Для размещения сообщений и многих других функций требуется регистрация.

После регистрации рекламы станет значительно меньше.

Как сделать адресный поиск в Навител?

Как сделать адресный поиск в Навител?

Сообщениеby kg_vista » 05 авг 2012, 11:28

ВВЕДЕНИЕ
Конечному пользователю карты доступны три вида поиска по карте:
(1) ближайших объектов
(2) населённых пунктов
(3) объектов внутри населённых пунктов
(4) по почтовому адресу

Поиск ближайших объектов не требует какой-либо специальной подготовки карты: он работает со всеми картами. Для остальных трёх требуется добавление в карту некоторых новых дополнительных данных.

Эта статья является краткой инструкцией для авторов карт, желающих "включить" все виды поиска для своих карт.

ОСОБЕННОСТИ ФОРМАТОВ
Структура данных для поиска определена в Польском формате секциями [CITIES], [REGIONS], [COUNTRIES], [ZIPS] и атрибутами объектов "CityIdx=", "StreetDesc=", "HouseNumber=", "ZipIdx=". Это значит, что уже существующие MP-карты, в которых определены данные о почтовых адресах, достаточно просто экспортировать в формат NM2 - и адресный поиск, и индексный поиск будут работать. Аналогично, вновь созданная MP-карта с данными для поиска может быть использована как для Навител Навигатор, так и для навигаторов Garmin, ALAN Map 500/600 и Holux, что позволяет экономить усилия авторов карт и значительно расширять область применения их карт.

СТРУКТУРА ПОЧТОВЫХ АДРЕСОВ
Итак, считается, что полный почтовый адрес любого объекта на карте состоит из следующих элементов:
1. Страна
2. Политико-адмистративное образование (субъект федерации в России, штат в США, федеральная земля в ФРГ, провинция во Франции и т.д.). В ряде случаев политико-адмистративное деление включает две "ступени" - название области и административного района, например, "Мытищенский р-н Московской обл.".
3. Населённый пункт (город, посёлок)
4. Почтовый индекс
5. Улица
6. Номер (в России это просто номер дома, а в некоторых странах несколько последовательных номеров вдоль улицы могут соответствовать отдельным апартаментам внутри одного здания). Номер квартиры отдельно не рассматривается, поскольку на карте такая информация визуально не представлена. Однако, в некоторых случаях может требоваться задание, к примеру, номера офиса в адресе какой-нибудь компании. В этом случае номер офиса может быть указан непосредственно в данном атрибуте вместе с номером дома: например, "5/2 стр.7 оф.123"

Все элементы почтового адреса являются необязательными, однако первые три играют ключевую роль в поиске по имени, поскольку позволяют существенно сузить его область. Соответственно, необходимым условием включения объекта в поиск как по адресу, так и по имени, является присвоение объекту этих трех атрибутов. Дело в том, что искать улицу Ленина или кинотеатр "Рассвет" без точного указания населённого пункта - затея неблагодарная, поскольку в пределах карты России таких объектов существует чрезвычайно много. Фактически, совокупность первых трёх атрибутов почтового адреса задаёт своеобразное "пространство имён", в пределах которого названия всех объектов считаются вполне уникальными.

Здесь надо сразу научиться чётко разделять понятие "населённых пунктов" как элементов почтового адреса от "населённых пунктов", являющихся объектами карты (то есть имеющих географические координаты и прочие атрибуты "полноценных" объектов). Эти сущности, безусловно, логически связаны между собой, однако редактируются они независимо друг от друга.

РЕДАКТИРОВАНИЕ ПОЧТОВЫХ АДРЕСОВ
Итак, теперь давайте разберемся, как добавить недостающие почтовые адреса в карту с помощью GPSMapEdit.

В первую очередь, надо определить в карте список населённых пунктов, а так же их принадлежность политико-административным образованиям более высокого уровня (область, страна). Для этого надо выбрать пункт меню 'Инструменты | Правка элементов адреса...' или соответствующую кнопку в панели инструментов. В появившемся окне есть три закладки, которые в данный момент нас интересуют больше всего - "Страны", "Области/Провинции/Штаты" и "Нас. пункты".

Допустим, речь идет о редактировании конкретно карты Московской области и города Мытищи в её составе.

Первым шагом в закладке "Страны" нажимаем кнопку "Добавить..." и создаём страну с названием "Россия" и сокращённым международным названием (поле "Сокр. название") - "RUS". Для зарубежных стран в качестве сокращённых названий следует указывать 3-хбуквенные
сокращения в соответствии со стандартом ISO 3166 alpha-3 (http://www.davros.org/misc/iso3166.html , Table 1).

Затем переходим в закладку "Области/Провинции/Штаты" и создаём там политико-административное образование - "Московская обл.", выбрав при этом в списке стран принадлежность стране "Россия". После этого с помощью кнопки "Переименовать..." можно (и нужно) задать сокращённое имя (поле "Сокр. название") - например, "Моск.обл.".

Наконец, в закладке "Нас. пункты", действуя аналогично, создаём населённые пункты, указывая их принадлежность соответствующим областям. В нашем случае создаётся населённый пункт "Мытищи". Итак, теперь в карте готов список населённых пунктов, который можно использовать при назначении соответствующих атрибутов почтового адреса для объектов карты.

Теперь надо задать принадлежность объектов карты населённым пунктам. Выбираем на карте, к примеру, объект "Новомытищенский проспект", открываем для него окно "Свойства объекты", выбираем закладку "Адрес". В верхней части окна есть поле "Нас. пункт", в котором пока стоит прочерк. Это значит, что принадлежность Новомытищенского проспекта городу Мытищи пока ещё не задана. Нажимаем на кнопку "...", расположенную правее - появляется список населённых пунктов. В нём выбираем "Мытищи", нажимаем "ОК". Теперь в этом поле появляется строка "Мытищи (Моск.обл., RUS)". Обратите внимание, что этой одной операцией объекту присваиваются сразу все первые три атрибута почтового адреса!

Можно задать принадлежность населённому пункту сразу группе выделенных объектов. Для этого в контекстном меню, открываемому по правой кнопке мыши, есть пункт 'Изменить | Почтовый адрес | Нас. пункт...'.

Далее, сходным образом задаём для всех улиц, строений, POI-точек и т.д. принадлежность населённому пункту "Мытищи (Моск.обл., RUS)". В этом отношении особенность есть только у одной точки - точки "Мытищи", имеющей тип "Medium city (100-200K)". Очевидно, что во всём множестве объектов, относящихся к г.Мытищи, она, очевидно, чем-то "особенная". И эту особенность следует специально подчеркнуть, установив в закладке "Адрес" флажок "Разрешить индексацию данного объекта как нас. пункта". Тем самым устанавливается своего рода взаимно-однозначное соответствие города-точки и города-элемента почтового адреса.

Для POI-точек и строений можно задать улицу и номер дома. Процесс задания этих атрибутов в закладке "Адрес" достаточно очевиден, поэтому останавливаться на нём отдельно не имеет смысла. Немного сложнее с почтовым индексом: требуется предварительное создание списка индексов в ''Инструменты | Правка элементов адреса...', закладке 'Индексы'.

Итак, теперь всё готово для работы поиска. Сохраняем карту в MP (чтобы все сделанные изменения попали в MP), а затем экспортируем в NM2. Карта к поиску готова!

КАК РАБОТАЕТ ПОИСК
Если в карте присутствует хотя бы один объект с почтовым адресом, то по карте в формате NM2 можно осуществлять как адресный, так и индексный поиск в населённом пункте.

Адресный поиск в Навител Навигаторе требует обязательного выбора населённого пункта из списка. Поэтому объекты, у которых не задана принадлежность населённому пункту, найдены быть не могут.

Пользователь может уточнять критерии поиска, задав улицу, номер дома и индекс. Все эти три параметра необязательные: если соответствующее поле оставить пустым, то оно просто игнорируется. Улица и номер дома ищутся по подстроке, поэтому эти поля можно вводить не целиком. Напротив, индекс проверяется на точное соответствие (игнорируется только регистр букв).

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

Напротив, индексный поиск в населённом пункте основывается на использовании заранее проиндексированных (еще во время экспорта в NM2) таблиц объектов, поэтому он работает практически мгновенно. Для включения какого-либо объекта в индексные таблицы, объект должен декларировать свою принадлежность населённому пункту, а так же иметь непустое название (label).

И адресный поиск, и индексный поиск в населённом пункте ищут объекты только в самом подробном уровне детализации карты.

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

Другой способ решения этой же проблемы: картограф может явно исключить "лишний" объект из поиска, сбросив для него флажок "Разрешить индексацию данного объекта (для 'Поиска')" в закладке 'Адрес'.
С уважением,
Константин
Аватара пользователя
kg_vista
Site Admin
 
Posts: 1356
Joined: 01 авг 2012, 20:44

 

Re: Как сделать адресный поиск в Навител?

Сообщениеby kg_vista » 05 авг 2012, 11:51

pinker писал(а):Подскажите, как сделать, чтоб искались дома в населенных пунктах, не имеющих улиц, а имеющих только прописанное название НП и номер дома? Навител ищет только название НП, дальше "видит" что улицы нет, и сразу перекидывает на экран карты :(

Надо в атрибут "улица" что-то обязательно написать. Например, продублировать название села.
С уважением,
Константин
Аватара пользователя
kg_vista
Site Admin
 
Posts: 1356
Joined: 01 авг 2012, 20:44


Return to Для Навител 3.x

Who is online

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

cron
suspicion-preferred