MapCode — непростой короткий адрес

В ответ на оптимистичную и захватывающую статью «Mapcode — простой и короткий адрес», хотелось бы отозваться критикой этой системы, чтобы лишний раз не распалять несведущие умы глобальными идеями а-ля «отмены часовых поясов». Итак, что было недосказано и что «не так» в этой «идиллии адресов»:

  1. Первое и главное — эта система не является «короткой» в её полном понимании: адреса типа «AB.CD» вам может не достаться чисто в силу принципа кодирования MapCode. Вот, например, некая точка в Арктике: «ZQDZY.98D3» — не так уж и кратко, правда? Причина: короткие адреса получаются только если ваш регион внесён в список MapCode. Собственно, он потому и получается короткий, что сначала указывается известный регион, а затем — точка (с небольшими координатами-смещениями) внутри этого региона. «Нет региона — нет короткого адреса».
  2. Второе важное замечание: система построена на предопределённых регионах, вносимых (hardcoded) внутрь рассчитывающей программы. А значит, система становится неуклюже-статичной, требующей обновления по всему парку устройств с MapCode. Более того — сразу попадаем на ограничения встраиваемых устройств (где счёт на килобайты).
  3. Ещё хуже: для точных координат система явно требует указания страны, что в наш век глобализации не так уж и «неважно» — просто «голый» код уже не сунешь в емэйл. Опять неудобство.
  4. После беглого изучения исходников (а это 2,5 тысячи строк всякой утилитарщины только в си-шном файле!), хочется взять и как в известном анекдоте — «всё переписать». Ну не должна «простая и удобная система» быть таким месивом разнородных алгоритмов кодирования (их ТРИ), регионов и кодировок!
  5. И кстати о кодировках… Когда я прочёл, что из кода адреса выкинули буквы «O» и «I» (дабы не путать с цифрами 0 и 1), я даже как-то зауважал авторов — скинуть такую громадную проблему при чтении кода! Но когда в спеках речь зашла о путании русской буквы «Н» с английской «H», от фэйспалма помрачнело чело. Ну, молодцы Архимеды, блеснули интеллектом! Как же мы емэйлом-то без вас пользовались 20 лет?? А ведь это увеличивает сложность кодирования, при этом всё равно… проблема остаётся! Как ты объяснишь блондинке с визиткой, что все буквы можно читать как угодно? Люди-то привыкли к английским буквам! Да и глупо как-то изобретать «глобальную систему адресов», но при этом с использованием национальных алфавитов — в чём тогда глобальность китайских цифр в Кукуево? Опять «абстракции текут».
  6. Наконец, принципиальное разногласие: система построена для сокращения человеческих адресов, но человек-то как раз и не может её прочесть (без помощи компьютера)! Ну а если есть компьютер, то и коды особо-то не нужны. Фактически, 100% польза от MapCode достигается только в таком идеальном случае: обе взаимодействующие стороны находятся в одной стране, в густонаселённом городе (т.е. работают «короткие адреса» и не нужен код страны), вам звонят со стационарного на мобильный (т.е. отсылка SMS исключена), вам диктуют 4 цифры и вы их вводите в GPS (т.е. интернета нет, емэйла нет, google maps нет, населена роботами), а тот вам находит нужный адрес. Вам не кажется, что это всё смахивает на ретроградство и какой-то совсем уж узкий случай использования? Вот и мне в век гугловых карт (без которых не выезжаю ни на один адрес) кажется глупым изобретать «иногда круглое» (т.е. иногда короткое) колесо, которое полезно в жалком проценте случаев. Да, и не забудьте: у прохожих тоже не спросишь «как пройти к B5.Z16?» — уж лучше длинный «адрес» «там такой синий домик и проход во двор», чем коды.


Да и потом, как правильно указали в комментариях: зачем мучить одно место, когда есть нормальный, точный, действительно глобальный стандарт Geo URI? Да, цифры подлиннее, зато это цифры — их легче диктовать, чем емэйл, с ними меньше путаницы «O» или «0», да и вводить быстрее, чем алфавит. Вот ещё бы мозгом подумали, чтобы от точки избавиться — было бы совсем идеально! (для систем без FPU).

Подытоживая, «концептуально» система интересна, но применима ровно так, как и кодируется: в узком регионе уровня области/штата.

Сейчас в голове всплыла идея: может, тупо воспользоваться рекурсией? «Пусть Земля — это квадрат». Разбиваем квадрат, скажем, на матрицу 6х6, пронумеровываем клеточки алфавитом [A-Z0-9]. А далее, каждая клеточка — всё тот же квадрат, который разбиваем матрицей и т.д. Получаем рекурсивный спуск до любого уровня точности, причём используя одно «число» и применимо для любой точки планеты. «Кухонная» сложность алгоритма — строк 30. Без дополнительных таблиц и плюсов/минусов/точек. Хотите минимизации — введите небольшую таблицу основных регионов, которые точно не подвергнутся изменениям (континент или его часть). А далее — чистая математика.

Например, в США от Северной Дакоты до Хьюстона — примерно 2,200 км. За 8 описанных итераций (т.е. 8 числобукв) можно сойтись к квадрату 1.3х1.3 м — это примерно соответствует точности GPS+WAAS. Такую систему не понадобится обновлять или применять какие-то суперточные вещественные вычисления. Заодно, вместо бессмысленных почтовых индексов, можно было бы писать этот международный код + он же в QRCode — почтальоны расплачутся от умиления!

Ох, дожить бы!
AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее
Реклама

Комментарии 16

    0
    Вопрос не только к вашему посту, но и вообще.

    Не понятно, остается загадкой: зачем во втором десятилетии двадцать первого века что-то голосом диктовать?

    Особенно — адреса сайтов, почты, географические, идентификаторы мессенджеров и т.д. Ну зачем?
      +2
      При общении с клиентами это требуется регулярно.
      Особенно адреса сайтов, электронной почты и телефоны.
      Потому что они звонят со стационарного. Или потому что тебя застали не в офисе. Или потому что по-другому клиент не понимает.
      Или потому что это всегда безотказно работает, это просто и всем понятно.
        +1
        Я прошу номер мобильного, чтобы передать информацию СМСкой или скидываю сам все по координатам, обнаруженным на сайте оппонента. По телефону достаточно задавать простые вопросы, получена ли информация, как удобнее отправить и т.д.

        Конечно, согласен с вами — есть и особо упругие динозавры. В лучшем случае такие обычно нанимают помощников помоложе, которые не так упруги.

        Или потому что это всегда безотказно работает, это просто и всем понятно.


        Да нет, собственно. Это медленно, неудобно, и очень не точно.

        Единственное, что более-менее удобно диктовать — это номера телефонов. Остальное — не удобно. Даже в пределах РФ — татарские или якутские имена, отчества, русские отчества и фамилии иногда так доставляют, что записать их без ошибок с первого раза, не зная правил, очень трудно или невозможно.

        Ошибки в именах — это как минимум неприлично. Ошибки в других данных также могут вести к неприятным последствиям.
          0
          Диктовать приходится чаще всего электронную почту, а в названии сайта всего из 6 букв есть «sys» — а это «эс как доллар», «игрек как у» и ещё раз «эс как доллар». Но это всё равно не сильно долго, и почти всегда работает без ошибок.
          Но нам, например, работать приходится зачастую как раз с динозаврами, вроде администраций или школ, где мобильника может не быть, или человек вполне закономерно может не захотеть им делиться направо и налево.

          Случаи разные бывают. Отправить смс бывает удобнее, надёжнее, актуальнее. Но рано списывать диктовку со счетов.

          Всё сложное или длинное лучше пересылать смс или почтой, тут согласен.
          +1
          Знаете как мне недавно продиктовали адрес офиса в службе поддержки Мегафона?

          «В течение 15-20 секунд после нашего разговора к Вам придёт СМС с адресом нашего офиса».
            0
            Это логично и правильно, когда штатная служба поддержки мобильного оператора так делает. Надо думать, автоматизированно.
            Кроме того, бываю очень недоволен, когда служба псевдо-такси о машине сообщают голосом, а не с помощью смс.
        +2
        Пусть Земля это квадрат
        Иными словами — «у нас есть карта» :)
          +1
          Карта — это не территория… :)
          +2
          «Простите, а как пройти в XY.UI?»

          Это такая же штука, как QR-код. Емко, коротко, модно. Но делается машиной для машины. И упрощает работу для человека только в случае, когда человек является интерфейсом между двумя машинами. Имея на руках MapCode, записанный на бумажке, в условиях разряженного смартфона, например, вы ничего уже не найдете.
            +1
            А в случае, предложенным автором, при себе нужно иметь только атлас и линейку :)
              +1
              Случай, предложенным автором, как я понял, является вариацией целеуказания «по улитке», используемого, например, в военной топографии.
              +1
              Да, тоже вспомнил про статью о QR-коде.

              Мне кажется, картографы и географы смотрят на этот MapCode, как программисты на картинку про 15 конкурирующих стандартов.
              Сам к этой теме никаким боком, но почему-то еще со школьной скамьи помню про «Систему координат 1942 года».
              Кто из N37, поднимите руку.

              В проблеме «нахождении координат определенного места» еще очень много мест которые могут вызвать головную боль.
              Начиная от определения центра Земли, ее формы, подвижности тектонических плит, разных координаты одного места в зависимости от выбранной системы координат и тп.

              Наиболее точные системы дают точность +-2см. Но они должны уточняться время от времени. Создаются специальные службы для отслеживании таких изменении.

              Пища для ума найденная в гугле и википедии:
              СИСТЕМА КООРДИНАТ 1942 года (см. 16 страницу)
              Раз
              Два
              Три
              Четыре
              Пять
              Дальше сами.
              +1
              Сейчас в голове всплыла идея: может, тупо воспользоваться рекурсией? «Пусть Земля — это квадрат» ...


              Всё уже украдено до нас: en.wikipedia.org/wiki/Geohash
                0
                Да, «изобрести» позиционную систему счисления на плоскости вместо прямой так трудно!
                +2
                GeoURI — это способ записи координат. То есть, диктовать нужно будет именно широту и долготу, а не какой-то GeoURI. При этом вы попадёте на проблемы с системой координат. В России это WGS-84 против Пулково-1942, разница метров в сто.

                Всё, начиная с «Сейчас в голове всплыла идея», лишнее. А учитывая предложение выше, вообще всё, кроме списка пунктов.
                  0
                  «Пусть Земля — это квадрат» — это вы номенклатурные листы изобрели :)

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

                  Самое читаемое