source: subversion/editors/osmpedit/osmbase.pm @ 1109

Last change on this file since 1109 was 1109, checked in by tpersson, 14 years ago

More support for ways added

File size: 1.7 KB
Line 
1package osmbase;
2
3use FindBin qw($RealBin);
4use lib "$RealBin";
5use strict;
6
7
8
9sub new {
10    my $this = shift;
11    my $class = ref($this) || $this;
12    bless {
13        UID => 0,
14        KEYVALUE => {},
15        @_
16    }, $class;
17}
18
19sub add_key_value {
20    my $self = shift;
21    my $key = shift;
22    my $value = shift;
23
24    $self->{KEYVALUE}->{$key} = $value;
25    if ($key eq "class" and $value eq "motorway") {
26        $self->add_key_value ("car", "yes");
27    }
28    if ($key eq "class" and $value eq "street") {
29        $self->add_key_value ("car", "yes");
30    }
31    if ($key eq "class" and $value eq "path") {
32        $self->add_key_value ("foot", "yes");
33        $self->add_key_value ("bike", "yes");
34    }
35}
36
37sub get_key_value {
38    my $self = shift;
39    my $key = shift;
40    return $self->{KEYVALUE}->{$key};
41}
42
43sub is_key {
44    my $self = shift;
45    my $key = shift;
46    if (defined $self->{KEYVALUE}->{$key} and 
47        $self->{KEYVALUE}->{$key} ne "") {
48        return 1;
49    } else {
50        return 0;
51    }
52}
53
54sub key_value_hash {
55    my $self = shift;
56    return $self->{KEYVALUE}
57}
58
59sub set_uid {
60    my $self = shift;
61    my $val = shift;
62    $self->{UID} = $val;
63}
64
65sub get_uid {
66    my $self = shift;
67    return $self->{UID};;
68}
69
70sub get_tags {
71    my $self = shift;
72    return $self->{KEYVALUE};
73}
74
75sub get_keys {
76    my $self = shift;
77    return keys %{$self->{KEYVALUE}};
78}
79
80sub get_class {
81    my $self = shift;
82    return $self->{KEYVALUE}->{"class"};
83}
84
85sub get_car {
86    my $self = shift;
87    return $self->{KEYVALUE}->{"car"};
88}
89
90sub get_bike {
91    my $self = shift;
92    return $self->{KEYVALUE}->{"bike"};
93}
94
95sub get_foot {
96    my $self = shift;
97    return $self->{KEYVALUE}->{"foot"};
98}
99
100sub get_name {
101    my $self = shift;
102    return $self->{KEYVALUE}->{"name"};
103}
104
105
106
107return 1;
Note: See TracBrowser for help on using the repository browser.