[Talk-cz] diakritika v centru Prahy
Pavel Machek
pavel na suse.cz
Pondělí Září 1 23:10:00 UTC 2008
Ahoj!
> > > Za pomoci sileneho tagovaciho skriptu (a pak rucni kontroly/editace v
> > > emacsu) jsem opravil cestinu ve jmenech ulic v centru prahy -- PSC
> > > 110XX. To co se lisilo jen ve zkratkach nebo velikosti pismen jsem
> > > nechaval na pokoji, ale mozna by stalo zato opravit i to podle
> > > oficialnich dat.
> >
> > No, a kdyz uz jsem mel po ruce ten sileny skript, tak jsem v centru
> > doplnil chybejici jmena ulic. Ze 71 highway=residential se podarilo
> > najit jmeno pro 57.
>
> Když jsem se na to díval, připadá mi jako velký problém, že ulice v této
> oblasti byla síť ulic kreslena bez ohledu na jejich pojmenování.
>
> Například:
>
> Část ulice "Husova" byla pojmenována již dříve jako "Na Perstyne".
> Nyní byla upravena??? na "Na Perštýně". Skript ovšem neřešil, že ulice "Na
> Perštýně" je výrazně kratší.
>
> "Retezova" byla správně přejmenována na "Řetězová", nicméně přes ulici
> již zůstal název ???"Retezova" (Jsem přesvědčen, že tam ve skutečnosti
> žádná ulice není, tak jsem jí smazal všechny tagy. Až to někdo ověří,
> tak se buď doplní správně anebo se smaže úplně.)
>
> Nemáš někde seznam podobných konfliktů? Mohl bys totéž zkusit i na
> Prahu 2, kde jsem se pokoušel podobné problémy likvidovat ručně (na
> 12800).
>
>
> Možná by šlo přidat pravidlo:
> Na mapě se ulice jmenuje A. V UIR-ADR se jmenuje B. V UIR-ADR existuje A
> i B => rozděl ulici.
Muzes zkusit ;-). Ale zas _tak_ dobra ta statistika neni.
(Jinak 12800 jsem projel, viz jiny mail, vysledek by mel byt v
databazi).
Pavel
Index: Way.cpp
===================================================================
--- Way.cpp (revision 10302)
+++ Way.cpp (working copy)
@@ -63,9 +63,12 @@
{
if (hasTags() || segments.size()) {
- strm << " <way id='" << id << "'>" << endl;
+ strm << " <way id='" << id << "'";
+ if (changed)
+ strm << " action='modify'";
+ strm << ">" << endl;
for(int count=0; count<segments.size(); count++)
- strm << " <seg id='" << segments[count] << "'/>" << endl;
+ strm << " <nd ref='" << segments[count] << "'/>" << endl;
tagsToXML(strm);
strm << " </way>" << endl;
} else {
Index: Way.h
===================================================================
--- Way.h (revision 10302)
+++ Way.h (working copy)
@@ -38,14 +38,18 @@
vector<int> segments;
public:
+ int changed;
+
Way()
{
id = 0;
+ changed = 0;
}
Way(int id)
{
this->id=id;
+ changed = 0;
}
void addSegment (int s)
Index: Components.cpp
===================================================================
--- Components.cpp (revision 10302)
+++ Components.cpp (working copy)
@@ -17,7 +17,6 @@
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111 USA
*/
-// 180306 updated for 0.3
#include "Components.h"
#include <iostream>
#include <fstream>
@@ -355,7 +354,7 @@
void Components::toXML(std::ostream &strm)
{
- strm << "<?xml version='1.0'?>"<<endl<<"<osm version='0.3'>" << endl;
+ strm << "<?xml version='1.0'?>"<<endl<<"<osm version='0.5'>" << endl;
rewindNodes();
while(hasMoreNodes())
{
Index: Parser.cpp
===================================================================
--- Parser.cpp (revision 10302)
+++ 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: Makefile
===================================================================
--- Makefile (revision 10302)
+++ 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)
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
------------- další část ---------------
A non-text attachment was scrubbed...
Name: nameit.cpp
Type: text/x-c++src
Size: 3692 bytes
Desc: [žádný popis není k dispozici]
URL: <https://lists.openstreetmap.org/pipermail/talk-cz/attachments/20080902/adf44c8d/attachment.cpp>
Další informace o konferenci talk-cz