[Talk-de] autobug / is_in

Florian Lohoff flo at rfc822.org
Fr Nov 7 10:33:30 UTC 2008


On Fri, Nov 07, 2008 at 07:37:31AM +0100, Holger Issle wrote:
> Moin Sascha,
> 
> On Thu, 6 Nov 2008 15:00:23 +0100, Sascha Silbe wrote:
> 
> > Klingt sinnvoll. Wie genau würdest Du die Nodes auswählen? BBox um den
> > Kreis Tübingen?
> 
> Genau das war meine Idee, mit dem xapi link auf der autobug-Seite.
> Wobei die bbox irrelevant ist, wenn wir die tools auf irgendeine
> Wiki-Seite stellen, wo die ein jeder nutzen kann. Weil: Alleine
> richten wir das nie in Deutschland.

Na so viel ists nu auch nicht - in NRW siehts mittlerweile ganz gut aus.
Gibt noch einige inkonsistenzen mit Düsseldorf vs Regierungsbezirk
Düsseldorf aber da mache ich jeden tag ein bischen.

Ich habe mir ein paar script gebaut mit der ich ein paar nodes in der
datenbank selektiere die bestimmte inkonsistenzen aufweisen z.b. Köln
aber nicht Regierungsbezirk - Dann hole ich mir aus der api einfach alle
nodes - packe das aneinander in ein valides .osm xml und bearbeite das
im JOSM.

So kommt man auf 2-300 nodes/h die man repariert bekommt ;)

Hier das shell script fuer die node holerei - wenn man denn die node_id
hat:

flo at lifebook:~/bin$ cat getnodes 
#!/bin/sh

echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
echo "<osm version=\"0.5\" generator=\"getnodes\">"

for i in $*; do
        wget -q -O /tmp/tempfile.1 http://www.openstreetmap.org/api/0.5/node/$i
        sed -ne </tmp/tempfile.1 '/^.osm/,/^..osm/ { /^.osm/d; /^..osm/d; p; }'
done
echo "</osm>"

So hole ich dann die node_id aus meiner mirror db:

osm> select * from node_tags where k = 'is_in' and (v  like '%Köln%' ) and v not like '%Regierungsbezirk%' and node_id in (select node_id from node_tags where k like 'place') limit 10;

  node_id  |   k   |                                     v                                      
-----------+-------+----------------------------------------------------------------------------
 240096286 | is_in | Kreis Heinsberg,Köln,Nordrhein-Westfalen,Bundesrepublik Deutschland,Europe
 277139672 | is_in | Köln,Nordrhein-Westfalen,Bundesrepublik Deutschland,Europe
 277081722 | is_in | Köln,Nordrhein-Westfalen,Bundesrepublik Deutschland,Europe
 277081397 | is_in | Köln,Nordrhein-Westfalen,Bundesrepublik Deutschland,Europe
 277081068 | is_in | Köln,Nordrhein-Westfalen,Bundesrepublik Deutschland,Europe
 277080808 | is_in | Köln,Nordrhein-Westfalen,Bundesrepublik Deutschland,Europe
 277079808 | is_in | Köln,Nordrhein-Westfalen,Bundesrepublik Deutschland,Europe
 277076844 | is_in | Köln,Nordrhein-Westfalen,Bundesrepublik Deutschland,Europe
 277074018 | is_in | Köln,Nordrhein-Westfalen,Bundesrepublik Deutschland,Europe
 277071458 | is_in | Köln,Nordrhein-Westfalen,Bundesrepublik Deutschland,Europe

das ganze dann mit ein bischen awk 

~/bin/getnodes `cat export  | awk '{ print $1 }'` >~/Desktop/nodes.osm

Und schon kann es losgehen ...

Ich hatte schonmal drueber nachgedacht das http maessig zu automatisieren
d.h. ein cgi script was man mit einem suchpattern fuettern kann was dann
die entsprechenden nodes zusammensucht und nen osm.xml rauswirft ...

Flo
-- 
Florian Lohoff                  flo at rfc822.org             +49-171-2280134
	Those who would give up a little freedom to get a little 
          security shall soon have neither - Benjamin Franklin
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 189 bytes
Beschreibung: Digital signature
URL         : <http://lists.openstreetmap.org/pipermail/talk-de/attachments/20081107/dd64b9fc/attachment.sig>


Mehr Informationen über die Mailingliste Talk-de