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()) {
- strmway id=' id ' endl;
+ strmway id=' id ';
+ if (changed)
+ strm action='modify';
+ strmendl;
for(int count=0; countsegments.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 @@
vectorint 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'?endlosm version='0.3' endl;
+ strm ?xml version='1.0'?endlosm 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))
{