SASGIS - Доработка карты (ZMP)
View Issue Details
0001840Доработка карты (ZMP)[All Projects] Хотелкаpublic28-02-2013 14:4024-07-2014 12:01
mirridius 
zed 
normalfeaturealways
resolvedfixed 
Windows7Ultimate
0001840: Выкачивание тайлов Яндекс кеша для Москвы и Питера в 256*256
Для Москвы, Питера (и возможно других крупных городов) Яндекс сделал специальный кеш 256 на 256, который начинается с 12 или 13 уровня. Как бы его выкачать в sas.планету? Разница с кешем, склеенным из 128-пиксельных кусочков, на прикрепленном изображении.
мяк, яндекс
related to 0001842new  SAS.Планета Обработка сложного post-запроса для выкачивания Яндекс.карт 256*256 
png tiles256.PNG (534,742) 28-02-2013 14:40
https://bugtracker.sasgis.org/file_download.php?file_id=1284&type=bug
txt full_log.txt (60,186) 01-03-2013 07:08
https://bugtracker.sasgis.org/file_download.php?file_id=1286&type=bug
txt log_novehicles.txt (39,505) 01-03-2013 07:51
https://bugtracker.sasgis.org/file_download.php?file_id=1287&type=bug
? log_Wireshark (263,092) 01-03-2013 14:23
https://bugtracker.sasgis.org/file_download.php?file_id=1288&type=bug
png 1.png (21,275) 01-03-2013 14:56
https://bugtracker.sasgis.org/file_download.php?file_id=1290&type=bug
png

png tiles.png (24,509) 01-03-2013 14:59
https://bugtracker.sasgis.org/file_download.php?file_id=1291&type=bug
png

png tiles12x2.png (32,089) 01-03-2013 15:15
https://bugtracker.sasgis.org/file_download.php?file_id=1292&type=bug
png

? YaMapMobile.zmp (3,480) 06-03-2013 19:27
https://bugtracker.sasgis.org/file_download.php?file_id=1301&type=bug
? log_WS_Narodnaya (286,414) 07-03-2013 12:20
https://bugtracker.sasgis.org/file_download.php?file_id=1302&type=bug
? YaMapMobileNarod.zmp (2,856) 07-03-2013 12:37
https://bugtracker.sasgis.org/file_download.php?file_id=1304&type=bug
Issue History
28-02-2013 14:40mirridiusNew Issue
28-02-2013 14:40mirridiusFile Added: tiles256.PNG
28-02-2013 14:50zedNote Added: 0010692
28-02-2013 14:50zedProjectSAS.Планета => Доработка карты (ZMP)
28-02-2013 14:58mirridiusNote Added: 0010693
28-02-2013 15:04zedNote Added: 0010694
28-02-2013 15:20mirridiusNote Added: 0010695
28-02-2013 16:29zedNote Added: 0010696
28-02-2013 16:40mirridiusNote Added: 0010697
28-02-2013 17:20mirridiusNote Added: 0010701
28-02-2013 17:23mirridiusNote Added: 0010702
28-02-2013 17:27mirridiusNote Deleted: 0010701
28-02-2013 17:27mirridiusNote Deleted: 0010702
28-02-2013 17:56mirridiusNote Added: 0010704
01-03-2013 05:55zedNote Added: 0010713
01-03-2013 07:08mirridiusFile Added: full_log.txt
01-03-2013 07:09mirridiusNote Added: 0010717
01-03-2013 07:51mirridiusNote Added: 0010721
01-03-2013 07:51mirridiusFile Added: log_novehicles.txt
01-03-2013 07:51mirridiusNote Edited: 0010717bug_revision_view_page.php?bugnote_id=10717#r5182
01-03-2013 10:58zedNote Added: 0010732
01-03-2013 11:26mirridiusNote Added: 0010736
01-03-2013 11:30zedNote Added: 0010737
01-03-2013 11:32zedNote Edited: 0010737bug_revision_view_page.php?bugnote_id=10737#r5191
01-03-2013 11:44zedNote Added: 0010738
01-03-2013 11:45zedNote Edited: 0010738bug_revision_view_page.php?bugnote_id=10738#r5193
01-03-2013 14:20mirridiusNote Added: 0010742
01-03-2013 14:23mirridiusFile Added: log_Wireshark
01-03-2013 14:23mirridiusNote Added: 0010743
01-03-2013 14:26mirridiusFile Added: log_Wireshark2.txt
01-03-2013 14:27mirridiusNote Edited: 0010743bug_revision_view_page.php?bugnote_id=10743#r5195
01-03-2013 14:56TolikNote Added: 0010744
01-03-2013 14:56zedNote Added: 0010745
01-03-2013 14:56zedFile Added: 1.png
01-03-2013 14:57zedFile Deleted: log_Wireshark2.txt
01-03-2013 14:58zedNote Added: 0010746
01-03-2013 14:59TolikFile Added: tiles.png
01-03-2013 14:59TolikNote Added: 0010747
01-03-2013 15:00TolikNote Edited: 0010747bug_revision_view_page.php?bugnote_id=10747#r5197
01-03-2013 15:01zedNote Edited: 0010745bug_revision_view_page.php?bugnote_id=10745#r5199
01-03-2013 15:02TolikNote Edited: 0010747bug_revision_view_page.php?bugnote_id=10747#r5200
01-03-2013 15:04TolikNote Edited: 0010747bug_revision_view_page.php?bugnote_id=10747#r5201
01-03-2013 15:08mirridiusNote Added: 0010748
01-03-2013 15:09zedNote Added: 0010749
01-03-2013 15:11zedNote Added: 0010750
01-03-2013 15:14mirridiusNote Added: 0010751
01-03-2013 15:15mirridiusNote Edited: 0010751bug_revision_view_page.php?bugnote_id=10751#r5203
01-03-2013 15:15TolikFile Added: tiles12x2.png
01-03-2013 15:17TolikNote Added: 0010752
01-03-2013 15:19zedNote Added: 0010753
01-03-2013 15:21mirridiusNote Added: 0010754
01-03-2013 15:21TolikNote Added: 0010755
02-03-2013 13:08zedNote Added: 0010776
02-03-2013 13:19vasketsovNote Added: 0010777
02-03-2013 13:20zedNote Added: 0010778
06-03-2013 19:27zedFile Added: YaMapMobile.zmp
06-03-2013 19:34zedNote Added: 0010819
06-03-2013 19:35zedNote Edited: 0010819bug_revision_view_page.php?bugnote_id=10819#r5233
07-03-2013 07:24mirridiusNote Added: 0010827
07-03-2013 07:34mirridiusNote Edited: 0010827bug_revision_view_page.php?bugnote_id=10827#r5239
07-03-2013 07:34mirridiusNote Edited: 0010827bug_revision_view_page.php?bugnote_id=10827#r5240
07-03-2013 07:35mirridiusNote Added: 0010830
07-03-2013 11:24zedNote Added: 0010836
07-03-2013 12:20mirridiusFile Added: log_WS_Narodnaya
07-03-2013 12:21mirridiusNote Added: 0010839
07-03-2013 12:37zedFile Added: YaMapMobileNarod.zmp
07-03-2013 12:38zedNote Added: 0010841
07-03-2013 13:40mirridiusNote Added: 0010843
07-03-2013 13:42zedStatusnew => resolved
07-03-2013 13:42zedResolutionopen => fixed
07-03-2013 13:42zedAssigned To => zed
14-11-2013 08:39vdemidovRelationship addedrelated to 0001842
24-07-2014 12:01zedTag Attached: мяк
24-07-2014 12:01zedTag Attached: яндекс

Notes
(0010692)
zed   
28-02-2013 14:50   
Есть возможность подсмотреть запросы url-ов откуда эти тайлы качаются?
(0010693)
mirridius   
28-02-2013 14:58   
получается... сниффер на мобильное устройство? увы не знаю как реализовать( Я так понимаю, маска запроса для 128-пиксельных тайлов ведь была как то определена, ведь не сам же Яндекс рассказал как у него выкачивать кеш. Может здесь можно аналогичный метод использовать?
(0010694)
zed   
28-02-2013 15:04   
>сниффер на мобильное устройство?
В идеале. Или через прокси пустить.

>Я так понимаю, маска запроса для 128-пиксельных тайлов ведь была как то определена
Нет. SAS качает оттуда же, откуда качает браузер на компьютере. А вот откуда качает сам мобильный Яндекс, науке не известно.
(0010695)
mirridius   
28-02-2013 15:20   
да, если бы был прокси, я бы смог настроить девайс для работы через него. Но где взять проксю со сниффером?
(0010696)
zed   
28-02-2013 16:29   
HandyCache
(0010697)
mirridius   
28-02-2013 16:40   
Ок, буду пробовать
(0010704)
mirridius   
28-02-2013 17:56   
Вот таким запросом сопровождается загрузка тайлов:

http://mobile.maps.yandex.net/printer?uuid=3d32b20481b1df262ada6899540c8701&protocol_ver=2&lang=ru-RU&
(0010713)
zed   
01-03-2013 05:55   
Нужен полный лог запросов с начала запуска МЯК и желательно с HTTP-заголовками. То что вы сейчас привели - это обрезок url, который абсолютно бесполезен.
(0010717)
mirridius   
01-03-2013 07:09   
(edited on: 01-03-2013 07:51)
Ок, прикрепил лог с начала запуска.

(0010721)
mirridius   
01-03-2013 07:51   
Прикрепил лог, собранный с отключенными данными об общественном транспорте, только карта.
(0010732)
zed   
01-03-2013 10:58   
Тайлы запрашиваются POST запросами, так что нужно ещё и тело запроса. Если оно ещё окажется и зашифрованным, то будет полный абзац :(

POST /printer?uuid=3d32b20481b1df262ada6899540c8701&protocol_ver=2&lang=ru-RU& HTTP/1.1
Host: mobile.maps.yandex.net
Accept: */*
Accept-Encoding: gzip
Content-Type: multipart/form-data; boundary=----------------------------------------------54040180427415745838800831
Accept-Language: ru
lang: ru-RU
Content-Length: 1085
Connection: keep-alive
User-Agent: YandexMaps/1003 CFNetwork/609.1.4 Darwin/13.0.0

Сможете отснифить хотя бы парочку тайловых запросов?
(0010736)
mirridius   
01-03-2013 11:26   
Если пойму как, то могу и не парочку) Кстати, вот какая мысль. Вы можете поднять у себя прокси со всеми необходимыми снифферами? Если да, то я могу ведь не только локальный прокси прописать, но и удаленный. Вы то сами точно будете знать что и как сниффить.
(0010737)
zed   
01-03-2013 11:30   
(edited on: 01-03-2013 11:32)
http://www.ieinspector.com/httpanalyzer/ или http://www.wireshark.org/
Первый по-проще, но платный (есть на рутрекере или 15-ти дневная триалка от производителя), второй фришный, но по-первости с ним может быть сложно.

(0010738)
zed   
01-03-2013 11:44   
(edited on: 01-03-2013 11:45)
Да, раз уж дошло до снифера, и поскольку ответ сервера тоже может быть зашифрован (приходит "Content-Type: application/octet-stream"), прикрепите сюда и его.

(0010742)
mirridius   
01-03-2013 14:20   
В каком виде лучше экспортировать из wireshark?
(0010743)
mirridius   
01-03-2013 14:23   
(edited on: 01-03-2013 14:27)
Прикрепил RAW и ASCII

(0010744)
Tolik   
01-03-2013 14:56   
Из Wireshark надо не экспортировать, а сохранять в его родном формате, .cap
(0010745)
zed   
01-03-2013 14:56   
(edited on: 01-03-2013 15:01)
Да, интересная штука получается, но боюсь что SAS не сможет оттуда качать.

Во-первых, это сложный post-запрос (multipart/form-data), а во-вторых, это бинарный ответ сервера. Т.е. в нашем случае нужна специфическая подготовка запроса и не менее специфическая обработка ответа.

В запросе фигурирует обычная xml:

<?xml version="1.0" ?>
<tiles>
<tile x="4950" y="2568" zoom="12" layer="map" size="1" />
<tile x="4951" y="2571" zoom="12" layer="map" size="1" />
<tile x="4952" y="2571" zoom="12" layer="map" size="1" />
<tile x="4951" y="2567" zoom="12" layer="map" size="1" />
</tiles>

В ответ приходят эти 4 тайла, в виде тайловых записей кэша МЯК (светится YTLD) и в общем-то достать их оттуда не очень сложно (один тайл прикрепил в аттач), но не САСом.

(0010746)
zed   
01-03-2013 14:58   
>Из Wireshark надо не экспортировать, а сохранять в его родном формате, .cap
Вообще - да, но мне хватило RAW версии.
(0010747)
Tolik   
01-03-2013 14:59   
(edited on: 01-03-2013 15:04)
А я для сравнения приложил наш обычный тайл (tiles.png)
http://vec01.maps.yandex.net/tiles?l=map&x=4950&y=2568&z=13&g=Gaga

Отличается мелкими надписями, на супер-пупер-ретине не видать ни фига?

(офтоп) А RAW чем открывается?

(0010748)
mirridius   
01-03-2013 15:08   
to zed
То есть, еслия правильно понял, нынешнего функционала сас.планеты не достаточно чтобы выкачивать такие тайлы? Планируется ли появление такого функционала в будущем?
(0010749)
zed   
01-03-2013 15:09   
>Отличается мелкими надписями, на супер-пупер-ретине не видать ни фига?
Многие и на десктопе просили надписи по-крупнее. Тем более, что в запросе есть некий size="1" - может влияет на размер надписей? Было бы интересно поиграться...

>А RAW чем открывается?
Блокнотом или WinHex :)
(0010750)
zed   
01-03-2013 15:11   
>То есть, еслия правильно понял, нынешнего функционала сас.планеты не достаточно чтобы выкачивать такие тайлы?
Да.

>Планируется ли появление такого функционала в будущем?
По-моему, в хотелках где-то были предложения по пост-обработке ответов сервера, но не скажу точно. Т.е. реально этим сейчас никто не планирует заниматься, на сколько я знаю (тем более, ради одной карты). Но в будущем - вполне.
(0010751)
mirridius   
01-03-2013 15:14   
(edited on: 01-03-2013 15:15)
Ну, строго говоря, карт как минимум две. Народная еще. А вот то, что никто не планирует - это печаль. Очень хотелось бы добраться до этих тайлов.

(0010752)
Tolik   
01-03-2013 15:17   
Приложил ещё tiles12x2.png - это 1/4 тайла меньшего зума, увеличенная вдвое алгоритмом bicubic.
Чисто из любопытства.
Получилось то же самое, только низкого качества.
(0010753)
zed   
01-03-2013 15:19   
Создайте хотелку (если ещё нет), может кто таки заинтересуется.

А простейший вариант - поднять самописный проксик на perl/php, как многие тут делают для специфических сервисов и не ждать до 20-го года.
(0010754)
mirridius   
01-03-2013 15:21   
Ок, будем изучать вопрос. Спасибо за помощь! А хотелку тем не менее напишу)
(0010755)
Tolik   
01-03-2013 15:21   
А на http://ymm.sytes.net/ ещё не выкачали этот кэш?
(0010776)
zed   
02-03-2013 13:08   
Кстати, используя фичу из тикета 0001841 уже теоретически возможно качать и САСом - загружать и сохранять тайл на диск скриптом, а САСу отдавать путь к тайлу.
(0010777)
vasketsov   
02-03-2013 13:19   
>а САСу отдавать путь к тайлу
именно это пока и не сделано (((
(0010778)
zed   
02-03-2013 13:20   
Ну, можно и боди исправить и отдать уже чистый jpeg. Так даже лучше - САС положит его в свой кэш самостоятельно.
(0010819)
zed   
06-03-2013 19:34   
(edited on: 06-03-2013 19:35)
Чтобы запустить zmp из аттача и увидеть карту нужно:
1. Установить ActivePerl x86
2. В SASPlanet.ini добавить секцию:
[ScriptControl]
UseScriptControl=1
3. Ну и zmp, соответственно положить в папку Maps

После чего, в списке карт появится: "Яндекс -> Карта (МЯК)".

P.S. Над Москвой (и Питером?), тайлы показывает чёткие начиная с z12. В остальных местах и зумах приходит грубая интерполяция.

P.P.S. Ах, да - работает только в SACS

(0010827)
mirridius   
07-03-2013 07:24   
(edited on: 07-03-2013 07:34)
Все работает отлично! И в Москве, и в Питере. Спасибо еще раз!

(0010830)
mirridius   
07-03-2013 07:35   
Еще б zmp c народной картой только.
(0010836)
zed   
07-03-2013 11:24   
А какие там запросы на народную идут?
(0010839)
mirridius   
07-03-2013 12:21   
Прикрепил raw
(0010841)
zed   
07-03-2013 12:38   
Готово. Там всего одна буковка в запросе добавляется :)
(0010843)
mirridius   
07-03-2013 13:40   
Все работает. Спасибо!)