To jest tylko wersja do druku, aby zobaczyć pełną wersję tematu, kliknij TUTAJ
My Navia

OziExplorer - tworzenie map z geoportalu

Joe - 2017-02-15, 23:30
Temat postu: Kafelkarz - błąd
Najpierw pragnę przekazać ukłony autorowi programu za kawał dobrej roboty :)

Po wstępie teraz się poskarżę na mojego Kafelkarza. Otóż przy pobieraniu kafelków program się wywala. W różnych momentach i przy różnych ustawieniach. Poniżej treść błędu:

Exception EAccessViolation in module Kafelkarz 13.0.1.5.exe at 000059B9
Access violation at address 004059B9 in module 'Kafelkarz 13.0.1.5.exe'. Write of address 0000000A.

Gdzie może czaić się problem?

Anonymous - 2017-02-16, 18:47

@Joe
Wygląda to na odwołanie do zwolnionego wcześniej obszaru pamięci albo problem z dostępem do sekcji krytycznej. Na podstawie samego komunikatu trudno cokolwiek powiedzieć. Napisz coś więcej - jaką mapę pobierasz, jaki obszar, przy jakich ustawieniach, ile wątków uruchamiasz.

Zrób eksperyment - ustaw maksymalną liczbę wątków przy pobieraniu kafli na 1 (Ustawienia\Wątki -> "Maksymalna liczba wątków przy pobieraniu kafli") i uruchom pobieranie. Daj znać, czy przy takim ustawieniu problem też występuje - będę wiedział czemu się przyjrzeć.

wattPL - 2017-02-20, 14:45

Witam
Mam ten sam problem co kolega Joe.
Wersja Kafelkarz 13.0.1.5 - podczas pobierania kafelków pojawia się błąd i cały program się wywraca.
Sytuacja do sprawdzenia:
Obszar mapy: 22.6863 53.1236 23.0677 53.1713
Mapa typu OziExplorer, warstwa: OpenStreetMap OSM, Zoom: 19
Ilość wątków: 8 ale próbowałem także z 1 ale problem także występował.
Oczywiście błąd nie pojawia się regularnie.

Trzeba namierzyć buga, bo korzystanie z programu jest utrudnione.

Pozdrawiam
Grzegorz

Anonymous - 2017-02-22, 20:33

Dzięki za konstruktywne uwagi. Znalazłem i poprawiłem ;)
wattPL - 2017-02-22, 20:37

Super.
Dzięki.

neithan - 2017-03-06, 12:31

Na poczatek – dzieki za fantastyczny program. Wczesniej uzywalem MOBAC i Mapotero, ale Kafelkarz oferuje wiecej opcji i wspiera bilioteki gdal.
Mam kilka uwag. Kiedy przechodze np do zakladki Ustawienia i wroce do Zrob Mape, checkbox "Format Mapy" nie pamieta wczesniej wybranej opcji.
Bardzo czesto po zamknieciu i wystartowaniu programu pojawia sie komunikat by wybrac sciezki do gdal, pomimo ze to wczesniej zrobilem. Wydaje sie ze problem wystepuje po skopiowaniu Kafelkarza do innej lokalizacji i zmianie sciezek.
Podczas dodawania sewrisu WMTS w okienka s2 nie mozna wpicac liczby wiekszej niz jednocyfrowa. Dodaje serwis z trzema cyframi i kafelkarz automatycznie zmienia je na jedynki.

Brakuje tez dobrej instrukcji jak dodawac nowe serwisy WMTS, chcialbym wiedziec jak program dziala. Chodzi zwlaszcza o sekcje nr 4) Uklad odniesienia. Co tam sie wpisuje i jak sa wykorzystywanie dane do obliczen? Probuje dodac EPSG 21781(Szwajcaria), ale dostaje komunikat ze Kafelkarz nie obluguje tego EPSG. Nie wiem czy sam kod EPSG jest do czegos potrzebny, wiec wpisalem 3857. Jako lat/lon min/max wpisuje dane bbox z spatialreference.org ale wtedy warstwa jest nieostepna w zakladce "Zrob Mape". Super gdyby mozna bylo dodawac EPSG z roznych krajow, np z pliku getcapabilities.

Jeszcze raz dzieki za super program. Doskonale radzi sobie z mapami 100 tys kafli :)

Pozdrawiam
neithan

PS Przepraszam za brak polskich zankow. Pisze z zagranicy.

Anonymous - 2017-03-08, 20:11

@neithan
1. Nad problemem "utraty pamięci" przy zmianie zakładek i ścieżek do bibliotek popracuję w weekend ;)
2. Do wpisywania w pola s2 faktycznie przewidziałem pojedyncze cyfry, ale to nie jest problem - w zasadzie mogłyby w nich być w dowolne ciągi znaków, nie ma sprawy, zmienię.
3. Definiowanie serwisów WMTS jest problemem złożonym, bo mało który z serwisów "chwali się" parametrami i zwykle trzeba trochę pokombinować. W przypadku różnych WMTS'ów może być różnie i nie da się podać uniwersalnej recepty na wszystkie ;). Jak je definiować starałem się pisać sukcesywnie w kolejnych postach, dwa przykłady znajdziesz tu:
- przykład prosty
- przykład zaawansowany
Jeśli masz jakiś ulubiony serwis, to podaj jego adres, spróbujemy to zrobić na konkretnym przykładzie.
4. Kafelkarz obsługuje WGS84 (CRS:84; EPSG:4326) oraz polskie 1992 i 2000 (EPSG:2180; EPSG:2176 do 2179), można też pobierać kafle cięte w EPSG:3857 i EPSG:900913, co pozwala na korzystanie z wielu serwisów "globalnych", np. googla, przy czym współrzędne obszaru mapy trzeba w takich przypadkach podawać w WGS84 (Kafelkarz i tak przelicza współrzędne na WGS84 i na takich pracuje). No cóż, na starcie nie zakładałem międzynarodowej kariery Kafelkarza... ;). Oczywiście, można byłoby zrobić rozwiązanie pod tym względem uniwersalne, ale wymagałoby to trochę pracy - może w kolejnej "dużej" wersji. W zasadzie "problem" EPSG istotny jest tylko w przypadku WMTS, bo chyba wszystkie WMS'y na świecie obsługują WGS84.
Oczywiście, kod EPSG jest ważny - dzięki niemu Kafelkarz wie jak przeliczać współrzędne ;).

neithan - 2017-03-15, 15:58

Dzieki za szybka odpowiedz.
Wgryzlem sie w podane przyklady, ale mam zasadniczy problem ze zdefiniowaniem krawedzi mapy.
Piszesz ... Początek układu kafli, czyli lewy dolny (jeśli numeracja TMS) lub lewy górny (jeśli numeracja wg. Google) narożnik zerowego kafla, znajduje się w punkcie X=-5119200.0, Y= 4695100.0.

Skad mam wziac te wspolrzedne? Czy sa one zdefiniowane przez EPSG? Czy w pole EPSG moge wpisac np EPSG 3857 a wspolrzedne przeliczyc z innego ukladu na 3857?

Jesli chodzi o konkretny przyklad, to pracuje nad mapa Szwajcarii. Ich urzad kartografii publikuje wszystkie dane WMTS tutaj: https://api3.geo.admin.ch/services/sdiservices.html#wmts

Przykladowy adres kafla to:

https://wmts8.geo.admin.ch/1.0.0/ch.swisstopo.pixelkarte-farbe/default/current/21781/19/28/24.jpeg Topo 200k

https://wmts8.geo.admin.ch/1.0.0/ch.swisstopo.pixelkarte-farbe/default/current/21781/22/300/300.jpeg Topo 25k

Struktura zapytania wyglada tak:
https://wmts[1-10].geo.admin.ch/1.0.0/ch.swisstopo.pixelkarte-farbe/default/current/[EPSG]/[ZOOM]/[Y]/[X].jpeg

Uwaga: trzeba miec u nich zalozone konto lub postawic proxy do zmiany http referer na localhost ;-)

EPSG to 21781
The <TileMatrixSet> 21781 is as follow defined:

MinX 420000
MaxX 900000
MinY 30000
MaxY 350000
TileWidth 256

Jak uzyc tych danych?

Udostepniaja tez wartswe w EPSG 3857, ale kafle sa gorszej jakosci. Kafelkarz ladnie je sciaga uzywajac ustawien wspolrzednych dla Googla :-)

Mam tez problem z inna mapa (UK OS). Dla dwoch map kafelkarz ucial mi mape pionowo i zastapil pobrane kafle blekitem. Mapa nie jest za duza, poniewaz inne wieksze, Kafelkarz zrobil dobrze. Moze to wina GIMPA, w ktorym przetwarzam?

Z niecierpiwoscia czekam na kolejna wersje Kafelkarza, wakacje sie zblizaja :-)

Anonymous - 2017-03-17, 19:50

Ok. zdopingowałeś mnie ;). Siadam do wersji 14, w której będzie można użyć dowolnego znanego układu odniesienia, lub w razie potrzeby samemu go sobie zdefiniować (np. w formacie Proj4 lub .prj).

Póki co, Kafelkarz nie obsługuje EPSG:21781, więc pozostaje 3857 - to układ "natywny" map googla, więc oprócz elementów adresu niczego nie trzeba zmieniać.
Problem "zalania", niekoniecznie błękitem, może pojawić się przy kaflach z kolorem indeksowanym - każdy kafel ma swoją paletę kolorów i przy sklejaniu mogą potencjalnie pojawić się problemy, dlatego przed sklejeniem kafli Kafelkarz konwertuje kafle z koloru indeksowanego na RGB. Przy kaflach w formacie .jpg problem uzgadniania palety oczywiście nie występuje. Trudno powiedzieć, co jest powodem w tym konkretnym przypadku, podrzuć definicję serwisu i mapy, to zobaczę.

neithan - 2017-03-17, 23:51

O super! Czy mozna jakos pomoc? Moze np z tlumaczeniem? Albo kupic Ci piwo :-)

Widze ze jest nowa wersja dostepna. Co w niej nowego?

Anonymous - 2017-03-22, 16:43

neithan napisał/a:
... Co w niej nowego?
Poprawiłem zarządzanie plikiem konfiguracyjnym, czyli problem z zapominaniem ścieżek ;)

[ Dodano: 2017-03-25, 19:20 ]
Wersja 14.0.0.0
Tak jak poprzednio, żeby nie robić sobie bałaganu, najlepiej do folderu "swojego" Kafelkarza skopiować nowy plik Kafelkarz_14.0.0.0.exe, przy czym tym razem (WAŻNE) należy skopiować również folder 'proj4' wraz z zawartością.
Co nowego:
1. Kafelkarz obsługuje teraz EPSG opisane w proj4 - z tej biblioteki korzystają procedury OSGeo (GDAL) i wszystkie GISy. Dla uniknięcia zamieszania, współrzędne mapy tak jak dotychczas definiowane w WGS84 (to chyba nie jest problemem). Wykaz i opis EPSG można znaleźć tu: http://spatialreference.org/ref/epsg/wgs-84/ Opcji dodawania własnej definicji projekcji jeszcze nie ma, ale tych już zdefiniowanych jest ponad 2 tysiące, więc ta opcja chyba raczej by się nie przydała ;). W razie czego można dopisać swoją definicje w pliku \proj4\NAD\epsg (z zachowaniem konwencji).
2. Od strony funkcjonalnej nic się nie zmieniło, poza tym, że w menu "Narzędzia" przerobiłem trochę zakładkę, która służyła poprzednio do obliczania współrzędnych rogów kafla lub mapy. Teraz jest tam również panel, w którym można przeliczać współrzędne z dowolnego EPSG na inny dowolny. Dane można podawać "z palca", albo przekonwertować dane z uprzednio przygotowanego pliku.
3. Poprawiłem pracę modułu importu kafli z cache'u przeglądarki (część kafli przegapiał) oraz kilka dostrzeżonych, drobnych błędów, w części spowodowanych przesiadką z D7 na D10.

@neithan
W folderze z definicjami map do importu ('Mapy') znajdziesz 'Zurich' ;), a w folderze serwisów do importu ('serwisy') znajdziesz definicje:
- SwissTopo Landeskarte - farbe;
- SwissTopo Pixelkarte-farbe;
- SwissTopo Swissimage,
z https://map.geo.admin.ch/ zdefiniowane w EPSG:21781. Serwisy są zaznaczone jako "Tylko z cache'u", bo nie chciało mi się kombinować i te 20 tys. kafli potrzebnych do testów wyciągnąłem sobie z przeglądarki. Jeśli chciałbyś na przykładzie tych serwisów przećwiczyć definiowanie WMTS w Kafelkarzu (przykład raczej niezbyt prosty ;), to daj znać, napiszę o tym na forum. Udanego testowania !

neithan - 2017-03-27, 21:58

Super ze tak szybko jest nowa wersja! Dzieki wielkie.
Dopiero dzisiaj mialem troche czasu na testowanie.
Definicje warstw SwissTopo Pixelkarte-farbe wymagaja korekcji. Zabralem sie za SwissTopo Pixelkarte-farbe(15-16). dZ trzeba ustawic na -15 i i w s8 wpisac .jpeg. Wydaje sie ze kafelkarz sciaga odpowiednie kafle. Nie moge jednak tego sprawdzic, bo mimo ze kafle sa widoczne w folderze "cache", to Kafelkarz nadal pokazuje ze "Brakuje" kafli i niemozliwe jest ich sklejenie. Nie ma tego problemu dla innych serwisow tego samego obszaru(OSM lub Bing).
Jak skoncze Szwajcarie, to zabiore sie za inne kraje i dam znac.

[ Dodano: 2017-03-28, 00:18 ]
Edit:
Problem lezy w rozszerzeniu kafli. Zapisywane sa jako .jpeg, po manualnej zmianie na .jpg, Kafelkarz je widzi i mozna skleic mape. Zatem potwierdzam ze obszar mapy jest pobrany prawidlowo dla wszystkich trzech warstw Szwajcarii :-)

Drobna uwaga. Dziwnie funkcjonuje combobox wyboru warstwy. Po wyborze danej warstwy do wyboru jest tylko jedna inna warstwa, chyba za najpierw wybierze sie "puste pole". Po kilku probach wyboru warstw zauwazylem tez ze w zaleznosci od wyboru wasrstwy, niektore znikaja. Trudno mi tu sie dopatrzec jakiejs logiki.

Anonymous - 2017-03-29, 20:31

Wprowadziłem trochę poprawek, w tym skorygowałem pewien błąd związany z 'dZ'em - dla map z .ch powinno być ostatecznie dZ=0. Poprawiłem definicję SwissTopo Landeskarte-farbe(25-27) - standard kafli zamiast TMS powinien być oczywiście Google. Zastąpiłem wkurzające standardowe okna dialogowe z krzakami podrasowanymi.
Cytat:
Dziwnie funkcjonuje combobox wyboru warstwy.

Na początku Kafelkarz sprawdza, czy dana mapa pokrywa zadany obszar. Jeśli nie, to ją odfiltrowuje i nie pojawi się ona w ComboBoxach. ComboBoxy, oprócz tych do tworzenia atlasu TB, służą do skomponowania mapy z warstw, które są następnie na siebie nakładane. Dlatego po wybraniu czegoś w którymś z ComboBoxów (mapy lub zoomu) Kafelkarz odfiltrowuje te mapy/zoomy, które nie są zgodne z tym, co już zostało wybrane. Można co prawda sklejać wszystko ze wszystkim, ale trzeba wtedy deformować oryginalne rastry i jakość mapy jest wątpliwa - pomyślę, może wprowadzę taką funkcjonalność, w sumie to tylko wycięcie filtra + dodanie transformacji warstw leżących wyżej ;).

[ Dodano: 2017-03-30, 06:54 ]
ps. a..., no i oczywiście, jeśli pobieramy kafle wprost z serwisu, to dla map:
- swisstopo.pixelkarte-farbe w pole s8 definicji należy wpisać: '.jpeg',
- swisstopo.landeskarte-farbe-10 w pole s8 definicji należy wpisać: '.png'
- swisstopo.swissimage w pole s8 definicji należy wpisać: '.jpeg'

neithan - 2017-03-30, 10:05

Przetestowalem wszystkie mapy .ch wczoraj i dzialaja dobrze. Bawilem sie tez z opcjami gdal. Zauwazylem, ze do Kafelkarza dolaczona jest wersja 1.1.1. Sciagnalem najnowsza wersje 64bit i podmienilem pliki w katalogu Win32, Wszystko smiga jak nalezy, mozna teraz dodac wiecej opcji:
COMPRESS=DEFLATE - najwiekszy stopien kompresji
NUM_THREADS=ALL_CPU - wszystkie rdzenie/watki procesora sa uzywane do kompresji
BIGTIFF=IF_SAFER - umozliwia zapisywanie plikow wiekszych niz 4GB

GDAL 2.1.3 mozna pobrac stad:

http://www.gisinternals.c...erver-7-0-4.zip

Anonymous - 2017-03-30, 15:23

Nie chcę wyręczać prawdziwych GISów (polecam QGISa), ale zastanawiam się, czy nie byłoby warto dorobić nieco szerszego interfejsu do GDALa. Użytkownik mógłby w nim np. w prosty sposób zrobić geotiffa z mapy skalibrowanej pod Ozi'ego, lub na odwrót, przekonwertować geotifa na inny cs, przyciąć mapę do zadanych współrzędnych itp. W sumie prosta sprawa, nie wiem tylko, czy to się komuś przyda.


Powered by phpBB modified by Przemo © 2003 phpBB Group