source: subversion/applications/editors/osmpedit/osmbase.pm @ 2475

Last change on this file since 2475 was 1137, checked in by tpersson, 13 years ago

More support for ways added

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