automaticka pojmenovavacka ulic

7 zpráv
Zpět na přehled

automaticka pojmenovavacka ulic

7 zpráv PPSJT 5 účastníků 7 min čtení
  1. Pavel Machek pavel na ucw.cz #mb1a3c0
    ...docela funguje, tj "na uz pojmenovanych ulicich se vetsinou trefi". Prvni verse je tady. (Samozrejme ocekava uid-adr adresni body jiz importovane... Coz se da pro lokalni pouziti udelat treba tou shellovou priserou, pak download zbytku v josm a ulozenim.) Index: applications/lib/libosm/Way.cpp =================================================================== --- applications/lib/libosm/Way.cpp (revision 10302) +++ applications/lib/libosm/Way.cpp (working copy) @@ -65,7 +65,7 @@ if (hasTags() || segments.size()) { strm << " <way id='" << id << "'>" << endl; for(int count=0; count<segments.size(); count++) - strm << " <seg id='" << segments[count] << "'/>" << endl; + strm << " <nd id='" << segments[count] << "'/>" << endl; tagsToXML(strm); strm << " </way>" << endl; } else { Index: applications/lib/libosm/Parser.cpp =================================================================== --- applications/lib/libosm/Parser.cpp (revision 10302) +++ applications/lib/libosm/Parser.cpp (working copy) @@ -45,23 +45,6 @@ } - else if(!strcmp(element,"segment")) - { - curID=0; - inSegment = true; - for(int count=0; attrs[count]; count+=2) - { - if(!strcmp(attrs[count],"from")) - from = atoi(attrs[count+1]); - if(!strcmp(attrs[count],"to")) - to = atoi(attrs[count+1]); - if(!strcmp(attrs[count],"id")) - curID = atoi(attrs[count+1]); - } - - curObject = new Segment(curID,from,to); - components->addSegment ((Segment*)curObject); - } else if (!strcmp(element,"way")) { curID=0; @@ -74,13 +57,13 @@ curObject = new Way(curID); components->addWay((Way*)curObject); } - else if (!strcmp(element,"seg") && (inWay)) + else if (!strcmp(element,"nd") && (inWay)) { int segID; for(int count=0; attrs[count]; count+=2) { - if(!strcmp(attrs[count],"id")) + if(!strcmp(attrs[count],"ref")) { segID=atoi(attrs[count+1]); ((Way*)curObject)->addSegment(segID); Index: applications/lib/libosm/Makefile =================================================================== --- applications/lib/libosm/Makefile (revision 10302) +++ applications/lib/libosm/Makefile (working copy) @@ -3,6 +3,7 @@ OBJ = Object.o Way.o Parser.o Components.o functions.o llgr.o FeaturesParser.o NETOBJ = Client.o TESTOBJ = test.o +NAMEITOBJ = nameit.o RULESTESTOBJ = rulestest.o CXX = g++ @@ -15,6 +16,9 @@ test: $(TESTOBJ) libosm.a libosmnet.a $(CXX) -o test $(TESTOBJ) libosm.a libosmnet.a $(LDFLAGS) +nameit: $(NAMEITOBJ) libosm.a libosmnet.a + $(CXX) -o nameit $(NAMEITOBJ) libosm.a libosmnet.a $(LDFLAGS) + rulestest: $(RULESTESTOBJ) libosm.a $(CXX) -o rulestest $(RULESTESTOBJ) libosm.a $(LDFLAGS)
  2. Stanislav Brabec utx na penguin.cz #m65f897
    Pavel Machek píše v Po 01. 09. 2008 v 23:00 +0200:
    Ahoj! Tak jsem ji pustil na psc 128 00... Diakritika je tam ok, jsou tam problemy s velikosti pismen,
    Po vyrenderování mapnikem jsem obvod 12800 prošel a nevidím tam žádnou výraznou chybu. Drobné věci, které se mi nezdají, je nutné řešit návštěvou daného místa. Ani konkurenční mapa neporadí. Můžeš pustit skript na 12000, kde chybí podstatně víc názvů, a jsem je také schopen alespoň zčásti zkontrolovat. Myslím si, že skript dává dobré výsledky a mohl by se pustit na celou ČR. Možná by bylo vhodné z něj vyrobit webovou aplikaci (napiš PSČ a klikni na "automaticky pojmenovat") pro někoho, kdo právě natahal ulice ve svém městě, a chtěl by je automaticky pojmenovat, ale skript by si sám spustit neuměl. Problémy s velikostí písmen zcela jistě jsou na straně UIR-ADR, který je má špatně: - liší se od pravidel českého pravopisu z r. 1993 ?- liší se od pravidel českého pravopisu z r. 1957 - liší se od zažitých místních jmen - liší se od všech ostatních map, se kterými jsem je porovnával Příklady: UIR-ADR -> všichni ostatní Na slupi -> Na Slupi Na hrobci -> Na Hrobci Na výtoni -> Na Výtoni další jsem neověřoval. Máš-li seznam nagenerovaný, doplním správná jména a můžeme se pokusit zaslat opravu na UIR-ADR.
  3. Pavel Machek pavel na suse.cz #m56e993
    Ahoj!
    Tak jsem ji pustil na psc 128 00... Diakritika je tam ok, jsou tam problemy s velikosti pismen,
    Po vyrenderování mapnikem jsem obvod 12800 prošel a nevidím tam žádnou výraznou chybu. Drobné věci, které se mi nezdají, je nutné řešit návštěvou daného místa. Ani konkurenční mapa neporadí. Můžeš pustit skript na 12000, kde chybí podstatně víc názvů, a jsem je také schopen alespoň zčásti zkontrolovat.
    No, pusteno, ale nazvu to doplnilo jen par (45)... Je to tim ze tam jsou nazvy bez diakritiky a nazvy prazdne (tag name existuje ale neni v nem jmeno?!).. a skript automaticky neumi opravit ani jedno (na praze 1 jsem to delal rucne).
    Myslím si, že skript dává dobré výsledky a mohl by se pustit na celou ČR. Možná by bylo vhodné z něj vyrobit webovou aplikaci (napiš PSČ a klikni na "automaticky pojmenovat") pro někoho, kdo právě natahal ulice ve svém městě, a chtěl by je automaticky pojmenovat, ale skript by si sám spustit neuměl.
    Webova aplikace je dost prace... ...ale bylo by fajn mit uir-adr data ve streetmape... pak by bylo mozny udelat treba plugin do josm co by automaticky hadal jmena nove pridavanych ulic. Uzivatel by nemusel nic vypisovat, ale zaroven by to kontroloval....
    Příklady: UIR-ADR -> všichni ostatní Na slupi -> Na Slupi Na hrobci -> Na Hrobci Na výtoni -> Na Výtoni další jsem neověřoval. Máš-li seznam nagenerovaný, doplním správná jména a můžeme se pokusit zaslat opravu na UIR-ADR.
    Nevim ktery seznam mas na mysli, ulice.csv z uir-adr je seznam vsech ulic... (72000 polozek). Pavel
  4. Jakub Sykora kubajz na kbx.cz #m8f4174
    Hledal jsem v diskuzi, ale uz to nemuzu najit - hodil bys mi URL na to CSVcko, popripade to CSV jako takove? Diky, K
  5. Pavel Machek pavel na suse.cz #m8f0b9e
    Ahoj!
    Hledal jsem v diskuzi, ale uz to nemuzu najit - hodil bys mi URL na to CSVcko, popripade to CSV jako takove?
    ...hodil jsem to na http://atrey.karlin.mff.cuni.cz/~pavel/outgoing/csv.uir-adr ... par dni to tam necham. Pavel
  6. Tomáš Tichý t.tichy na post.cz #m8227cc
    Ahoj, nedaří se mi přeložit nameit - v SVN je nějaká divná verze libosm, na kterou nejde aplikovat Tvůj patch, ani to s ní nejde přeložit. Nešlo by někam vystavit verzi libosm, se kterou to funguje ? =TT=
  7. Pavel Machek pavel na ucw.cz #me6784f
    Ahoj, neda?? se mi p?elo?it nameit - v SVN je n?jak? divn? verze libosm, na kterou nejde aplikovat Tv?j patch, ani to s n? nejde p?elo?it. Ne?lo by n?kam vystavit verzi libosm, se kterou to funguje ?
    Je to jeste aktualni? Kdyztak osobne, at na to zase nezapomenu...
    ...docela funguje, tj "na uz pojmenovanych ulicich se vetsinou trefi". Prvni verse je tady. (Samozrejme ocekava uid-adr adresni body jiz importovane... Coz se da pro lokalni pouziti udelat treba tou shellovou priserou, pak download zbytku v josm a ulozenim.) Index: applications/lib/libosm/Way.cpp =================================================================== --- applications/lib/libosm/Way.cpp (revision 10302) +++ applications/lib/libosm/Way.cpp (working copy) @@ -65,7 +65,7 @@ if (hasTags() || segments.size()) { strm << " <way id='" << id << "'>" << endl; for(int count=0; count<segments.size(); count++) - strm << " <seg id='" << segments[count] << "'/>" << endl; + strm << " <nd id='" << segments[count] << "'/>" << endl; tagsToXML(strm); strm << " </way>" << endl; } else { Index: applications/lib/libosm/Parser.cpp =================================================================== --- applications/lib/libosm/Parser.cpp (revision 10302) +++ applications/lib/libosm/Parser.cpp (working copy) @@ -45,23 +45,6 @@ } - else if(!strcmp(element,"segment")) - { - curID=0; - inSegment = true; - for(int count=0; attrs[count]; count+=2) - { - if(!strcmp(attrs[count],"from")) - from = atoi(attrs[count+1]); - if(!strcmp(attrs[count],"to")) - to = atoi(attrs[count+1]); - if(!strcmp(attrs[count],"id")) - curID = atoi(attrs[count+1]); - } - - curObject = new Segment(curID,from,to); - components->addSegment ((Segment*)curObject); - } else if (!strcmp(element,"way")) { curID=0; @@ -74,13 +57,13 @@ curObject = new Way(curID); components->addWay((Way*)curObject); } - else if (!strcmp(element,"seg") && (inWay)) + else if (!strcmp(element,"nd") && (inWay)) { int segID; for(int count=0; attrs[count]; count+=2) { - if(!strcmp(attrs[count],"id")) + if(!strcmp(attrs[count],"ref")) { segID=atoi(attrs[count+1]); ((Way*)curObject)->addSegment(segID); Index: applications/lib/libosm/Makefile =================================================================== --- applications/lib/libosm/Makefile (revision 10302) +++ applications/lib/libosm/Makefile (working copy) @@ -3,6 +3,7 @@ OBJ = Object.o Way.o Parser.o Components.o functions.o llgr.o FeaturesParser.o NETOBJ = Client.o TESTOBJ = test.o +NAMEITOBJ = nameit.o RULESTESTOBJ = rulestest.o CXX = g++ @@ -15,6 +16,9 @@ test: $(TESTOBJ) libosm.a libosmnet.a $(CXX) -o test $(TESTOBJ) libosm.a libosmnet.a $(LDFLAGS) +nameit: $(NAMEITOBJ) libosm.a libosmnet.a + $(CXX) -o nameit $(NAMEITOBJ) libosm.a libosmnet.a $(LDFLAGS) + rulestest: $(RULESTESTOBJ) libosm.a $(CXX) -o rulestest $(RULESTESTOBJ) libosm.a $(LDFLAGS)
Napsat odpověď e-mailem… Odpovědět

Otevře váš e-mailový klient. Odpovědi pak sledujte zde na webu.