Oho, dzięki za przykłady! Szukałem w największych miastach, a okazuje się że OF’y są także w tych mniejszych
Przy okazji wychodzi na to, że zapis (z PRG) [numer]-oficyna, itp. nie występują w dużej ilości poza Szczecinem. W Jeleniej Górze wyłapałem tylko zapis [numer]OF, natomiast w Legnicy znalazłem jeden adres “7-7OFICYNA”, reszta ma standardowe (?) [numer]OF.
Swoją drogą, za najbardziej poprawny zapis uważam ten, ze szczecińskiego SIP-u ([numer]-OF i [numer]-OFOF), ponieważ zapis bez odstępu może sugerować, że jest to adres typu [numer]AB, [numer]XY, itd. Gdzieś widziałem całe osiedle domków z adresami tego typu. https://www.openstreetmap.org/#map=18/54.12664/16.16592 - na szybko znalazłem taki, mało “hardcorowy” przykład
Przerobiłem nowe brakujące adresy we Wrocławiu po tej ostatniej zmianie - było trochę błędnych, podobnych jak wyżej na dużych lub długich budynkach, ale w większości były nowe braki, nie błędy.
Kolejny przypadek: https://i.postimg.cc/Gp6N84by/adres.png
Dlaczego ten adres wcześniej był pominięty? Adres w zielonym kółku też ma numer domu 1, ale dla innej ulicy.
Z miastami nie byłoby może problemu, ale trzeba by sprawdzić jak z wsiami gdzie nie ma ulic i może być trochę przypadków, gdzie takie same numery są blisko tylko że w oddzielnych wsiach/koloniach/przysiółkach.
Zapis bez addr:city/place utrudnia korzystanie z danych wszystkim ludziom, którzy nie wpisują tego w Nominatim tylko chcą pobrać dane z bazy/plików/api.
Zresztą poprawcie mnie jak się mylę, ale granice przestrzenne miejscowości nie są jakoś dobrze prawnie określone w Polsce, poza miastami które jednocześnie są gminami i można skorzystać z obrysu gminy. W BDOT10k jest warstwa ADMS, która niby to zawiera, ale ostatnim razem jak kilka lat temu na nią patrzyłem to była trochę dziurawa. Więc ja nie wiem skąd w OSM te granice miejscowości są i pytanie ile miejscowości je ma, a ile nie ma.
Co do miejscowości mających adresy z oficynami to na szybko wyszło mi, że w PRG miejscowości gdzie są jakieś numery porządkowe kończące się na “of” to:
simc | msc
---------±---------------
0005167 | Łomianki Dolne
0935802 | Jelenia Góra
0945380 | Zabrze
0954047 | Legnica
0965016 | Opole
0977278 | Słupsk
0977373 | Lębork
0987213 | Oleśnica
0987331 | Strzelin
a miejscowości z numerem porządkowym zawierającym “oficyn” to:
simc | msc
---------±---------
0954047 | Legnica
0977976 | Szczecin
Nie wiem, ale ulica się źle dopasowała przy czyszczeniu PRG.
Z obrazków ciężko mi to potem znaleźć, ale pierwszy wygląda na odległość, a drugi na to że numer 6 był przypisany do budynku i wcześniej to wycinało wszystkie adresy w pobliżu tego budynku.
Wszystkie miasta mają zdefiniowane granice. W przypadku gmin wiejsko-miejskich jest dostępny podział na część miejską i wiejską.
Problem z granicami występuje przy wsiach.
Niestety Nominatim ma tendencję do „gubienia się” przy obiektach położonych blisko granicy relacji co wynika z aproksymacji jaką Nominatim stosuje do określania adresów.
Tutaj przykłady ze Szczecina które mimo zawierania się w obrębie relacji są przez Nominatim przyporządkowywane do innych miejscowości.
Koniec końców Nominatim daje rady je jednak odnaleźć (choć np. Photon w przypadku pierwszych 2 adresów się poddaje) ale bez addr:city może IMHO powstać u użytkowników wątpliwość która miejscowość jest właściwa.
Inną kwestią są też nieprawidłowo wyrysowane granice. Często spotykam niestety sytuacje, w których nawet gminy są wyrysowane (miejscami sporo) niedokładnie i „łapią” miejscowości z ościennych gmin.
Dlatego uważam, że addr:city/addr:place nawet w przypadku wyrysowanych granic nie jest redundantne i zawsze je uzupełniam jeśli są takie braki.
Wychodzi na to, że najlepszym rozwiązaniem byłoby dodanie addr:city do adresów w granicach Szczecina lub zignorowanie tego tagu przy weryfikacji braków w adresacji.
Biorąc pod uwagę wcześniejsze argumenty, przychylam się jednak do dodania tagów addr:city. Przy okazji można by uzupełnić kody pocztowe, aby była przy tym jeszcze jakaś wartość dodana Nie jestem specem od masowych edycji, więc musiałby to zrobić ktoś inny.
A zdarza się, że ulica lub adres należą do miejscowości B, a leżą w miejscowości A. Dlatego moim zdaniem trzeba podawać addr:city lub addr:place w każdym adresie.
+2
addr:city można po prostu dodać. Z addr:postcode już nie jest tak łatwo.
Było dobrze, przed wprowadzeniem zmian na https://budynki.openstreetmap.org.pl/ miałem zaimportowane wszystkie adresy miasteczka, okolicy i kilku innych pobliskich miast. Teraz w okolicy dziesiątki adresów, które już są w OSM.
Na tym przecież polega import?
Jeśli takich adresów nie jest dużo np. 100-200 lub kilkaset, to można spokojnie je zaznaczyć i dodać do listy w JOSM-owym pluginie todo. Potem każdy odhaczyć.
Tego nie widać, bo adres jest w odległości długości budynku. Na tej mapie nie widać gdzie jest “przód” budynku, chyba że doda się szczegóły takie jak wejście i ścieżki.
Jeśli budynek jest już wybudowany, to adres powinien być w obrębie tego budynku. Więc dobrze, że wyskoczyło dużo nowych adresów do dodania, bo można uzupełnić braki.
Przy przetwarzaniu PRG standaryzuję je do wielkiej litery. Adresy powinny być “case-insensitive” tj. nie powinno być dwóch adresów rozróżnianych wielkością liter, a duże litery po prostu lepiej wyglądają w numerze.
Jeżeli dobrze pamiętam rozporządzenie, które określa reguły nadawania numerów porządkowych mówi, że litery przy numerze powinny być duże, więc adresy w PRG, które mają małe litery są raczej zaszłościami historycznymi, błędami albo po prostu gminy ignorują rozporządzenie.
Jeżeli zmieniamy w OSM nazwy ulic w porównaniu do formy zawartej w TERYT, która jest najbliższa obowiązującemu stanowi prawnemu to z tym tym bardziej nie powinno być problemu moim zdaniem
W sumie tak na szybko sprawdziłem to chyba tak wygląda stosunek liczby adresów z małymi lub dużymi literami w PRG:
@tomczk: Może to Ci się przyda przy dopasowywaniu adresów. https://github.com/RicoElectrico/mismatched_street_name_validator/blob/master/canonical_name.sql
(musisz odkomentować name = regexp_replace(name,stop_words,‘’,‘g’); - zakomentowałem to dla wersji “eksportowej” poza Polskę, bo każdy kraj może chcieć dać inne słowa do kasowania i lepiej nie dawać żadnych niż obecnych bez poprawy. Moja polska wersja ma/miała to odkomentowane. Trochę więcej kontekstu z przykładami jest w readme repozytorium.
Funkcja oczywiście nie będzie nieomylna, bo całkowicie ignoruje imię, ale do celów ukrywania adresów już istniejących w OSM będzie dobra.
Edit: Trzeba by jeszcze dodać odpowiednie skróty z kropką do powyższej funkcji.
@maro21 tak, ale jak robiłem importy to po kilkadziesiąt adresów na raz, a teraz jak mam sprawdzać każdy adres dokładnie to zaimportuję kilkukrotnie tego mniej. Może ktoś i mnie skrytykuje, ale uważam, że lepiej dodać 50 nowych adresów, których nie było w OSM, niż poprawić 10, bo są o 15m dalej niż dom.