На главную
Многие пользователи Яндекс.Карт на мобильном сталкивались с необходимостью нанесения на карту каких-то точек на компьютере, которые потом можно было бы увидеть на телефоне на тех же картах. К сожалению Яндекс изначально как-то не учел эту надобность и так до сих пор и не учитывает. Многочисленные попытки пользователей взывать к сочувствию разработчиков Мобильных карт так до сих пор не увенчались успехом: синхронизировать "Мои карты" в вебе и закладки в Мобильных картах нельзя!

Закладки для МЯК

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



Для начала выбираем источник данных для списка точек - кнопка "Добавить..." (1). Источником может служить экспортированный из веб-карты файл в формате KML или файл закладок мобильных карт - labels.db (Об этом позже). Их можно загрузить с компьютера или сразу из Интернета по ссылке - кнопка "Добавить по URL...". После загрузки файла внизу появится список его точек (3), а также представляющая этот файл кнопка с названием карты (2). Далее каждый загружаемый файл будет иметь такую кнопку (2), а его точки добавляться в конец списка ниже (3). Таким образом можно объединять несколько списков точек из разных источников. Список можно очистить, можно редактировать его данные или добавить точки в другом порядке. Наигравшись со списком точек, попробуем его экспортировать, нажав кнопку "Экспорт" (5) и выбрав один из доступных форматов (4). Осталось только сохранить экспортированный файл на своем компьютере и использовать по назначению...

Файл labels.db и есть закладки

Как я уже говорил все не так просто, как хотелось бы. Во-первых, чтобы добавить точки из "Моих карт" в мобильные карты, нужно проделать манипуляции с самим файлом, в котором они хранятся в телефоне. А именно сначала его достать, загрузить в мое приложение, а затем полученный файл с добавленными точками из "Моих карт" перезаписать в мобильный. Во-вторых, операция эта доступна только на телефонах, имеющих ®root-доступ . Если все же у вас есть рут, читаем дальше, если нет - добавляем страницу в закладки и получаем рут на своем телефоне, после чего возвращаемся к посту :)

Во 2-й версии МЯК (2.12, 2.21 и т.д.) файл закладок labels.db хранится во внутренней памяти телефона по адресу /data/data/ru.yandex.yandexmaps/databases/labels.db. Вот отсюда его и берем, чтобы потом загрузить в приложение "Закладки для МЯК". В этой же папке хранится, кстати, и файл с учетными записями для МЯК. После манипуляций с точками в "Закладках для МЯК" надо экспортировать новый labels.db. По умолчанию имя файла будет my_labels.db, чтобы не затереть оригинальный файл ваших закладок. Далее надо его переименовать в labels.db и перезаписать в папку на телефоне, откуда вы его брали. Теперь можно перезапустить Мобильные карты на телефоне и убедиться в появлении новых закладок. Если этого не произошло, убедитесь в том, что права на файл закладок выставлены хотя бы как 666, т.е. чтение/запись (RW) для всех.

В 3-ей версии МЯК файл с закладками дублируется также на SD-карту по адресу /sdcard/yandexmaps/data/bookmarks/labels.db. Но это лишь его копия, и изменения в нем не имеют никакого эффекта, а управляющий файл с закладками находится все равно в памяти телефона, там же, где и во 2-й версии.


Закладки МЯК для Android

Теперь у пользователей Android'ов есть возможность легко управлять файлами закладок с помощью приложения Закладки МЯК. Заменить файл закладок теперь можно буквально в один тап! Как обычно требуется @root-доступ.



Где взять файл KML с точками

Формат KML является расширением XML и появился благодаря программе Google Earth для представления трёхмерных геопространственных данных, грубо говоря, чтобы технически описывать координаты точек. Файл KML с точками на картах Гугл можно получить следующим образом: открываем или создаем свою карту в "Моих местах", предварительно авторизовавшись, и затем нажимаем ссылочку "KML" под названием карты (обратите внимание, что рядом со ссылкой "KML" есть еще голубенький значок — это НЕ то, что вам нужно). В Яндекс.Картах авторизуемся, создаем или открываем карту в разделе "Мои карты", нажимаем кнопку "Ссылка на эту карту" и копируем ссылку на KML-файл. Далее ее можно вставить в адресную строку браузера, чтобы сохранить KML-файл на компьютере или прямиком загрузить в "Закладки для МЯК", нажав там кнопку "Добавить по URL...".

Данное приложение не претендует на панацею и 100% гарантию работоспособности, но все же, надеюсь, поможет вам решить задачу по синхронизации закладок с мобильными картами. Прошу оставлять комментарии по ошибкам, косякам и предложениям по улучшению в комментариях к этому посту или прямо там на страничке приложения .


Про порядок закладок

Одной из целей, которые я преследовал, когда создавал «Закладки для МЯК» было изменение порядка в котором закладки представлены в МЯК. У меня их не так много, но самые главные — Дом, Работа, Ашан, как и у многих, подозреваю, наиболее часто используемы. Но вот место в списке они занимают порой совсем неподходящее. Вроде бы есть способ изменить порядок — внести правки прямо в МЯК, название например изменить и тогда закладка переместится наверх. Теперь можно закладки отсортировать как вам угодно.

Добавив точки в список (3) можете нажать на любой заголовок столбца и изменить порядок закладок. Чтобы четко установить нужный вам порядок, изменяете номер строки (первая колонка) и сортируете список по первой колонке. Например, у вас 5 закладок, которые изначально имеют соответственно номера 10,20,30,40,50, и вам надо четвертую закладку сделать второй. Вы изменяете ее номер: 40 -> 12 (любое число между номерами строк, где она должна будет находится), нажимаете "Enter", чтобы зафиксировать изменение и сортируете еще раз список по первой колонке. Теперь можно экспортировать.

Если вдаваться в технические тонкости, то МЯК сортирует закладки по дате. Когда вы делаете экспорт из «Закладок для МЯК», программа проставляет текущую дату и время в формате unix для каждой закладки, начиная с первой, уменьшая ее на 10 миллисекунд.

UPD 05.05.2014: Только что обнаружил, если установить номер строки, как 2 или 3, то при сортировке, эти номера окажутся не как ожидалось до 10, а между 10 и 20, и 20 и 30. Чтобы этого избежать, надо номер назначать с ведущим нулем, т.е. 01, 02, 03 и т.д. Поправлю позже этот момент, чтобы сортировка работала прилично. И еще нужно учитывать, что только сменив номера строк, в МЯК порядок не изменится. Надо обязательно после смены номеров отсортировать по первой колонке таблицу.


Про формат GPX и WPT

Один из доступных для экспорта форматов — GPX, может быть использован в качестве файла путевых точек для программы Navitel. Теперь форматы GPX и WPT доступны также и для импорта. Файлы wpt почти идентичны gpx и являются, например, файлами закладок из старых версий МЯК для Windows Mobile. Единственное ограничение - кодировка UTF-8 "без bom" или ANSI as UTF-8. Это, кстати, справедливо и для других форматов. В будущем постараюсь сделать перекодировку.

Disclaimer и Copyright:
© Права на приложение «Закладки для МЯК» и все его части, а также данный пост принадлежат iBuddy.ru. Вы используете приложение на свои страх и риск, а любой возможный ущерб, связанный с использованием данного приложения не может быть предъявлен к возмещению автору.
© ПО "Мобильный Яндекс.Карты" и товарный знак "Яндекс" принадлежат ООО "Яндекс".