metaclass: (Default)
[personal profile] metaclass
Если кому интересно, как подключить спутниковые карты РБ к maemo mapper, то Tile source должен иметь такие параметры:
URL:http://wms.latlon.org/?request=GetTile&layers=spot&x=%2$d&y=%3$d&z=%1$d
Image type: JPEG
Type: XYZ_INV

Прикол в следующем: для этого url формата нужен порядок параметров x,y,z. У маппера есть такой тип репозитория, НО у него для Z указывается такое число: zoom - (MAX_ZOOM - 16). А нам надо число, аналогичное openstreetmap (MAX_ZOOM + 1 - zoom) - которое там есть в формате XYZ_INV, но у этого формата порядок параметров z,x,y (как в урл для osm /%d/%d/%d.png). Поэтому, чтобы оно заработало - нужно поменять порядок параметров с помощью модификаторов в плейсхолдерах формата %n$d, где n - номер параметра в списке (начиная с единицы).

Пришлось курить исходники маппера и доку на printf.

PS: В maemo-mapper есть еще один шызо-хак. Не совсем понятно, есть ли он в новой версии, но в старых точно есть - при установке url, если оно обнаруживает %0d в формате, то ставит нужный тип репозитория сам. Поэтому можно в конец url дописать &fake=%0d что вызовет срабатывание хака и установку типа репы, если этой настройки нету в диалоге.

PPS: mappero в N900 - это версия 3.1, там все сделано культурно, с выбором типа репы. А более старые версии 2.х - там тип репы выбирается через шызохак:

maemo-mapper-2.6.2\src\maps.c,809
        if(strstr(url, "service=wms"))
            repo->type = REPOTYPE_WMS;
        else if(strstr(url, "%s"))
            repo->type = REPOTYPE_QUAD_QRST;
        else if(strstr(url, "%0d"))
            repo->type = REPOTYPE_XYZ_INV;
        else if(strstr(url, "%-d"))
            repo->type = REPOTYPE_XYZ_SIGNED;
        else if(strstr(url, "%0s"))
            repo->type = REPOTYPE_QUAD_ZERO;
        else
            repo->type = REPOTYPE_XYZ;


В общем, я сам похожую хуиту делал по молодости в оперденях и теперь мне очень стыдно.

PPPS: У меня очень тяжкие нелады с головой, в url же порядок параметров пофиг.

url: http://wms.latlon.org/?request=GetTile&layers=spot&z=%d&x=%d&y=%0d

Date: 2010-10-12 08:38 pm (UTC)
From: [identity profile] jek-hor.livejournal.com
Ребе, жжоте. А написать "http://wms.latlon.org/?request=GetTile&layers=spot&z=%2$d&x=%3$d&y=%1$d" религия не позволяет? :)

Date: 2010-10-12 08:43 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Мне надо лечить голову от лишней зауми, это как факт.

Date: 2010-10-12 10:39 pm (UTC)
From: [identity profile] wildman.livejournal.com
:) вы нам и таким доставляете неимоверно :) не надо лечиться!

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 5th, 2025 07:39 am
Powered by Dreamwidth Studios