Import danych z http://ump.waw.pl/

K?opot polega zdaje si? na tym, ?e ?ród?a txt2osm nie istniej?, czyli trzeba by wszystko od nowa, napisa? przetestowa? etc.

Chyba sam mia?em za du?o czasu:) Tutaj jest skrypcik w pythonie, który (mam nadziej?) realizuje funkcjonalno?? txt2osm i nie ma problemów z ró?n? liczb? cyfr po przecinku. Poniewa? to skrypt, ka?dy mo?e go sobie “dotweakowa?” do swoich potrzeb, no i kod si? ju? nie zgubi:) Rozpoznaje typy dróg od 0x1 do 0x7, ale stosunkowo ?atwo mo?na zaimplementowa? konwersj? tak?e innych obiektów.

Poprawiam w?a?nie powy?szy skrypt. Troch? ma?o czytelny by? :P. Mog? wytkn?? sporo rzeczy, które przechodz? w innych j?zykach, ale w tym s? dziwaczne, ale… to nie forum programistyczne :). Zreszt? zasze mo?na spojrze? do kodu.
Sam kod b?dzie dost?pny przez jaki? czas tu: http://pinalambla.net/txt2osm.py od momentu, gdy go sko?cz?.

Dzi?ki za pomoc:) Or?em w pythonie nie jestem; szczerze mówi?c dopiero si? go ucz?.

Wida?, ?e przechodzisz z czego? podobnego do C :slight_smile:

Plik ju? mo?na pobra? z w/w adresu - dzia?a (chyba) jak nale?y:

[rhn@workhorse play]$./txt2osm_oryg.py ZASCIANKI.ulice.txt > r1
[rhn@workhorse play]$./txt2osm.py ZASCIANKI.ulice.txt > r2
[rhn@workhorse play]$ diff r1 r2
[rhn@workhorse play]$

Okazuje si?, ?e praktycznie przepisa?em logik? (za mocno sobie nakomplikowa?e?, wyja?ni? via email lub PW), za to wypisywanie si? mocno przyda?o (przede wszystkim dlatego nie chcia?em si? za to zabiera?).
Nie wiem tylko co oznacza zmienna “ref” w funkcji print_way. Pozwoli?em sobie j? zignorowa? przy wczytywaniu :).

Apropos podzi?kowa? - robimy to we wspólnym interesie :wink:

Wciąż mam “nie odnaleziono adresu”:confused: Na pewno jest prawidłowy?

Ref oznacza numer drogi (tag ref).

Wci??o mi literk?, dobrze, ?e zwróci?e? uwag? - poprawione.
W?a?nie spojrza?em na pliki UMP - rzeczywi?cie co? tam jest z numerami dróg… ale nie wiem za bardzo, co, wi?c nie b?d? rusza?. Mam nadziej?, ?e dosy? jasne jest, co w moim kodzie nale?a?oby zmieni?.

Tak tylko gwoli wyja?nienia jak to jest z tymi numeracjami dróg. W przypadku gdy jest co? takiego ~[0x2e]14, to oznacza to ni mniej ni wi?cej droge nr 14. Ten ca?y przedrostek informuje w jaki sposób ma by? ten numer wy?wietlany (czy w kó?eczku, prostok?cie, na tarczy jak w stanach itd itd, jest kilka mo?liwo?ci). Tak wi?c dla celów importu do osm mo?na to z powodzeniem pomin??.

Z tego, co zauwa?y?em, ten przedrostek razem z numerem powinien by? przed nazw? drogi, nie myl? si?? Wtedy jest kolejna niejasno??, bo droga wpisana jest w dwóch innych linijkach, za ka?dym razem inaczej.
Spróbuj? spojrze? na to do poniedzia?ku, je?li znajd? troch? wolnego czasu (prawdopodobnie za jednym zamachem z mapowaniem :)).

Co do pytania to przedrostek z numerem powinien byc przed nazwa drogi.

No wiec szybki kurs jak to z ump, nazwami i numerami drog jest:

Danej drodze mozna przypisac trzy rozne nazwy. W zrodlach oznacza sie je poprzez Label, Label2 i Label3. Pierwszy Label stosuje sie zawsze dla nazwy drogi, drugi i trzeci prawie tylko wtedy gdy droga jest numerowana. Jesli droga jest numerowana to wtedy aby pokazac numer tej drogi dodaje sie ten dziwny przedrostek (jak juz opisywalem) a zaraz za nim numer drogi, po czym nazwe ulicy. To wszystko dla Label. Taki sposob zapisu powodowalby jednak problemy przy sortowaniu nazw do ineksu (na przyklad drogi trzeba szukac by razem z jej numerem, co nie jest wskazane). Z tego powodu jest tez Label2 w ktorym dopisuje sie juz sama nazwe ulicy, bez numeru i innych takich. Label3 uzywa sie w wyjatkowych sytuacjach, gdy jakas ulica ma swoja alternatywna nazwe lokalna (ktora znaja tubylcy) oraz dla skrotow. No wiec konkretny przyklad:

[POLYLINE]
Type=0x4
Label=~[0x2f]705 Polskiego Czerwonego Krzyza
EndLevel=1
DirIndicator=1
Data0=(51.95443,20.15786),(51.95423,20.15743)
Label2=Polskiego Czerwonego Krzyza
Label3=PCK
[END]

No i teraz co mamy w Label
~[0x2f] - przedrostek ktory kaze wyswietlac numer drogi na mapie w prostokaciku z czarnymi obwodkami na gorze i dole
705 - numer drogi
Polskiego Czerwonego krzyza - nazwa ulicy

mamy tez dwa pozostale labele
Label2 - pod taka alternatywna nazwa bedzie ulica bedzie znajdowana
Label3 - pewnie wielu powie ze to ulica PCK wiec warto aby mozna bylo ja znalezc jeszcze pod taka nazwa.

Label2 i Label3 maja tez swoje dodatkowe znaczenia dla odbiornika, ale nie jest to istotne dla tych rozwazan. Mam nadzieje, ze troszeczke rozjasnilem. Jak chcecie robic import z ump naprawde dobrze to radze sie zapoznac ze struktura danych w UMP. Unikniecie sporo problemow a i osm bedzie lepsze. W razie problemow sluze pomoca.

http://pinalambla.net/txt2osm.py - tutaj jest kolejna wersja skryptu, która ju? rozumie, gdzie schowa? si? numer ref :slight_smile:
Poniewa? znalaz?em gdzie? kiedy? robzbie?no?? mi?dzy Label i Label2 (w której? brakowa?o polskich znaków), stwierdzi?em, ?e lepiej korzysta? z tej, która jest naprawd? u?ywana, czyli Label2. Teraz je?li jest ustawione, jest brane zamiast Label (oczywi?cie, numer drogi nadal jest brany pod uwag?).

Poprawi?em te? kod odpowiadaj?cy za wczytywanie koordynatów. Teraz b?d? dok?adnie takie, jak by?y w pliku, poniewa? nie s? wczytywane jako liczby. Usuwa to te? potencjaln? dziur? w bezpiecze?stwie (odpowiednio spreparowany plik móg? zrobi? szkody w systemie, poniewa? pary koordynatów by?y interpretowane jako kod).

Dzi?ki za podpowiedzi!

A zastanawia? sie kto? nad problemem synchronizacji aktualizajci danych z ump do osm ?
Np stworzeniem narzedzia:

  1. txt2osm.py jakiego? obszaru do obszar_ump.osm
  2. ?ci?gni?cie obszr_osm.osm na podstawie skrajnych z obszar_ump.osm
  3. Generacja róznicy pomi?dzy obszar_ump.osm a obszar_ump.osm tak aby powsta?y:
    obszar_braki_osm.osm - to czego nie ma w osm a jest w ump
    obszar_roznica_<id_i_opis>osm.osm i obszar_roznica<id_i_opis>_ump.osm - pokazuj?cy ró?ne wersje tych samych fragmentów w przypadku gdy wersja ump jest b. z?o?ona / lepsza ni? osm ?

Sam pomys? jest dobry i jestem pewien, ?e kto? ju? o tym wcze?niej my?la?, ale jest dosy? k?opotliwy do zrealizowania - trudno jest okre?li?, która droga to która.
O ile maj?c do czynienia z ró?nymi wersjami tego samego terenu z OSM (gdzie znalaz?yby si? poprzesuwane punkty i porozszerzane drogi), mo?emy porównywa? je za pomoc? ID ka?dego elementu (które si? nie zmienia w czasie), to plik z importu ma ju? inne ID dla tych samych dróg, ni? to, co by?o do tej pory (a w?a?ciwie to nie ma wcale ?adnych sensownych ID).
Mo?na porównywa? dok?adne koordynaty punktów, ale co je?li kto? pod?o?y? pod nie ?lady i lekko poprawi? to z UMP?
Nieco lepszy sposób to jakie? inteligentne porównywanie dróg za pomoc? kszta?tu i po?o?enia, ale w?tpi?, ?eby kto? si? chcia? podj?? takiego zadania :slight_smile: Pro?ciej wczyta? plik po konwersji jako kolejn? warstw? w JOSM i szuka? zmian r?cznie.

PS. Nie uda?o mi si? znale?? nigdzie narz?dzia do wy?wietlania zmian w danym oszarze w OSM, istnieje w ogóle co? takiego?

http://labs.geofabrik.de/history/?

BTW arzej si? do kogo? odezwa??

Super, a co znaczy
Label=~[0x2b]2/8 Prymasa Tysiaclecia

Droga 2 i 8 ?
(znalezione na http://ump.waw.pl/faq.html))

A
Type=0x16

Która to z
http://wiki.openstreetmap.org/wiki/Map_Features#Highway
Google podpowiada ?e to trail ?

Tak, to jest droga 2 i 8, czasami drogi o dwóch numerach zbiegaj? si? w jedn? wtedy w ump jest to tak oznaczane.

Walkway/Trail, w ten sposób s? oznaczane drogi, ?cie?ki, nieprzejezdne samochodem osobowym, ci??arowym, terenowym (ogólnie tereny gdzie niewarto zap?dza? si? samochodem). Z definicji takie odcinki dróg otrzymuj? zakaz ruchu, wi?c routing tamt?dy nie prowadzi. Czasami s? te? wykorzystywane w miastach do pokazania dojazdu do jakiej? posesji która ma inny adrews ni? wskazywa?aby to ulica przy której si? znajduje. Tak samo robi si? czasami z osiedlami (nazwanymi osiedlami). Ogólnie jednak jest to jaka? ?cie?ka, po której samochodem si? nie je?dzi.

Grrrr cudownie, kto? kto importowa? dane z UMP natworzy? mas? zduplikowanych dróg w okolicy Poznania (odcinek Pozna?->Rogalin), zapraszam do pomocy w porz?dkach :wink:

Witam

Czy tylko ja mam wra?enie, ?e dane z UMP s? “do?? dok?adne” - znaczy si? (poza wspomnianymi ju? problemami z rondami i po??czeniami dróg) dok?adne, je?eli chodzi o wymogi nawigacji samochodowej, ale jakby chcie? dok?ada? trasy piesze/rowerowe to dok?adno?ci brakuje.

njarek zrobi? mi przys?ug? i zaimportowa? moj? okolic? ale teraz mijaj? si? z moimi GPX’ami - to niby nic wielkiego, bo ulice s? do?? rzadko, ale … Gdyby chcie? doda? chodniki, przej?cia dla pieszych, przystanki autobusowe, parkingi to zaczynaj? si? schody.

pytanie techniczne do bardziej do?wiadczonych:
czy kilka ?ladów (GPX) z jednego urz?dzenia jest wystarczaj?co dok?adne, czy lepiej poczeka? a? kto? przejedzie z innym GPS’em? Innymi s?owy, czy jest mo?liwe, ?e ten odbiornik który mam ma sta?y b??d, który np. przesuwa mi pozycj? o 10m w lewo.
Nie wiem, czy poprawia?. Nie chcia?bym bardziej popsu? ni? jest :slight_smile:

jeszcze inna kwestia to nazewnictwo dróg - drogi osiedlowe ja oznaczam jako residential z UMP cz??? wesz?a jako service, rozumiem, ?e mog? i powinienem poprawi? na residential.

btw. to nie wiem sk?d UMP ma te dane, bo cz??ci “dróg” nie ma (mo?e by?y) odk?d si? wprowadzi?em - czyli jakie? 20 lat :slight_smile:

no to jak mi ju? ta lista skarg i za?ale? taka d?uga wysz?a to jak wy??czy? emotikony - rozró?niam bez problemu dwukropek minus nawias od ?rednik minus nawias, ale nie zawsze rozpoznam, czy w tym ?ó?tym kó?ku jest ?uk i dwa ma?e kwadraty, czy ?uk, kwadrat i kreska :wink: