Skip to content

Commit 3f35441

Browse files
Do/ecologie (#745)
* WIP: Ecologie kaart opzetten in python * WIP: zonder iconen maar volledige mapfile and python * WIP: ecologie bijna af * Ready voor data amsterdam development
1 parent ab0fb48 commit 3f35441

29 files changed

Lines changed: 1242 additions & 0 deletions

ecologie.map

Lines changed: 758 additions & 0 deletions
Large diffs are not rendered by default.

gen_ecologie.py

Lines changed: 172 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,172 @@
1+
#!/usr/bin/env python
2+
3+
# Generates the ziektenplagenexotengroen mapfile.
4+
5+
from generate import block, header, p, q
6+
import re
7+
8+
def slugify(s: str) -> str:
9+
# TODO would be cleaner to convert to NFD, then remove combining chars.
10+
s = s.replace("ë", "e")
11+
return re.sub(r"[^A-Za-z]+", "_", s).strip("_").lower()
12+
13+
layers = [
14+
("Faunameubilair","Loopplank", "Loopplank", "loopplank"),
15+
("Faunameubilair","Vogelhut", "Vogelhut", "vogelhut"),
16+
("Faunameubilair","Vogelkijktoren", "Vogelkijktoren", "vogelkijktoren"),
17+
("Faunameubilair","Vogelscherm", "Vogelscherm", "vogelscherm"),
18+
("Faunaverblijfplaatsen","Bijenwand", "Bijenwand", "bijenwand"),
19+
("Faunaverblijfplaatsen","Broeihoop", "Broeihoop", "broeihoop"),
20+
("Faunaverblijfplaatsen","Insectenhotel", "Insectenhotel", "insectenhotel"),
21+
("Faunaverblijfplaatsen","Ooievaarsnest", "Ooievaarsnest", "ooievaarsnest"),
22+
("Faunaverblijfplaatsen","Vleermuiskast", "Vleermuiskast", "vleermuiskast"),
23+
("Faunaverblijfplaatsen","Vleermuiskelder", "Vleermuiskelder", "vleermuiskelder"),
24+
("Faunaverblijfplaatsen","Vleermuistoren", "Vleermuistoren", "vleermuistoren"),
25+
("Faunaverblijfplaatsen","Winterverblijf", "Winterverblijf", "winterverblijf"),
26+
("Faunavoorziening","Eekhoornbrug", "Eekhoornbrug", "eekhoornbrug"),
27+
("Faunavoorziening","Faunaduiker", "Faunaduiker", "faunaduiker"),
28+
("Faunavoorziening","Faunagoot", "Faunagoot", "faunagoot"),
29+
("Faunavoorziening","Faunapassage", "Faunapassage", "faunapassage"),
30+
("Faunavoorziening","Faunarichel", "Faunarichel", "faunarichel"),
31+
("Faunavoorziening","Faunatunnel", "Faunatunnel", "faunatunnel"),
32+
("Faunavoorziening","Faunauittreedplaats", "Faunauittreedplaats", "faunauittreedplaats"),
33+
("Faunavoorziening","Faunawand", "Faunawand", "faunawand"),
34+
("Faunavoorziening","Keienwal", "Keienwal", "keienwal"),
35+
("Faunavoorziening","Stobbenwal", "Stobbenwal", "stobbenwal"),
36+
("Faunavoorziening","Vispassage", "Vispassage", "vispassage"),
37+
("Hekken","Amfibieenscherm", "Amfibieënscherm", "amfibieenscherm"),
38+
("Hekken","Faunaraster", "Faunaraster", "faunaraster"),
39+
("Wildroosters","Wildrooster", "Wildrooster", "wildrooster"),
40+
("Poelen","Poel", "Poel", "#56CCF2"),
41+
("Ecologische gebieden","Verbindingszone", "Verbindingszone", "#2F80ED"),
42+
("Ecologische gebieden","Kerngebied", "Kerngebied", "#F2C94C")
43+
]
44+
45+
46+
header("Bor")
47+
48+
with block("MAP"):
49+
p("NAME", "ecologie")
50+
p("INCLUDE", "header.inc")
51+
52+
with block("WEB"):
53+
with block("METADATA"):
54+
q("team", "BOR")
55+
q("ows_title", "Ecologie")
56+
q(
57+
"ows_abstract",
58+
"Deze collectie bevat ecologische voorzieningen binnen gemeente Amsterdam. Dit zijn zowel ecologische objecten als ecologische gebieden. De ecologische objecten, zoals eekhoornbruggen en vispassages, zijn bedoeld voor dieren in de stad en zorgen ervoor dat zij zich veilig kunnen verplaatsen tussen verschillende leefgebieden. De ecologische gebieden zijn gericht op het vergroten van de biodiversiteit en zijn onderverdeeld in kerngebieden en verbindingszones. Kerngebieden bieden geschikte omstandigheden voor de permanente vestiging van soorten. Verbindingszones bieden geschikte omstandigheden voor tijdelijk verblijf, verbinden de kerngebieden met elkaar waardoor het leefgebied vergroot",
59+
)
60+
q("wms_extent", "100000 450000 150000 500000")
61+
with block("LEGEND"):
62+
p("STATUS ON")
63+
p("KEYSIZE 15 15")
64+
65+
66+
for group, name, filter, icon in layers:
67+
with block("LAYER"):
68+
p("NAME", name)
69+
p("GROUP", slugify(group))
70+
with block("PROJECTION"):
71+
q("init=epsg:28992")
72+
73+
p("INCLUDE", "connection/dataservices.inc")
74+
75+
#niet echt trots op deze if statements, door deze aanpak is het heel makkelijk aanpasbaar, maar alle functies zijn anders.
76+
if group == "Faunameubilair":
77+
p(
78+
"DATA",
79+
"geometrie_punt FROM"
80+
f" (SELECT * FROM public.ecologie_faunameubilair_v1 where type = '{filter}') AS sub"
81+
" USING srid=28992 USING UNIQUE id"
82+
)
83+
p("TYPE POINT")
84+
type = 'point'
85+
if group == "Faunaverblijfplaatsen":
86+
p(
87+
"DATA",
88+
"geometrie_punt FROM"
89+
f" (SELECT * FROM public.ecologie_faunaverblijfplaatsen_v1 where type = '{filter}') AS sub"
90+
" USING srid=28992 USING UNIQUE id"
91+
)
92+
p("TYPE POINT")
93+
type = 'point'
94+
if group == "Faunavoorziening":
95+
p(
96+
"DATA",
97+
"geometrie_punt FROM"
98+
f" (SELECT * FROM public.ecologie_faunavoorzieningen_v1 where type = '{filter}') AS sub"
99+
" USING srid=28992 USING UNIQUE id"
100+
)
101+
p("TYPE POINT")
102+
type = 'point'
103+
if group == "Hekken":
104+
p(
105+
"DATA",
106+
"geometrie_punt FROM"
107+
f" (SELECT * FROM objectenopenbareruimte_hekken_v1 where type = '{filter}') AS sub"
108+
" USING srid=28992 USING UNIQUE id"
109+
)
110+
p("TYPE POINT")
111+
type = 'point'
112+
if group == "Wildroosters":
113+
p(
114+
"DATA",
115+
"geometrie_punt FROM"
116+
f" (SELECT * FROM public.objectenopenbareruimte_roosters_v1 where type = '{filter}') AS sub"
117+
" USING srid=28992 USING UNIQUE id"
118+
)
119+
p("TYPE POINT")
120+
type = 'point'
121+
if group == "Poelen":
122+
p(
123+
"DATA",
124+
"geometrie FROM"
125+
f" (SELECT * FROM public.objectenopenbareruimte_waterobjecten_v1 where type_gedetailleerd = '{filter}') AS sub"
126+
" USING srid=28992 USING UNIQUE id"
127+
)
128+
p("TYPE POLYGON")
129+
type = 'polygon'
130+
if group == "Ecologische gebieden":
131+
if name == 'Verbindingszone':
132+
p(
133+
"DATA",
134+
"geometrie FROM"
135+
f" (SELECT * FROM public.ecologie_verbindingszones_v3) AS sub"
136+
" USING srid=28992 USING UNIQUE id"
137+
)
138+
if name == 'Kerngebied':
139+
p(
140+
"DATA",
141+
"geometrie FROM"
142+
f" (SELECT * FROM public.ecologie_kerngebieden_v3) AS sub"
143+
" USING srid=28992 USING UNIQUE id"
144+
)
145+
p("TYPE POLYGON")
146+
type = 'polygon'
147+
148+
with block("METADATA"):
149+
q("wfs_enable_request", "!*")
150+
q("ows_title", name)
151+
q("wms_enable_request", "*")
152+
q("ows_abstract", "Ecologie amsterdam")
153+
q("wms_format", "image/png")
154+
q("ows_group_title", group)
155+
156+
157+
with block("CLASS"):
158+
p("NAME", name)
159+
160+
if type == 'polygon':
161+
with block("STYLE"):
162+
p("COLOR", icon)
163+
p("OPACITY", 20)
164+
165+
with block("STYLE"):
166+
p("OUTLINECOLOR ", icon)
167+
p("WIDTH ", 2)
168+
169+
else:
170+
with block("STYLE"):
171+
p("SYMBOL", icon)
172+
p("SIZE", 20)
Lines changed: 4 additions & 0 deletions
Loading
Lines changed: 5 additions & 0 deletions
Loading
Lines changed: 5 additions & 0 deletions
Loading
Lines changed: 4 additions & 0 deletions
Loading
Lines changed: 4 additions & 0 deletions
Loading
Lines changed: 4 additions & 0 deletions
Loading
Lines changed: 4 additions & 0 deletions
Loading
Lines changed: 4 additions & 0 deletions
Loading

0 commit comments

Comments
 (0)