Aktualizacja:
Najnowsza instrukcja pobierania zdjęć lotniczych i map topograficznych Małopolski dostępna jest tutaj. Zalecam jednak do zapoznania się również z poniższym wpisem.
W marcu pisałem o tym, że istnieje prosty sposób na ściągnięcie zdjęć lotniczych Małopolski. Ponieważ post ten cieszy się dużym zainteresowaniem, a wnosi tylko namiastkę, postanowiłem napisać tu coś więcej w tej kwestii...
Zacznijmy od programu, jak już pisałem - autorstwa Klokana Petra Přidala. Ażeby go odpalić potrzebny jest zainstalowany w systemie Python wraz z biblioteką PIL. W Waszej ulubionej dystrybucji Linuksa już zapewne to jest, a jeśli nie, równie łatwo i szybko można to nabyć. Użytkownicy windows znajdą wersję Pythona również na stronie projektu.
Po instalacji Pythona, należy zainstalować PIL'a. Użytkownicy Linuksa na pewno już wiedzą jak to się robi, z resztą niektóre dystrybucje instalują to własnym managerem pakietów. Dla użytkowników windows sprawa jest równie prosta, żeby nie przeciągać, tutaj na przykład znajduje się instrukcja.
Teraz można przystąpić do pierwszego uruchomienia zoomify_downloader.py. W Linuksie, często wystarczy nadać uprawnienia wykonywania dla pliku, po czym odpalić go ./zoomify_downloader.py. W windowsach oraz Linuksach, dla których to nie działa, program wykonujemy poprzez wpisanie python zoomify_downloader.py. Program wyświetli notkę jak go używać oraz bardzo ważne zdanie:
Always contact owner of page before ANY USAGE of produced image!
Pamiętajmy o prawach autorskich i pokrewnych!
Żeby ściągnąć sobie zdjęcia o zadanym stopniu powiększenia wystarczy podać programowi adres do strony, gdzie zoomify jest zagnieżdżone * oraz poziom powiększenia. Warto zaznaczyć, że program jest tak napisany, że nie składa obrazów jeśli zadamy mu stopień powiększenia większy od 6.
* - nie działa dla wszystkich stron.
Wrotamałopolski - bo do tego przecież zmierzamy należą do *, a więc trzeba sobie poradzić troszeczkę intelektem.
W źródle programu możemy zauważyć linijki:
if args[0].endswith('ImageProperties.xml'):
url = args[0],
co znaczy, że jeżeli podany do programu adres kończy się plikiem, który trzyma ustawienia zdjęcia, wygenerowanym przez zoomify, program nie parsuje strony w poszukiwaniu jego, tylko od razu przystępuje do ściągania.
Gdzie więc jest ten plik?
Załóżmy, że chcemy mieć u siebie zdjęcie Gminy Gnojnik. Wchodzimy więc na stronę http://mapy2.wrotamalopolski.pl/Default.aspx?gmina=gnojnik i patrzymy w źródło strony, obserwując parametry zagnieżdżonej przeglądarki zoomify:
PARAM NAME='FlashVars' VALUE='zoomifyImagePath=/img/g/gnojnik/' bgcolor='#666666'.
Sprawdźmy więc adres: http://mapy2.wrotamalopolski.pl/img/g/gnojnik/. Oczywiście, nie ma dostępu do listingu katalogu, dodajmy więc na koniec ImageProperties.xml - działa, spróbujmy więc wkleić taki parametr skryptowi. Załóżmy, że chcemy ściągnąć najmniejszy obrazek do aktualnego katalogu.
Dla Linux:
python zoomify_downloader.py http://mapy2.wrotamalopolski.pl/img/g/gnojnik/ImageProperties.xml ./ -l 1
Dla Windows:
python zoomify_downloader.py http://mapy2.wrotamalopolski.pl/img/g/gnojnik/ImageProperties.xml . -l 1
i już, jakby powiedziała to moja blondynkowata koleżanka: Chwileczkę, coś mi się tu robi, zaraz będę wiedziała, czy mi się udało, tak i my za chwileczkę będziemy mogli to wiedzieć.
Dla niecierpliwiących się trochę - ja powiem, że DZIAŁA (w załączeniu nie będzie dowodu, bo szanuję prawa autorskie - te zdjęcia MOŻNA KUPIĆ i na prawdę to polecam).
Jeśli ktoś zapragnie ściągnąć mapę na maksymalnym powiększeniu i złożyć ją programem, a posiada dużo RAM i biblioteka PIL da sobie radę, musi niestety troszeczkę zmodyfikować źródło skryptu:
if level <= 6: na if level <= max**:
** - to maksymalne dostępne powiększenie zdjęcia, zanalizowane przez program (na podstawie piramidy).
Nie namawiam nikogo do prób, ale życzę miłej zabawy.