Overpass - do wyciągania danych z OSM

W kreatorze wpisz coś w stylu “name=* in rzeszowski” to dla powiatu, a “Rzeszów” dla gminy. Jeśli zaś nazwa gminy i powiatu używana w overpass’ie się pokrywają to trzeba by było znaleźć numer relacji która jest reprezentacją danej gminy/powiatu i wpisać zamiast nazwy “name=* in XXXXXXX”.

Pięknie dziękuję za odpowiedzi. Przykład od wowika jest tym czego szukałem :slight_smile:

Czy jakiś magik wie dlaczego taka kwerenda (znajdź węzły i linie w Gdyni z name:* ale bez name) nie działa jak powinna?

[out:json][timeout:25];
{{geocodeArea:Gdynia}}->.searchArea;
(
  node[!"name"][~"^name\:"~"."](area.searchArea);
  way[!"name"][~"^name\:"~"."](area.searchArea);
);
out body;
>;
out skel qt;

Edit: Gdy zmienię “Gdynia” na “pomorskie” to zwrócone wcześniej węzły nie załapują się, co trochę przeczy logice.

jakie pomorskie? Województwo pomorskie.

Geokoder działa tak samo w obu przypadkach. Pominąłem “województwo” odruchowo, bo wcześniej Alt+O otwierało okno wczytania zapisanej kwerendy :stuck_out_tongue:

W sumie to “pomorskie” jest wpisane dla obszaru jako “short_name” także mogło by wychwycić, że taki obszar istnieje. Ciekawe czemu tak nie robi.

Postawiłem serwer Overpass’a, który zawiera dane tylko z Polski i aktualizuje się co minutę.

Adres dla Overpass Turbo:

//osm-cdn.vink.pl/api/

Dla zapytań bezpośrednich:

http://osm-cdn.vink.pl/api/interpreter

Sprawdźcie proszę, czy wszystko działa jak trzeba :slight_smile: wszelkie głosy ważne.

Dla chętnych - postawione w Dockerze z pomocą tego obrazka

Niestety 404 na

http://osm-cdn.vink.pl/api/

Wszystko się zgadza. Usługa działa pod adresem:

http://osm-cdn.vink.pl/api/interpreter

Natomiast jak sprawdzałem Overpass Turbo, to on sam dokleja interpreter, więc w Overpass Turbo trzeba podać bez interpreter.

Witam,
Czy istnieje możliwość “wyciągnięcia” danych: kodu pocztowego i jego (średniej?!) lokalizacji dla obszaru Polski?

Overpass zdaje się nie ma żadnych funkcji aggregujących/operujących na geometrii. Posłużyłbym się postgisem, np.:


SELECT ST_Buffer(ST_ConcaveHull(ST_Collect("way"), 0.99),1) AS geom,  
ST_Area(ST_Buffer(ST_ConcaveHull(ST_Collect("way"), 0.99),1))/1000000 AS area, 
"addr:postcode" FROM (
  SELECT "addr:postcode", "way" FROM planet_osm_point WHERE "addr:postcode" IS NOT NULL GROUP BY "addr:postcode", "way"
  UNION
  SELECT "addr:postcode", ST_Centroid("way") FROM planet_osm_polygon WHERE "addr:postcode" IS NOT NULL GROUP BY "addr:postcode", "way"
  ) AS dupa
GROUP BY "addr:postcode";

co wizualizuje się +/- następująco:

G.

Ciekawe czy dałoby radę przerobić to na diagram Woronoja albo jeszcze lepiej k-najbliższych sąsiadów (k-NN). Wtedy nie byłoby dziur.

https://postgis.net/docs/ST_VoronoiPolygons.html - ćwiczenia zostawię pytającemu :slight_smile:

G.

Dziękuję gsapijaszko.
Spróbuję skorzystać z Twojej rady. Co prawda jeszcze nie wiem jak (Qgis dopiero “liznąłem”), ale popróbuję.
Na moje potrzeby wystarczą dane “z dziurami”.

Jest jakiś sposób, żeby wyciągnąć tylko obiekty niewystające poza obszar?
W sensie, że np. mam w Polsce drogi spełniające określone warunki, ale chcę jeszcze odrzucić te, które kończą się poza Polską. Całą drogę, jeśli jej kawałek wystaje poza zadany obszar.

Potrzebuję dla relacji i linii.

Za radą gsapijaszko próbowałem uruchomić postgis. Zainstalowałam osm2pgsql, niestety wersja postgis -1.5.3, nie udostępnia rozszerzenia postgis bazy (jeżeli dobrze się wrażam :frowning: ). Import danych jest niemożliwy.
Czy ktoś zna rozwiązanie problemu bez konieczności upgreadu? Korzystam tylko ze stabilnej wersji Debiana Wheezy i tak chcę pozostać.

A zrobiłeś CREATE EXTENSION postgis; ?

Tak. W wersji 1.5 chyba właśnie w tym problem, że ten sposób jest niedostępny.

To jakiś przedpotopowy ten postgis :wink: Żarty “twoja stara jest tak stara, że znajduje się w repozytorium debiana stable” chyba nie są przesadzone :smiley:

:slight_smile: I tak jest w rzeczywistości. Nie wiem czy przed 20:00 można, ale znasz to - “Lepsza starsza i doświadczona …”?
Na takie okazje chwilowo instaluję Ubuntu. I jak nie znajdę sposobu tak zrobię i teraz.
Dzięki za zainteresowanie.