HI !
ich habe da ein kleines Tool erstellt was einen Wert addr:housenumber aufsplittet und analysiert.
Der Code folgt am Ende. Das Problem ist, wenn der Wert b10 ist, dann wird dieser nicht von dem If-Statement für den bicycle_parking nicht erkannt. Dieses könnte Werte von B0 bis b999 haben.
Kann mir einer weiterhelfen ?
Gruß Jan :-)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
for my $element (@data)
{
my ($lon,$lat) = $element->center();
print "id: ".$element->id()." - lon: ".$lon." - lat: ".$lat."\n";
print $fh_out " <node id='".($element->id())."' action='modify' visible='true' version='1' lat='".$lat."' lon='".$lon."'>\n";
# liegt überhaupt eine Info vor ?
if($element->has_tag('addr:housenumber'))
{
print "Wert: ".$element->tag('addr:housenumber')->value()."\n";
# aufsplitten der Informationen
my @tags = split(/\//,$element->tag('addr:housenumber')->value());
# print Dumper(@tags)."\n";
$tags[0] = lc($tags[0]);
#print Dumper \@tags;
if( $tags[0] =~ /^[0-9]{6}/ ){
....
}elsif ($tags[0] eq '' && $tags[1] =~ /^[0-9]{1,6}/){
....
}elsif( $tags[0] =~ /^bj.*/ ){
....
}elsif( $tags[0] eq 'hs' ){
....
}elsif( $tags[0] =~ /^b[0-9]{1-3}/ ){
# das müßte erkannt werden !
writeKV($fh_out,'amenity','bicycle_parking');
...
perl-Greenhorn - Win7 64bit / strawberry (ehem. activeperl) - www.OpenStreetMap.de