Skip to content

Commit 9626ac9

Browse files
committed
tweaked vegref klasse
1 parent 98b0f14 commit 9626ac9

File tree

4 files changed

+135
-128
lines changed

4 files changed

+135
-128
lines changed

Dev_PVDB.py

Lines changed: 97 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -1,94 +1,107 @@
1+
import pprint
12
import pnvdb
23

4+
pp = pprint.PrettyPrinter(indent=2)
5+
36
nvdb = pnvdb.Nvdb(client='pnvdb', contact='jankyr@vegvesen.no')
4-
#print(nvdb.status())
5-
# pos = nvdb.posisjon(x_coordinate=269815,y_coordinate=7038165)
6-
# print(pos.vegreferanse)
7-
# vegref = nvdb.vegreferanse('1600Ev6hp12m1000')
8-
# print(vegref)
9-
# print(vegref.detaljert)
10-
# print(vegref.veglenke)
11-
# print(vegref.geometri)
12-
13-
# for i in nvdb.regioner():
14-
# print(i.metadata)
15-
# print(i.objekt.metadata)
16-
# break
17-
18-
# for i in nvdb.fylker():
19-
# print(i.metadata)
20-
# print(i.objekt.metadata)
21-
# break
22-
23-
# for i in nvdb.vegavdelinger():
24-
# print(i.metadata)
25-
# print(i.objekt.metadata)
26-
# break
27-
28-
# for i in nvdb.kommuner():
29-
# print(i.metadata)
30-
# print(i.objekt.metadata)
31-
# break
32-
33-
# for i in nvdb.kontraktsomrader():
34-
# print(i.metadata)
35-
# print(i.objekt.metadata)
36-
# break
37-
38-
# for i in nvdb.riksvegruter():
39-
# print(i.metadata)
40-
# print(i.objekt.metadata)
41-
# break
42-
43-
44-
45-
# objekttyper = nvdb.objekt_typer()
46-
# [print(i.metadata) for i in objekttyper]
47-
48-
49-
# objekttype = nvdb.objekt_type(470)
50-
# print(objekttype.metadata)
51-
# print(objekttype.relasjonstyper)
52-
# print(objekttype.styringsparametere)
53-
# print(objekttype.egenskapstyper)
54-
# print(objekttype.egenskapstype(3779))
55-
# for i in objekttype.foreldre:
56-
# print(i.metadata)
57-
# break
58-
# print(objekttype.dump(file_format='xml'))
7+
8+
pp.pprint(nvdb.status())
9+
pos = nvdb.posisjon(x_coordinate=269815,y_coordinate=7038165)
10+
pp.pprint(pos.vegreferanse)
11+
vegref_point = nvdb.vegreferanse('1600Ev6hp12m1000')
12+
vegref_strech = nvdb.vegreferanse('1600Ev6hp12m1000-1200')
13+
pp.pprint(vegref_point)
14+
pp.pprint(vegref_strech)
15+
16+
pp.pprint(vegref_point.start)
17+
pp.pprint(vegref_point.slutt)
18+
pp.pprint(vegref_strech.start['vegreferanse'])
19+
pp.pprint(vegref_strech.slutt['vegreferanse'])
20+
21+
for i in nvdb.regioner():
22+
pp.pprint(i.metadata)
23+
pp.pprint(i.objekt.metadata)
24+
break
25+
26+
for i in nvdb.fylker():
27+
pp.pprint(i.metadata)
28+
pp.pprint(i.objekt.metadata)
29+
break
30+
31+
for i in nvdb.vegavdelinger():
32+
pp.pprint(i.metadata)
33+
pp.pprint(i.objekt.metadata)
34+
break
35+
36+
for i in nvdb.kommuner():
37+
pp.pprint(i.metadata)
38+
pp.pprint(i.objekt.metadata)
39+
break
40+
41+
for i in nvdb.kontraktsomrader():
42+
pp.pprint(i.metadata)
43+
pp.pprint(i.objekt.metadata)
44+
break
45+
46+
for i in nvdb.riksvegruter():
47+
pp.pprint(i.metadata)
48+
pp.pprint(i.objekt.metadata)
49+
break
50+
51+
52+
53+
objekttyper = nvdb.objekt_typer()
54+
[pp.pprint(i.metadata) for i in objekttyper]
55+
56+
57+
objekttype = nvdb.objekt_type(470)
58+
pp.pprint(objekttype.metadata)
59+
pp.pprint(objekttype.relasjonstyper)
60+
pp.pprint(objekttype.styringsparametere)
61+
pp.pprint(objekttype.egenskapstyper)
62+
pp.pprint(objekttype.egenskapstype(3779))
63+
64+
for i in objekttype.foreldre:
65+
pp.pprint(i.metadata)
66+
break
67+
pp.pprint(objekttype.dump(file_format='xml'))
5968

6069

6170
objekt = nvdb.objekt(67,86543444)
62-
# print(objekt.egenskap(1081)['verdi']) #Navn
63-
# print(objekt.egenskap(1083)) #Finnes ikke
64-
# print(objekt.metadata.keys())
65-
# print(objekt.egenskaper[0].keys())
66-
print(objekt.vegreferanser[0].detaljert)
67-
# print(objekt.egengeometri)
68-
# print(objekt.geometri)
69-
# print(objekt.barn)
70-
# print(objekt.dump(file_format='xml'))
71-
72-
# omradefilter = {'fylke':'2'}
73-
# objekter = nvdb.hent(581, omradefilter)
74-
# for i in objekter:
75-
# for egenskap in i.egenskaper:
76-
# if egenskap['id'] == 5225:
77-
# print(egenskap['verdi'])
78-
# break
79-
# break
80-
81-
# criteria = {'fylke':'2','egenskap':'1820>=20'} # 1820 = "Takst liten bil"
82-
#criteria = {'kommune':'0828','egenskap':'1820>=20'} # Should return no result
83-
84-
#obj = nvdb.hent(45, criteria)
85-
#print(obj)
86-
87-
"""
71+
pp.pprint(objekt.egenskap(1081))
72+
pp.pprint(objekt.egenskap(1081)['verdi']) #Navn
73+
pp.pprint(objekt.egenskap(1083)) #Finnes ikke
74+
pp.pprint(objekt.metadata.keys())
75+
pp.pprint(objekt.egenskaper[0].keys())
76+
pp.pprint(objekt.vegreferanser[0].lengde)
77+
pp.pprint(objekt.vegreferanser[0].start['vegreferanse'])
78+
pp.pprint(objekt.vegreferanser[0].slutt['vegreferanse'])
79+
80+
81+
pp.pprint(objekt.egengeometri)
82+
pp.pprint(objekt.geometri)
83+
pp.pprint(objekt.barn)
84+
pp.pprint(objekt.dump(file_format='xml'))
85+
86+
omradefilter = {'fylke':'2'}
87+
objekter = nvdb.hent(581, omradefilter)
88+
for i in objekter:
89+
for egenskap in i.egenskaper:
90+
if egenskap['id'] == 5225:
91+
pp.pprint(egenskap['verdi'])
92+
break
93+
break
94+
95+
criteria = {'fylke':'2','egenskap':'1820>=20'}# 1820 = "Takst liten bil"
96+
#criteria = {'kommune':'0828','egenskap':'1820>=20'} Should return no result
97+
98+
obj = nvdb.hent(45, criteria)
99+
pp.pprint(obj)
100+
101+
88102
for i in obj:
89103
for egenskap in i.egenskaper:
90-
if egenskap['id'] == 1078: # 1078 = "Navn bomstasjon"
91-
#print(egenskap['verdi'])
104+
if egenskap['id'] == 1078: # 1078 = "Navn bomstasjon"
105+
pp.pprint(egenskap['verdi'])
92106
break
93107
break
94-
"""

pnvdb/models/objekt.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@ def egenskap(self, egenskaps_id=None):
3232
:type egenskaps_id: int
3333
:returns: dict unless property is not found. Then None is returned.
3434
"""
35-
egenskap = filter(lambda x: x['id']==egenskaps_id, self.egenskaper)
35+
egenskap = list(filter(lambda x: x['id'] == egenskaps_id, self.egenskaper))
3636
if len(egenskap):
37-
return egenskap
37+
return egenskap[0]
3838
return None
3939

4040
@property

pnvdb/models/objekt_type.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,10 @@ def egenskapstype(self, egenskapstype_id=None):
5252
:type egenskaps_id: int
5353
:returns: dict unless property is not found. Then None is returned.
5454
"""
55-
egenskapstype = filter(lambda x: x['id'] == egenskapstype_id, egenskapstyper)
56-
55+
egenskapstype = list(filter(lambda x: x['id'] == egenskapstype_id, self.egenskapstyper))
56+
print(egenskapstype)
5757
if len(egenskapstype):
58-
return egenskapstype
58+
return egenskapstype[0]
5959
return None
6060

6161

pnvdb/models/vegreferanse.py

Lines changed: 33 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -4,58 +4,52 @@
44

55
class Vegreferanse(object):
66
""" Class for working with road refferences.
7-
¨TODO: trenger jeg "meta"?
8-
Endepunktet Veg, er ikke sentralt i denne klassen. Da det kun kan brukes
9-
for punkter, og ikke strekninger.
10-
Trenger jeg denne klassen? For stedfesting i datafangst brukes lenke.
11-
Dog den kan jeg hente herifa..
12-
13-
ønsket funksjonalitet :
14-
Start - fra veg Endepunktet
15-
slutt - fra veg Endepunktet
16-
lengde - slutt - start
17-
"""
18-
def __init__(self, nvdb, vegreferanse, meta=None):
19-
super(Vegreferanse, self).__init__()
7+
Does not handle links as of now due to limitations in the API
8+
"""
9+
def __init__(self, nvdb, vegreferanse):
2010
self.vegreferanse = vegreferanse
2111
self.nvdb = nvdb
22-
self.data = meta
23-
if self.vegreferanse.find('-'):
24-
self.strekning = True
12+
self.fra_data = None
13+
self.til_data = None
14+
15+
if self.vegreferanse.find('-') != -1: # Check if the refference is a stretch
16+
self.fra_meter, self.til_meter = [int(value) for value in self.vegreferanse.split('m')[1].split('-')]
17+
self.lengde = self.til_meter - self.fra_meter
2518
else:
26-
self.strekning = False
19+
self.lengde = 0
2720

21+
2822
@property
2923
def start(self):
3024
"""
31-
return the start of a Vegreferanse range
25+
The start of the road refference
26+
:Attribute type: Dict
27+
:keys: ['geometri', 'veglenke', 'vegreferanse']
3228
"""
33-
if not self.data:
34-
self.data = _fetch_data(self.nvdb, 'veg', payload={'vegreferanse':self.vegreferanse})
35-
start = self.vegreferanse.split('-')[0]
29+
if not self.fra_data:
30+
if self.lengde:
31+
vegreferanse = '{}m{}'.format(self.vegreferanse.split('m')[0], self.fra_meter)
32+
self.fra_data = _fetch_data(self.nvdb, 'veg', payload={'vegreferanse':vegreferanse})
33+
else:
34+
self.fra_data = _fetch_data(self.nvdb, 'veg', payload={'vegreferanse':self.vegreferanse})
35+
return self.fra_data
3636

37-
return self.data['vegreferanse']
38-
39-
40-
4137
@property
42-
def veglenke(self):
38+
def slutt(self):
4339
"""
40+
The end of the road refference
4441
:Attribute type: Dict
45-
:keys: ['id', 'kortform', 'posisjon']
42+
:keys: ['geometri', 'veglenke', 'vegreferanse']
4643
"""
47-
if not self.data:
48-
self.data = _fetch_data(self.nvdb, 'veg', payload={'vegreferanse':self.vegreferanse})
49-
return self.data['veglenke']
50-
51-
@property
52-
def geometri(self):
53-
"""
54-
:Attribute type: Well known text
55-
"""
56-
if not self.data:
57-
self.data = _fetch_data(self.nvdb, 'veg', payload={'vegreferanse':self.vegreferanse})
58-
return self.data['geometri']['wkt']
44+
if not self.til_data:
45+
if self.lengde:
46+
vegreferanse = '{}m{}'.format(self.vegreferanse.split('m')[0], self.til_meter)
47+
self.til_data = _fetch_data(self.nvdb, 'veg', payload={'vegreferanse':vegreferanse})
48+
else:
49+
self.til_data = _fetch_data(self.nvdb, 'veg', payload={'vegreferanse':self.vegreferanse})
50+
return self.til_data
5951

52+
6053
def __str__(self):
6154
return '{}'.format(self.vegreferanse)
55+

0 commit comments

Comments
 (0)