Czyszczenie uwag z MAPS.ME

Zrobiłem listę uwag, które zostały dodane przez użytkowników MAPS.ME oraz pokrywają się z ich edycjami (ta sama lokalizacja, ten sam user). Innymi słowy, są to uwagi, które same wcielili w życie przez edycje, ale nie rozwiązali na osm.org. Albo kliknęli “miejsce nie istnieje”, bo się pomylili (MAPS.ME nie ma kasowania POI). Polecam popatrzeć na tagowanie tych POI, bo czasami może wymagać poprawy (niesławny już highway=rest_area).

Jest ich 142 116 76. Zapraszam do sprzątania. Dość łatwa robota. W środku instrukcja jak pomóc.

https://docs.google.com/spreadsheets/d/1-zY0Cvu7CilDjF05yoUhWG5SWfVwoct4y25z1YZhIZI/edit#gid=719345039

Podzielisz się kodem do filtrowania uwag?

Spróbuję dziś dziś :stuck_out_tongue: wieczorem. Robię to w PostGIS-ie.

Dobra. Zaczynając.
Uruchamiamy https://github.com/RicoElectrico/ChangesetMD (z moją poprawką dla changesetów o zerowym obszarze). Import z indeksowaniem pewnie potrwa 7 godzin. Używamy oczywiście opcji -g.
Potem https://github.com/RicoElectrico/NoteMD do tej samej bazy. Także z -g.

Robimy parę pierdółek:

create index changeset_area_idx on osm_changeset using ST_Area(geom); --Możliwe, że nie jest konieczny

create view note_ex as
select n.*, c.comment_user_id, c.comment_user_name, c.comment_text
from note n, note_comment c
where n.id = comment_note_id and c.comment_action='opened';

A tu właściwa część:

CREATE TABLE mapsme_notes AS                                                                                                                                                                                                 
select a.* from note_ex a, 
(SELECT distinct(n.id)
FROM note_ex n,
     osm_changeset c
WHERE ST_Area(c.geom) < 1e-9
  AND ST_DWithin(n.geom, c.geom, 1e-6)
  AND (n.comment_user_id = c.user_id
       OR n.comment_user_id IS NULL)
  AND c.tags->'created_by' LIKE 'MAPS.ME%'
  AND n.closed_at IS NULL) b where a.id = b.id;

I to by było na tyle, żeby dostać wyniki. Dalej to kwestia obróbki.

Mam nadzieję, że nie przeoczyłem żadnego indeksu. Trzeba by popatrzeć w EXPLAIN na świeżej tabeli.

Województwa wziąłem z BDOO, bo miałem pod ręką, ale można je wziąć skądkolwiek, choćby z bazy zapełnionej przez osm2pgsql (select name, way from planet_osm_polygon where “admin_level” = ‘4’; )- i odpowiednio zmodyfikować klauzulę “geokodującą”

Tutaj zapisuję do pliku.

\copy (select 'http://osm.org/note/'|| a.id::text as link, a.created_at, (select nazwa from granice g where ST_Intersects(a.geom,g.geom) and g.rodzaj='Woj' order by nazwa limit 1) as woj, a.comment_user_name, a.comment_text from mapsme_notes a, granice g where ST_Intersects(a.geom,g.geom) and g.rodzaj='Woj';
) to mapsme_pl.csv with csv

@Mateusz Konieczny Bardzo prosiłbym o przetestowanie. Możliwe, że coś przeoczyłem.

A co tam wrzucamy? “weekly changeset metadata dump”?

Może warto to zgłosić jako PR autorowi oryginału? https://github.com/ToeBee wskazuje że rzadko, ale jest nadal aktywny.

Tak, to z “discussions” w nazwie najlepiej, bo mamy gratis dyskuje. :wink:

To wciąż beta. Inną opcją przeze mnie testowaną było generowanie linii i punktów, ale to wolniej się indeksowało. Z kolei obecna opcja więcej zajmuje na dysku. 17 GB vs 10 GB bez patcha (ale mogę się mylić). To by trzeba porządnie zbadać.
Przy okazji prędkość wgrywania update’ów replikacją woła o pomstę do nieba.