[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