Ciekawe rendery

To chyba będzie trzeba większego python-fu niż ja władam, Jacek?

Moje repo to http://gitorious.org/ocitysmap-polish-translation/ocitysmap-polish-translation

OK, można mnie OPRować za tłumaczenie, bo weszło na http://dev.maposmatic.org/

Nie przesadzajmy… Można to zrobić dla jednego projektu, czy dwóch, ale każdy kto będzie chciał napisać mały dziesięciominutowy skrypt do sortowania będzie musiał brać pod uwagę jakieś dziwne rzeczy. Do tego co, jeśli chcemy mieć poprawne sortowanie w innych krajach?
Każdy projekt musi mieć oddzielny kd do sortowania każdego kraju.

Ja opowiadam się za propozycją antblanta.

Tu mowisz o skryptach do sortowania, jesli bedziesz tagowal tak zeby latwo bylo sortowac to z kolei jakas inna czynnosc stanie sie trudna. Ja uwazam z w name powinny byc pelne nazwy i nie nalezy tagowac dla zadnego konkretnego programu.

Intuicyjne sortowanie nie jest trywialne i po prostu w dziesiec minut trudno je zrobic. Mysle ze wszystkie mapy ktore maja indeks ulic podobnie rozwiazuja ten problem.

Oczywiscie mozemy dodawac loc_name ktory bedzie mial potoczne nazwy czyli te wedlug ktorych chcemy sortowac ale nie zmieniajmy znaczenia tagu name w pojedynczym kraju bo ktos chce zastosowac osm do czegos konkretnego.

+1
Nie tagujemy dla rendererów to dlaczego mielibyśmy tagować dla innego rodzaju programów…
Kody do sortowania można pożyczyć z takiego ocitysmap - jeśli będzie zapotrzebowanie to się wydzieli do oddzielnej biblioteki i tyle.

Z http://wiki.openstreetmap.org/wiki/Name

name=* - Default name
official_name=* - The fully qualified official name

Ale ponizej jest:

The fully qualified official name. It has been created for country names but (…)

i potem jest przyklad uzycia loc_name do nazwy potocznej i name do nazwy oficjalnej pewnego mostu.

Chyba glownie chodzi o to co dla nas jest domyslna nazwa ulicy (default): Mickiewicza czy Adama Mickiewicza, wedlug mnie to drugie, podobnie mysli mapka yahoo, google i microsoftu, przynajmniej w Warszawie.

Nie chodzi mi o to, żeby modyfikować całe OSM do jednego projektu, bo to rzeczywiście byłoby bez sensu.

Myślę tylko, że skoro w jednym projekcie wyszedł ten problem, to wyjdzie i w innych. Koszt rozwiązania bez zmian w bazie to pisanie skomplikowanego kodu dla każdego kraju objętego takim zastosowaniem, a co za tym idzie, zmniejszenie atrakcyjności OSM jako źródła danych.
Jeśli chodzi o kopiowanie kodu, który już jest napisany dla ocitysmap, to nie każdy pisze w Pythonie…

Z kolei dodanie pola z oryginalną nazwą do bazy jako opcja dałoby trochę więcej roboty mapującym, ale sortowanie byłoby bezbolesne, bo można byłoby sortować po name. Minusem jest to, że przy wypisywaniu pełnej nazwy należy sprawdzić, czy istnieje oddzielne pole official_name (i problem, o którym balrog-kun napisał w ostatnim poście, odpada).
To nie jest chyba jakieś znaczące utrudnienie, jeśli mamy za nie uzyskać przejrzystość w sortowaniu? Chyba, że istnieje jakiś inny przypadek użycia, który zostałby znacznie utrudniony.

Rzeczywistym problemem jest to, żeby przekonać renderery do uznawania official_name. Jeśli to ma się odbywać tak, jak to jest przy surface, to nie ma co sobie zawracać głowy.

Poza tym bardzo nie podoba mi się konieczność odwoływania się do oddzielnych źródeł danych i poleganie na analizie języka po to, żeby mieć posortowane nazwy. Hipotetyczny przykład, na którym to się nie sprawdzi:
ul. Józefa Piłsudskiego
ul. Ataku Piłsudskiego (:P)
ul. Nowa

Zawsze można w name zostawić nazwę oficjalną, a dla tej najbardziej podstawowej (Piłsudskiego) użyć innego tagu. A w razie gdyby kiedyś została przyjęta inna koncepcja (name podstawowa, official_name oficjalna), wystarczy zamienić rekordy :slight_smile:

No ja np. nie piszę w pythonie a udało mi się to częściowo zrobić za pomocą metodologii Copyego&Paste’a :wink: Jak widzisz po kodzie nie tylko w Polsce musimy tego używać, ale praktycznie każdy kraj, który zaczyna korzystać z MapOSMatic, więc to nie jest tak że “my” mamy problem i specjalnie dla Polski trzeba jakiś kod pisać…

Znacznie utrudniony nie, ale tez ulatwienie przy sortowaniu jest nieznaczne. Jesli pelna nazwa bedzie w official_name= a potoczna w name= to bedziemy musieli patrzec na wartosci dwoch tagow przy wykorzystaniu takim jak: renderowanie mapy na stronie, do druku albo czytanie nazw ulic syntezatorem glosu. A jesli pelna nazwa bedzie w name= a potoczna w loc_name= to bedziemy musieli patrzec na dwa tagi przy sortowaniu w spisie ulic.

Nie umiem powiedziec jak przyjeto we wszystkich krajach ale z wiki wynika ze w angielskojezycznych w name= sa zawsze pelne nazwy i z dyskusji na hiszpanskojezycznych listach wiem ze ustalono ze w name ma byc najdluzsza mozliwa nazwa (lacznie ze slowem “Ulica”, np. name=Calle del Agua mimo ze na tabliczce widnieje tylko C. Agua a sortowanie jest po slowie Agua).

Zauwaz jeszcze ze nie istnieje jedyny sluszny porzadek sortowania. Sa rozne mapy i ich spisy ulic maja rozne porzadki, oczywiscie na 99% to jest wedlug nazwiska, ale i tak zostaje duzo dowolnosci (np. czy Ulica PCK jest przed czy po Aleji Pilsudskiego?). To jaka kolejnosc wybierzesz wyraza sie przez porzadek sortowania i ma prawo byc skomplikowany.

Wedlug mnie sprawdza sie bo Ataku nie wystepuje na liscie dopelniaczy imion :P, wiec mielibysmy
2
3
1

Te dwa argumenty mnie przekonują.
W ich świetle sortowanie według kolejnego tagu przestaje być koniecznością, tylko ułatwieniem. Chociaż w tym miejscu muszę wspomnieć, że często dzięki takim niekoniecznym ułatwieniom projekt dostaje kopa. Mam nadzieję że trudność w sortowaniu nie będzie nikogo odstraszać :wink:

O, widzę że polskie tłumaczenie trafiło już na stronę główną maposmatic, pamiętajcie tylko o wybraiu “Rzeczpospolita Polska” jako lokalizacji przy tworzeniu map!
Czekam aż wejdzie parę nowych patchy do ocitysmap i wracam dalej pracować sortowanie, jest to drugie miejsce na mojej liście :stuck_out_tongue: Przy okazji byłbym wdzięczny za wypisywanie tu, lub na priv wszelkich przypadków specjalnych, które trzeba zaimplementowac.

W pierwszej chwili nasunęło mi się pytanie czemu Rzeczpospolita a nie po prostu Polska, ale widzę, że występują tam nazwy oficjalne :slight_smile:

Pobawiłem się się trochę maposmatic i widzę pewne braki (możliwości przyszłej funkcjonalności):

  1. definiowanie rodzajów POI, które chce się zaznaczać na renderowanej mapie (ja np. chciałbym numery domów)
  2. podawanie ID drogi stanowiącej granicę renderowanego obszaru; w tej chwili albo bbox, albo boundary, która musi być zaindeksowana w nominatim, a widzę, że nominatim jest odrobinę wybiórcze i w pewnym sensie niepewne jeśli chodzi o zwracane wyniki (chodzi mi o to, że zindeksowane obiekty potrafią “wypaść” z bazy)

Przy okazji znalazłem też taką koncepcję sortowania ulic: https://savannah.nongnu.org/task/?9934

To akurat nie moja wina :stuck_out_tongue:

http://matt.dev.openstreetmap.org/dupe_nodes/?zoom=10&lat=50.96185&lon=20.533&layers=BT - miłej zabawy :wink:

Oczyściłem całe zachodniopomorskie, jak zajmiesz się Wielkopolską, to zrobię lubuskie gratis :stuck_out_tongue:

Jak nie wyleci mi z głowy to jutro zrobię wlkp

EDIT: BTW ten kto importował Wągrowiec (wlkp) proszony jest o sprawdzenie swojej pracy, bo połowa dróg nie łączy się z innymi, i masa starych węzłów została. Poprawiłem co trafiłem, ale pewnie jeszcze zostało…

Spóźniłeś się, sprzątnąłem całą Polskę :smiley: Zastrzegam sobie prawo do informowania użytkowników w przypadku masowego zostawiania duplikatów, więc proszę się nie gniewać :wink:

Zauwazcie ze nie wszystkie duplikaty sa bledami, gdzieniegdzie kilka rzeczy jest w tym samym miejscu.

BTW juz jestes “bohaterem” statystyk, http://matt.dev.openstreetmap.org/dupe_nodes/heroes.html
Mamy tez kogos wsrod zlych bohaterow :wink: