OpenStreetMap Forum

The Free Wiki World Map

You are not logged in.

#76 2017-06-13 23:20:06

Teiron
Member
Registered: 2015-04-09
Posts: 98

Re: Overpass - do wyciągania danych z OSM

Dla mnie robienie kwerend na Overpass'ie jest jak dobre Sudoku. Ale rzeczywiście zgadzam się że w okolicach if'ów wygląda to makabrycznie a w szczególności - a.set(t["name"])

Moim zdaniem powinno się rozwinąć wszystkie skrótowce i uporządkować sposoby wywoływania funkcji, byłoby o wiele przystępniejsze. Najgorszy jest znacznik t, bo to straszliwa niekonsekwencja. W normalnych kwerendach wystarczyłoby ["name"], ale ewaluatory (jakim jest if:) mają specjalną zasadę że ma być t["name"].

Last edited by Teiron (2017-06-13 23:21:00)

Offline

#77 2017-06-14 07:31:37

rmikke
Moderator
From: Warszawa
Registered: 2014-11-14
Posts: 1,659
Website

Re: Overpass - do wyciągania danych z OSM

Teiron wrote:

Okej po wielu bojach z dokumentacją i wędrowaniu po ślepych uliczkach skleciłem coś takiego: http://overpass-turbo.eu/s/pJB

O, to już jest mniej więcej to, czego szukam.

Ale nie rozumiem, czemu na Twoim bboksie wybiera ten i ten budynek, oba bez addr:street . Podejrzewam jakiś kawałek highjway=residential bez nazwy, bo po zmniejszeniu bboksa już tych budynków nie wybiera (więc raczej nie jest to błąd składni, tylko coś zależnego od wcześniej wybranych ulic), ale nie widzę nic takiego w obszarze...
EDIT: HEUREKA! To dalej już sobie poradzę, dzięki!!! big_smile

A poza tym robi właśnie to, czego potrzebowałem...

EDIT2: Jeszcze nie do końca rozumiem kombinację ze zbiorem .container, a konkretnie: czemu nie można tego olać i puścić:

  (.buildings;.buildings >;)->.result; //get nodes for buildings geometry;
  
);

(.result;.highways;)-> .result; //merge buildings and highways

.result out;

Próbowałem i gubiło budynki - nie bardzo wiem czemu. Zbiory mają jakieś zakresy i mam inny .result wewnątrz pętli foreacz, a inny poza nią? Zainicjowanie .result w miejscu, gdzie inicjowałeś .container nie pomaga...

EDIT 2,5: Już rozumiem, czemu tak nie można - union wewnątrz pętli buduje nowy zbiór (u Ciebie: .container) po kawałku, czyli dodaje .buildings do dotychczasowej zawartości .container. Powinienem więc dać w pętli (.result; .buildings; .buildings > ) -> .result; żeby zadziałało.

EDIT3: Oraz dlaczego nie można zamiast szukać ulic dwukrotnie zrobić:

(
  way["highway"="residential"]["name"]({{bbox}});
); //nodeless

(._; ._ >;)->.highways;

tu są wybierane wyłącznie budynki bez addr:street. Ki czort?

EDIT4: Żeby było zabawniej, taki kod:

(
  way["highway"="residential"]["name"]({{bbox}});
)->.nodeless; //nodeless

(.nodeless; .nodeless >;)->.highways;

()->.container; //initialize empty set

foreach(
    (.nodeless;) -> .a; //get node free highways
  (
  	way["building"]
    (if: t["addr:street"] == a.set(t["name"]))
    ({{bbox}});
  	relation["building"]
    (if: t["addr:street"] == a.set(t["name"]))
    ({{bbox}});
    )-> .buildings;
  
  (.buildings;.buildings >;)->.buildings; //get nodes for buildings geometry;
  
  (.buildings; .container;)->.container; //append to container
);

(.container;.highways;)-> .result; //merge buildings and highways

.result out;

różniący się od poprzedniego wyłącznie użyciem zbioru .nodeless zamiast domyślnego - nie zwraca budynków w ogóle.

Mam wrażenie że nie rozumiem czegoś bardzo istotnego.

Last edited by rmikke (2017-06-29 07:58:32)

Offline

#78 2017-06-14 09:45:49

Geoinformatyczek
Member
Registered: 2016-04-22
Posts: 100
Website

Re: Overpass - do wyciągania danych z OSM

Zauważyłem sporo rezerwatów przyrody (protection_title=Nature Reserve) dodanych w OSM.
Większości brakuje tagów które kierują do opisu danego rezerwatu na Wikipedii

Trzeba by uzupełnić te braki

Dlatego potrzebny mi kod:
który pokaże wszystkie
protection_title=Nature Reserve
które posiadają name=*jakąś nazwę*
ale brakuje im
wikipedia=pl:

Last edited by Geoinformatyczek (2017-06-14 09:47:10)


https://riot.im/app/#/room/!BNHiZrhLPfW … matrix.org - Czat OSM Polska; Działa również w przeglądarce. Zapraszam

Offline

#79 2017-06-14 10:28:53

rmikke
Moderator
From: Warszawa
Registered: 2014-11-14
Posts: 1,659
Website

Re: Overpass - do wyciągania danych z OSM

Geoinformatyczek wrote:

Zauważyłem sporo rezerwatów przyrody (protection_title=Nature Reserve) dodanych w OSM.
Większości brakuje tagów które kierują do opisu danego rezerwatu na Wikipedii

Trzeba by uzupełnić te braki

Dlatego potrzebny mi kod:
który pokaże wszystkie
protection_title=Nature Reserve
które posiadają name=*jakąś nazwę*
ale brakuje im
wikipedia=pl:

Prosz: http://overpass-turbo.eu/s/pKs

Offline

#80 2017-06-14 16:51:19

Geoinformatyczek
Member
Registered: 2016-04-22
Posts: 100
Website

Re: Overpass - do wyciągania danych z OSM

Dzięki smile
A jak zrobić aby wyświetlało wszystkie punkty amenity ale bez np. amenity=school

Last edited by Geoinformatyczek (2017-06-14 16:51:26)


https://riot.im/app/#/room/!BNHiZrhLPfW … matrix.org - Czat OSM Polska; Działa również w przeglądarce. Zapraszam

Offline

#81 2017-06-14 17:15:21

kocio
Administrator
From: Warszawa
Registered: 2013-09-04
Posts: 3,277
Website

Re: Overpass - do wyciągania danych z OSM

W kreatorze:

amenity=* and amenity!=school

Ostatecznie kod wygląda tak:

http://overpass-turbo.eu/s/pLl

Offline

#82 2017-06-24 13:48:43

rowers2
Member
Registered: 2015-09-25
Posts: 583

Re: Overpass - do wyciągania danych z OSM

1) Potrzebna kwerenda wyszukująca poligony (konkretny tag),  nie mających wewnątrz  way (konkretny tag).
Widziałem kiedyś kwerendę pokazującą budynki, które przecinają drogi więc zapewne się da ją odwrócić.

2) Potrzebna kwerenda dla poligonów a:h które stykają się tylko z jednym a:h Czyli nieciągłość systemu a:h.

3) Potrzebna kwerenda  dla poligonów a:h z brakującym junction,  mających wewnątrz więcej niż 1 way (z klucza highway). Czyli błąd  braku junction

4) potrzebna kwerenda dla poligonów z konkretnym tagiem np. a:h które przecina way np. z kluczem highway, ale na przecięciu brak punktu wspólnego.Najlepiej aby wynik wizualizował nie poligony a punkt braku przecięcia (oczywiście wdzięczny będę też  za kwerendę bez tego utrudnienia)

5) potrzebna kwerenda poligonów (np.a:h) mających wewnątrz dwie way (z klucza highway) ale stykających się tylko z 1 lub 2 poligonami a:h Czyli przerwany system a:h na skrzyżowaniach.Może być prościej czyli brak styku z 2 poligonami, bo z jednym sprawę załatwi kwerenda nr2.

6) potrzebna kwerenda wyszukująca poligony np a:h mająca value niższe niż jedna z dróg ją przecinających lub kończących się od wewnątrz. Waga value w kolejności:  motorway, trunk, primary, secondary, tertiary, unclassified, residential, road, living_street, pedestrian, raceway, motorway_link, trunk_link, primary_link, secondary_link, tertiary_link, service, cycleway, footway, track, bridleway, path, construction, proposed, steps, bus_guideway, escape

7) potrzebna kwerenda na wyszukanie way nie mających na sobie noda z konkretnym tagiem

8) też odwrotnie jak wyżej , czyli otagowany nod, nie leżący na way z konkretnym tagiem

9) potrzebna kwerenda dla way nie zamkniętych w poligon np. way otagowane a:h


10) da się zsumować overpassem długości  dróg rowerowych z jednakowym surface?

11) da się wyszukać poligony np a:h od których w promieniu np 20 m jest mniej niż 2 szt np highway z value footway lub path pod warunkiem, że są one dłuższe niż 20 m? Czyli brak drugich chodników wzdłuż a:h.
Aby było skuteczne trzeba by chyba sprawdzić czy ze 3-4 nody tej footway czy patch mieszczą się w promieniu 20 m aby wyszukać tylko brakujące równoległe chodniki a aby wyniku nie fałszowały prostopadłe.

Offline

#83 2017-08-07 10:28:05

wmyrda
Member
Registered: 2014-07-07
Posts: 947

Re: Overpass - do wyciągania danych z OSM

@rowers2
Marek ostatnimi czasy postulował potrzebę usprawnień dla a:h także może ktoś podejmie wyzwanie i przygotuje reguły overpass pomagające w utrzymaniu tego kodu

@All
Przy tej okazji na nowo znalazłem, że swego czasu podniesiony został temat ujednolicenia wszystkich nazw banków PKO S.A. Może i do tego udało by się zaprząc by overpassa?

Last edited by wmyrda (2017-08-07 12:32:56)

Offline

#84 2018-01-15 05:30:03

patrykkowalewski
Member
Registered: 2018-01-13
Posts: 5

Re: Overpass - do wyciągania danych z OSM

Muszę sprawdzić czy pewne punkty na mapie należą do danego obszaru.
Mam uszykowaną kwerendę w overpass turbo, która zaznacza mi obszar.
Ale jak to zrobić aby na mapie zaznaczone były również moje punkty (mam ich współrzędne)

Przykładowe punkty (ogólnie mam ich 460):

52.396491, 16.893310
52.397499, 16.896593

Obecna kwerenda:

[date:"2016-07-17T00:00:00Z"]
[timeout:620]
[bbox:{{bbox}}];
(

    way[leisure=park];
    way[landuse=recreation_ground];
    way[leisure=recreation_ground];
    way[leisure=pitch];
    way[leisure=garden];
    way[leisure=golf_course];
    way[leisure=playground];
    way[landuse=meadow];
    way[landuse=grass];
    way[landuse=greenfield];
    way[natural=scrub];
    way[natural=grassland];
    way[landuse=farmyard];


    way[natural=plateau];
    way[boundary=national_park];
    way[leisure=nature_reserve];
    way[natural=heath];
    way[natural=moor];
    way[landuse=farmland];
    way[landuse=orchard];
    way[landuse=vineyard];
);
out body;
>;
out skel qt;

//Confirmed OSM tags will appear in blue
//Unconfirmed OSM tags will appear in grey

{{style:

    way[leisure=park],
    way[landuse=recreation_ground],
    way[leisure=recreation_ground],
    way[leisure=pitch],
    way[leisure=garden],
    way[leisure=golf_course],
    way[leisure=playground],
    way[landuse=meadow],
    way[landuse=grass],
    way[landuse=greenfield],
    way[natural=scrub],
    way[natural=grassland],
    way[landuse=farmyard]
{ color:blue; fill-color:blue; }


    way[leisure=nature_reserve],
    way[natural=plateau],
    way[natural=heath],
    way[natural=moor],
    way[landuse=farmland],
    way[landuse=orchard],
    way[landuse=vineyard]
{ color:grey; fill-color:grey; }
}}


Pomoże ktoś?
Nie znam się na tym sad

Offline

#85 2018-01-15 07:12:22

eBin
Member
From: ~Rzeszów
Registered: 2013-06-03
Posts: 228

Re: Overpass - do wyciągania danych z OSM

Offline

#86 2018-01-15 14:38:31

patrykkowalewski
Member
Registered: 2018-01-13
Posts: 5

Re: Overpass - do wyciągania danych z OSM

Tylko jak to zrobić?
Próbuję i nic sad
Cały czas zaznacza mi tylko obszary. Jak sprawdzić teraz czy jakieś współrzędne należą do tego obszaru czy nie?

Offline

#87 2018-01-15 17:06:48

WiktorN
Member
Registered: 2013-08-04
Posts: 528

Re: Overpass - do wyciągania danych z OSM

patrykkowalewski wrote:

Cały czas zaznacza mi tylko obszary. Jak sprawdzić teraz czy jakieś współrzędne należą do tego obszaru czy nie?

Zdefiniuj problem. Problemem jest to, że nie możesz zwizualizować swoich punktów, czy że zwracane są wszystkie obszary, a nie tylko te, które obejmują Twoje punkty?

is_in pozwoli Ci zwrócić te obszary, które obejmują Twoje punkty.

Jak chcesz teraz na wynik z Overpassa nałożyć swoje punkty - to jest to problem do którego potrzebujesz innego narzędzia.

Offline

#88 2018-01-15 22:18:20

patrykkowalewski
Member
Registered: 2018-01-13
Posts: 5

Re: Overpass - do wyciągania danych z OSM

Do wyniku z Overpassa chciałbym właśnie nałożyć swoje punkty. A wiesz może jakim narzędziem mogę to zrobić?

Offline

#89 2018-01-15 22:21:50

Teiron
Member
Registered: 2015-04-09
Posts: 98

Re: Overpass - do wyciągania danych z OSM

O ile dane pasują do OSM to dodaj je w OSM. A jeśli nie to możesz ściągnąć czyste dane jako geojson i obrobić w QGIS'ie

Offline

#90 2018-01-16 11:01:36

rmikke
Moderator
From: Warszawa
Registered: 2014-11-14
Posts: 1,659
Website

Re: Overpass - do wyciągania danych z OSM

patrykkowalewski wrote:

Witam

mam problem:

Mam kwerendę, która pokazuje mi wszystkie miejsca, które są terenami zielonymi, do tego chcę też aby na mapie były pokazane punkty, których koordynaty posiadam. Jak mogę to zrobić aby pokazać te punkty?
Pomoże ktoś?

Zasadniczo Overpass wyciąga to, co jest w bazie, więc jeśli Twoich punktów w bazie nie ma...
A co właściwie chcesz z tym zrobić? Może czym innym da się to osiągnąć, np uMap pozwoli Ci pokazać na mapie obiekty wyciągnięte Overpassem plus cokolwiek sobie zechcesz dorysować...

EDIT: Znalazłem osobny wątek na ten sam temat, w którym jest częściowa odpowiedź na moje pytanie. Pozwoliłem sobie wątki połączyć, z dwóch zapytań pozostawiając to, które było w osobnym wątku, jako precyzyjniej opisujące problem.

I tak, uMap powinien Ci pomóc sobie te punkty zobrazować, możesz wynik overpassa wyeksportować do GeoJSON i zaczytać do uMap, a ze swoich punktów musiałbyś też zrobić jakiś format importowalny do uMap, chociażby również GeoJSON.

Offline

#91 2018-03-27 16:55:28

Voldie
Member
Registered: 2018-03-27
Posts: 1

Re: Overpass - do wyciągania danych z OSM

Pytanko mam. Czy dane overpassturbo w ogóle są aktualizowane? Przydałaby mi się one teraz zaktualizowane, a jak patrzę sobie na lewą część strony to niestety. Dane dla terenu, który chciałem prześledzić pochodzą z 7 lipca 2016 roku. Jest jakaś szansa na aktualizację danych?

Offline

#92 2018-03-27 17:32:40

RicoElectrico
Member
From: Trójmiasto
Registered: 2012-07-01
Posts: 1,226

Re: Overpass - do wyciągania danych z OSM

Patrzysz na parki itp. w wiadomym nam wink celu?
Usuń [date:....] z góry.

Offline

#93 2018-03-27 17:35:46

rmikke
Moderator
From: Warszawa
Registered: 2014-11-14
Posts: 1,659
Website

Re: Overpass - do wyciągania danych z OSM

Voldie wrote:

Pytanko mam. Czy dane overpassturbo w ogóle są aktualizowane? Przydałaby mi się one teraz zaktualizowane, a jak patrzę sobie na lewą część strony to niestety. Dane dla terenu, który chciałem prześledzić pochodzą z 7 lipca 2016 roku. Jest jakaś szansa na aktualizację danych?

A nie korzystasz z jakiegoś serwera testowego? Jedynie słuszny serwer pokazuje stan aktualny.
Albo po prostu widzisz w zapytaniu wpis, żeby wyszukiwał według stanu na 7 lipca 2016, wtedy wystarczy go usunąć i odświeżyć zapytanie.

Offline

#94 2019-01-22 00:31:53

RicoElectrico
Member
From: Trójmiasto
Registered: 2012-07-01
Posts: 1,226

Re: Overpass - do wyciągania danych z OSM

Przerabiając przykłady z Wiki stworzyłem kwerendę, która może podpowiedzieć gdzie rysować budynki.
Korzystamy oczywiście z faktu, że zaimportowanymi adresami pokryta jest niemal cała Polska.

Wersja z bbox-em: http://overpass-turbo.eu/s/FpW
Wersja dla obszaru (np. gminy, powiatu): http://overpass-turbo.eu/s/FpV

Last edited by RicoElectrico (2019-01-22 00:38:27)

Offline

#95 2019-01-26 20:06:23

JulesGabrielVerne
Member
Registered: 2018-01-08
Posts: 23

Re: Overpass - do wyciągania danych z OSM

Super. Działa. Warto też zmniejszyć sobie odległość do np. 100m. A z tymi adresami jak to jest, one są co jakiś czas aktualizowane z jakieś zewnętrznej bazy państwowej?

Offline

#96 2019-01-26 22:06:11

szydzio
Member
Registered: 2016-07-28
Posts: 235

Re: Overpass - do wyciągania danych z OSM

JulesGabrielVerne wrote:

A z tymi adresami jak to jest, one są co jakiś czas aktualizowane z jakieś zewnętrznej bazy państwowej?

Najczęściej są importowane z bazy ewidencji miejscowości, ulic i adresów ( EMUiA) poprzez serwis iMPA na prośbę wyrażoną w tym wątku.

Offline

#97 2019-01-26 22:08:29

RicoElectrico
Member
From: Trójmiasto
Registered: 2012-07-01
Posts: 1,226

Re: Overpass - do wyciągania danych z OSM

Automagicznie to nie. Zazwyczaj Zbigniew to ogarnia(ł) na czyjąś prośbę z forumowego wątku. Bazując na skrypcie od WiktorN, który chyba jest na GitHubie.
Większość gmin używa e-mapa.net (iMPA) albo EMUiA. Choć koniec końców dane dla wszystkich gmin powinny i tak lądować w PRG.

Offline

#99 2019-05-08 23:30:34

RicoElectrico
Member
From: Trójmiasto
Registered: 2012-07-01
Posts: 1,226

Re: Overpass - do wyciągania danych z OSM

Overpassowi hakerzy, wiecie może jak zategować poniższą kwerendę, aby węzły należące do granicy nie były uwzględniane?

http://overpass-turbo.eu/s/IPv

Offline

#100 2019-05-09 08:25:45

rmikke
Moderator
From: Warszawa
Registered: 2014-11-14
Posts: 1,659
Website

Re: Overpass - do wyciągania danych z OSM

RicoElectrico wrote:

Overpassowi hakerzy, wiecie może jak zategować poniższą kwerendę, aby węzły należące do granicy nie były uwzględniane?

http://overpass-turbo.eu/s/IPv

A możemy zacząć od zdefiniowania "granicy"?

Jak już zdefiniujemy, to odejmiemy od .relations i ewentualnie od .ways i dopiero w tak otrzymanych zbiorach będziemy liczyć tagi...

Offline

Board footer

Powered by FluxBB