Maemo mapper и спутник с latlon.og
Если кому интересно, как подключить спутниковые карты РБ к 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
В общем, я сам похожую хуиту делал по молодости в оперденях и теперь мне очень стыдно.
PPPS: У меня очень тяжкие нелады с головой, в url же порядок параметров пофиг.
url: http://wms.latlon.org/?request=GetTile&layers=spot&z=%d&x=%d&y=%0d
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
no subject
(no subject)
(no subject)
no subject
no subject
А с таким урлом как у тебя он пытается забрать что-то вроде этого
http://wms.latlon.org/?request=GetTile&layers=spot&x=10341&y=2&z=18905
и получает internal server error.
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
no subject
Лучше видно.
no subject
Оно бы ладно, если бы всё документировано было. А то пришлось исходники курить.
(no subject)
no subject
(no subject)
(no subject)
(no subject)
no subject
(no subject)
(no subject)
(no subject)