Commit 3a54eeb7 authored by Eric Duminil's avatar Eric Duminil
Browse files

Displaying Wurzburg open data trees on map

parent 4ed3f015
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<script>
L_NO_TOUCH = false;
L_DISABLE_3D = false;
</script>
<style>html, body {width: 100%;height: 100%;margin: 0;padding: 0;}</style>
<style>#map {position:absolute;top:0;bottom:0;right:0;left:0;}</style>
<script src="https://cdn.jsdelivr.net/npm/leaflet@1.9.3/dist/leaflet.js"></script>
<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/js/bootstrap.bundle.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Leaflet.awesome-markers/2.0.2/leaflet.awesome-markers.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/leaflet@1.9.3/dist/leaflet.css"/>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/css/bootstrap.min.css"/>
<link rel="stylesheet" href="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css"/>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.2.0/css/all.min.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/Leaflet.awesome-markers/2.0.2/leaflet.awesome-markers.css"/>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/python-visualization/folium/folium/templates/leaflet.awesome.rotate.min.css"/>
<meta name="viewport" content="width=device-width,
initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<style>
#map_0a18e9f592807b7da8ad7df3701854cc {
position: relative;
width: 100.0%;
height: 100.0%;
left: 0.0%;
top: 0.0%;
}
.leaflet-container { font-size: 1rem; }
</style>
</head>
<body>
<div class="folium-map" id="map_0a18e9f592807b7da8ad7df3701854cc" ></div>
</body>
<script>
var map_0a18e9f592807b7da8ad7df3701854cc = L.map(
"map_0a18e9f592807b7da8ad7df3701854cc",
{
center: [0.0, 0.0],
crs: L.CRS.EPSG3857,
zoom: 1,
zoomControl: true,
preferCanvas: false,
}
);
var tile_layer_fa0998e64f3b93954936f33f8ee901dd = L.tileLayer(
"https://tile.openstreetmap.org/{z}/{x}/{y}.png",
{"attribution": "\u0026copy; \u003ca href=\"https://www.openstreetmap.org/copyright\"\u003eOpenStreetMap\u003c/a\u003e contributors", "detectRetina": false, "maxNativeZoom": 19, "maxZoom": 19, "minZoom": 0, "noWrap": false, "opacity": 1, "subdomains": "abc", "tms": false}
);
tile_layer_fa0998e64f3b93954936f33f8ee901dd.addTo(map_0a18e9f592807b7da8ad7df3701854cc);
map_0a18e9f592807b7da8ad7df3701854cc.fitBounds(
[[49.77794, 9.92724], [49.79761, 10.001541255042]],
{}
);
var circle_981ebc2a4a74f3aa21e9f2d665723cf6 = L.circle(
[49.782, 9.95677],
{"bubblingMouseEvents": true, "color": "black", "dashArray": null, "dashOffset": null, "fill": true, "fillColor": "green", "fillOpacity": 0.9, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1, "radius": 50, "stroke": true, "weight": 1}
).addTo(map_0a18e9f592807b7da8ad7df3701854cc);
var popup_8baab6221ecf85d84ca4ef9d7e63be46 = L.popup({"maxWidth": "100%"});
var html_cef3a8150cf716145838b6c71ab54846 = $(`<div id="html_cef3a8150cf716145838b6c71ab54846" style="width: 100.0%; height: 100.0%;">Tree #58753 (Acer Platanoides)</div>`)[0];
popup_8baab6221ecf85d84ca4ef9d7e63be46.setContent(html_cef3a8150cf716145838b6c71ab54846);
circle_981ebc2a4a74f3aa21e9f2d665723cf6.bindPopup(popup_8baab6221ecf85d84ca4ef9d7e63be46)
;
circle_981ebc2a4a74f3aa21e9f2d665723cf6.bindTooltip(
`<div>
Acer Platanoides
</div>`,
{"sticky": true}
);
var circle_2a2d0745e95a072d4812752621496adb = L.circle(
[49.7819944, 9.95930555555555],
{"bubblingMouseEvents": true, "color": "black", "dashArray": null, "dashOffset": null, "fill": true, "fillColor": "green", "fillOpacity": 0.9, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1, "radius": 50, "stroke": true, "weight": 1}
).addTo(map_0a18e9f592807b7da8ad7df3701854cc);
var popup_3339232496f135e1c830da2233a7b6e4 = L.popup({"maxWidth": "100%"});
var html_5fd3c764b7b2fd110d624c60d157ca26 = $(`<div id="html_5fd3c764b7b2fd110d624c60d157ca26" style="width: 100.0%; height: 100.0%;">Tree #06_Ersatz_01_58753 (Acer Platanoides)</div>`)[0];
popup_3339232496f135e1c830da2233a7b6e4.setContent(html_5fd3c764b7b2fd110d624c60d157ca26);
circle_2a2d0745e95a072d4812752621496adb.bindPopup(popup_3339232496f135e1c830da2233a7b6e4)
;
circle_2a2d0745e95a072d4812752621496adb.bindTooltip(
`<div>
Acer Platanoides
</div>`,
{"sticky": true}
);
var circle_189049d3ebdbe495cea9d128ade477a4 = L.circle(
[49.7819944, 9.959305555555554],
{"bubblingMouseEvents": true, "color": "black", "dashArray": null, "dashOffset": null, "fill": true, "fillColor": "green", "fillOpacity": 0.9, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1, "radius": 50, "stroke": true, "weight": 1}
).addTo(map_0a18e9f592807b7da8ad7df3701854cc);
var popup_c27924f4412739b006ab4e20775ee887 = L.popup({"maxWidth": "100%"});
var html_fddd084bf5cd8c155b97d92dd2e51a84 = $(`<div id="html_fddd084bf5cd8c155b97d92dd2e51a84" style="width: 100.0%; height: 100.0%;">Tree #06_Ersatz_01_58753 (Acer Platanoides)</div>`)[0];
popup_c27924f4412739b006ab4e20775ee887.setContent(html_fddd084bf5cd8c155b97d92dd2e51a84);
circle_189049d3ebdbe495cea9d128ade477a4.bindPopup(popup_c27924f4412739b006ab4e20775ee887)
;
circle_189049d3ebdbe495cea9d128ade477a4.bindTooltip(
`<div>
Acer Platanoides
</div>`,
{"sticky": true}
);
var circle_b00b475545351240c12a246f965dbce8 = L.circle(
[49.7912, 9.92724],
{"bubblingMouseEvents": true, "color": "black", "dashArray": null, "dashOffset": null, "fill": true, "fillColor": "green", "fillOpacity": 0.9, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1, "radius": 50, "stroke": true, "weight": 1}
).addTo(map_0a18e9f592807b7da8ad7df3701854cc);
var popup_18282a8adabe693466654d260e9432e3 = L.popup({"maxWidth": "100%"});
var html_ba2eedc08a7bab8f91b4f1bfed898bb1 = $(`<div id="html_ba2eedc08a7bab8f91b4f1bfed898bb1" style="width: 100.0%; height: 100.0%;">Tree #65851 (Fraxinus Angustifolia Raywood)</div>`)[0];
popup_18282a8adabe693466654d260e9432e3.setContent(html_ba2eedc08a7bab8f91b4f1bfed898bb1);
circle_b00b475545351240c12a246f965dbce8.bindPopup(popup_18282a8adabe693466654d260e9432e3)
;
circle_b00b475545351240c12a246f965dbce8.bindTooltip(
`<div>
Fraxinus Angustifolia Raywood
</div>`,
{"sticky": true}
);
var circle_25635b8b27400277c5ed16d92ef1b213 = L.circle(
[49.77794, 9.93879],
{"bubblingMouseEvents": true, "color": "black", "dashArray": null, "dashOffset": null, "fill": true, "fillColor": "green", "fillOpacity": 0.9, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1, "radius": 50, "stroke": true, "weight": 1}
).addTo(map_0a18e9f592807b7da8ad7df3701854cc);
var popup_a969f5bc84ce9d6f0d934cc9a483eb02 = L.popup({"maxWidth": "100%"});
var html_21455c1c6c03e3f24b73f74b3831d772 = $(`<div id="html_21455c1c6c03e3f24b73f74b3831d772" style="width: 100.0%; height: 100.0%;">Tree #54838 (Fraxinus Ornus)</div>`)[0];
popup_a969f5bc84ce9d6f0d934cc9a483eb02.setContent(html_21455c1c6c03e3f24b73f74b3831d772);
circle_25635b8b27400277c5ed16d92ef1b213.bindPopup(popup_a969f5bc84ce9d6f0d934cc9a483eb02)
;
circle_25635b8b27400277c5ed16d92ef1b213.bindTooltip(
`<div>
Fraxinus Ornus
</div>`,
{"sticky": true}
);
var circle_d9c88bdee2db3466656cdfe372fe0d4b = L.circle(
[49.79037, 9.92953],
{"bubblingMouseEvents": true, "color": "black", "dashArray": null, "dashOffset": null, "fill": true, "fillColor": "green", "fillOpacity": 0.9, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1, "radius": 50, "stroke": true, "weight": 1}
).addTo(map_0a18e9f592807b7da8ad7df3701854cc);
var popup_adfead7649afa2476c726b17d784de1d = L.popup({"maxWidth": "100%"});
var html_5ba1c474dc319342dd9a370236ddd5b0 = $(`<div id="html_5ba1c474dc319342dd9a370236ddd5b0" style="width: 100.0%; height: 100.0%;">Tree #8971.1 (Gleditsia Triacanthos Inermis)</div>`)[0];
popup_adfead7649afa2476c726b17d784de1d.setContent(html_5ba1c474dc319342dd9a370236ddd5b0);
circle_d9c88bdee2db3466656cdfe372fe0d4b.bindPopup(popup_adfead7649afa2476c726b17d784de1d)
;
circle_d9c88bdee2db3466656cdfe372fe0d4b.bindTooltip(
`<div>
Gleditsia Triacanthos Inermis
</div>`,
{"sticky": true}
);
var circle_fc0b3beef9e9a76751cbd89ef147cafc = L.circle(
[49.7913, 9.96101],
{"bubblingMouseEvents": true, "color": "black", "dashArray": null, "dashOffset": null, "fill": true, "fillColor": "green", "fillOpacity": 0.9, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1, "radius": 50, "stroke": true, "weight": 1}
).addTo(map_0a18e9f592807b7da8ad7df3701854cc);
var popup_23194f068c635e7968cd152a2b5e1153 = L.popup({"maxWidth": "100%"});
var html_09b37e024c7841dad55eae3589fd7978 = $(`<div id="html_09b37e024c7841dad55eae3589fd7978" style="width: 100.0%; height: 100.0%;">Tree #36312 (Robinia Pseudoacacia)</div>`)[0];
popup_23194f068c635e7968cd152a2b5e1153.setContent(html_09b37e024c7841dad55eae3589fd7978);
circle_fc0b3beef9e9a76751cbd89ef147cafc.bindPopup(popup_23194f068c635e7968cd152a2b5e1153)
;
circle_fc0b3beef9e9a76751cbd89ef147cafc.bindTooltip(
`<div>
Robinia Pseudoacacia
</div>`,
{"sticky": true}
);
var circle_6140a4ff66c3b664569024f69b8798e7 = L.circle(
[49.78955, 9.93318],
{"bubblingMouseEvents": true, "color": "black", "dashArray": null, "dashOffset": null, "fill": true, "fillColor": "green", "fillOpacity": 0.9, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1, "radius": 50, "stroke": true, "weight": 1}
).addTo(map_0a18e9f592807b7da8ad7df3701854cc);
var popup_78b6f0fc9a40c6af5b6538207d1aea00 = L.popup({"maxWidth": "100%"});
var html_1f0e661408ca758a98f4742287d28478 = $(`<div id="html_1f0e661408ca758a98f4742287d28478" style="width: 100.0%; height: 100.0%;">Tree #54976 (Sophora Japonica)</div>`)[0];
popup_78b6f0fc9a40c6af5b6538207d1aea00.setContent(html_1f0e661408ca758a98f4742287d28478);
circle_6140a4ff66c3b664569024f69b8798e7.bindPopup(popup_78b6f0fc9a40c6af5b6538207d1aea00)
;
circle_6140a4ff66c3b664569024f69b8798e7.bindTooltip(
`<div>
Sophora Japonica
</div>`,
{"sticky": true}
);
var circle_d947e5e21b5bb51af172cce8e89029c0 = L.circle(
[49.79344, 9.94073],
{"bubblingMouseEvents": true, "color": "black", "dashArray": null, "dashOffset": null, "fill": true, "fillColor": "green", "fillOpacity": 0.9, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1, "radius": 50, "stroke": true, "weight": 1}
).addTo(map_0a18e9f592807b7da8ad7df3701854cc);
var popup_f4b9df3014faff570f828073c0956967 = L.popup({"maxWidth": "100%"});
var html_d7fb105b0c22dda5e2bd9eff7ca549a5 = $(`<div id="html_d7fb105b0c22dda5e2bd9eff7ca549a5" style="width: 100.0%; height: 100.0%;">Tree #23631 (Tilia Cordata Greenspire)</div>`)[0];
popup_f4b9df3014faff570f828073c0956967.setContent(html_d7fb105b0c22dda5e2bd9eff7ca549a5);
circle_d947e5e21b5bb51af172cce8e89029c0.bindPopup(popup_f4b9df3014faff570f828073c0956967)
;
circle_d947e5e21b5bb51af172cce8e89029c0.bindTooltip(
`<div>
Tilia Cordata Greenspire
</div>`,
{"sticky": true}
);
var circle_f7ab6f27123e8509994521321840c289 = L.circle(
[49.79318, 9.93319],
{"bubblingMouseEvents": true, "color": "black", "dashArray": null, "dashOffset": null, "fill": true, "fillColor": "green", "fillOpacity": 0.9, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1, "radius": 50, "stroke": true, "weight": 1}
).addTo(map_0a18e9f592807b7da8ad7df3701854cc);
var popup_66589ced6a2febc16296c0c2090049ee = L.popup({"maxWidth": "100%"});
var html_7b025c9102d00aff929e7f4e2c8726f7 = $(`<div id="html_7b025c9102d00aff929e7f4e2c8726f7" style="width: 100.0%; height: 100.0%;">Tree #5540 (Tilia Cordata Greenspire)</div>`)[0];
popup_66589ced6a2febc16296c0c2090049ee.setContent(html_7b025c9102d00aff929e7f4e2c8726f7);
circle_f7ab6f27123e8509994521321840c289.bindPopup(popup_66589ced6a2febc16296c0c2090049ee)
;
circle_f7ab6f27123e8509994521321840c289.bindTooltip(
`<div>
Tilia Cordata Greenspire
</div>`,
{"sticky": true}
);
var circle_76fcc0d4223da0e1edeb0616c9c4c0a4 = L.circle(
[49.78558, 9.95938],
{"bubblingMouseEvents": true, "color": "black", "dashArray": null, "dashOffset": null, "fill": true, "fillColor": "green", "fillOpacity": 0.9, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1, "radius": 50, "stroke": true, "weight": 1}
).addTo(map_0a18e9f592807b7da8ad7df3701854cc);
var popup_b7d6ef6f66b34a7140e5f1a3b7025b6b = L.popup({"maxWidth": "100%"});
var html_f081975dccdaf814914367f977aaff05 = $(`<div id="html_f081975dccdaf814914367f977aaff05" style="width: 100.0%; height: 100.0%;">Tree #58762 (Tilia Tomentosa Brabant)</div>`)[0];
popup_b7d6ef6f66b34a7140e5f1a3b7025b6b.setContent(html_f081975dccdaf814914367f977aaff05);
circle_76fcc0d4223da0e1edeb0616c9c4c0a4.bindPopup(popup_b7d6ef6f66b34a7140e5f1a3b7025b6b)
;
circle_76fcc0d4223da0e1edeb0616c9c4c0a4.bindTooltip(
`<div>
Tilia Tomentosa Brabant
</div>`,
{"sticky": true}
);
var circle_126a7607b2f03e5b736805b688d7bd33 = L.circle(
[49.7855, 9.95930555555555],
{"bubblingMouseEvents": true, "color": "black", "dashArray": null, "dashOffset": null, "fill": true, "fillColor": "green", "fillOpacity": 0.9, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1, "radius": 50, "stroke": true, "weight": 1}
).addTo(map_0a18e9f592807b7da8ad7df3701854cc);
var popup_9403bf09a10efa4d5c9033166b6e689b = L.popup({"maxWidth": "100%"});
var html_966faddf55491e4242b3aaf1d7ad02fb = $(`<div id="html_966faddf55491e4242b3aaf1d7ad02fb" style="width: 100.0%; height: 100.0%;">Tree #01_Ersatz_2_58762 (Tilia Tomentosa Brabant)</div>`)[0];
popup_9403bf09a10efa4d5c9033166b6e689b.setContent(html_966faddf55491e4242b3aaf1d7ad02fb);
circle_126a7607b2f03e5b736805b688d7bd33.bindPopup(popup_9403bf09a10efa4d5c9033166b6e689b)
;
circle_126a7607b2f03e5b736805b688d7bd33.bindTooltip(
`<div>
Tilia Tomentosa Brabant
</div>`,
{"sticky": true}
);
var circle_d6aed4680a1befee70bcb5a20c6367d9 = L.circle(
[49.7855, 9.959305555555554],
{"bubblingMouseEvents": true, "color": "black", "dashArray": null, "dashOffset": null, "fill": true, "fillColor": "green", "fillOpacity": 0.9, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1, "radius": 50, "stroke": true, "weight": 1}
).addTo(map_0a18e9f592807b7da8ad7df3701854cc);
var popup_59529475359321945850c1e5f7717546 = L.popup({"maxWidth": "100%"});
var html_ab2c96d585649846efe1e6ff9d222477 = $(`<div id="html_ab2c96d585649846efe1e6ff9d222477" style="width: 100.0%; height: 100.0%;">Tree #01_Ersatz_2_58762 (Tilia Tomentosa Brabant)</div>`)[0];
popup_59529475359321945850c1e5f7717546.setContent(html_ab2c96d585649846efe1e6ff9d222477);
circle_d6aed4680a1befee70bcb5a20c6367d9.bindPopup(popup_59529475359321945850c1e5f7717546)
;
circle_d6aed4680a1befee70bcb5a20c6367d9.bindTooltip(
`<div>
Tilia Tomentosa Brabant
</div>`,
{"sticky": true}
);
var circle_92a4fbca08b58e20ba6e6d2d1aefe32d = L.circle(
[49.79619, 9.93103],
{"bubblingMouseEvents": true, "color": "black", "dashArray": null, "dashOffset": null, "fill": true, "fillColor": "green", "fillOpacity": 0.9, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1, "radius": 50, "stroke": true, "weight": 1}
).addTo(map_0a18e9f592807b7da8ad7df3701854cc);
var popup_cd94c08d8b7203caddaaaca3a1b097f3 = L.popup({"maxWidth": "100%"});
var html_cd7c7a18b0400ac40b893c99d45908a7 = $(`<div id="html_cd7c7a18b0400ac40b893c99d45908a7" style="width: 100.0%; height: 100.0%;">Tree #5445 (Tilia Vulgaris Pallida)</div>`)[0];
popup_cd94c08d8b7203caddaaaca3a1b097f3.setContent(html_cd7c7a18b0400ac40b893c99d45908a7);
circle_92a4fbca08b58e20ba6e6d2d1aefe32d.bindPopup(popup_cd94c08d8b7203caddaaaca3a1b097f3)
;
circle_92a4fbca08b58e20ba6e6d2d1aefe32d.bindTooltip(
`<div>
Tilia Vulgaris Pallida
</div>`,
{"sticky": true}
);
var circle_f138b63bb165bdec4fb348efb2e319a4 = L.circle(
[49.79761, 9.9327],
{"bubblingMouseEvents": true, "color": "black", "dashArray": null, "dashOffset": null, "fill": true, "fillColor": "green", "fillOpacity": 0.9, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1, "radius": 50, "stroke": true, "weight": 1}
).addTo(map_0a18e9f592807b7da8ad7df3701854cc);
var popup_fa1c123c7cde49049c3ebe89f9f251bd = L.popup({"maxWidth": "100%"});
var html_e2dfdd45681d61ca36a488a8c963ddb4 = $(`<div id="html_e2dfdd45681d61ca36a488a8c963ddb4" style="width: 100.0%; height: 100.0%;">Tree #42374 (Tilia Vulgaris Pallida)</div>`)[0];
popup_fa1c123c7cde49049c3ebe89f9f251bd.setContent(html_e2dfdd45681d61ca36a488a8c963ddb4);
circle_f138b63bb165bdec4fb348efb2e319a4.bindPopup(popup_fa1c123c7cde49049c3ebe89f9f251bd)
;
circle_f138b63bb165bdec4fb348efb2e319a4.bindTooltip(
`<div>
Tilia Vulgaris Pallida
</div>`,
{"sticky": true}
);
var circle_4b30eec10afb6c716ec1b5eba1cc3fcf = L.circle(
[49.796, 9.93272],
{"bubblingMouseEvents": true, "color": "black", "dashArray": null, "dashOffset": null, "fill": true, "fillColor": "green", "fillOpacity": 0.9, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1, "radius": 50, "stroke": true, "weight": 1}
).addTo(map_0a18e9f592807b7da8ad7df3701854cc);
var popup_f924b9d126382d2437142ef3cc9cd0df = L.popup({"maxWidth": "100%"});
var html_16911d280d025bc6e598d098b382c957 = $(`<div id="html_16911d280d025bc6e598d098b382c957" style="width: 100.0%; height: 100.0%;">Tree #5463.1 (Ulmus New Horizon)</div>`)[0];
popup_f924b9d126382d2437142ef3cc9cd0df.setContent(html_16911d280d025bc6e598d098b382c957);
circle_4b30eec10afb6c716ec1b5eba1cc3fcf.bindPopup(popup_f924b9d126382d2437142ef3cc9cd0df)
;
circle_4b30eec10afb6c716ec1b5eba1cc3fcf.bindTooltip(
`<div>
Ulmus New Horizon
</div>`,
{"sticky": true}
);
var circle_ec87653c7e906080e4cc73fc39c4de7a = L.circle(
[49.79658, 9.94169],
{"bubblingMouseEvents": true, "color": "black", "dashArray": null, "dashOffset": null, "fill": true, "fillColor": "green", "fillOpacity": 0.9, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1, "radius": 50, "stroke": true, "weight": 1}
).addTo(map_0a18e9f592807b7da8ad7df3701854cc);
var popup_0a648d8732aa736971ac9da7fec4e28d = L.popup({"maxWidth": "100%"});
var html_81c1f01975eea1f926a26d7883a1b38b = $(`<div id="html_81c1f01975eea1f926a26d7883a1b38b" style="width: 100.0%; height: 100.0%;">Tree #58413 (Ulmus New Horizon)</div>`)[0];
popup_0a648d8732aa736971ac9da7fec4e28d.setContent(html_81c1f01975eea1f926a26d7883a1b38b);
circle_ec87653c7e906080e4cc73fc39c4de7a.bindPopup(popup_0a648d8732aa736971ac9da7fec4e28d)
;
circle_ec87653c7e906080e4cc73fc39c4de7a.bindTooltip(
`<div>
Ulmus New Horizon
</div>`,
{"sticky": true}
);
var circle_7e7cb41265abeb7939e032d272089dec = L.circle(
[49.78703, 9.92758],
{"bubblingMouseEvents": true, "color": "black", "dashArray": null, "dashOffset": null, "fill": true, "fillColor": "green", "fillOpacity": 0.9, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1, "radius": 50, "stroke": true, "weight": 1}
).addTo(map_0a18e9f592807b7da8ad7df3701854cc);
var popup_a26d6b51cdf79f04b4889d4e41e1ea8a = L.popup({"maxWidth": "100%"});
var html_630553cc36fcf0c38d2a7987e81f1f69 = $(`<div id="html_630553cc36fcf0c38d2a7987e81f1f69" style="width: 100.0%; height: 100.0%;">Tree #56822 (Ulmus Rebona)</div>`)[0];
popup_a26d6b51cdf79f04b4889d4e41e1ea8a.setContent(html_630553cc36fcf0c38d2a7987e81f1f69);
circle_7e7cb41265abeb7939e032d272089dec.bindPopup(popup_a26d6b51cdf79f04b4889d4e41e1ea8a)
;
circle_7e7cb41265abeb7939e032d272089dec.bindTooltip(
`<div>
Ulmus Rebona
</div>`,
{"sticky": true}
);
var circle_ef819b046854f73929bd0047244f67c6 = L.circle(
[49.79166, 9.93557],
{"bubblingMouseEvents": true, "color": "black", "dashArray": null, "dashOffset": null, "fill": true, "fillColor": "green", "fillOpacity": 0.9, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1, "radius": 50, "stroke": true, "weight": 1}
).addTo(map_0a18e9f592807b7da8ad7df3701854cc);
var popup_92eead152216eebd47591fb7998ef220 = L.popup({"maxWidth": "100%"});
var html_0e289200a973d461a1a3242836f141fe = $(`<div id="html_0e289200a973d461a1a3242836f141fe" style="width: 100.0%; height: 100.0%;">Tree #7023.2 (Unbekannt)</div>`)[0];
popup_92eead152216eebd47591fb7998ef220.setContent(html_0e289200a973d461a1a3242836f141fe);
circle_ef819b046854f73929bd0047244f67c6.bindPopup(popup_92eead152216eebd47591fb7998ef220)
;
circle_ef819b046854f73929bd0047244f67c6.bindTooltip(
`<div>
Unbekannt
</div>`,
{"sticky": true}
);
var circle_95292adf4a2bcdb97b7077233bf113a8 = L.circle(
[49.7916417, 9.93559444444444],
{"bubblingMouseEvents": true, "color": "black", "dashArray": null, "dashOffset": null, "fill": true, "fillColor": "green", "fillOpacity": 0.9, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1, "radius": 50, "stroke": true, "weight": 1}
).addTo(map_0a18e9f592807b7da8ad7df3701854cc);
var popup_b0937c6d814944f27329aea10fdc8b79 = L.popup({"maxWidth": "100%"});
var html_c4f1dfbf21372c17cf48622849c2cb24 = $(`<div id="html_c4f1dfbf21372c17cf48622849c2cb24" style="width: 100.0%; height: 100.0%;">Tree #05_Ersatz_3_7023.2 (Unbekannt)</div>`)[0];
popup_b0937c6d814944f27329aea10fdc8b79.setContent(html_c4f1dfbf21372c17cf48622849c2cb24);
circle_95292adf4a2bcdb97b7077233bf113a8.bindPopup(popup_b0937c6d814944f27329aea10fdc8b79)
;
circle_95292adf4a2bcdb97b7077233bf113a8.bindTooltip(
`<div>
Unbekannt
</div>`,
{"sticky": true}
);
var circle_6a3e08dba104ddfc6d29a72fae80e254 = L.circle(
[49.7916417, 9.935594444444444],
{"bubblingMouseEvents": true, "color": "black", "dashArray": null, "dashOffset": null, "fill": true, "fillColor": "green", "fillOpacity": 0.9, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1, "radius": 50, "stroke": true, "weight": 1}
).addTo(map_0a18e9f592807b7da8ad7df3701854cc);
var popup_bfeb9b4a3179d59bf3181b7936ccef98 = L.popup({"maxWidth": "100%"});
var html_0f2f9bdc7744082df31906966fe42350 = $(`<div id="html_0f2f9bdc7744082df31906966fe42350" style="width: 100.0%; height: 100.0%;">Tree #05_Ersatz_3_7023.2 (Unbekannt)</div>`)[0];
popup_bfeb9b4a3179d59bf3181b7936ccef98.setContent(html_0f2f9bdc7744082df31906966fe42350);
circle_6a3e08dba104ddfc6d29a72fae80e254.bindPopup(popup_bfeb9b4a3179d59bf3181b7936ccef98)
;
circle_6a3e08dba104ddfc6d29a72fae80e254.bindTooltip(
`<div>
Unbekannt
</div>`,
{"sticky": true}
);
var circle_8bb566179aa541464a1eea77216eda48 = L.circle(
[49.79701159928018, 10.001281499862673],
{"bubblingMouseEvents": true, "color": "black", "dashArray": null, "dashOffset": null, "fill": true, "fillColor": "green", "fillOpacity": 0.9, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1, "radius": 50, "stroke": true, "weight": 1}
).addTo(map_0a18e9f592807b7da8ad7df3701854cc);
var popup_cf8fddaf2eb30ee704ddee70031cf16b = L.popup({"maxWidth": "100%"});
var html_411da31f51ae769dffb5c8d6795c647e = $(`<div id="html_411da31f51ae769dffb5c8d6795c647e" style="width: 100.0%; height: 100.0%;">Tree #Gartenamt_Kontroll_2 (Unbekannt)</div>`)[0];
popup_cf8fddaf2eb30ee704ddee70031cf16b.setContent(html_411da31f51ae769dffb5c8d6795c647e);
circle_8bb566179aa541464a1eea77216eda48.bindPopup(popup_cf8fddaf2eb30ee704ddee70031cf16b)
;
circle_8bb566179aa541464a1eea77216eda48.bindTooltip(
`<div>
Unbekannt
</div>`,
{"sticky": true}
);
var circle_cc64310ab2e4a12ec4da4a41095551e0 = L.circle(
[49.796866164882324, 10.001541255041959],
{"bubblingMouseEvents": true, "color": "black", "dashArray": null, "dashOffset": null, "fill": true, "fillColor": "green", "fillOpacity": 0.9, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1, "radius": 50, "stroke": true, "weight": 1}
).addTo(map_0a18e9f592807b7da8ad7df3701854cc);
var popup_6d047405962da9eedd6a13f30c8f3ac0 = L.popup({"maxWidth": "100%"});
var html_7a97f17c921b1fe7ae8415e15fe5988d = $(`<div id="html_7a97f17c921b1fe7ae8415e15fe5988d" style="width: 100.0%; height: 100.0%;">Tree #Gartenamt_Kontroll_1 (Unbekannt)</div>`)[0];
popup_6d047405962da9eedd6a13f30c8f3ac0.setContent(html_7a97f17c921b1fe7ae8415e15fe5988d);
circle_cc64310ab2e4a12ec4da4a41095551e0.bindPopup(popup_6d047405962da9eedd6a13f30c8f3ac0)
;
circle_cc64310ab2e4a12ec4da4a41095551e0.bindTooltip(
`<div>
Unbekannt
</div>`,
{"sticky": true}
);
var circle_1ee5687504018e5227d1d344acaf84b9 = L.circle(
[49.7970115992802, 10.0012814998627],
{"bubblingMouseEvents": true, "color": "black", "dashArray": null, "dashOffset": null, "fill": true, "fillColor": "green", "fillOpacity": 0.9, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1, "radius": 50, "stroke": true, "weight": 1}
).addTo(map_0a18e9f592807b7da8ad7df3701854cc);
var popup_76c6af6781bfa03fed47931b34a1ce88 = L.popup({"maxWidth": "100%"});
var html_6ccac956ff6cf2fbec613c302ad43d1a = $(`<div id="html_6ccac956ff6cf2fbec613c302ad43d1a" style="width: 100.0%; height: 100.0%;">Tree #Gartenamt_Kontroll_2 (Unbekannt)</div>`)[0];
popup_76c6af6781bfa03fed47931b34a1ce88.setContent(html_6ccac956ff6cf2fbec613c302ad43d1a);
circle_1ee5687504018e5227d1d344acaf84b9.bindPopup(popup_76c6af6781bfa03fed47931b34a1ce88)
;
circle_1ee5687504018e5227d1d344acaf84b9.bindTooltip(
`<div>
Unbekannt
</div>`,
{"sticky": true}
);
var circle_e27c381673255467b8a7d647f7f7e8a3 = L.circle(
[49.7968661648823, 10.001541255042],
{"bubblingMouseEvents": true, "color": "black", "dashArray": null, "dashOffset": null, "fill": true, "fillColor": "green", "fillOpacity": 0.9, "fillRule": "evenodd", "lineCap": "round", "lineJoin": "round", "opacity": 1, "radius": 50, "stroke": true, "weight": 1}
).addTo(map_0a18e9f592807b7da8ad7df3701854cc);
var popup_c222b257d70bc2ac2af56a702905726f = L.popup({"maxWidth": "100%"});
var html_ed29f32c36040771e5c39c556904dcc6 = $(`<div id="html_ed29f32c36040771e5c39c556904dcc6" style="width: 100.0%; height: 100.0%;">Tree #Gartenamt_Kontroll_1 (Unbekannt)</div>`)[0];
popup_c222b257d70bc2ac2af56a702905726f.setContent(html_ed29f32c36040771e5c39c556904dcc6);
circle_e27c381673255467b8a7d647f7f7e8a3.bindPopup(popup_c222b257d70bc2ac2af56a702905726f)
;
circle_e27c381673255467b8a7d647f7f7e8a3.bindTooltip(
`<div>
Unbekannt
</div>`,
{"sticky": true}
);
</script>
</html>
\ No newline at end of file
......@@ -9,10 +9,13 @@ from pathlib import Path
import requests
import shutil
import pandas as pd
import folium
from rich import print
SCRIPT_DIR = Path(__file__).resolve().parent
INPUT_DIR = SCRIPT_DIR / 'input'
OUTPUT_DIR = SCRIPT_DIR / 'output'
OUTPUT_DIR.mkdir(exist_ok=True)
INPUT_FILE = INPUT_DIR / 'wuerzburg_trees.parquet'
INPUT_URL = "https://opendata.wuerzburg.de/api/explore/v2.1/catalog/datasets/sls-klimabaeume/exports/parquet?lang=en&timezone=Europe%2FBerlin"
......@@ -34,12 +37,30 @@ else:
df = pd.read_parquet(INPUT_FILE, engine='fastparquet')
print(df)
interesting_columns = ['tree_number', 'species_latin', 'latitude', 'longitude']
interactive_map = folium.Map()
species = 'species_latin'
coordinates = ['latitude', 'longitude']
df[interesting_columns].drop_duplicates().groupby(species).apply(print)
interesting_columns = ['tree_number', 'species_latin', 'latitude', 'longitude']
lat_min, lon_min, lat_max, lon_max = df[coordinates].agg(['min', 'max']).stack().values
interactive_map.fit_bounds([(lat_min, lon_min), (lat_max, lon_max)])
for same, grouped_df in df[interesting_columns].drop_duplicates().groupby(species):
for row in grouped_df.itertuples():
folium.Circle(
location=[row.latitude, row.longitude],
tooltip=row.species_latin,
radius=50, # [m]
color="black",
weight=1,
fill_opacity=0.9,
opacity=1,
fill_color="green",
fill=False, # gets overridden by fill_color
popup=f"Tree #{row.tree_number} ({row.species_latin})",
).add_to(interactive_map)
output_map = OUTPUT_DIR / INPUT_FILE.with_suffix('.html').name
interactive_map.save(output_map)
df[interesting_columns].drop_duplicates().groupby(coordinates).apply(print)
print(f"{output_map} has been written.")
......@@ -2,3 +2,4 @@ pandas
requests
fastparquet
folium
rich
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment