Dodaj do ulubionych

Jak pobrać mapę z portalu?

24.12.16, 22:24
Czy ktoś byłby w stanie mi poradzić, jak pobrać na dysk tę mapę w całości w jednym pliku .jpg?

mapy2.natur.cuni.cz:8080/geoserver/MapovaSbirka8/wms?version=1.1.0&request=GetMap&layers=MapovaSbirka8:D1_00013_00010_300dpi&styles=&bbox=14.523889000000,49.353611000000,19.500556000000,52.769444000000&width=1300&height=700&srs=EPSG:4326&format=application/openlayers
Próbowałam różnych narzędzi typu dezoomify, ale tutaj nie są one skuteczne, gdyż nie ma typowych kafelków, jak w innych mapach zamieszczonych w internecie w technologii zoomify. A przynajmniej ja tego typu kafelków nie dałam rady namierzyć.

Manualne sklejanie screenów nie wchodzi w grę, gdyż jest z tym multum roboty, a chciałabym pobrać jeszcze kilka innych map.
Edytor zaawansowany
  • 25.12.16, 13:08
    Prawoklik na mapie i zapisz jako.

    --
    Unikam firm polecanych przez spamerów.
  • 25.12.16, 15:35
    Żeby to było takie proste...

    Prawoklik zapisuje tylko niewielki fragment mapy widoczny w oknie przeglądarki. Można zwiększyć okno manipulując parametrami "width" i "height" w linku, ale już przy oknie 5000 x 5000 px jest problem z wyświetleniem mapy i później pobraniem tego fragmentu (przynajmniej na moim komputerze). Przeciętna mapa to obrazek o boku rzędu kilkunastu tysięcy pikseli, więc i tak trzeba by później składać ją z takich kawałków, żmudnie dopasowując pikselami. Przy jednej mapie można się tak bawić, przy większej liczbie jest to bardzo pracochłonne.

    Dodatkowy problem z tymi mapami jest taki, że można je wyzoomować bardziej niż oryginalna rozdzielczość skanu, a więc w ten sposób właściwie "na czuja" ustala się najlepszą możliwą jakość.

    Ponadto w linku są podane współrzędne krawędzi mapy, ale też na razie, manipulując tymi wartościami, niczego sensownego nie udało mi się wykombinować.

    Wydaje mi się, że te mapy też muszą składać się z kafelków, bo przecież nie ładują się w całości. Namierzenie ich i pobranie na dysk praktycznie rozwiązałoby problem (kafelki później można posklejać automatem), ale brakuje mi wiedzy informatycznej, żeby znaleźć sposób dobrania się do nich.
  • 25.12.16, 15:50
    Jeśli masz windowsy, to użyj snipping tool'a, wcześniej i później nagniatając F11

    --
    knur.blox.pl
  • 25.12.16, 16:15
    Mam Vistę i nie mam takiego narzędzia.

    Generalnie żeby robienie screenów miało jakikolwiek sens w takich sytuacjach, musiałoby istnieć jeszcze jakieś narzędzie, które po zrobieniu screena przesunie mapę do kolejnego fragmentu z dokładnością do jednego piksela (potem screeny można by było łączyć automatycznie, tak jak kafelki). Tutaj dodatkowo jest jeszcze kwestia "śmieci", które będą na wszystkich screenach i trzeba by je usuwać ręcznie (białe paski po bokach i przyciski nawigacyjne).
  • 25.12.16, 16:37
    Zamienić w linku format=application/openlayers na =image/jpeg
    Wcześniej warto zmienić wymiary na maksymalne: width=1900&height=1000

    A ponieważ mapa będzie fatalnej jakości, to lepiej byłoby zmienić koordynaty:
    bbox=14.523889000000,49.353611000000,19.500556000000,52.769444000000
    na jakieś mniejsze zakresy np. co jeden stopień:
    bbox=14.523889000000,49.353611000000,15.523889000000,50.353611000000
    a potem sklejać lub prezentować oddzielnie.
  • 25.12.16, 19:09
    Bardzo dziękuję za podpowiedź. To rozwiązanie byłoby bardzo dobre, gdyby nie jeden problem. Każda zmiana w koordynatach pociąga za sobą zmianę proporcji mapy, tzn. mapa jest albo rozciągnięta, albo wydłużona. Próbowałam proporcjonalnie zmienić x i y (a więc dla x o 1 stopień, y będzie o 0,796342 stopnia), ale dalej obrazek jest zniekształcony. Chyba będzie to bardzo trudno wyeliminować, nie wiem jak to wyliczać.

    Dodatkowo jest jeszcze kwestia stopnia powiększenia. Trzeba by było na ślepo strzelać, a mi zależy na maksymalnej możliwej jakości (czyli rozdzielczość oryginalnego skanu). Na ogół w linku jest też parametr odpowiedzialny za powiększenie, tutaj nie udało mi się go zidentyfikować.

    A może orientujesz się, w jaki sposób ta mapa jest umieszczona na serwerze (czy w kafelkach, czy w jakiś inny sposób)? Gdyby udało się znaleźć adres przynajmniej jednego kafelka, to może udałoby się pobrać też inne i potem skleić mapę.
  • 25.12.16, 21:25
    > A może orientujesz się, w jaki sposób ta mapa jest umieszczona na serwerze

    Mapa jest w formacie cyfrowym - jako wiele warstw i wizualizowana przez klienta WMS,
    w tym przypadku wydaje się, że są nim skrypty w javie obsługiwane przez przeglądarkę.
    W każdym razie w podglądzie źródła są same skrypty, nie znalazłem plików grafiki.

    pl.wikipedia.org/wiki/Web_Map_Service
    > To rozwiązanie byłoby bardzo dobre, gdyby nie jeden problem.

    Dlatego sugerowałem, żeby mapę potraktować tak jak się to robi w atlasach -
    pociąć na odpowiednie fragmenty, a we wstępie umieścić mapę zbiorczą
    z dorysowaną siatką podziałów. Proporcje trzeba wyliczyć lub ustalić doświadczalnie
    i będą zależały od rozmiaru "arkusza" mapy oraz skali w jakiej chcemy mieć mapę
    więc inne będą w przypadku A4 poziomo niż dla A4 pionowo czy dla monitora.

    Problemów jest wiele - mapa jest rzutowaniem wycinka kuli na płaszczyznę,
    więc faktycznie wygenerowane wycinki nie będą identyczne z fragmentami
    większej całości. Formaty .jpg czy .png nie są skalowalne, więc zmiana
    rozmiaru, powiększenie czy pomniejszenie, fatalnie wpływa na jakość.

    Poszukaj kogoś, kto zajmuje się tematyką GIS - na pewno są lepsze klienty
    niż przeglądarka lub możliwość zainstalowania lokalnego serwera na pc
    i pobrania map cyfrowych offline. Niestety z tym oprogramowaniem niewiele
    miałem do czynienia. Z szybkiego czytania w Internecie wiem o istnieniu jakichś
    skryptów w python'ie do scalania kafelków, ale przy ustawieniu na "tiled"
    serwer dokłada swoje napisy w tle, więc ze scalaniem też może być problem.

    Jest jeszcze jedna droga - może w Internecie da się znaleźć graficzne wersje
    tych map w akceptowalnej rozdzielczości.
  • 25.12.16, 22:56
    wariant_b napisał:

    > > A może orientujesz się, w jaki sposób ta mapa jest umieszczona na serwerz
    > e
    >
    > Mapa jest w formacie cyfrowym - jako wiele warstw i wizualizowana przez klienta
    > WMS,
    > w tym przypadku wydaje się, że są nim skrypty w javie obsługiwane przez przeglą
    > darkę.
    > W każdym razie w podglądzie źródła są same skrypty, nie znalazłem plików grafik
    > i.
    >
    > pl.wikipedia.org/wiki/Web_Map_Service
    > > To rozwiązanie byłoby bardzo dobre, gdyby nie jeden problem.

    Wydaje mi się, że to jest coś innego. Są serwisy mapowe rzeczywiście składające się z wielu warstw w postaci rastrowej lub wektorowej (przykładem może być polski Geoportal). Tu jest tylko jedna warstwa, czyli zeskanowany arkusz mapy w rozdzielczości 300 dpi i w formacie .jpg, który powinien gdzieś być na serwerze. Trochę o tych mapach można przeczytać tu: www.natur.cuni.cz/geografie/mapova-sbirka/digitalni-mapova-sbirka

    Tu znajduje się katalog map (z którego wzięłam powyższą mapę): mapy2.natur.cuni.cz:8080/geonetwork/srv/pol/catalog.search

    Te same mapy są np. tu: digitool.is.cuni.cz/R/6FCJTLJ7N8RPFRLNU41BYR1SH4D4BVMTTRN2PN52ITLCVDH91R-00010?func=search , ale w dużo gorszej rozdzielczości i dlatego próbuję pobrać je z pierwszego źródła.

    W przypadku map umieszczonych na serwerze w technologii zoomify w standardowy sposób (przykład takiej mapy: e-gory.pl/mapy-online/tatry-compass/tatry-polskie-slowackie/ ) bez problemu da się pobrać mapę np. skryptami w pythonie (są takie w sieci) albo innymi metodami (wystarczy wpisać hasło "dezoomify" w Google). Technika zoomify polega na tym, że mapa dzielona jest w kilku różnych powiększeniach na kafelki (najczęściej 256 x 256 pikseli) i potem ładuje się tylko ta część mapy (te kafelki), która jest aktualnie widoczna na ekranie. Skoro mapa w plikach .jpg jest na serwerze, to również da się ją pobrać w oryginalnej postaci - wystarczy tylko odwrócić proces zoomify, czyli pobrać kafelki i je scalić. Tutaj niestety jest problem, bo nie da się ustalić adresów kafelków. Spotkałam się już z takimi przypadkami, że zamiast adresów kafelków były np. współrzędne geograficzne. Ale też była to technologia zoomify. Adresy kafelków udawało się w tamtych przypadkach ustalić w inny sposób i potem pobrać np. wtyczką DownThemAll! do Firefoxa. Ze scaleniem ich w jedną mapę nie ma problemu, gdyż mam do tego osobny skrypt.

    Z bardzo podobnym jak tu sposobem umieszczenia map na serwerze spotkałam się kiedyś w bibliotece Gallica: gallica.bnf.fr/?lang=FR . Tam niemal identycznie nie dało się pobrać mapy skryptami dezoomify, ale wystarczyło podzielić ją na kawałki zmieniając przedziałami współrzędne (dokładnie tak jak Ty tłumaczyłeś wcześniej) i potem połączyć kawałki. Z tym że tam było to łatwiejsze, nie było problemów z proporcjami. Później znalazłam jeszcze skrypt w pythonie do tej biblioteki i wtedy to już całkiem poszło jak z płatka, bo skrypt wszystko robi sam: github.com/olivierlemoal/Gallica_fetcher

    Tutaj na razie najlepsze rozwiązanie to chyba pobrać te kawałki w zmienionych proporcjach, połączyć je, a potem zmienić wymiary całej mapy (o ile zmiany proporcji na wszystkich kawałkach będą jednolite) według proporcji właściwej mapy online. Ewentualnie manipulować wielkością okna i zapisywać obrazki prawoklikiem - wtedy znika problem z proporcjami, ale z kolei trudniej potem łączyć to wszystko. Spróbuję jeszcze poszukać jakiegoś lepszego rozwiązania. W każdym razie bardzo dziękuję za pomoc, może ktoś jeszcze podsunie jakieś dobry sposób.
  • 26.12.16, 01:13
    > Wydaje mi się, że to jest coś innego.

    I chyba faktycznie masz rację - nie za dokładnie przyjrzałem się mapom.
    Nie zmienia to faktu, że mamy tu serwer WMS i dostajemy, to co wskazaliśmy
    w wywołaniu jako obrazek .png lub .jpg w określonym wymiarze.

    > W przypadku map umieszczonych na serwerze w technologii zoomify

    dostajemy mapę we flashu. To jednak inna technologia.

    > Tutaj na razie najlepsze rozwiązanie to chyba pobrać te kawałki w zmienionych
    > proporcjach

    Obiecujące wydaje się pobranie kwadratowych obrazków 1000x1000 pixeli
    przy współrzędnych zmienianych co stopień. Wychodzą w dobrej skali 1:545000,
    więc powinny dać się w miarę łatwo poskładać, a potem można obciąć "marginesy".
    Dokładniejsze (w skali 1 : 273000) możemy uzyskać zmieniając współrzędne o 0.5
    Mniejsze skale mają już pixelozę, więc równie dobrze możemy powiększać
    poskładany obraz.
  • 26.12.16, 14:35
    Te obrazki 1000 x 1000 px wyglądają całkiem dobrze. Przy większym powiększeniu co pół stopnia też już widać pikselozę. Szkoda, że dla każdej mapy trzeba to ustalać odrębnie. Skala mapy podana pod ramką nie ma dla mnie żadnego znaczenia, najważniejsze, żeby jakość otrzymanego obrazu była zbliżona do jakości oryginalnego skanu.

    wariant_b napisał:

    > Nie zmienia to faktu, że mamy tu serwer WMS i dostajemy, to co wskazaliśmy
    > w wywołaniu jako obrazek .png lub .jpg w określonym wymiarze.
    >
    > > W przypadku map umieszczonych na serwerze w technologii zoomify
    >
    > dostajemy mapę we flashu. To jednak inna technologia.

    Nie znam się na takich aspektach technicznych, ale czy w przypadku serweru WMS da się wyciągnąć z serwera oryginalny skan, tak jak w przypadku umieszczenia mapy we flashu? Na przykład jakimś skryptem w pythonie? Oczywiście nie śmiem Cię namawiać do tworzenia takiego skryptu, ale może udałoby mi się znaleźć osobę, która coś takiego by napisała.
  • 25.12.16, 17:43
    Prościej i lepiej będzie wpisać w google karte schlesien wybrać duże obrazy i tam taką mapę a nawet lepszą znajdziesz.

    --
    Unikam firm polecanych przez spamerów.
  • 25.12.16, 17:55
    Można jeszcze wpisać alte karte schlesien jest więcej trochę inne.

    --
    Unikam firm polecanych przez spamerów.
  • 25.12.16, 19:10
    Chodzi mi o konkretne mapy, których niestety nigdzie indziej nie ma. Ta mapa w zasadzie podana została tylko jako przykład.
  • 25.12.16, 19:16
    malgorzata543 napisał(a):

    > Chodzi mi o konkretne mapy, których niestety nigdzie indziej nie ma. Ta mapa w
    > zasadzie podana została tylko jako przykład.

    Przykro mi że nie pomogłem.
    --
    Unikam firm polecanych przez spamerów.

Popularne wątki

Nie pamiętasz hasła lub ?

Zapamiętaj mnie

Nie masz jeszcze konta? Zarejestruj się

Nakarm Pajacyka
Agora S.A. - wydawca portalu Gazeta.pl nie ponosi odpowiedzialności za treść wypowiedzi zamieszczanych przez użytkowników Forum. Osoby zamieszczające wypowiedzi naruszające prawo lub prawem chronione dobra osób trzecich mogą ponieść z tego tytułu odpowiedzialność karną lub cywilną. Regulamin.