{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import folium\n", "from folium.plugins import Draw" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/html": [ "<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><span style=\"color:#565656\">Make this Notebook Trusted to load map: File -> Trust Notebook</span><iframe src=\"about:blank\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" data-html=PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgCiAgICAgICAgPHNjcmlwdD4KICAgICAgICAgICAgTF9OT19UT1VDSCA9IGZhbHNlOwogICAgICAgICAgICBMX0RJU0FCTEVfM0QgPSBmYWxzZTsKICAgICAgICA8L3NjcmlwdD4KICAgIAogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vbGVhZmxldEAxLjYuMC9kaXN0L2xlYWZsZXQuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY29kZS5qcXVlcnkuY29tL2pxdWVyeS0xLjEyLjQubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9qcy9ib290c3RyYXAubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5qcyI+PC9zY3JpcHQ+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vbGVhZmxldEAxLjYuMC9kaXN0L2xlYWZsZXQuY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vYm9vdHN0cmFwLzMuMi4wL2Nzcy9ib290c3RyYXAubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLXRoZW1lLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9mb250LWF3ZXNvbWUvNC42LjMvY3NzL2ZvbnQtYXdlc29tZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL0xlYWZsZXQuYXdlc29tZS1tYXJrZXJzLzIuMC4yL2xlYWZsZXQuYXdlc29tZS1tYXJrZXJzLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL3Jhd2Nkbi5naXRoYWNrLmNvbS9weXRob24tdmlzdWFsaXphdGlvbi9mb2xpdW0vbWFzdGVyL2ZvbGl1bS90ZW1wbGF0ZXMvbGVhZmxldC5hd2Vzb21lLnJvdGF0ZS5jc3MiLz4KICAgIDxzdHlsZT5odG1sLCBib2R5IHt3aWR0aDogMTAwJTtoZWlnaHQ6IDEwMCU7bWFyZ2luOiAwO3BhZGRpbmc6IDA7fTwvc3R5bGU+CiAgICA8c3R5bGU+I21hcCB7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7cmlnaHQ6MDtsZWZ0OjA7fTwvc3R5bGU+CiAgICAKICAgICAgICAgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwKICAgICAgICAgICAgICAgIGluaXRpYWwtc2NhbGU9MS4wLCBtYXhpbXVtLXNjYWxlPTEuMCwgdXNlci1zY2FsYWJsZT1ubyIgLz4KICAgICAgICAgICAgPHN0eWxlPgogICAgICAgICAgICAgICAgI21hcF9hYjEzNzA4N2FkZTc0N2M4YTU4YmViYWViNDEyYjFiMiB7CiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAuMCU7CiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAuMCU7CiAgICAgICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgCiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvbGVhZmxldC5kcmF3LzEuMC4yL2xlYWZsZXQuZHJhdy5qcyI+PC9zY3JpcHQ+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL2xlYWZsZXQuZHJhdy8xLjAuMi9sZWFmbGV0LmRyYXcuY3NzIi8+CiAgICAKICAgICAgICAgICAgPHN0eWxlPgogICAgICAgICAgICAgICAgI2V4cG9ydCB7CiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICAgICAgICAgIHRvcDogNXB4OwogICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAxMHB4OwogICAgICAgICAgICAgICAgICAgIHotaW5kZXg6IDk5OTsKICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTsKICAgICAgICAgICAgICAgICAgICBjb2xvcjogYmxhY2s7CiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogNnB4OwogICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICAgICAgICAgICAgICBmb250LWZhbWlseTogJ0hlbHZldGljYSBOZXVlJzsKICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4OwogICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgICAgICAgICAgICAgICB0b3A6IDkwcHg7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgCiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvbGVhZmxldC5kcmF3LzEuMC4yL2xlYWZsZXQuZHJhdy5qcyI+PC9zY3JpcHQ+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL2xlYWZsZXQuZHJhdy8xLjAuMi9sZWFmbGV0LmRyYXcuY3NzIi8+CjwvaGVhZD4KPGJvZHk+ICAgIAogICAgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvbGl1bS1tYXAiIGlkPSJtYXBfYWIxMzcwODdhZGU3NDdjOGE1OGJlYmFlYjQxMmIxYjIiID48L2Rpdj4KICAgICAgICAKICAgIDxhIGhyZWY9JyMnIGlkPSdleHBvcnQnPkV4cG9ydDwvYT4KPC9ib2R5Pgo8c2NyaXB0PiAgICAKICAgIAogICAgICAgICAgICB2YXIgbWFwX2FiMTM3MDg3YWRlNzQ3YzhhNThiZWJhZWI0MTJiMWIyID0gTC5tYXAoCiAgICAgICAgICAgICAgICAibWFwX2FiMTM3MDg3YWRlNzQ3YzhhNThiZWJhZWI0MTJiMWIyIiwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBjZW50ZXI6IFs2MC4wLCAxMC4wXSwKICAgICAgICAgICAgICAgICAgICBjcnM6IEwuQ1JTLkVQU0czODU3LAogICAgICAgICAgICAgICAgICAgIHpvb206IDgsCiAgICAgICAgICAgICAgICAgICAgem9vbUNvbnRyb2w6IHRydWUsCiAgICAgICAgICAgICAgICAgICAgcHJlZmVyQ2FudmFzOiBmYWxzZSwKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIAoKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgdGlsZV9sYXllcl9iYjU3NTNhNTdkZmE0OTkyOWM2M2Y5MDRjMmY1MWJmNyA9IEwudGlsZUxheWVyKAogICAgICAgICAgICAgICAgImh0dHBzOi8ve3N9LnRpbGUub3BlbnN0cmVldG1hcC5vcmcve3p9L3t4fS97eX0ucG5nIiwKICAgICAgICAgICAgICAgIHsiYXR0cmlidXRpb24iOiAiRGF0YSBieSBcdTAwMjZjb3B5OyBcdTAwM2NhIGhyZWY9XCJodHRwOi8vb3BlbnN0cmVldG1hcC5vcmdcIlx1MDAzZU9wZW5TdHJlZXRNYXBcdTAwM2MvYVx1MDAzZSwgdW5kZXIgXHUwMDNjYSBocmVmPVwiaHR0cDovL3d3dy5vcGVuc3RyZWV0bWFwLm9yZy9jb3B5cmlnaHRcIlx1MDAzZU9EYkxcdTAwM2MvYVx1MDAzZS4iLCAiZGV0ZWN0UmV0aW5hIjogZmFsc2UsICJtYXhOYXRpdmVab29tIjogMTgsICJtYXhab29tIjogMTgsICJtaW5ab29tIjogMCwgIm5vV3JhcCI6IGZhbHNlLCAib3BhY2l0eSI6IDEsICJzdWJkb21haW5zIjogImFiYyIsICJ0bXMiOiBmYWxzZX0KICAgICAgICAgICAgKS5hZGRUbyhtYXBfYWIxMzcwODdhZGU3NDdjOGE1OGJlYmFlYjQxMmIxYjIpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBvcHRpb25zID0gewogICAgICAgICAgICAgIHBvc2l0aW9uOiAidG9wbGVmdCIsCiAgICAgICAgICAgICAgZHJhdzogeyJwb2x5bGluZSI6IHsiYWxsb3dJbnRlcnNlY3Rpb24iOiBmYWxzZX19LAogICAgICAgICAgICAgIGVkaXQ6IHsicG9seSI6IHsiYWxsb3dJbnRlcnNlY3Rpb24iOiBmYWxzZX19LAogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIEZlYXR1cmVHcm91cCBpcyB0byBzdG9yZSBlZGl0YWJsZSBsYXllcnMuCiAgICAgICAgICAgIHZhciBkcmF3bkl0ZW1zID0gbmV3IEwuZmVhdHVyZUdyb3VwKCkuYWRkVG8oCiAgICAgICAgICAgICAgICBtYXBfYWIxMzcwODdhZGU3NDdjOGE1OGJlYmFlYjQxMmIxYjIKICAgICAgICAgICAgKTsKICAgICAgICAgICAgb3B0aW9ucy5lZGl0LmZlYXR1cmVHcm91cCA9IGRyYXduSXRlbXM7CiAgICAgICAgICAgIHZhciBkcmF3X2NvbnRyb2xfYTBiY2YyZWM1ZjQ3NDMyYTg5OTVjZWFlODlhNDA0ZGEgPSBuZXcgTC5Db250cm9sLkRyYXcoCiAgICAgICAgICAgICAgICBvcHRpb25zCiAgICAgICAgICAgICkuYWRkVG8oIG1hcF9hYjEzNzA4N2FkZTc0N2M4YTU4YmViYWViNDEyYjFiMiApOwogICAgICAgICAgICBtYXBfYWIxMzcwODdhZGU3NDdjOGE1OGJlYmFlYjQxMmIxYjIub24oTC5EcmF3LkV2ZW50LkNSRUFURUQsIGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgICAgIHZhciBsYXllciA9IGUubGF5ZXIsCiAgICAgICAgICAgICAgICAgICAgdHlwZSA9IGUubGF5ZXJUeXBlOwogICAgICAgICAgICAgICAgdmFyIGNvb3JkcyA9IEpTT04uc3RyaW5naWZ5KGxheWVyLnRvR2VvSlNPTigpKTsKICAgICAgICAgICAgICAgIGxheWVyLm9uKCdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgIGFsZXJ0KGNvb3Jkcyk7CiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coY29vcmRzKTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgZHJhd25JdGVtcy5hZGRMYXllcihsYXllcik7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgbWFwX2FiMTM3MDg3YWRlNzQ3YzhhNThiZWJhZWI0MTJiMWIyLm9uKCdkcmF3OmNyZWF0ZWQnLCBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgICAgICBkcmF3bkl0ZW1zLmFkZExheWVyKGUubGF5ZXIpOwogICAgICAgICAgICB9KTsKICAgICAgICAgICAgCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBvcnQnKS5vbmNsaWNrID0gZnVuY3Rpb24oZSkgewogICAgICAgICAgICAgICAgdmFyIGRhdGEgPSBkcmF3bkl0ZW1zLnRvR2VvSlNPTigpOwogICAgICAgICAgICAgICAgdmFyIGNvbnZlcnRlZERhdGEgPSAndGV4dC9qc29uO2NoYXJzZXQ9dXRmLTgsJwogICAgICAgICAgICAgICAgICAgICsgZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KGRhdGEpKTsKICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBvcnQnKS5zZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgICAgJ2hyZWYnLCAnZGF0YTonICsgY29udmVydGVkRGF0YQogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBvcnQnKS5zZXRBdHRyaWJ1dGUoCiAgICAgICAgICAgICAgICAgICAgJ2Rvd25sb2FkJywgIm15X2RhdGEuZ2VvanNvbiIKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgCjwvc2NyaXB0Pg== onload=\"this.contentDocument.open();this.contentDocument.write(atob(this.getAttribute('data-html')));this.contentDocument.close();\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>" ], "text/plain": [ "<folium.folium.Map at 0x7f9db5068a90>" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "m = folium.Map(location=[60, 10], zoom_start=8)\n", "\n", "draw = Draw(export=True,\n", " filename='my_data.geojson',\n", " position='topleft',\n", " draw_options={'polyline': {'allowIntersection': False}},\n", " edit_options={'poly': {'allowIntersection': False}}\n", " ).add_to(m)\n", "\n", "m.save('Draw1.html')\n", "\n", "m" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.5" } }, "nbformat": 4, "nbformat_minor": 4 }