Качество и интеграция клиентских данных
106,11
рейтинг
2 апреля 2015 в 16:54

Разработка → Пишем почтовый адрес, как человеки

Мне совершенно непонятна выгода от удобного интерфейса.

Да, он красивый, с ним проще работать. Но как посчитать материальную пользу?

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

И вот пару недель назад я заслушивался новыми объявлениями о вылетах. Было чувство, что их целиком записал профессиональный диктор, который всю жизнь учился на эту роль. Интерфейс стал лучше, он стал более натуральным.
Стал ли я от этого больше летать? Вряд ли.
Может, у меня появилось предпочтение между аэропортами? Не думаю, что это настолько важный момент.
Тем не менее, зачем-то люди потратили время и деньги на приведение объявлений к естественному виду. И это очень круто!

Мне нравится естественное представление информации автоматизированными системами, как будто с вами общается живой человек. Мне кажется, что это мелкие детали, которые формируют отношение к вашему продукту в целом.
И если это отношение положительное, то вас будут выбирать в дальнейшем и рекомендовать друзьям.

В статье я расскажу, как показывать адрес одной строкой так, будто его написал человек. Я не могу с уверенностью сказать, что, прочитав статью, вы увеличите прибыль.
Но мне бы очень хотелось, чтобы как можно больше систем писали адреса красиво.

Все правила, описанные ниже, мы выработали сами. Большинство из них используем или скоро подключим на dadata.ru.

Полтора года назад мы задумались, как писать адреса по-человечески. Гугл не дал ответа, как упростить адрес, поэтому мы стали общаться с лингвистами, проводить тесты и экспериментировать.

Мы стремились выработать правила формирования понятного адреса с минимальной длиной, написанного так, как его пишут люди.

Матчасть


Чтобы автоматически формировать адреса, нам нужен источник адресов. Если знаете о КЛАДР или ФИАС, пропустите этот пункт. Для остальных расскажу, что в России адреса формируются иерархически:
  1. У каждого адреса есть субъект. В России 85 субъектов. Например: Московская область, Республика Коми, Москва.
    
По административному делению Москва находится не в Московской области, это самостоятельный город-регион.
    Химки находятся в Московской области, а не в Москве. А вот Зеленоград, наоборот, — в Москве.
  2. В субъектах есть районы и города.
    Город без района в субъекте является городским округом. Например, Новосибирск подчинён непосредственно субъекту “Новосибирская область”.
    В ФИАС есть признак статуса центра для городов и населённых пунктов. Эта информация нам пригодится в дальшейшем при формировании адреса одной сторокой.
  3. В районах есть города и населённые пункты.
  4. В городах есть улицы и населённые пункты. Согласно ФИАС, там ещё бывают дополнительные территории: обычно это гаражно-строительные кооперативы, садово-некоммерческие товарищества и т.п.
  5. Часто в адресе указывают район города, например, “Москва, Алексеевский р-н”, или “Новосибирск, Щ”. К сожалению, внутригородские районы отсутствуют в ФИАС и КЛАДР, поэтому мы не будем использовать их при автоматическом построении адреса.
  6. В населённых пунктах есть улицы, дополнительные территории (такие же, как и в пункте 4) и дома. Бывают дома, которые не на улице, а просто в населенном пункте.


Используем привычный порядок слов


Для начала рассмотрим строку целиком. В России привыкли писать адреса от наиболее верхнего уровня административного деления к нижнему. Привычный порядок элементов таков:
  1. субъект;
  2. район;
  3. город;
  4. населенный пункт;
  5. улица;
  6. дом;
  7. расширение дома (корпус, строение, подъезд, этаж, квартира, офис,..).

Например, “Московская Область, Мытищинский Район, Мытищи Город, Ульяновская Улица, Дом 3”

Кроме этого, важен порядок слов внутри каждого уровня. Например, правильно писать “Город Санкт-Петербург” вместо “Санкт-Петербург Город”, или “Алтайский Край” вместо “Край Алтайский”. Порядок определяется по-своему для каждого типа:
  • Регион, область, край, автономный округ: сначала название, потом тип.
  • Республика, город: сначала тип, затем название.
  • Элементы в городах: районы, улицы, площади и т.п. Порядок элементов может быть как “наименование тип”, так и “тип наименование”. Мы используем свой порядок для каждого типа в зависимости от окончания наименования и частоты встречаемости. Например, мы пишем “Москва, Авиационный переулок” и “Москва, переулок Александра Невского”.

Не забываем и про исключения:
  • “Ханты-Мансийский автономный округ — Югра” пишем без типа, так как “автономный округ” есть в названии по ФИАС/КЛАДР. Пример: “Ханты-Мансийский автономный округ — Югра, г Ханты-Мансийск, ул Анны Коньковой, д 1”
  • Чувашская Республика имеет замечательный тип Чувашия (то есть наименование региона “Чувашская Республика -”, а тип — “Чувашия”), его пишем после наименования: “Чувашская Республика — Чувашия, г Чебоксары, ул Адмирала Ушакова, д 2”, или опускаем вовсе и удаляем тире в конце наименования: “Чувашская Республика, г Чебоксары, ул Адмирала Ушакова, д 2”

Адрес из ФИАС:

Россия, Татарстан Республика, Казань Город, Братьев Касимовых Улица, дом 64

после перестановки элементов в правильном порядке превращается в
Россия, Республика Татарстан, Город Казань, Улица Братьев Касимовых, дом 64

Читать стало проще. Но можно сделать еще лучше и короче.

Разделяем типы и наименования при помощи форматирования


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

Все типы пишем с маленькой буквы, все наименования — с большой. Посмотрите сами, второй вариант читается быстрее:

До:
Камчатский Край, Город Петропавловск-Камчатский, Улица Беринга, Дом 90, Квартира 61

После:
Камчатский край, город Петропавловск-Камчатский, улица Беринга, дом 90, квартира 61


Сокращаем типы и наименования


Сокращения типов есть в ФИАС. Мы используем их, добавляем свои правила, основанные на комментариях заказчиков, а часть оставляем как есть:
Очень много типов с сокращениями
ААЛ: аал
АБОНЕНТСКИЙ ЯЩИК: а/я
АВТОДОРОГА: автодорога
АВТОНОМНАЯ ОБЛАСТЬ: Аобл
АВТОНОМНЫЙ ОКРУГ: АО
АЛЛЕЯ: аллея
АРБАН: арбан
АУЛ: аул
БЕРЕГ: берег
БУГОР: бугор
БУЛЬВАР: б-р
ВАЛ: вал
ВЛАДЕНИЕ: влд
ВОИНСКАЯ ЧАСТЬ: в/ч
ВОЛОСТЬ: волость
ВЪЕЗД: въезд
ВЫСЕЛКИ: высел (устаревшее)
ВЫСЕЛКИ(ОК): высел
ГОРОД: г
ГОРОДОК: городок
ГОРАЖНО-СТРОИТЕЛЬНЫЙ КООПЕРАТ: гск (устаревшее)
ГАРАЖНО-СТРОИТЕЛЬНЫЙ КООПЕРАТ: гск
ГАРАЖНО-СТРОИТЕЛЬНЫЙ КООПЕРАТИВ: гск
ГАРАЖНО-СТРОИТ-НЫЙ КООПЕРАТИВ: гск
САДОВОЕ ТОВАРИЩЕСТВО: сад тов
СЕЛЬСКОЕ МУНИЦИП.ОБРАЗОВАНИЕ: сельское мо
ДАЧНОЕ НЕКОММЕРЧЕСКОЕ ПАРТНЕРСТВО: днп
ЭСТАКАДА: эстакада
ДАЧНЫЙ ПОСЕЛОК: дп
ДЕРЕВНЯ: д
ДОМ: дом
ДОРОГА: дор
Ж/Д ОСТАНОВОЧНЫЙ (ОБГОННЫЙ) ПУНКТ: ж/д_оп (устаревшее)
Ж/Д ОСТАНОВ (ОБГОННЫЙ) ПУНКТ: ж/д_оп (устаревшее)
Ж/Д ОСТАНОВ. (ОБГОННЫЙ) ПУНКТ: ж/д_оп
ЖЕЛЕЗНОДОРОЖНАЯ БУДКА: ж/д_будка
ЖЕЛЕЗНОДОРОЖНАЯ КАЗАРМА: ж/д_казарм
ЖЕЛЕЗНОДОРОЖНАЯ СТАНЦИЯ: ж/д_ст
ЖЕЛЕЗНОДОРОЖНАЯ ПЛАТФОРМА: ж/д_платф
ЖЕЛЕЗНОДОРОЖНЫЙ ПОСТ: ж/д_пост
ЖЕЛЕЗНОДОРОЖНЫЙ РАЗЪЕЗД: ж/д_рзд
ЖИВОТНОВОДЧЕСКАЯ ТОЧКА: жт
ЖИЛАЯ ЗОНА: жилзона
ЖИЛОЙ РАЙОН: жилрайон
ЗАЕЗД: заезд
ЗАИМКА: заимка
ЗОНА: зона
КАЗАРМА: казарма
КАНАЛ: канал
КВАРТАЛ: кв-л
КИЛОМЕТР: км
КОЛЬЦО: кольцо
КОМНАТА: комн
КОРДОН: кордон
КОРПУС: к
КОСА: коса
КРАЙ: край
КУРОРТНЫЙ ПОСЕЛОК: кп
ЛЕСПРОМХОЗ: лпх
ЛИНИЯ: линия
МАССИВ: массив
МЕСТЕЧКО: м
МЕСТНОСТЬ: местность
МИКРОРАЙОН: мкр
МОСТ: мост
НАБЕРЕЖНАЯ: наб
НАСЕЛЕННЫЙ ПУНКТ: нп
ОБЛАСТЬ: обл
ОКРУГ: округ
ОСТРОВ: остров
ПАРК: парк
ПЕРЕЕЗД: переезд
ПЕРЕУЛОК: пер
ПЛАНИРОВОЧНЫЙ РАЙОН: п/р
ПЛАТФОРМА: платф
ПЛОЩАДКА: пл-ка
ПЛОЩАДЬ: пл
ПОГОСТ: погост
ПОЛУСТАНОК: полуст
ПОСЕЛЕНИЕ: п
ПОСЕЛОК ГОРОДСКОГО ТИПА: пгт
ПОСЕЛОК И(ПРИ) СТАНЦИЯ(И): п/ст
ПОСЕЛОК СЕЛЬСКОГО ТИПА: п (устаревшее)
ПОСЕЛОК: п
ПОЧИНОК: починок
ПОЧТОВОЕ ОТДЕЛЕНИЕ: п/о
ПРОЕЗД: проезд
ПРОМЫШЛЕННАЯ ЗОНА: промзона
ПРОСЕК: просек
ПРОСЕКА: просека
ПРОСЕЛОК: проселок
ПРОСПЕКТ: пр-кт
ПРОТОК: проток
ПРОТОКА: протока
ПРОУЛОК: проулок
РАБОЧИЙ ПОСЕЛОК: рп
РАЗЪЕЗД: рзд
РАЙОН: р-н
РЕСПУБЛИКА: Респ
РЯДЫ: ряды
САД: сад
САДОВОЕ НЕКОМ-Е ТОВАРИЩЕСТВО: снт
СЕЛО: с
СЕЛЬСКАЯ АДМИНИСТРАЦИЯ: с/а
СЕЛЬСКИЙ ОКРУГ: с/о
СЕЛЬСКОЕ ПОСЕЛЕНИЕ: с/п
СЕЛЬСКОЕ МУНИЦИП. ОБРАЗОВАНИЕ: с/мо (устаревшее)
СЕЛЬСКОЕ МУНИЦИПАЛЬНОЕ ОБРАЗО: с/мо (устаревшее)
СЕЛЬСКОЕ МУНИЦИПАЛЬНОЕ ОБРАЗОВАНИЕ: с/мо (устаревшее)
СЕЛЬСКОЕ МУНИЦИП ОБРАЗОВАНИЕ: с/мо
СЕЛЬСОВЕТ: с/с
СКВЕР: сквер
СЛОБОДА: сл
СПУСК: спуск
СТАНИЦА: ст-ца
СТАНЦИЯ: ст
СТРОЕНИЕ: стр
ТЕРРИТОРИЯ: тер
ТРАКТ: тракт
ТУПИК: туп
УЛИЦА: ул
УЛУС: у
УЧАСТОК: уч-к
ФЕРМА: ферма
ХУТОР: х
ШОССЕ: ш
ЧУВАШИЯ: Чувашия
ВЕЛАЯТ: велаят
ГОРСОВЕТ: горсовет
УЕЗД: уезд
ЭКОНОМИЧЕСКИЙ РАЙОН: экономический район
ЭТРАП: этрап
ФЕРМЕРСКОЕ ХОЗЯЙСТВО: ф/х
НЕКОММЕРЧЕСКОЕ ПАРТНЕРСТВО: н/п
ДАЧНОЕ НЕКОМ-Е ПАРТНЕРСТВО: днп
БАЛКА: балка
БУХТА: бухта
МАЯК: маяк
ГОРКА: горка
ТОННЕЛЬ: тоннель
МЫС: мыс


Если вы хотите составить свои правила для сокращений типов, то обратите внимание на два момента:
  • При сокращении типов можно не бояться потерять уникальность в рамках строки с адресом. Все типы стоят рядом с наименованиями, и человек без труда может определить, что подразумевается под сокращением. Например, в адресе “респ Татарстан, д Набережные Моркваши, д 45” без объяснения понятно, что первая д — это деревня, а вторая д — дом.
  • Тем не менее, сокращение должно быть понятным. Например, вместо адреса “Москва п Турчанинов”, где “п” может быть как переулком, так и проспектом или площадью, лучше написать “Москва, пер Турчанинов”.

В некоторых случаях люди сокращают слова “Большая” и т.п. в названиях улицы, например “Б. Ордынка”. Но автоматически делать это страшно, так как можно потерять уникальность наименования.

Адрес до сокращения типов:
Россия, республика Татарстан, город Казань, улица Братьев Касимовых, дом 64.

Адрес после:
Россия, респ Татарстан, г Казань, ул Братьев Касимовых, д 64.


Удаляем все, что можно удалить


Следующий шаг к идеальному адресу — удаление избыточной информации.
Если адрес используется для доставки корреспонденции, то избыточную информацию лучше оставить для упрощения сортировки посылок и писем.
Если же адрес нужен только для идентификации места человеком или предполагается курьерская доставка по городу, то удаление избыточной информации сделает адрес более естественным и читаемым.

Предлагаем такие правила:
  1. Удаляем страну, если это Россия. Редкие случаи вроде села Париж не повлияют на восприятие: “Челябинская обл, Нагайбакский р-н, село Париж”.
  2. Удаляем тип у города. Название города уникально в рамках одного района, так что эта информация не критична. Было “г Воронеж”, остался “Воронеж”.
  3. Удаляем регион у городских округов (это крупнейшие города в регионах, про них я писал выше). Эти города известны и уникальны в России. Например, пишем не “Новосибирская область Новосибирск”, а просто “Новосибирск”.
  4. Удаляем район у центров районов (признак есть в ФИАС и КЛАДР). Они уникальны и достаточно известны в рамках региона. Например, пишем не “Московская обл, Можайский р-н, г Можайск”, а “Московская обл, г Можайск”
  5. Удаляем город, если это понятно из контекста. Афиша концертов в Екатеринбурге? Хватит писать слово “Екатеринбург” в адресе каждой площадки.

Пока я писал статью, появилась идея удалять слово “улица”. Мне кажется, если этот тип не указан, он воспринимается как умолчательный. Давайте проведём эксперимент: “Москва, Тверская”. О чем подумали, об улице? Однако, есть ещё Тверская площадь. Впрочем, это пока неподкреплённое предположение, и делать так следует на свой страх и риск. Было бы интересно услышать комментарии по этому поводу.

После удаления очевидных сущностей адрес из примера примет более читаемый вид:
Было:
Россия, респ Татарстан, г Казань, ул Братьев Касимовых, д 64.

Стало:
Казань, Братьев Касимовых, д 64

или, если позволяет контекст:
Братьев Касимовых, д 64

Мы не удаляем тип у дома, так как обычно в адресе содержится ещё и указание на квартиру или корпус, и тогда отсутствие некоторых типов нам кажется странным. Но это дело вкуса:
Братьев Касимовых, 64, корп 1, кв 1

или
Братьев Касимовых, д 64, корп 1, кв 1

Если в адресе есть только дом, то без слова “дом” адрес будет смотреться только лучше:
Братьев Касимовых, 64


Разбиваем адрес на две строки


Наш адрес уже хороший и красивый, мы можем его отображать в интерфейсе.
Есть одно ноу-хау, как можно его ещё больше упростить при помощи форматирования: разбиваем на две строки, в первой пишем город, район, субъект (именно в такой последовательности) а во второй — населенный пункт, улицу и всё остальное.

Изначальный адрес из ФИАС:
Россия, Татарстан Республика, Казань Город, Братьев Касимовых Улица, дом 64.

Напишем так:
Казань,
Братьев Касимовых, 64


На этом всё. Надеюсь, информация вам пригодится и вы научите «говорить» ваши программы на естественном языке.
Если есть вопросы по адресам, обращайтесь. Мы эту тему любим и всегда стараемся помочь.
Автор: @AlexGechis
HumanFactorLabs
рейтинг 106,11
Качество и интеграция клиентских данных

Комментарии (59)

  • +1
    ломаем систему
    город Троицк города Москвы.
    город внутри города…
    новая Москва…
    • +1
      Москва — это регион:)
      • 0
        видимо, что то я пропустил в этой жизни
        • +5
          В России по ФИАС три города-региона, Москва и Московская область — два разных субъекта, независимых друг от друга
          • +1
            ну про то что независимы это я знал, но про, то, что он контейнер нет
            • +1
              Даже старая Москва была контейнером. Например, Москва, район Хорошёво-Мнёвники, посёлок (!) Терехово.
          • +6
            Четыре. Москва, Питер, Севастополь и, внезапно, Байконур.
            • 0
              Точно, спасибо!
            • 0
              Байконур же в Казахстане. Не на территории РФ.
              Каким образом он может быть регионом России?
              • +7
                Тсссс…
              • +4
                Ага, в Казахстане. Но в ФИАС всё равно есть такой регион, с номером 99. Видимо, внесли на правах длительно арендуемой территории для упорядочивания налоговой отчётности.
              • 0
                друг в налоговой работал, рассказывал что Байконур (по налоговой макулатуре) относится ни то к Москве, ни то к МО
              • 0
                так же, как и севас… )
            • 0
              Байконур — это разве не Kазахстан?
              • 0
                Я чуть выше ответил. Да, конечно Казахстан. Возможно, по ФИАС он тоже принадлежал бы Казахстану, если бы в ФИАС был уровень страны, но там верхний уровень — «регион».
      • 0
        Как правильно писать адрес при международных отправлениях? Moscow region, Moscow? А если в Московскую область?
        • +4
          Для любой почты самое важное — индекс. Есло он есть, то можно вообще города не указывать. При отсутствии индекса сортировка производится вручную и тут оба варианта сработают одинаково.
          • 0
            Скорее, Moscow закинет точно в Москву, а при Moscow region будут смотреть указан ли населённый пункт, или дальше идет улица.
        • +1
          Moscow, default city… Проходили же уже :-)
        • 0
          Так чтобы он был понятен работникам почты.
          Moskovskaya oblast
          Mosk. obl

          Mosk. obl, g. Krasnogorsk, ul. Lenina dom 1 kv 20
          Это будет понятно любой почтовой бабушке, которая понесет вам письмо.

          Moscow region, city Krasnogorsk, Lenina str, build 1, ap 20
          А вот это бабушка с ходу не поймет.

          В международных посылках мы используем латиницу только потому, что на компьютере продавца «из оттуда» вряд ли установлена кириллица. А вовсе не для соответствия правилам английского языка, поэтому написанное должно быть понятно «нашим», а не «ихним».
  • +4
    Любопытнее обратная задача. Из «Казань, Братьев Касимовых, 64» получить
    «Россия, Татарстан Республика, Казань Город, Братьев Касимовых Улица, дом 64»

    Излишняя информация в адресе напрягает именно, когда ее вводить приходится.
    • +1
      о да, задача интересная:) (собтсвенно, ей мы и занимаемся)
  • 0
    Санкт-Петербург,
    5-ая авеню, 1250
    • 0
      Что именно смущает в адресе?

      Не могу понять где там 5-я авеню, Вы про линию?
      • –3
        Меня — ничего. Думайте, что именно смущает Вас.
        • +5
          Меня смущает, что вы проигнорировали пункт «Удаляем страну, если это Россия». А в остальном статья описывает специфику русских адресов.
          Если так формально подходить, то можно сразу делать как в базе Почты России, где для каждого адреса родителем верхнего уровня является «Планета Земля».
          • 0
            А с каких это пор у нас необходимо читать пост перед тем как комментировать? :-)
        • +1
          Давайте все-таки будем точными.

          Вселенная, галактика Млечный Путь, Солнечная система, планета Земля, Соединенные Штаты Америки, штат Флорида, город Сент-Питерсберг, 5-я авеню, коттедж 183.
          • 0
            А указание на конкретную Вселенную?
            И где индекс?
            • 0
              Простите, я отстал от жизни. Их уже несколько идентифицировали? Индекс запамятовал, беда. Почта не доставит.
              • +3
                «Если в телефонном номере не указан код страны — значит Америка, если даже кода города нет — Москва»

                Если вселенная одна — она не будет указываться в адресе.

                • +1
                  Да что же это, я кругом напутал. Ну ладно.
          • +1
            Давайте.
            Вселенная, Местное сверхскопление галактик, Местная группа галактик, галактика Млечный путь, Солнечная система, планета Земля, Соединенные Штаты Америки, штат Флорида, город Сент-Питерсберг, 5-я авеню, коттедж 183.
            • 0
              Нет, ну это избыточно. Давайте держаться в рамках.
            • +3
              zip не указали.
  • –1
    «Коллекторскому агентству» — на первом месте на главной сайте показывает, на что вы ориентируетесь.
    Деньги не пахнут, да?
    • –1
      а коллекторы внезапно встали в один ряд с торговлей людьми и органами?
      есть такой бизнес, почему бы не зарабатывать с них деньги? :)
      • +4
        Да обычные мошенники, что Вы сразу в крайности.
      • +4
        А что, Вы считаете такой бизнес нормальным? Я слава богу с ними лично не встречался, но весьма наслышан о методах их работы. И считаю это не бизнесом, а какими-то а-ля 90-е.
        Их методы работы ничего, кроме отвращения у нормального человека не вызывают.
  • НЛО прилетело и опубликовало эту надпись здесь
    • –3
      Мы используем для адресных объектов список сокращений из ФИАС, там они без точек. Для расширения дома (всякие корпуса со строениями) также без точек — для единообразия.
    • –1
      Да, я написал выше, что про удаление улицы — спорный момент. Если считаете, что лучше с ней, то оставьте.
      Точки у нас и не появлялись. Мне кажется, что без них не теряется смысл, но строка выглядит органичней:
      г. Казань, ул. Братьев Касимовых, д. 64

      .vs.
      г Казань, ул Братьев Касимовых, д 64

      Впрочем, это дело вкуса, поэтому в статье про это я не писал.
      • +5
        Без точек пишутся только сокращения единиц СИ и аббревиатуры. Писать «ул.» или без точки — всё равно, что писать «улеца».
  • +2
    Город опускать я бы тоже не стал.
    Например, в Московской области есть город Домодедово, а есть село Домодедово, и это — разные населённые пункты.
    С одной стороны, можно понять, что «Домодедово» — это город, а «с Домодедово» — село. Но, тем не менее, однозначность теряется.
    • +1
      мы делаем так: удаляем всё что можно. Если после этого в базе есть что-то, что сократилось до такого же состояния, то в обоих адресах добавляем тип объекта. Если не помогло, удаляем типы, добавляем родителя, если опять не помогло (бывают одинаковые районы в разных субъектах), то добавляем субъект. Типы и родители могут комбинироваться до получения уникального текста. Тоже самое с улицами/проспектами: если в городе есть только улица с таким названием, то вполне можно удалить тип. Если и улицы и бульвары/проспекты, то тип указан у всех
      • 0
        Интересно было бы посмотреть вживую:) Не могли бы дать примеры полученных адресов?
  • +6
    Улицу нельзя опускать. Например, у нас в Белгороде есть проспект Ватутина и улица Ватутина.
    • +2
      Ну или Северный: проспект, проезд, переулок. И таких названий тем больше, чем больше город.
  • 0
    Если адрес используется для доставки корреспонденции, то избыточную информацию лучше оставить для упрощения сортировки посылок и писем.
    Начиная с какого‐то 200x года почта начала советовать применять непривычную сортировку частей адреса, а именно «улица, дом, …, …, город, субъект, страна». Т.е. «всё, что нельзя вычислить из почтового индекса, в порядке уменьшения уровня административного деления, затем всё, что можно, в порядке увеличения». Так что по‐хорошему нужно не просто что‐то оставить, но ещё и пересортировать.

    Впрочем, я видел всего одно почтовое отделение, где до этого порядка кому‐то есть хоть какое‐то дело.

    Пруф: www.russianpost.ru/rp/servise/ru/home/documents/postrules/postrules2, пункт 22.
  • +2
    Сокращение города — «г» с точкой. Улицы — «ул.». Вообще, визуально так лучше, и иногда встречаются топонимы, про которые непонятно, какого они типа.
  • +1
    Некоторые названия улиц и переулков красивее переносить в начало, а некоторые в конец:
    Бобров переулок
    улица Гришина
    1-я Дубровская улица

    лучше, чем
    переулок Бобров
    Гришина улица
    Дубровская 1-я улица

    И что ваш алгоритм сделает с "улица Мичуринский проспект, Олимпийская деревня"?
    • 0
      Алгоритм обрабатывает корректно, можете сами убедиться на dadata.ru.
      «Бобров пер» и «ул Гришина» пишем как вы и говорите. За замечание с 1-ой Дубровской спасибо, будем думать как улучшить.
    • 0
      И ещё с Большой Зелениной улицей в СПб…
    • 0
      Ещё интересно «Первая улица второй половины».
      Прошу прощения, она «третья линия второй половины».
  • 0
    Вбиваем адрес: «г Санкт-Петербург, шоссе Аннинское (Торики)»
    Смотрим координаты, видим центр Санкт-Петербурга.
    Печаль тоска.
    • 0
      А какая часть шоссе вас интересует в ответе? :) А если серьёзно, то это не бага, это — фича. Если у нас нет координат некоего объекта, мы возвращаем координаты либо рядом лежащего (в случае с домами), либо более высокого уровня (в случае с улицами, шоссе, н.п. и т.п.). Мы, также возвращаем код качества, который показывает, с какого уровня вернули координаты. В данном случае он равен городу, а не улице.
      • 0
        А какая часть шоссе вас интересует в ответе? :)

        Было бы логично, если бы это был центр шоссе. Всё-таки ближе к истине, чем центр города.
        возвращаем координаты либо рядом лежащего (в случае с домами)

        Окей, давайте поищем дом на этом шоссе: «г Санкт-Петербург, шоссе Аннинское (Торики), д 5А ».
        Снова отправляет в центр С-Пб. Яндекс, кстати, в этом случае правильно определяет точку.
        Вот ещё пример с злополучными Ториками: «г Санкт-Петербург, ул Ленинградская (Торики), д 4».

        Отсутствие районов это наследие от ФИАСа?
        • 0
          Да, мы используем в качестве источника ФИАС.

          За замечание с Аннинским спасибо, так как, похоже, по данной улице не загрузились данные из OSM. Будем разбираться
        • 0
          Яндекс, кстати, в этом случае правильно определяет точку.

          До Яндекса нам далеко в вопросе геокоординат — всё-таки, они профессиональный картографический сервис, а мы занимаемся стандартизацией

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.

Самое читаемое Разработка