|
|
Instrukcja - wydobywanie danych POI z map OpenStreetMap |
Autor |
Wiadomość |
Spax
Kombatant
Twój sprzęt: Fiat Ducato i Hobby 495
Nazwa załogi: Spax
Pomógł: 10 razy Dołączył: 08 Mar 2016 Piwa: 193/346 Skąd: Kolumna
|
Wysłany: 2020-04-19, 21:51 Instrukcja - wydobywanie danych POI z map OpenStreetMap
|
|
|
CO TO ZA MAPA »»»
*******************************************************************
INSTRUKCJA WYDOBYWANIA DANYCH Z MAP OSM (OpenStreetMap) – LINUX
*******************************************************************
Dlaczego warto wyrwać mapie te dane?
Zazwyczaj bardzo trudno jest wyświetlić POI (użyteczne miejsca) w aplikacji do mapowania w taki sposób, aby łatwo było zobaczyć interesujące nas punkty POI podczas pomniejszania. Na przykład możemy chcieć zobaczyć wszystkie miejsca, gdzie na dużym obszarze może być dostępna woda pitna, ale większość aplikacji mapujących nie obsługuje tej funkcji.
Za to prawie wszystkie aplikacje mapujące (np. maps.me, osmand) obsługują format GPX czy KML do wyświetlania punktów nawigacyjnych, więc jeśli możemy stworzyć pliki GPX zawierające tylko punkty nawigacyjne, którymi jesteśmy zainteresowani, rozwiązałoby to nasz problem.
Narzędzie, które przedstawię wyodrębnia POI OSM z plików danych OSM dostępnych na stronie OpenStreetMap/Geofabrik i buduje pliki GPX na podstawie wyrażeń znaczników (węzłów).
Zobaczcie przykład: przybliżenie 16 i 18 mapy miejscowości Patra w Grecji (online) . Na dużym powiększeniu widać symbole kranika i prysznica. Na mniejszym niestety już nie.
Na przykładzie Macedonii (bo to mały kraj, a co za tym idzie mniej danych zaszytych w mapie)
Zaczynamy 1: czyli co nam potrzebne pod Linuksem (Windows podobnie - podam linki - resztę kombinujcie sami:)).
1 - Instalujemy paczki: cargo, cargo-doc i python3 (zalecane)) lub korzystamy z curl » link »»» https://doc.rust-lang.org/cargo/getting-started/installation.html
1.a - Dla Windowsa pobieramy program "rustup-init.exe" » link »»» https://win.rustup.rs/
2 - Pobieramy "OSM to GPX Node extractor" » link »»» https://github.com/simao/osm-gpx
3 - Rozpakowujemy program do wydobywania w dowolnym miejscu na dysku (najwygodniej tam, dokąd będziemy ściągać mapy)
Zaczynamy 2: czyli ściągamy mapę (format pliku to osm.pbf)
1 - Na stronie Geofabrik » link »»» http://download.geofabrik.de/europe.html wybieramy interesującą nas mapę.
2 - Zapisujemy w katalogu głównym programu "osm-gpx-master"
3 - Otwieramy terminal (cmd - pod windowsem) w katalogu z programem i mapą.
3a - Pod windowsem nie uruchomiałem programu - musicie sami kombinować jak uruchomić z linii poleceń pliki z rozszerzeniem .rs
Działamy 1:
1 - Aby wydobyć dane o wodzie (pamiętacie to symbol kranika) uruchamiamy program takim oto poleceniem przy czym:
a) --osm-file macedonia-latest.osm.pbf - to pobrana mapa
b) --name Woda - dowolna nazwa (może być dupa) i tak się nam później wyświetli na mapie.
c) --output macedonia-woda.gpx - nazwa pliku wyjściowego gpx, którego użyjemy do naszych map.
d) --exp "amenity=drinking_water" - wydobywane dane - w tym przypadku woda pitna.
Kod: |
cargo run -- --osm-file macedonia-latest.osm.pbf --name Woda --output macedonia-woda.gpx --exp "amenity=drinking_water"
|
Przykład działania programu »»» tu "Studnia" czyli man_made=water_well
Kod: |
$ cargo run -- --osm-file macedonia-latest.osm.pbf --name Studnia --output macedonia-woda-studnia.gpx --exp "man_made=water_well"
Finished dev [unoptimized + debuginfo] target(s) in 0.15s
Running `target/debug/osm-gpx --osm-file macedonia-latest.osm.pbf --name Studnia --output macedonia-woda-studnia.gpx --exp man_made=water_well`
INFO osm_gpx::osm > Found node named Some("Studnia") at Point(Coordinate { x: 21.337990599999998, y: 41.0320742 })
INFO osm_gpx::osm > Found node named Some("Studnia") at Point(Coordinate { x: 20.7977745, y: 41.112003 })
INFO osm_gpx::osm > Found node named Some("Studnia") at Point(Coordinate { x: 20.833230099999998, y: 41.086294599999995 })
INFO osm_gpx > finished, found 3 matching waypoints
|
I to już wszystko. Otrzymaliśmy plik o nazwie macedonia-woda.gpx - działajcie, próbujcie i się denerwujcie |
_________________ Moje miescówki w Grecji »»» https://bonvoyage-travel.eu/maps/
|
Ostatnio zmieniony przez Spax 2020-04-20, 21:02, w całości zmieniany 1 raz |
|
|
|
|
Wyświetl szczegóły |
|
ZbigStan
Kombatant
Twój sprzęt: Frankia I 65 SD
Nazwa załogi: Taborygenii, fani Frani.
Pomógł: 4 razy Dołączył: 03 Gru 2013 Piwa: 795/251 Skąd: Opole
|
|
|
|
|
andrzej627
Kombatant
Twój sprzęt: VW T6 204KM DSG7 4MOTION Stylevan Equinox II
Nazwa załogi: Stylevanek
Pomógł: 5 razy Dołączył: 20 Lip 2015 Piwa: 338/145 Skąd: Francja
|
Wysłany: 2020-04-20, 12:15
|
|
|
Pobieram odpowiednią mapę jak wyżej z http://download.geofabrik.de/
Ekstrakcję pod Windows robię programem Osmosis.
Przykładowo tak u mnie wygląda komenda, która wyłuskuje punkty (nodes) drinking_water:
Kod: | E:\OSM\osmosis-0.47.4\bin\osmosis --read-pbf E:\OSM\greece-latest.osm.pbf --node-key-value keyValueList="amenity.drinking_water" --write-xml E:\OSM\water.osm |
Otrzymany plik (tutaj water.osm) konwertuje na gpx programem GPSBabel. W tej sposób powstała mapa Grecja - woda (drinking water). Te dane można wstawić do MAPS.ME wg przepisu w wątku Google My Maps i MAPS.ME.
Gdyby ktoś chciał też tym się pobawić, chętnie pomogę. |
_________________ Andrzej
Filmy z moich podróży
Mój profil na Facebooku
|
|
|
|
|
Wyświetl szczegóły |
|
izola
Kombatant
Twój sprzęt: MB Marco Polo
Nazwa załogi: Izolownia
Pomogła: 11 razy Dołączyła: 20 Sty 2015 Piwa: 229/153 Skąd: Westfalia
|
|
|
|
|
andrzej627
Kombatant
Twój sprzęt: VW T6 204KM DSG7 4MOTION Stylevan Equinox II
Nazwa załogi: Stylevanek
Pomógł: 5 razy Dołączył: 20 Lip 2015 Piwa: 338/145 Skąd: Francja
|
Wysłany: 2020-04-20, 16:43
|
|
|
Parę dni temu napisałem
Cytat: | Niestety z obszarami (ways) nie jest już taka prosta sprawa |
Teraz mam dobrą wiadomość. onionskin podpowiedział, aby używać https://overpass-turbo.eu/
Chciałem wyłuskać plaże, które najczęściej są opisane jako ways. Zrobiłem tak, jak na zdjęciu dla Krety.
1/ Otrzymane dane wyeksportowałem do pliku gpx, który zawiera punkty (nodes) i ślady (ways).
2/ Zaimportowałem go do mapy Google My Maps, gdzie pojawiły się punkty, ślady oraz punkty początkowe i końcowe śladów (w tych samych miejscach).
3/ Wyeksportowałem mapę do pliku kml.
4/ Z pliku kml usunąłem ślady i punkty początkowe.
5/ Edytowany plik kml zaimportowałem do nowej warstwy mapy.
6/ Z mapy usunąłem pierwotną warstwę.
W danych OSM na Krecie jest 71 plaż piaszczystych (5 nodes + 66 ways): Kreta - plaże piaszczyste
Wszelkie komentarze są mile widziane.
overpass turbo.jpg
|
|
Plik ściągnięto 11 raz(y) 131,01 KB |
Kreta.jpg
|
|
Plik ściągnięto 15 raz(y) 104,47 KB |
|
_________________ Andrzej
Filmy z moich podróży
Mój profil na Facebooku
|
|
|
|
|
|
Wyświetl szczegóły |
|
Spax
Kombatant
Twój sprzęt: Fiat Ducato i Hobby 495
Nazwa załogi: Spax
Pomógł: 10 razy Dołączył: 08 Mar 2016 Piwa: 193/346 Skąd: Kolumna
|
Wysłany: 2020-04-20, 17:54
|
|
|
izola, ZbigStan – dzięki za kufelek
andrzej627 napisał/a: | Zrobiłem tak, jak na zdjęciu dla Krety. |
Dla nas prościej jak skopiujesz kod (taki jak na zdjęciu) i po prostu wkleisz tutaj. Czemu się męczyć w przepisywanie?
Przykład:
/*
This query looks for nodes, ways and relations
with the given key/value combination.
Choose your region and hit the Run button above!
*/
[out:json][timeout:25];
// gather results
(
// query part for: “man_made=water_well”
node["man_made"="water_well"]({{bbox}});
way["man_made"="water_well"]({{bbox}});
relation["man_made"="water_well"]({{bbox}});
);
// print results
out body;
>;
out skel qt;[/b] |
_________________ Moje miescówki w Grecji »»» https://bonvoyage-travel.eu/maps/
|
|
|
|
|
andrzej627
Kombatant
Twój sprzęt: VW T6 204KM DSG7 4MOTION Stylevan Equinox II
Nazwa załogi: Stylevanek
Pomógł: 5 razy Dołączył: 20 Lip 2015 Piwa: 338/145 Skąd: Francja
|
Wysłany: 2020-04-20, 19:49
|
|
|
Nic nie trzeba przepisywać. Jest w opisie mapy mapy.
Wklejam tutaj.
Kod: |
/*
This has been generated by the overpass-turbo wizard.
The original search was:
"natural=beach and surface=sand"
*/
[out:json][timeout:25];
// gather results
(
// query part for: “natural=beach and surface=sand”
node["natural"="beach"]["surface"="sand"]({{bbox}});
way["natural"="beach"]["surface"="sand"]({{bbox}});
relation["natural"="beach"]["surface"="sand"]({{bbox}});
);
// print results
out body;
>;
out skel qt; |
|
_________________ Andrzej
Filmy z moich podróży
Mój profil na Facebooku
|
|
|
|
|
Spax
Kombatant
Twój sprzęt: Fiat Ducato i Hobby 495
Nazwa załogi: Spax
Pomógł: 10 razy Dołączył: 08 Mar 2016 Piwa: 193/346 Skąd: Kolumna
|
|
|
|
|
Wyświetl szczegóły |
|
wiesiek t
doświadczony pisarz
Twój sprzęt: Ducato blaszak H2L5 2010
Nazwa załogi: basia + wiesiek
Dołączył: 14 Lut 2009 Piwa: 2/9 Skąd: kobyłka
|
Wysłany: 2020-04-21, 08:57
|
|
|
Spax andrzej627 wkładacie pracę i udostępniacie nam swoja wiedzę żebyśmy mogli trafić na piękne i przydatne miejsca
Piwka poszły
Dotychczas jeżdziłem na nawigacji fabrycznej, teraz używam google.maps ale , jako fachowcy
czytam,używacie Maps.Me jaka jest przewaga jednej nad drugą może krótko ktoś napisze.
z góry Dzięki. |
|
|
|
|
andrzej627
Kombatant
Twój sprzęt: VW T6 204KM DSG7 4MOTION Stylevan Equinox II
Nazwa załogi: Stylevanek
Pomógł: 5 razy Dołączył: 20 Lip 2015 Piwa: 338/145 Skąd: Francja
|
Wysłany: 2020-04-21, 09:19
|
|
|
Spax napisał/a: |
Coś na skałach wylądowałeś
|
Wylądowałem na skałach, bo z całego obszaru plaży wybrałem skrajny (pierwszy i ostatni) punkt (Grammeno Beach – koniec 35.2325, 23.6323). Zdaję sobie sprawę, że nie jest to metoda idealna. Umiesz z tej listy wybrać lepiej? Na mapie OSM dla Garmina punkt Grammeno Beach jest na środku obszaru a nie na skraju.
Kod: | <trk>
<name>Grammeno Beach</name>
<desc>name=Grammeno Beach
natural=beach
surface=sand
type=multipolygon</desc>
<link href="http://osm.org/browse/relation/537006"/>
<trkseg>
<trkpt lat="35.2325009" lon="23.6323064"/>
<trkpt lat="35.2329239" lon="23.6326884"/>
<trkpt lat="35.2331303" lon="23.6325099"/>
<trkpt lat="35.2332132" lon="23.6323112"/>
<trkpt lat="35.2333083" lon="23.6322535"/>
<trkpt lat="35.2335115" lon="23.6323831"/>
<trkpt lat="35.23365" lon="23.6325978"/>
<trkpt lat="35.233816" lon="23.6328891"/>
<trkpt lat="35.2339115" lon="23.6332393"/>
<trkpt lat="35.2338714" lon="23.6338497"/>
<trkpt lat="35.233744" lon="23.6338634"/>
<trkpt lat="35.2337753" lon="23.6340662"/>
<trkpt lat="35.2338396" lon="23.6344609"/>
<trkpt lat="35.2337758" lon="23.6349475"/>
<trkpt lat="35.2335713" lon="23.6354526"/>
<trkpt lat="35.2333303" lon="23.6358056"/>
<trkpt lat="35.2326186" lon="23.6365586"/>
<trkpt lat="35.2324075" lon="23.6367363"/>
<trkpt lat="35.23266" lon="23.637279"/>
<trkpt lat="35.2327433" lon="23.6372083"/>
<trkpt lat="35.2328243" lon="23.6371091"/>
<trkpt lat="35.2329322" lon="23.6369061"/>
<trkpt lat="35.2330985" lon="23.6370209"/>
<trkpt lat="35.2331508" lon="23.6369361"/>
<trkpt lat="35.2331622" lon="23.6369161"/>
<trkpt lat="35.2331798" lon="23.6368853"/>
<trkpt lat="35.2331992" lon="23.6368509"/>
<trkpt lat="35.2332472" lon="23.6367694"/>
<trkpt lat="35.2332933" lon="23.636691"/>
<trkpt lat="35.2333838" lon="23.6365699"/>
<trkpt lat="35.2341019" lon="23.6354629"/>
<trkpt lat="35.2340495" lon="23.6352735"/>
<trkpt lat="35.2340909" lon="23.6348812"/>
<trkpt lat="35.2342373" lon="23.6347088"/>
<trkpt lat="35.2341876" lon="23.6341575"/>
<trkpt lat="35.2340771" lon="23.6340256"/>
<trkpt lat="35.2340384" lon="23.6332343"/>
<trkpt lat="35.2339887" lon="23.6328488"/>
<trkpt lat="35.2337125" lon="23.6322502"/>
<trkpt lat="35.2330403" lon="23.6318352"/>
<trkpt lat="35.2325009" lon="23.6323064"/>
</trkseg>
</trk> |
https://goo.gl/maps/EpeuuqCZXxt4YurB7
Grammeno Beach – koniec OSM.jpg
|
|
Plik ściągnięto 10 raz(y) 141,26 KB |
Grammeno Beach – koniec Google.jpg
|
|
Plik ściągnięto 11 raz(y) 349,29 KB |
|
_________________ Andrzej
Filmy z moich podróży
Mój profil na Facebooku
|
Ostatnio zmieniony przez andrzej627 2020-04-21, 11:03, w całości zmieniany 1 raz |
|
|
|
|
andrzej627
Kombatant
Twój sprzęt: VW T6 204KM DSG7 4MOTION Stylevan Equinox II
Nazwa załogi: Stylevanek
Pomógł: 5 razy Dołączył: 20 Lip 2015 Piwa: 338/145 Skąd: Francja
|
Wysłany: 2020-04-21, 09:36
|
|
|
wiesiek t napisał/a: | używacie Maps.Me |
Z tego co wiem, to MAPS.ME jest chyba najpopularniejszą aplikacją używaną przez forumowiczów, dlatego o niej wspominam. Osobiście używam nawigacji Garmina (na zdjęciu z lewej strony), ale mam też 10-calowy tablet z aplikacją OsmAnd, która służy mi jako mapnik. Te aplikacje używają map offline, a więc nie potrzebują Internetu, aby z nich korzystać. To jest najważniejsza różnica w stosunku do Google Maps.
Dzięki za piwa.
kokpit.jpg
|
|
Plik ściągnięto 4 raz(y) 187,28 KB |
|
_________________ Andrzej
Filmy z moich podróży
Mój profil na Facebooku
|
|
|
|
|
andrzej627
Kombatant
Twój sprzęt: VW T6 204KM DSG7 4MOTION Stylevan Equinox II
Nazwa załogi: Stylevanek
Pomógł: 5 razy Dołączył: 20 Lip 2015 Piwa: 338/145 Skąd: Francja
|
Wysłany: 2020-04-21, 11:52
|
|
|
Cytat: | Umiesz z tej listy wybrać lepiej? |
Odpowiadam na moje pytanie. Aby było lepiej, tak jak jest na mapie dla Garmina, zamiast brać skrajny (pierwszy=ostatni) punkt, trzeba policzyć średnią wartość współrzędnych lat/lon i zamiast trk (z postu wyżej) wygenerować wpt jak poniżej.
Kod: | <wpt lat="35.23341" lon="23.63471">
<name>Grammeno Beach</name>
<desc>name=Grammeno Beach
natural=beach
surface=sand</desc>
<link href="http://osm.org/browse/relation/537006"/>
</wpt> |
Plaża wychodzi wtedy, jak na mapie dla Garmina, w morzu.
https://goo.gl/maps/v5mwPmH5SFckC9cS6
Grammeno Beach.jpg
|
|
Plik ściągnięto 3 raz(y) 326,98 KB |
|
_________________ Andrzej
Filmy z moich podróży
Mój profil na Facebooku
|
|
|
|
|
Spax
Kombatant
Twój sprzęt: Fiat Ducato i Hobby 495
Nazwa załogi: Spax
Pomógł: 10 razy Dołączył: 08 Mar 2016 Piwa: 193/346 Skąd: Kolumna
|
Wysłany: 2020-04-21, 11:55
|
|
|
Andrzej - na chybił-trafił 35.233816,23.6328891 A to dlatego, że widzę jak ta plaża wygląda.
Na OSM to wielokąt po ang. polygon. Podzieliłem wzrokowo Twój plik na m.n.w. 4 części i wybrałem. Niestety nie da się tego zrobić sposobem jakiego ty użyłeś nie znając kształtu i dokładnego położenia.
Biorąc pod uwagę złożoności terenu Grecji, tworzenie takich punktów na mapie (jak Twoja) może doprowadzić do tego, że Ty czekasz na kogoś za skałą, bo tak poprowadził cię GPS, a ktoś inny siedzi po drugiej stronie tejże skały bo jego GPS inaczej poprowadził. Pewnie to skrajne przypadki, ale warto jest mieć to na uwadze.
Tu masz narzędzie pod do dokładniejszego sprawdzania/edytowania co i jak i gdzie.
»»» https://portable.info.pl/gpsprune-portable/
Zrzut ekranu z 2020-04-21 11-54-34.png
|
|
Plik ściągnięto 8 raz(y) 266,62 KB |
|
_________________ Moje miescówki w Grecji »»» https://bonvoyage-travel.eu/maps/
|
|
|
|
|
Spax
Kombatant
Twój sprzęt: Fiat Ducato i Hobby 495
Nazwa załogi: Spax
Pomógł: 10 razy Dołączył: 08 Mar 2016 Piwa: 193/346 Skąd: Kolumna
|
Wysłany: 2020-04-21, 12:21
|
|
|
andrzej627 napisał/a: | Plaża wychodzi wtedy, jak na mapie dla Garmina, w morzu. |
Nie jest źle - lepiej niż w górach |
_________________ Moje miescówki w Grecji »»» https://bonvoyage-travel.eu/maps/
|
|
|
|
|
Spax
Kombatant
Twój sprzęt: Fiat Ducato i Hobby 495
Nazwa załogi: Spax
Pomógł: 10 razy Dołączył: 08 Mar 2016 Piwa: 193/346 Skąd: Kolumna
|
Wysłany: 2020-04-21, 12:26
|
|
|
wiesiek t, dzięki za piwko - dodam do tego co już Andrzej napisał.
Bardziej rozsądną aplikacją jest Osmand - przynajmniej nie śledzi naszych poczynań w odróżnieniu do Maps.me (pochodzi od googla grrr). Również jako nawigacja sprawdza się u mnie wyśmienicie. Trzeba się do wielu rzeczy przyzwyczaić (bo to kombajn), ale jak już złapiesz co i jak to nie ma lepszej. |
_________________ Moje miescówki w Grecji »»» https://bonvoyage-travel.eu/maps/
|
|
|
|
|
|
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Nie możesz załączać plików na tym forum Możesz ściągać załączniki na tym forum
|
Dodaj temat do ulubionych Wersja do druku
|
|