Pod adresem www.mapywig.org znajduje się archiwum map wydanych przez Wojskowy Instytut Geograficzny (WIG) w latach 1919-1939. Wydawane wówczas mapy (szczególnie edycja z końca lat trzydziestych) są do dzisiaj uważane za jedne z najlepszych na świecie dzieł sztuki kartograficznej i są doskonałym źródłem wiedzy o Polsce miedzywojennej (czyli nie znajdziemy tam map Warmii i Mazur czy Pomorza Zachodniego).
Cele projektu są ambitne:
W tej chwili1) dostępnych jest m.in. ponad 530 plików zawierających zeskanowane mapy 1:100'000 (tzw. "setki")! Niestety serwis nie oferuje możliwości hurtowego pobierania danych i trzeba cierpliwie klikać na kolejne linki. Zajęcie trochę nudne. Ponieważ "potrzeba jest matką wynalazków" napisałem prosty skrypt w języku Rebol/VIEW, który pobierze wszystkie mapy i zapisze na dysk. Uwaga! Komplet 535 map zajmuje ponad 7GB!
W skrócie:
rebol [ title: "WIG" description: "Pobiera mapy 1:100'000 z serwisu mapywig.org" author: "Piotr Gapiński" date: 2007-07-27 license: 'LGPL ] QUIET: false ONLY-DPI300: yes DPI-DIR: %300DPI/ page: read url: http://www.mapywig.org/viewpage.php?page_id=7 any [ parse/all page [thru <table> copy wig to </table> to end] do [ print ["brak listy map w serwisie" first split-path url] halt ] ] url: copy [] make-dir DPI-DIR parse/all wig [some [thru {href="} copy map to {">} (append url to-url map)] to end] remove-each map url [all [ONLY-DPI300 (not found? find map "300dpi")]] foreach map unique url [ reduce decode-cgi join "new-name=" second split-path (to-file map) file: to-file new-name path: either found? find file "300DPI" [join DPI-DIR file] [file] either not exists? path [ print [ pick ["OK" "ERROR"] second reduce [ time-elapsed: now to-logic either QUIET [attempt [write/binary path read/binary/direct map true]] [request-download/to map path] time-elapsed: difference now time-elapsed ] map time-elapsed "sec." ] attempt [rename path join (first split-path path) new-name] recycle ][ print ["SKIP" map] ] ] halt
Drugim projektem wartym przypomnienia jest www.mapy.eksploracja.pl Znajdziemy tam również mapy WIG oraz niemieckie, przedwojenne mapy terenów Prus Wschodnich i Zachodnich. Zestawiając mapy z obydwu serwisów możemy uzyskać pełny obraz dzisiejszego obszaru Polski.
Poniżej zamieszczam odpowiedni skrypt umożliwiający automatyczne pobranie map 1:100'000 z terenu Prus Wschodnich (niestety w serwisie nie ma jeszcze kompletu map z tego obszaru). W sumie 29 plików zajmujących ponad 200MB przestrzeni na dysku. Oczywiście manipulując odpowienio zmienną page oraz baseurl można za pomocą skryptu pobierać i inne mapy udostępniane w serwisie.
REBOL [ title: "EKSPLORACJA" description: "Pobiera mapy messtischblatt z serwisu mapy.eksploracja.org" author: "Piotr Gapiński" date: 2007-06-29 license: 'LGPL ] QUIET: false comment {Messtischblatt Prusy Wschodnie} page: read url: http://www.mapy.eksploracja.pl/viewpage.php?page_id=45 baseurl: http://www.mapywig.org/kazik/messtischblatt/ any [ parse/all page [to {<ul} thru {>} copy blatt to </ul> to end] do [ print ["brak listy map w serwisie" first split-path url] halt ] ] url: copy [] parse/all blatt [some [thru {href="} copy map to {">} (append url to-url map)] to end] foreach map unique url [ reduce decode-cgi join "file=" second split-path (to-file map) file: to-file new-name: join (copy/part file find file ".htm") ".jpg" map: join baseurl file either not exists? file [ print [ pick ["OK" "ERROR"] second reduce [ time-elapsed: now to-logic either QUIET [attempt [write/binary file read/binary/direct map true]] [request-download/to map file] time-elapsed: difference now time-elapsed ] map time-elapsed "sec." ] attempt [rename file new-name] recycle ][ print ["SKIP" map] ] ] halt