Skip to main content

Проблеми пошуку адрес

Адресу знайдено в неправильному місті

У деяких випадках пошук адреси в OsmAnd може повертати результати для іншого міста, ніж очікувалося. Ці проблеми виникають через те, як визначено та оброблено межі міст у OpenStreetMap (OSM). Якщо користувач шукає назву вулиці або вулицю з номером будинку без зазначення міста, алгоритм повнотекстового пошуку може повернути збіг з іншого міста.

Про випадки неправильного призначення міст повідомлялося в наступних проблемах GitHub: 10679, 10677, 10699, 10921.

Як OsmAnd визначає межі міст

OsmAnd визначає межі міста за його адміністративним зв'язком у OpenStreetMap. Щоб межа вважалася дійсною, вона повинна відповідати наступним критеріям:

  • Зв'язок межі повинен містити теги:

    • boundary = administrative або postal_code
    • place = [city, town, village, hamlet, etc.]
  • Зв'язок межі повинен містити елемент зв'язку:

    • label
    • admin_centre або admin_center
  • Назва зв'язку межі повинна точно збігатися з назвою вузла місця.

  • Якщо ці умови не виконуються, зв'язок межі не розпізнається як межа міста.

  • Серед перекриваючих меж OsmAnd вибирає найбільшу межу.

  • Шляхи зв'язку визначають межу. OsmAnd підтримує як внутрішні, так і зовнішні шляхи.

Точне співпадіння назв

Для точної обробки адрес назви вулиць повинні збігатися точно, включаючи:

  • Відмінності в діакритичних знаках (наприклад, Rue André Chenier проти Rue André Chénier).
  • Варіації в префіксах та скороченнях.

Якщо виникає невідповідність, може виникнути одна з наступних проблем:

  • Будинок призначено до неправильної вулиці.
  • Одна й та сама вулиця з'являється кілька разів у різних межах міста.

Дивіться приклад у проблемі GitHub 10036.

Можливі причини неправильного призначення міст

Проблеми в OpenStreetMap

  1. Пошкоджені або відсутні межі міст.

  2. Межі міст неправильно перекриваються.

    • Якщо вулиця належить двом містам, але неправильно нанесена на карту, OsmAnd може не розпізнати перекриття.
    • Рішення: Відкоригуйте межі міст у OpenStreetMap, щоб вони правильно охоплювали спільні вулиці.
  3. Відсутні необхідні теги у зв'язку межі.

    • Якщо зв'язок не має необхідних тегів, таких як boundary=administrative або place=city, він не буде використовуватися.
    • Приклади:
      • Проблема 10921 (відсутні теги).
      • Проблема 12548 (проблема з межею Ерфштадта).

Проблеми в OsmAnd

Адреси, призначені сусіднім містам.

  • Міста, містечка, села або передмістя, що знаходяться поруч, можуть неправильно успадковувати адреси через перекриття меж або відсутність меж.
  • Це часто трапляється, коли міста поділені на адміністративні райони, але не мають чітко визначених зв'язків OSM.
  • Дивіться пов'язані звіти: 10559, 10679, 10730.

Методи перевірки

Щоб перевірити та усунути проблеми з межами міст, порівняйте результати з різних картографічних інструментів.

Використання OpenStreetMap

Приклад: Шукана адреса: Wolności 223, Zabrze

  1. Відкрийте OpenStreetMap (OSM).
  2. Знайдіть Zabrze та виберіть результат, пов'язаний з адміністративною межею.
  3. Перегляньте межу міста, щоб підтвердити, чи правильно призначено адресу.

Використання Nominatim

Приклад: Шукана адреса: Wolności 223, Zabrze

  1. Знайдіть вулицю та номер будинку без зазначення міста.
  2. Якщо результат пошуку розміщує адресу в іншому місті, запишіть запропоновану назву міста.
  3. Введіть знайдену назву міста в Nominatim.
  4. Перевірте значення Рангу адреси:
    • Приклад: Wolności, Maciejów
    • Якщо Maciejów вказано як передмістя/хутір (ранг 20), це менший адміністративний поділ іншого міста.

Важливо: Будьте обережні при виборі результатів пошуку, оскільки міста зі схожими назвами можуть існувати в різних регіонах або країнах.

Пошук адрес у США та дані TIGER

OsmAnd використовує дані OpenStreetMap для пошуку адрес, з додатковими джерелами даних, такими як TIGER (Topologically Integrated Geographic Encoding and Referencing System) від Бюро перепису населення США. Цей набір даних базується на діапазонах і не містить точних номерів будинків. Деякі адреси можуть бути відсутніми або неточними.

Вирішення проблем з адресами в США:

  1. Введена адреса розбивається на компоненти: [Номер будинку] [Назва вулиці], [Місто], [Штат], [Поштовий індекс]

  2. Система спочатку перевіряє OSM на точне співпадіння з номерами будинків та вулицями.

  3. Якщо в OSM не знайдено збігу, система шукає в даних TIGER, які включають:

    • Назви вулиць та класифікації.
    • Інтерпольовані діапазони номерів будинків.
    • Адміністративні межі.
  4. Якщо номер будинку відсутній, OsmAnd оцінює його місцезнаходження на основі даних поблизу.

  5. Повернення результатів:

    • Якщо адреса існує в OSM, відображається точний збіг.
    • Якщо доступні лише дані TIGER, надається приблизний результат.
    • Якщо жодне джерело не містить адреси, пошук не вдається.

Типи адресних даних у TIGER

Тип даних TIGERВикористання в OsmAnd
Назви вулицьВикористовується для пошуку за назвою.
Діапазони номерів будинківНадає приблизні місця розташування адрес.
Поштові індексиДопомагає пов'язати адреси з правильними поштовими зонами.
Адміністративні межіВизначає розташування міст та штатів.

Коли адресу знайдено проти не знайдено

Сценарій пошукуРезультат в OsmAnd
Адреса існує в OSM з номером будинку та вулицею✅ Точний збіг
Адреса існує в TIGER, але відсутні номери будинків⚠️ Приблизний збіг за допомогою інтерполяції
Адреса існує в TIGER, але містить неправильні дані⚠️ Частковий збіг з помилками
Адреса відсутня як в OSM, так і в TIGER❌ Немає результату

Обмеження даних TIGER в OsmAnd

Кілька факторів впливають на точність пошуку адрес у системі на основі TIGER:

  • Відсутні номери будинків. Багато адрес у TIGER покладаються на інтерполяцію, що призводить до приблизних місць розташування.

  • Застарілі назви вулиць. Назви доріг у TIGER можуть не відображати поточні правила іменування в OSM.

  • Невідповідності поштових індексів. Межі в TIGER можуть бути неправильними, що призводить до неправильного призначення поштових індексів.