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 ...@@ -9,10 +9,13 @@ from pathlib import Path
import requests import requests
import shutil import shutil
import pandas as pd import pandas as pd
import folium
from rich import print from rich import print
SCRIPT_DIR = Path(__file__).resolve().parent SCRIPT_DIR = Path(__file__).resolve().parent
INPUT_DIR = SCRIPT_DIR / 'input' INPUT_DIR = SCRIPT_DIR / 'input'
OUTPUT_DIR = SCRIPT_DIR / 'output'
OUTPUT_DIR.mkdir(exist_ok=True)
INPUT_FILE = INPUT_DIR / 'wuerzburg_trees.parquet' 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" 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: ...@@ -34,12 +37,30 @@ else:
df = pd.read_parquet(INPUT_FILE, engine='fastparquet') 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' species = 'species_latin'
coordinates = ['latitude', 'longitude'] 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 ...@@ -2,3 +2,4 @@ pandas
requests requests
fastparquet fastparquet
folium 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