DiSK Packaging
DiSK Packaging je riešenie pre efektívnu distribúciu mapových podkladov portálu FreemapSlovakia. Využíva synchronizáciu pomocou balíčkov veľkosti najviac 128 tiles, ktoré obsahujú iba zmenené tiles. Využitím tohoto mechanizmu je možné dosiahnuť vždy aktuálne mapové podklady na viacerých serveroch a týmto v konečnej fáze efektívne rozložiť nároky na traffic na viac serverov.
Na synchronizáciu sa využíva jednoduché API a samotné mapové podklady sú prenášané v balíčkoch vo formáte mbtiles.org/ mbtiles. K dispozícii je referenčný klient (DiSK Packaging Client - DPC) napísaný v PHP.
K dispozícii sú tri základné vrstvy A (atlas), T(turistika) a C (cyklo). Priemerná veľkosť dát pre jednotlivé vrstvy je 8 GB, 19GB a 19GB, do ktorej je zahrnuté Slovensko a blízke okolie v zoom-leveloch od 8 (~1:1 500 000) po 16 (~1:6 000).
Inštalácia klienta
Potrebné knižnice:- php5-cli
- php5-sqlite
- php5-gd
- apache, lighttpd, nginx - webový server pre servovanie tiles do sveta, nie je potrebné skriptovanie, servuje sa statický obsah
Potrebné nastavenia v dpc.php (1.1):
dočasný adresár, kam sa zmestí pár mega (do 20MB) SQLite databázy, ideálne typu ramdisk (napr. tmpfs)
$DPC->SetTempDir("tmp");
kam sa majú uložit tiles (dorobí adresár T,A alebo C),
$DPC->SetTargetPath("/home/www/dpc-tiles");
prístupový kľúč k API
$DPC->SetAccessKey("get_your_key_from_freemap");
nastavenie či chceme png, jpeg, alebo oboje
$DPC->AddOutputFormat("png");
$DPC->AddOutputFormat("jpeg");
$DPC->AddOutputFormat("jpeg");
vrstvy, ktorá sa majú zrkadliť (A -atlas,T-turistika,C-cyklo)
$DPC->AddLayer('A');
$DPC->AddLayer('T');
$DPC->AddLayer('C');
$DPC->AddLayer('T');
$DPC->AddLayer('C');
voľba, ktoré zoom levels sa majú zrkadliť
$DPC->SetZoomLevels(8,16);
Serverové API
Všetky popísané volania sú relatívne k http://www.freemap.sk/api/0.1/- disk/package/status - vracia stavovú informáciu, s popisom dostupných vrstiev, a číslami dostupných balíčkov, neskôr nemusia byť dostupné balíčky od čísla 1
{ "source":"Freemap Slovakia",
"attribution":"CC-BY-SA 2.0.",
"layers":{
"layer0":{"name":"A","description":"Autoatlas"},
"layer1":{"name":"T","description":"Turistika"},
"layer2":{"name":"C","description":"Cyklomapa"}
},
"min_package_id":"1",
"max_package_id":"17654",
"min_package_timestamp":"2011-07-02 17:08:48",
"max_package_timestamp":"2011-12-16 02:54:00"
}
"attribution":"CC-BY-SA 2.0.",
"layers":{
"layer0":{"name":"A","description":"Autoatlas"},
"layer1":{"name":"T","description":"Turistika"},
"layer2":{"name":"C","description":"Cyklomapa"}
},
"min_package_id":"1",
"max_package_id":"17654",
"min_package_timestamp":"2011-07-02 17:08:48",
"max_package_timestamp":"2011-12-16 02:54:00"
}
- disk/package/get?id=PackageID&layer=layer%name&hash=access_key - vráti mbtiles súbor pre balíček so zadaným PackageID, pre zadanú vrstvu
Na čo je to dobré?
Zrkadlenie na vlastný server
- ak sa Vám páči štýl Freemap a máte voľný disk a prenosovú kapacitu, privítame rozloženie záťaže aj na váš server
- prevádzkujete vlastný portál, kde využívate mapy a chcete mat istotu dostupnosti mapových podkladov nezávisle od stavu freemap.sk
Zrkadlenie na lokálny disk
- jednoznačná výhoda pre tých čo mapujú pre OSM/Freemap potrebujú často sťahovať mapy, mať kópiu Freemap mapových podkladov v custom vrstve v programe MOBAC s možnosťou rýchlo si vytvoriť mapu v takmer ľubovolnom formáte, bez obmedzenia rýchlosti alebo množstva dát
Jednoduché demo na testovanie mirroru
Takto má vyzerať fungujúci mirror http://sandbox.freemap.sk/dpc_test/. Nastavenie je jednoduché:- pre webserver s podporou php nastaviť TargetPath ako virtuálny adresár
- do neho rozbaliť obsah súboru http://sandbox.freemap.sk/dpc_test/dpc_test_package.zip
- v prehliadači zadať URL http://vas_server.sk/vas_dpc_virtualny_adresar/