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";
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.
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 ). 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ć.
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.
Do importu danych do tak utworzonej bazy danych można użyć osm2pgsql (to moja ścieżka) albo imposma (https://imposm.org/), którego używa m.in. SQ9NIT do swoich map.
Wersja postgisa będzie miała znaczenie na etapie późniejszym, niektóre funkcje są dostępne w nowszych wersjach.
Tu jest opis pożenienia qgisa z sqlite i osm: http://learnosm.org/en/osm-data/osm-in-qgis/. Do celu policzenia “centrum” położenia kodów adresowych może wystarczyć, później można po prostu policzyć średnią geometryczną dla współrzędnych X i Y.
Może użyłem zbytniego skrótu “import”. Właśnie nie mogę dodać rozszerzenia postgis do utworzonej bazy (CREATE EXTENSION postgis;), z hstore daję radę. Jeżeli nie istnieje rozszerzenie bazy (wydaje się, że t0 jest powód) to osm2pgsql zgłasza błąd. W moim przypadku brak funkcji AddGeoColumns.
Dzięki za link. Też brałem pod uwagę konwersję osm do innej bazy . Sqlite byłoby ok.
Spróbuję.
Rozpoczynając temat liczyłem na “złoty strzał” - kliknij tu, a wynik sam wyskoczy. Właściwie osiągnąłem cel, mam plik (3,5 miliona linii), który po “drobnych” przeróbkach będzie przydatny dla mojego zastosowania. W skrócie (używając QGIS) - konwersja osm do sqlite, następnie zapytanie do tak utworzonej bazy, o wszystkie punktu z kodem pocztowym i zapisanie wyniku do pliku csv (również QGIS).
Po drodze okazało się, że otrzymywana baza sqlite, to jest baza spatial (przestrzenna), o czym nie miałem pojęcia i znowu trzeba czegoś się uczyć, choć nie wiem czy kiedykolwiek to się przyda :(.
Dziękuję Ci gsapijaszko.
Cała frajda właśnie w tym, by ciągle się czegoś uczyć. Poznawać nowe. Smakować. Czy się kiedyś przyda, czy nie — to źle postawione pytanie. Ciekawszym jest: jak inaczej mogę to zrobić? Umiejętności, zwłaszcza nauczone przy okazji zabawy, zapamiętuje się dłużej. I na ogół prędzej czy później się przydają.
Hmm… wydawało mi się, że punktów adresowych mamy więcej, Zbyszek coś kiedyś pisał o 5 czy 6 mln. Czy uwzględniłeś w swoim zapytaniu również budynki, które mają przypisane adresy? Z tych budynków należałoby wyliczyć centroid i taki wynik połączyć z punktami adresowymi.