У семи програмістів адресу без будинку

Привіт, Хабр!

Ми в HumanFactor парсим адреси в особливо великих розмірах. Наші продукти спрощують enter контактних даних та роботу з ними.

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

Нещодавно на Хабре нас попросили навести приклади незвичайних адрес, у зв'язку з чим і написана ця стаття.


Номер будинку — не число, а рядок

Почнемо з мого улюбленого місця – міста Електросталь Московської області. Як у будь-якому поважаючому себе місті, в ньому є проспект Леніна. Радянський час скінчився, а проспект росте і розвивається. Нещодавно там побудували нові будинки.

Зазвичай при будівництві нових будинків їм присвоюють номери в порядку продовження. Якщо будівництво будинків відбувається з початку вулиці, де поміщати поруч з будинком 1 будинок 36 нелогічно, то просто починають нову вулицю.

Будівництво нових будинків на цьому проспекті було заплановано з його початку. Проте нову вулицю вирішили не робити, а продовжити проспект Леніна, додавши цифру 0 ліворуч від номера новим будинкам.

Тобто адреси Електросталь пр Леніна 4 Електросталь пр Леніна 04 — це два різні адреси.

На жаль, цей випадок в Росії не єдиний.

Висновок: зберігайте номер будинку як рядок, щоб не втратити лідируючий нуль.

До речі, нещодавно до нас прийшов такий адресу від клієнта: 675018, Амурська, Мохова падь п, дім Л-1. Незвичайний будинок, чи не правда? Ми не знайшли його на картах, але він є в ФІАС. Ми поки розбираємося, наскільки коректно існування будинку з лідируючої літерою, але цілком імовірно, що будинок існує, так як його вказав реальний клієнт.

Поштовий індекс важливий

Буває, що в місті дві вулиці називаються однаково. Наприклад, у Москві дві вулиці 8 березня. Розрізнити їх можна тільки по індексу.

Або, наприклад, Росія, Архангельська область, Устьянскій район, село Бережна на карті Яндекса зустрічається в трьох місцях. Не знаєш індекс — лист не дійде.

Висновок: зберігайте поштовий індекс об'єкта.

Без типів нікуди

Індекси важливі, але не завжди достатні для визначення вулиці і навіть населеного пункту. Буває, що у різних населених пунктів один і той же поштовий індекс:

  • Росія, Забайкальський край, р-н Агінський, смт Агинское, вул Олімпійська, індекс: 687000
  • Росія, Забайкальський край, р-н Агінський, з Амитхаша, вул Олімпійська, індекс: 687000
Тобто вкрай важливо зберігати тип населеного пункту.

Те ж саме відноситься і до типів вулиць: якщо набрати в Яндексі «Москва Пушкінська» і натиснути «Знайти», то Яндекс покаже Пушкінську набережну, хоча є ще вулиця і площа.

Висновок: зберігайте тип населеного пункту та вулиці.

Бувають адреси без вулиці. І навіть без дому.

Іноді ми зустрічаємо адреси без вулиці. Рідко — в містах, частіше — в населених пунктах. Адреса «Алтай, смт Шебалино, будинок 2» дійсно існує (і там готують смачні пиріжки).

Трапляється, що в будинку немає номера, лише корпус. Так, наприклад, живуть люди в Зеленограді і мікрорайоні Супонево у Звенигороді: Звенигород, Супонево, корп 1.

Висновок: якщо при збереженні адреси в базу у вас включена перевірка на порожні значення, то:
  • Дозволяйте зберігати адресу без вулиці;
  • Дозволяйте зберігати адресу без номера будинку, якщо вказаний корпус.

Дбайливо ставитеся до литерам

Номер будинку визначає окрему споруду. Літери — це будови, прибудови тощо, що знаходяться на території будинку. Наприклад, якщо будинок має номер 4, то його прибудова може мати номер 4А1, підвал — 4Б1, паркан — 4I, будова — 4В, щитова в окремій споруді — 4Г.

Деталі нудним офіційною мовою, якщо захочеться пруфовУ зв'язку з які надходять на адресу Управління питаннями про правила використання позначень при литеровке будівель і споруд роз'яснюємо правила, прийняті у технічній інвентаризації.
Всі окремі елементи ділянки (будови, споруди, тротуари, бруківку тощо) повинні бути пролитерованы.
Основні будівлі і споруди литеруются заголовними буквами російського алфавіту А, Б, В і т. д. (крім використання літери Р, призначеної для службових будівель та споруд).
Прибудови, підвал, мезонін, мансарда і т. д. литеруются літерами того основної будівлі, в складі якого вони розташовані, з додаванням цифрового значення їх номери по порядку опису: А1, А2 або Б2, Б4 і т. д.
Холодна прибудова литеруется малими літерами російського алфавіту відповідно літери основного будови: а1, а2 або б1, б2 і т. д.
Службові будівлі та споруди литеруются заголовною буквою Г з додаванням цифрового позначення за номером опису: Г1, Г2 і т. д.
Ворота, паркани і дворові замощення литеруются римськими цифрами: I, II, III і т. д.
Можлива ситуація, коли кількість будівель і споруд, розташованих на одній земельній ділянці перевищує число літер російського алфавіту. Існуючі правила присвоєння будівлям літер не висвітлюють подібного варіанту. Вважаємо за необхідне, з урахуванням вимог Інструкції, в цьому випадку використовувати поєднання двох літер російського алфавіту, наприклад, АБ, АВ… АЯ, БВ, БГ… БЯ і т. д.
Згідно Інструкції про порядок проведення робіт з впорядкування нумерації будівель р. в Ленінграді і його передмістях адміністративного підпорядкування, затвердженої начальником Бюро технічної інвентаризації Виконкому Ленсовета 12.09.1974 р., домоволодінню присвоюється один номер, незалежно від кількості основних будівель розташованих у ньому. Місце розташування будівель на ділянці визначається його літерою. Окремим випадком такого домоволодіння є група будівель, об'єднана однією земельною ділянкою, наприклад, територія промислового підприємства.
При виділенні самостійного земельної ділянки зі складу раніше сформованої земельної ділянки та необхідність присвоєння йому самостійного адреси використовується корпусна система, при якій будові додатково до основного номеру будинку присвоюється номер корпусу, наприклад, корпус 1. Зміна літер на будови на новосформованих земельних ділянках при цьому проводити не обов'язково.
(див «Інструкція про проведення обліку житлового фонду в Россйской Федерації»)


Правила литерования діють по всій Росії, але тільки в Пітері їх особливо люблять. Адреса кілька літер, — нормальна ситуація для Пітера: р. Санкт-Петербург вул. Маркіна, д. 16Б, літера А.

Деякі літери легко переплутати з номерами: літера З схожа на цифру 3 (як би ви прочитали адресу Москва Зоряний 23 з?), літеру Ч у рукописному шрифт можна сплутати з четвіркою. Літери й і Я виглядають як скорочення (Будинок 4й — це 4 літер або четвертий?).

Можна розділяти номер будинку і літеру словом «літер», щоб адреси начебто Зоряного бульвару сприймалися більш однозначно. Наприклад, так: Москва Зоряний 23 літер З.

Висновки:
  • Не видаляйте літери біля будинків.
  • Виділяйте під зберігання літери декілька символів (ми зберігаємо три).
  • Розділяйте номер будинку і літеру.


На цьому все. В якості прикладу подивіться структуру відповіді, який повертає API Dadata.uk. При такій структурі зберігання адреси описані вище проблеми не повинні вас торкнутися.

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.