PC Ekspert Forum

PC Ekspert Forum (https://forum.pcekspert.com/index.php)
-   Web dizajn, programiranje i ostalo (https://forum.pcekspert.com/forumdisplay.php?f=39)
-   -   Mape (https://forum.pcekspert.com/showthread.php?t=240299)

Kulja 13.11.2012. 12:21

Mape
 
Nisam siguran postam li na pravom mjestu pa ako treba admin neka slobodno makne.

Htio bi "google" mapu skinut za offline gledanje. Da budem konkretniji, htio bih ovu map skinut u cijelosti

Koliko sam uspio primijetiti to je u biti custom google mapa gdje su slike razmještene po 0,1,2,3... folderima. Dakle standard.

Kako doći do toga (ne trebaju mi anotacije na mapama samo tileovi)?

Zahvaljujem!

SilentException 13.11.2012. 14:10

Mape su u folderima po zoom levelu. Ime datoteke je column_row.png. Column je 0..x, Row 0..y.

Dakle format je:
/tiles/%zoom_level%/%column%_%row%.png
Server: http://static.dayzdb.com/

Prvi zoom level ima 2 stupca i 2 reda, dakle
/tiles/1/0_0.png
/tiles/1/0_1.png
/tiles/1/1_0.png
/tiles/1/1_1.png

Zadnji, sesti zoom level ima 64 stupca, 54 reda, dakle:
/tiles/6/0_0.png
..
/tiles/6/63_53.png

Ostali zoom leveli su izmedu.
Eto, sad napiši skriptu sa 3 for petlje, jedna ide od 1 do 6, druga od 0 do 63, treca od 0 do 53, i sa wget-om sejvaj png fajlove :)

Edit: buduci da sam danas jako dobar, evo BAT skripta, treba ti samo wget.exe u istom folderu. Kad skripta zavrsi (cca 10-30min), imat ces subfoldere 1,2,3,4,5,6 i unutra PNG fajlove.

Code:

@echo off

SET /a i=1

:loop1
IF %i%==7 GOTO END
REM echo This is iteration %i% >> out
SET /a j=0
SET /a maxj=1000
SET /a maxk=1000
GOTO LOOP2
:loop1next
SET /a i=%i%+1
GOTO LOOP1

:loop2
IF %j%==64 GOTO LOOP1NEXT
IF %j% GTR %maxj% GOTO LOOP1NEXT
REM echo This is iteration %i% %j% >> out
SET /a k=0
GOTO LOOP3
:loop2next
SET /a j=%j%+1
GOTO LOOP2

:loop3
IF %k%==54 GOTO LOOP2NEXT
IF %k% GTR %maxk% GOTO LOOP2NEXT
REM echo This is iteration %i% %j% %k% >> out
wget -P %i% http://static.dayzdb.com/tiles/%i%/%j%_%k%.png
IF %ERRORLEVEL% NEQ 0 GOTO SETMAX
:loop3next
SET /a k=%k%+1
GOTO LOOP3

:setmax
REM echo setmax
IF %maxk% EQU 1000 GOTO LOOP3MAX
IF %maxj% EQU 1000 GOTO LOOP2MAX

:loop2max
REM echo loop2max
SET /a maxj=%j%-1
GOTO :loop2next

:loop3max
REM echo loop3max
SET /a maxk=%k%-1
GOTO :loop3next

:end
echo Done!


Kulja 13.11.2012. 18:45

Citiraj:

Autor SilentException (Post 2275186)
Mape su u folderima po zoom levelu. Ime datoteke je column_row.png. Column je 0..x, Row 0..y.

Dakle format je:
/tiles/%zoom_level%/%column%_%row%.png
Server: http://static.dayzdb.com/

Prvi zoom level ima 2 stupca i 2 reda, dakle
/tiles/1/0_0.png
/tiles/1/0_1.png
/tiles/1/1_0.png
/tiles/1/1_1.png

Zadnji, sesti zoom level ima 64 stupca, 54 reda, dakle:
/tiles/6/0_0.png
..
/tiles/6/63_53.png

Ostali zoom leveli su izmedu.
Eto, sad napiši skriptu sa 3 for petlje, jedna ide od 1 do 6, druga od 0 do 63, treca od 0 do 53, i sa wget-om sejvaj png fajlove :)

Edit: buduci da sam danas jako dobar, evo BAT skripta, treba ti samo wget.exe u istom folderu. Kad skripta zavrsi (cca 10-30min), imat ces subfoldere 1,2,3,4,5,6 i unutra PNG fajlove.

Code:

@echo off

SET /a i=1

:loop1
IF %i%==7 GOTO END
REM echo This is iteration %i% >> out
SET /a j=0
SET /a maxj=1000
SET /a maxk=1000
GOTO LOOP2
:loop1next
SET /a i=%i%+1
GOTO LOOP1

:loop2
IF %j%==64 GOTO LOOP1NEXT
IF %j% GTR %maxj% GOTO LOOP1NEXT
REM echo This is iteration %i% %j% >> out
SET /a k=0
GOTO LOOP3
:loop2next
SET /a j=%j%+1
GOTO LOOP2

:loop3
IF %k%==54 GOTO LOOP2NEXT
IF %k% GTR %maxk% GOTO LOOP2NEXT
REM echo This is iteration %i% %j% %k% >> out
wget -P %i% http://static.dayzdb.com/tiles/%i%/%j%_%k%.png
IF %ERRORLEVEL% NEQ 0 GOTO SETMAX
:loop3next
SET /a k=%k%+1
GOTO LOOP3

:setmax
REM echo setmax
IF %maxk% EQU 1000 GOTO LOOP3MAX
IF %maxj% EQU 1000 GOTO LOOP2MAX

:loop2max
REM echo loop2max
SET /a maxj=%j%-1
GOTO :loop2next

:loop3max
REM echo loop3max
SET /a maxk=%k%-1
GOTO :loop3next

:end
echo Done!


Hvala, srce si!

Nikako da ti odgovorim. S obzirom da nisam bas na ti s skriptama isao sam to rijesit u c#. Desetak linija koda ali sporo za poludit jer nisam bas isao optimizirat. Ostavio sam da to radi i otisao na faks pa se evo s faksa javljam :) Nadam se da ce bit gotovo kad dodjem :) Javim ti.

Jebiga da sam se prije javio ne bi te mucio da pises skriptu, moje isprike.

Pusa

Kulja 14.11.2012. 21:59

Samo da javim da sam sredio sve što sam htio. U biti sam htio prebaciti tu cijelu mapu u .mbtiles datoteku jer mi to treba za daljnji rad. Za sada sve radi. SilentException hvala ti još jednom!


Sva vremena su GMT +2. Sada je 16:23.

Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 1999-2024 PC Ekspert - Sva prava pridržana ISSN 1334-2940
Ad Management by RedTyger