You are not logged in.

#126 2020-04-18 21:29:21

Marek-M
Member
From: [PL] Banino
Registered: 2017-01-24
Posts: 164

Re: Overpass - do wyciągania danych z OSM

maro21 wrote:

Działa wam Overpass Turbo? U mnie nagle przestało działać.
"Błąd Nominatima. Nie można znaleźć obiektu o takiej nazwie: Wrocław"
Zniknął też przycisk "abort" przy przetwarzaniu kwerendy.

U mnie działa po staremu, czyli jest OK. Testowałem zapytanie o apteki we Wrocławiu http://overpass-turbo.eu/s/T1n


Marek-M

Offline

#127 2020-04-18 21:53:50

maro21
Member
From: Wrocław
Registered: 2018-03-06
Posts: 556

Re: Overpass - do wyciągania danych z OSM

U mnie też już działa, widocznie jakieś chwilowe problemy.

Offline

#128 2020-08-26 18:18:13

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

Re: Overpass - do wyciągania danych z OSM

Mam taką kwerendę JOSM-a

ford=yes child (highway type:way child (type=route type:relation))

Chcę to przerobić na Overpass QL. Znajduje ona brody, które leżą na drogach należących do różnych relacji tras.
W przypadku tras rowerowych wiele z nich jest wątpliwe i dodano je na wyrost celem skompletowania trasy bez sprawdzenia w terenie.

Offline

#129 2020-08-27 12:02:51

Dotevo
Moderator
From: Kobiernice/Wrocław Poland
Registered: 2009-02-15
Posts: 1,744
Website

Re: Overpass - do wyciągania danych z OSM

Wymyślone na szybko:
https://overpass-turbo.eu/s/Xrm

Nie wiem czy dokładnie o to Ci chodziło, ale opisałem kroki działania.

Offline

#130 2020-09-10 17:03:03

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

Re: Overpass - do wyciągania danych z OSM

Potrzebuję pomocy, inspirowany Wiki tworzę skryptozakładkę (bookmarklet), która gdy jesteśmy na stronie z jakąś uwagą np. https://www.openstreetmap.org/note/2338496
otworzy nam w nowym oknie Overpass turbo i załaduje w tej pozycji dane OSM w stanie na moment utworzenia tej uwagi
(dla uwagi z linka powyżej: https://overpass-turbo.eu/s/XUA )

Kod działa gdy go wkleję do konsoli Firefoxa, ale nie umiem z niego zrobić skryptozakładki.
Jeśli ktoś się zastanawia dlaczego używam XHR do API OSM, to dlatego że data utworzenia uwagi na osm.org jest podana w języku użytkownika wink


javascript: (function() {
    id = location.href.match(/www\.openstreetmap\.org\/note\/(\d+)/);
    if (id != null) {
        var req = new XMLHttpRequest();
        req.open('GET', 'https://www.openstreetmap.org/api/0.6/notes/' + id[1] + '.json', false);
        req.send(null);
        var note = JSON.parse(req.responseText);
        var date = new Date(note.properties.date_created.replace(' UTC', ''));
        var lat = note.geometry.coordinates[1];
        var lon = note.geometry.coordinates[0];
        var zoom = 18;
        var isoDate = date.toISOString();
        var queryString = '[date:\"' + isoDate + '\"];\n(\n  node({{bbox}});\n  way({{bbox}});\n  \/\/relation({{bbox}});\n);\r\nout meta;\n>;\nout meta qt;';
        window.open('https://overpass-turbo.eu/?Q=' + escape(queryString) + '&C=' + lat + ';' + lon + ';' + zoom + '&R');
    } else {
        alert('This is not a valid OSM note page.')
    }
})()

Last edited by RicoElectrico (2020-09-10 17:10:48)

Offline

#131 2020-09-10 18:09:20

maraf24
Member
From: Wrocław
Registered: 2015-03-07
Posts: 1,915

Re: Overpass - do wyciągania danych z OSM

W Chromie działa?

Offline

#132 2020-09-10 18:15:28

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

Re: Overpass - do wyciągania danych z OSM

maraf24 wrote:

W Chromie działa?

Tak.
Wiem do czego zmierzasz - gdy strona przekazuje nagłówek strict CSP, to Firefox nie pozwala uruchamiać skryptozakładek. (wg https://wiki.openstreetmap.org/wiki/Bookmarklet - Chrome się nie przejmuje)
Z tym, że to nieprawda, bo podana na Wiki skryptozakładka Achavi działa w Firefoxie 80.0.1 roll
(Przez jakiś czas w poprzednich wersjach rzeczywiście nie działała).
I mam tu zonka, bo jedyny request jaki robię, jest właśnie do openstreetmap.org. Overpass turbo otwieram w zupełnie nowej karcie.
Ogólnie w konsoli nie dzieje się zupełnie nic.

Edit: jakoś udało mi się sprawić, że działa big_smile
Firefox z jakiegoś powodu ignoruje wklejane do paska URL-e z javascript: .
Po skasowaniu nowych linii i spacji da się to dodać do zakładek.

javascript:(function(){id=location.href.match(/www\.openstreetmap\.org\/note\/(\d+)/);if(id!=null){var req=new XMLHttpRequest();req.open('GET','https://www.openstreetmap.org/api/0.6/notes/'+id[1]+'.json',false);req.send(null);var note=JSON.parse(req.responseText);var date=new Date(note.properties.date_created.replace(' UTC',''));var lat=note.geometry.coordinates[1];var lon=note.geometry.coordinates[0];var zoom=18;var isoDate=date.toISOString();var queryString='[date:\"'+isoDate+'\"];\n(\n node({{bbox}});\n way({{bbox}});\n \/\/relation({{bbox}});\n);\r\nout meta;\n>;\nout meta qt;';window.open('https://overpass-turbo.eu/?Q='+escape(queryString)+'&C='+lat+';'+lon+';'+zoom+'&R');}else{alert('This is not a valid OSM note page.')}})()

Last edited by RicoElectrico (2020-09-10 18:36:01)

Offline

#133 2020-09-10 19:36:37

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

Re: Overpass - do wyciągania danych z OSM

A oto kolejna wersja, która potrafi odczytać datę aktualizacji map z uwag robionych w MAPS.ME:

javascript: (function() {
    var id = location.href.match(/www\.openstreetmap\.org\/note\/(\d+)/);
    if (id != null) {
        var req = new XMLHttpRequest();
        req.open('GET', 'https://www.openstreetmap.org/api/0.6/notes/' + id[1] + '.json', false);
        req.send(null);
        var note = JSON.parse(req.responseText);
        var date = new Date(note.properties.date_created.replace(' UTC', ''));
        var lat = note.geometry.coordinates[1];
        var lon = note.geometry.coordinates[0];
        var zoom = 18;
        var isoDate = date.toISOString();
        var noteText = note.properties.comments[0].text;
        var osmDataVersion = noteText.match(/OSM data version\: ([\d]{4}-[\d]{2}-[\d]{2}T[\d]{2}\:[\d]{2}\:[\d]{2}\Z)/);
        if (osmDataVersion != null) {
            isoDate = osmDataVersion[1];
        }
        var queryString = '[date:\"' + isoDate + '\"];\n(\n  node({{bbox}});\n  way({{bbox}});\n  \/\/relation({{bbox}});\n);\r\nout meta;\n>;\nout meta qt;';
        window.open('https://overpass-turbo.eu/?Q=' + escape(queryString) + '&C=' + lat + ';' + lon + ';' + zoom + '&R');
    } else {
        alert('This is not a valid OSM note page.')
    }
})()

I po zmniejszeniu:

javascript:(function(){var id=location.href.match(/www\.openstreetmap\.org\/note\/(\d+)/);if(id!=null){var req=new XMLHttpRequest;req.open("GET","https://www.openstreetmap.org/api/0.6/notes/"+id[1]+".json",false);req.send(null);var note=JSON.parse(req.responseText);var date=new Date(note.properties.date_created.replace(" UTC",""));var lat=note.geometry.coordinates[1];var lon=note.geometry.coordinates[0];var zoom=18;var isoDate=date.toISOString();var noteText=note.properties.comments[0].text;var osmDataVersion=noteText.match(/OSM data version\: ([\d]{4}-[\d]{2}-[\d]{2}T[\d]{2}\:[\d]{2}\:[\d]{2}\Z)/);if(osmDataVersion!=null){isoDate=osmDataVersion[1]}var queryString='[date:"'+isoDate+'"];\n(\n  node({{bbox}});\n  way({{bbox}});\n  //relation({{bbox}});\n);\r\nout meta;\n>;\nout meta qt;';window.open("https://overpass-turbo.eu/?Q="+escape(queryString)+"&C="+lat+";"+lon+";"+zoom+"&R")}else{alert("This is not a valid OSM note page.")}})();

Offline

#134 2020-10-09 13:29:58

maro21
Member
From: Wrocław
Registered: 2018-03-06
Posts: 556

Re: Overpass - do wyciągania danych z OSM

Czy da się w overpass w {{geocodeArea:Kraków}} wpisać dwa miasta/regiony? Np. jeśli chciałbym jednocześnie Kraków i Poznań?

Offline

#135 2020-10-09 13:44:37

Mateusz Konieczny
Member
Registered: 2013-09-22
Posts: 1,907

Re: Overpass - do wyciągania danych z OSM

Można na pewno skleić dwa zapytania (daj znać jeśli pomocy tu potrzebujesz), ale nie potrafię tego zrobić w jednym geocodeArea .

Offline

#136 2020-10-09 13:58:10

maro21
Member
From: Wrocław
Registered: 2018-03-06
Posts: 556

Re: Overpass - do wyciągania danych z OSM

Jak skleić? Wkleić jedno pod drugim? Bo chciałbym, żeby nie trzeba było osobno uruchamiać dwóch zapytań.

Offline

#137 2020-10-09 18:12:51

NieWnen
Member
Registered: 2020-08-28
Posts: 3

Re: Overpass - do wyciągania danych z OSM

maro21 wrote:

Czy da się w overpass w {{geocodeArea:Kraków}} wpisać dwa miasta/regiony? Np. jeśli chciałbym jednocześnie Kraków i Poznań?

Możesz. Grupujesz obszary w dodatkowe nawiasy:

(
  {{geocodeArea:Poznań}};
  {{geocodeArea:Kraków}};
)->.searchArea;

a potem resztę wykonujesz tak samo używając (area.searchArea).

Możesz też zawęzić do mniejszych obszarów, jak nie interesuje cię cało miasto. Ja często korzystam z kluczy/wartości teryt:simc np. do wybrania poszczególnych dzielnic Warszawy.

[out:json];

(
  area["teryt:simc"="0919884"];  // Wola
  area["teryt:simc"="0918643"];  // Ochota
  area["teryt:simc"="0918130"];  // Mokotów

)->.a;

Offline

#138 2020-10-09 18:57:14

maro21
Member
From: Wrocław
Registered: 2018-03-06
Posts: 556

Re: Overpass - do wyciągania danych z OSM

NieWnen wrote:

Możesz. Grupujesz obszary w dodatkowe nawiasy

Dzięki!


A co zrobić, gdy nazwa nie jest unikalna, jak np. "Stare Miasto", "Nowa Wieś" i może być wiele obiektów o takiej samej nazwie.
Da się jakoś wpisać ID linii z OSM?

Np. po wpisaniu {{geocodeArea:Stare Miasto}} znajduje obiekty w... Jerozolimie;)

Offline

#139 2020-10-09 20:39:56

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

Re: Overpass - do wyciągania danych z OSM

maro21 wrote:

A co zrobić, gdy nazwa nie jest unikalna, jak np. "Stare Miasto", "Nowa Wieś" i może być wiele obiektów o takiej samej nazwie.
Da się jakoś wpisać ID linii z OSM?

Np. po wpisaniu {{geocodeArea:Stare Miasto}} znajduje obiekty w... Jerozolimie;)

Obejrzyj drugi z podanych przykładów wink

Offline

#140 2020-10-09 21:09:30

maro21
Member
From: Wrocław
Registered: 2018-03-06
Posts: 556

Re: Overpass - do wyciągania danych z OSM

rmikke wrote:

Obejrzyj drugi z podanych przykładów wink

Nie każdy obiekt ma tag "teryt:simc". Chodziło mi o numer "way" w OSM.

Offline

#141 2020-10-09 22:09:48

maraf24
Member
From: Wrocław
Registered: 2015-03-07
Posts: 1,915

Re: Overpass - do wyciągania danych z OSM

Stare Miasto we Wrocławiu i Poznaniu:

area(id:3602341619,3601849136)->.searchArea;

id są powiększone o 3600000000, bo to relacje. Dla linii należy powiększyć o 2400000000.

Offline

#142 2021-01-05 19:02:46

dodoelk
Member
Registered: 2019-08-09
Posts: 48

Re: Overpass - do wyciągania danych z OSM

Mógłby ktoś pomóc ?

Potrzebuję wyciągnąć z bazy te drogi unclassified i residental dla których surface nie ma wartości.
Drugi temat to drogi dla których surface=xxx (coś sobie podstawię)

Z góry dzięki.

Offline

#143 2021-01-05 19:24:05

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

Re: Overpass - do wyciągania danych z OSM

dodoelk wrote:

Potrzebuję wyciągnąć z bazy te drogi unclassified i residental dla których surface nie ma wartości.

http://overpass-turbo.eu/s/123o

dodoelk wrote:

Drugi temat to drogi dla których surface=xxx (coś sobie podstawię)

http://overpass-turbo.eu/s/123p
dla innych nawierzchni podmieniasz ["surface"="gravel"] na ["surface"="xxx"]

Offline

#144 2021-01-12 09:36:36

dodoelk
Member
Registered: 2019-08-09
Posts: 48

Re: Overpass - do wyciągania danych z OSM

niestety pierwsza kwerenda zwraca tylko drogi unclassified, nie działa dla residental

Offline

#145 2021-01-12 09:57:11

Marek-M
Member
From: [PL] Banino
Registered: 2017-01-24
Posts: 164

Re: Overpass - do wyciągania danych z OSM

W pierwszej kwerendzie była literówka - zamiast 'residential' było wpisane 'residental'. Poniżej poprawiona kwerenda:
http://overpass-turbo.eu/s/12gX


Marek-M

Offline

#146 2021-01-12 11:11:08

dodoelk
Member
Registered: 2019-08-09
Posts: 48

Re: Overpass - do wyciągania danych z OSM

dzięki

Offline

#147 2021-01-12 13:59:53

m@rio
Member
Registered: 2016-04-19
Posts: 64

Re: Overpass - do wyciągania danych z OSM

dodoelk wrote:

Potrzebuję wyciągnąć z bazy te drogi unclassified i residental dla których surface nie ma wartości.
Drugi temat to drogi dla których surface=xxx (coś sobie podstawię)

Opcjonalnie, po małej optymalizacji - 2w1: https://overpass-turbo.eu/s/12hz
Dla poprawnego działania jedna z opcji powinna być 'zakomentowana'.

Offline

#148 2021-01-13 00:54:50

m@rio
Member
Registered: 2016-04-19
Posts: 64

Re: Overpass - do wyciągania danych z OSM

Ciekawostka dla użytkowników overpass.
Można uprościć algorytm wyszukiwania i zamiast 3 linii:

(
  node["amenity"="pharmacy"]({{bbox}});
  way["amenity"="pharmacy"]({{bbox}});
  relation["amenity"="pharmacy"]({{bbox}});
);

użyć jednej:

(
  nwr["amenity"="pharmacy"]({{bbox}});
);

Offline

Board footer

Powered by FluxBB