?

Log in

No account? Create an account

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

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

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



Для начала выбираем источник данных для списка точек - кнопка "Добавить..." (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-й версии.

Так уж получилось, что сейчас временно перешел на Symbian 9.4 (Nokia 5230) и конечно же установил МЯК отсюда. Так вот там закладки расположены в виде kml по адресу \Phone memory (NOKIA)\documents\YandexMaps\landmarks\persistent.xml.

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

Теперь у пользователей Android'ов есть возможность легко управлять файлами закладок с помощью моего приложения Закладки МЯК. Заменить файл закладок теперь можно буквально в один тап! Как обычно требуется @root-доступ. Не стал выкладывать на Google Play, ибо это стоит $25 (если кто желает помочь, милости прошу!). Обсуждение приложения в клубе Мобильных Яндекс.Карт тут.

Готовлю к выпуску Закладки МЯК Pro с возможностью редактирования самих файлов закладок, включая добавление, удаление, и собственно редактирования закладок.

Где взять файл 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. Это, кстати, справедливо и для других форматов. В будущем постараюсь сделать перекодировку.

История изменений

2014-10-17
Передал дальнейшую разработку ребятам iBuddy.ru

2014-02-18
Закладки МЯК 1.2 - добавил автоматическую установку прав на файл закладок МЯК (в тестовом режиме пока)
Закладки МЯК 1.1 - добавлено меню и справка.

2014-02-16
Написал Закладки МЯК (Android) для управления файлами закладок на телефоне.

2014-02-08
Добавил подсказку о пути к labels.db на страницу приложения и указал популярные приложения для форматов экспорта(спасибо dr_vlad);
Имя кнопки при добавлении KML теперь берется из имени списка закладок;
Исправил отображение многострочных описаний точек, в том числе убрал двойные переносы строк. Слегка изменил ширину колонок в пользу описания.

2014-02-07
Убрал кодировку кавычек в названиях и описаниях точек при экспорте в labels.db. Надеюсь, это не повредит)

2013-06-05
Исправил ошибку из-за которой вылетал МЯК после замены файла закладок

2013-05-10
Уже наверное неделю или больше у меня не работает хостинг. Сегодня оформлю другой, буду на него все переносить.

2013-03-19
Поправил загрузку по URL
Добавил импорт WPT и GPX

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


  • 1
У меня и без рутинга всё прекрасно копируется в Компьютер\GT-S7562\Card\yandexmaps\data\bookmarks\labels.db

Re: Спасибо

Интересно) А закладки у вас обновились в МЯК? Если да, добавлю про ваш телефон (Samsung GALAXY S DUOS ?) в апдейт к посту. Кстати, какая версия МЯК у вас?

Отличная идея!

Не будет ли предусмотрен импорт из файла закладок .wpt от "старых" версий МЯК для WindowsMobile?

Re: Отличная идея!

Я мог бы сделать, если вы пришлете пару примеров таких файлов. Закиньте их в архив и разместите где-то на яндекс-диске или files.mail.ru, а мне ссылку в личку.

Так я ж вчера ещё выслал ссылочку в личку.

Кстати, столкнулся ещё с интересным моментом. Если просто скопировать labels.db в /data/data/ru.yandex.yandexmaps/databases/ , то программа этого файла не видит! Долго вчера пытался понять в чём причина, а причина оказалась проста: надо выставить права на этот файл! по умолчанию там стояли только RW для владельца. Выставил RWX для всех (т.е. 777) и всё заработало!

В личку ничего не дошло(

Да, кстати, надо про права инфу добавить. У меня-то на китайском планшете с этим проблем не было))

Не удаётся загрузить файлик

Не получается загрузить KML файлик. Ни при нажатии "Добавить", ни при нажатии "Добавить URL" никакие действия со стороны программы не происходят.

Re: Не удаётся загрузить файлик

а kml откуда? С 'добавить по url' какие-то проблемы, сам видел... почему-то локально у себя когда запускаю, грузит, а в интернете - нет. А вот кнопка 'Добавить' должна работать без проблем, только что проверил. Пришлите мне файл, я посмотрю что там не так (закиньте на файловый хостинг и мне ссылку в личку).

Edited at 2013-03-19 13:49 (UTC)

Новые Яндекс.Карты - история с плохим концом

Кому интересно, можно почитать историю о том "Как я делал новые Яндекс.Карты",и кстате история с плохим концом... Ссылка на ЖЖ пост

http://mymapsyandex.livejournal.com/692.html

Нужно ваше мнение!

Спасибо!!! нужна помощь

Сервис нужный! Жалко, что Яндекс так и не снизошел до нормального функционала и приходится делать костыли.
К сожалению у меня не все получилось.

1) Загрузил файл labels.db из /data (из /sdcard результат тот же) в Web-сервис http://dev.kolyaseg.ru/myak/
2) отсортировал
3) положил экспортированный файл my_labels.db по инструкции обратно в телефон в /data (ни так, ни копирование в /sdcard не помогло)
4) переименовал в labels.db
5) сделал права rw- rw- --- как у исходного файла
6) запустил Мобильные Яндекс.Карты
7) Захожу Меню / Закладки - приложение вылетает.
Версия "Мобильные Яндекс.Карты" 3.30 от 26/04/2013 сборка 6575

Re: Спасибо!!! нужна помощь

пичалька(
Попробуйте удалить все описания из точек, а названия написать только текстом (убрать всякие небуквенные символы). Возможно крашится на каком-то спецсимволе, типа переноса строки или кавычка какая-нить дурацкая, который пройдя через все конвертации, как-то неугодно выглядит для мяка. Если сработает, добавляйте по чуть-чуть описаний, в итоге выявится неугодный символ. Скажите потом какой.

Также с правами попробуйте выставить вообще все какие можно права.

Файл положили обратно в /Память_телефона/data/data/ru.yandex.yandexmaps/databases/labels.db?

А обратный поцесс

А вот мне нужно с мобильного на комп перенести закладки, не знаете как это сделать? Закладки вынул и почистил, а как в мои карты впихнуть, не нашел...

Re: А обратный поцесс

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

Спасибо большое, очень помогло мне. Путем экспорта в Навител.

А вот подскажите, пожалуйста - а как можно импортировать не в МЯК, а в яндексовый же Навигатор?
Я, если честно, так и не смог понять чем они отличаются, и как автомобилист, оставил навигатор...

Хм... как-то я не пользовался Навигатором, даже не знаю, как там что устроено. По аналогии с Картами не получилось?

(Удалённый комментарий)
(Удалённый комментарий)
(Удалённый комментарий)

не получилось

Я вчера перепробовал все:
в Старый Яндекс карты и в Обновленный МЯК, в виде labels.db и в виде wpt - нет результата,
попробовал в Навитель: и в Стары й и в Обновленный: в виде gpx и в виде wpt - пищет формат файла неверный.

даже телефон разрутил, во по-новой установил, - и опять ничего

я очень расстроен.

Re: не получилось

Что именно вы пробовали, подробнее, пожалуйста? Куда что закидывали, какие версии программ?

добрый день. не могу сообразить где взять вашу программу под андроид. спасибо!

добрый день я работаю курьером и часто нужно добавлять по много меток за раз вопрос возможно добавление списка адресов с отображением виде меток если да тоо как это сделать

Вы про веб-версию или android?
Если вы про веб, то заходите в "Мои карты" на Яндексе, создаете новую карту, добавляете туда хоть миллион меток, а дальше по инструкции добавляете эту карту в список веб-версии и экспортируете db. Или же можете воспользоваться платной версией Android-приложния, в которой можно напрямую ссылку на Мои карты добавлять в приложение.

да вот только когда надо в день добавить 200 меток это не так просто ибо добавляются они по одной. в начале месяца сбросили базу 1400 точек

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

  • 1