Re: [Talk-de] Perl-Zugriff auf OSM-Daten

2009-03-31 Diskussionsfäden Sven Anders
Am Tuesday 31 March 2009 07:08:34 schrieb Jan Tappenbeck:
 Hi !

 ich versuche langsam den Einstieg in Perl. Da das OSM-Datenformat
 xml-basiert ist suche ich ein einfaches Einsteigerbeispiel für die
 Datenfilterung einer Datei. Z.B. alle shop=butcher in der Datei.

 Hat einer von Euch ein solches zur Hand und kann es mir zur Verfügung
 stellen ?
ungefähr so (hab das aus einer bestehende Datei herausgeschnitten)?


#!/usr/bin/perl -w
use XML::Parser;


sub anfang
{
  ($wert_des_zeigers,$starttag,%hash) = @_;
  if ($starttag eq node) {
  $id=$hash{id};
  $lat=$hash{lat};
  $lon=$hash{lon};
  $type=node;
  } elsif ($starttag eq tag) {
  $k=$hash{k};
  $v=$hash{v};
  if (($k eq shop) and ($v eq buttcher)) {
 print $lat $lon\n;
  } 
  } elsif ($starttag eq way) {
  $id=$hash{id};
  $type=way;
  $lat=;
 } elsif ($starttag eq nd) {
  $ref=$hash{ref};
  if (($lat eq ) and (defined($lath{$ref}))) {
  $lat=$lath{$ref};
  $lon=$lonh{$ref};
  }
  push @nodes,$ref;
  }

sub ende
 {
  ($wert_des_zeigers,$endtag) = @_;
}

sub inhalt
{
($wert_des_zeigers,$inhalt)=...@_;
#print  $inhalt;
}


my $zeiger = new XML::Parser ();

$zeiger-setHandlers (Start = \anfang,End = \ende,Char=\inhalt );

$zeiger-parsefile (Datei.osm);

Gruß
Sven

 Gruß Jan :-)

BTW: Bitte lass doch den Inflationären Gebrauch von Simlies, das führt dazu 
das ich dich manchmal nicht ernst nehme.

___
Talk-de mailing list
Talk-de@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-de


Re: [Talk-de] Perl-Zugriff auf OSM-Daten

2009-03-31 Diskussionsfäden Jan Tappenbeck
;Moin !

Danke für den Code - das macht das verständnis leichter.

@Roland: Gary68 ist bekannt - auch dafür vielen Dank.

Gruß Jan :-)

Sven Anders schrieb:
 Am Tuesday 31 March 2009 07:08:34 schrieb Jan Tappenbeck:
 Hi !

 ich versuche langsam den Einstieg in Perl. Da das OSM-Datenformat
 xml-basiert ist suche ich ein einfaches Einsteigerbeispiel für die
 Datenfilterung einer Datei. Z.B. alle shop=butcher in der Datei.

 Hat einer von Euch ein solches zur Hand und kann es mir zur Verfügung
 stellen ?
 ungefähr so (hab das aus einer bestehende Datei herausgeschnitten)?
 
 
 #!/usr/bin/perl -w
 use XML::Parser;
 
 
 sub anfang
 {
   ($wert_des_zeigers,$starttag,%hash) = @_;
   if ($starttag eq node) {
   $id=$hash{id};
   $lat=$hash{lat};
   $lon=$hash{lon};
   $type=node;
   } elsif ($starttag eq tag) {
   $k=$hash{k};
   $v=$hash{v};
   if (($k eq shop) and ($v eq buttcher)) {
print $lat $lon\n;
   } 
   } elsif ($starttag eq way) {
   $id=$hash{id};
   $type=way;
   $lat=;
  } elsif ($starttag eq nd) {
   $ref=$hash{ref};
   if (($lat eq ) and (defined($lath{$ref}))) {
   $lat=$lath{$ref};
   $lon=$lonh{$ref};
   }
   push @nodes,$ref;
   }
 
 sub ende
  {
   ($wert_des_zeigers,$endtag) = @_;
 }
 
 sub inhalt
 {
 ($wert_des_zeigers,$inhalt)=...@_;
 #print  $inhalt;
 }
 
 
 my $zeiger = new XML::Parser ();
 
 $zeiger-setHandlers (Start = \anfang,End = \ende,Char=\inhalt );
 
 $zeiger-parsefile (Datei.osm);
 
 Gruß
 Sven
 
 Gruß Jan :-)
 
 BTW: Bitte lass doch den Inflationären Gebrauch von Simlies, das führt dazu 
 das ich dich manchmal nicht ernst nehme.


___
Talk-de mailing list
Talk-de@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-de


Re: [Talk-de] Perl-Zugriff auf OSM-Daten

2009-03-31 Diskussionsfäden Roland Spielhofer
Jan Tappenbeck schrieb:
 Hi !
 
 ich versuche langsam den Einstieg in Perl. Da das OSM-Datenformat 
 xml-basiert ist suche ich ein einfaches Einsteigerbeispiel für die 
 Datenfilterung einer Datei. Z.B. alle shop=butcher in der Datei.
 
 Hat einer von Euch ein solches zur Hand und kann es mir zur Verfügung 
 stellen ?


Gary68 hat einige Perl-Module für OSM entwickelt - 
http://wiki.openstreetmap.org/wiki/User:Gary68
vielleicht erspart dir das ja Arbeit.
lg roland


___
Talk-de mailing list
Talk-de@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-de