1{
2 "cells": [
3  {
4   "cell_type": "markdown",
5   "metadata": {},
6   "source": [
7    "### Circle and CircleMarker"
8   ]
9  },
10  {
11   "cell_type": "code",
12   "execution_count": 1,
13   "metadata": {},
14   "outputs": [
15    {
16     "data": {
17      "text/html": [
18       "<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+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgCiAgICAgICAgPHNjcmlwdD4KICAgICAgICAgICAgTF9OT19UT1VDSCA9IGZhbHNlOwogICAgICAgICAgICBMX0RJU0FCTEVfM0QgPSBmYWxzZTsKICAgICAgICA8L3NjcmlwdD4KICAgIAogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS42LjAvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2NvZGUuanF1ZXJ5LmNvbS9qcXVlcnktMS4xMi40Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS42LjAvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L2doL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9mb2xpdW0vdGVtcGxhdGVzL2xlYWZsZXQuYXdlc29tZS5yb3RhdGUubWluLmNzcyIvPgogICAgCiAgICAgICAgICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsCiAgICAgICAgICAgICAgICBpbml0aWFsLXNjYWxlPTEuMCwgbWF4aW11bS1zY2FsZT0xLjAsIHVzZXItc2NhbGFibGU9bm8iIC8+CiAgICAgICAgICAgIDxzdHlsZT4KICAgICAgICAgICAgICAgICNtYXBfOGFmNzk5NTU0MWFlNDk3NzkxNjcyMzZmNWM4YmUxNjUgewogICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwLjAlOwogICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgIAogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9naC9samFnaXMvbGVhZmxldC1tZWFzdXJlQDIuMS43L2Rpc3QvbGVhZmxldC1tZWFzdXJlLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9naC9samFnaXMvbGVhZmxldC1tZWFzdXJlQDIuMS43L2Rpc3QvbGVhZmxldC1tZWFzdXJlLm1pbi5jc3MiLz4KPC9oZWFkPgo8Ym9keT4gICAgCiAgICAKICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9saXVtLW1hcCIgaWQ9Im1hcF84YWY3OTk1NTQxYWU0OTc3OTE2NzIzNmY1YzhiZTE2NSIgPjwvZGl2PgogICAgICAgIAo8L2JvZHk+CjxzY3JpcHQ+ICAgIAogICAgCiAgICAgICAgICAgIHZhciBtYXBfOGFmNzk5NTU0MWFlNDk3NzkxNjcyMzZmNWM4YmUxNjUgPSBMLm1hcCgKICAgICAgICAgICAgICAgICJtYXBfOGFmNzk5NTU0MWFlNDk3NzkxNjcyMzZmNWM4YmUxNjUiLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGNlbnRlcjogWy0yNy41NzE3LCAtNDguNjI1Nl0sCiAgICAgICAgICAgICAgICAgICAgY3JzOiBMLkNSUy5FUFNHMzg1NywKICAgICAgICAgICAgICAgICAgICB6b29tOiA5LAogICAgICAgICAgICAgICAgICAgIHpvb21Db250cm9sOiB0cnVlLAogICAgICAgICAgICAgICAgICAgIHByZWZlckNhbnZhczogZmFsc2UsCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICk7CgogICAgICAgICAgICAKCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHRpbGVfbGF5ZXJfYjZlZmZkOWQ1OTUxNGM0OWFmNmJmZTlmN2M4Njc1MzEgPSBMLnRpbGVMYXllcigKICAgICAgICAgICAgICAgICJodHRwczovL3tzfS50aWxlLm9wZW5zdHJlZXRtYXAub3JnL3t6fS97eH0ve3l9LnBuZyIsCiAgICAgICAgICAgICAgICB7ImF0dHJpYnV0aW9uIjogIkRhdGEgYnkgXHUwMDI2Y29weTsgXHUwMDNjYSBocmVmPVwiaHR0cDovL29wZW5zdHJlZXRtYXAub3JnXCJcdTAwM2VPcGVuU3RyZWV0TWFwXHUwMDNjL2FcdTAwM2UsIHVuZGVyIFx1MDAzY2EgaHJlZj1cImh0dHA6Ly93d3cub3BlbnN0cmVldG1hcC5vcmcvY29weXJpZ2h0XCJcdTAwM2VPRGJMXHUwMDNjL2FcdTAwM2UuIiwgImRldGVjdFJldGluYSI6IGZhbHNlLCAibWF4TmF0aXZlWm9vbSI6IDE4LCAibWF4Wm9vbSI6IDE4LCAibWluWm9vbSI6IDAsICJub1dyYXAiOiBmYWxzZSwgIm9wYWNpdHkiOiAxLCAic3ViZG9tYWlucyI6ICJhYmMiLCAidG1zIjogZmFsc2V9CiAgICAgICAgICAgICkuYWRkVG8obWFwXzhhZjc5OTU1NDFhZTQ5Nzc5MTY3MjM2ZjVjOGJlMTY1KTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgbWVhc3VyZV9jb250cm9sX2NhNGJhM2U2NjgyMjRkY2ZhMWYyNGMwZDNmNmEyN2NjID0gbmV3IEwuQ29udHJvbC5NZWFzdXJlKAogICAgICAgICAgICAgICAgeyJwb3NpdGlvbiI6ICJ0b3ByaWdodCIsICJwcmltYXJ5QXJlYVVuaXQiOiAic3FtZXRlcnMiLCAicHJpbWFyeUxlbmd0aFVuaXQiOiAibWV0ZXJzIiwgInNlY29uZGFyeUFyZWFVbml0IjogImFjcmVzIiwgInNlY29uZGFyeUxlbmd0aFVuaXQiOiAibWlsZXMifSk7CiAgICAgICAgICAgIG1hcF84YWY3OTk1NTQxYWU0OTc3OTE2NzIzNmY1YzhiZTE2NS5hZGRDb250cm9sKG1lYXN1cmVfY29udHJvbF9jYTRiYTNlNjY4MjI0ZGNmYTFmMjRjMGQzZjZhMjdjYyk7CgogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2Y3OTgyMDFlNDI5YzQ0ODA5Y2JmZTc4YmNmZTk2ZjU0ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbLTI3LjU1LCAtNDguOF0sCiAgICAgICAgICAgICAgICB7ImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLCAiY29sb3IiOiAiY29ybmZsb3dlcmJsdWUiLCAiZGFzaEFycmF5IjogbnVsbCwgImRhc2hPZmZzZXQiOiBudWxsLCAiZmlsbCI6IHRydWUsICJmaWxsQ29sb3IiOiAiY29ybmZsb3dlcmJsdWUiLCAiZmlsbE9wYWNpdHkiOiAwLjYsICJmaWxsUnVsZSI6ICJldmVub2RkIiwgImxpbmVDYXAiOiAicm91bmQiLCAibGluZUpvaW4iOiAicm91bmQiLCAib3BhY2l0eSI6IDEsICJyYWRpdXMiOiA1MCwgInN0cm9rZSI6IGZhbHNlLCAid2VpZ2h0IjogM30KICAgICAgICAgICAgKS5hZGRUbyhtYXBfOGFmNzk5NTU0MWFlNDk3NzkxNjcyMzZmNWM4YmUxNjUpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIHBvcHVwX2VjM2JmZTJjY2YyZDRmZGI4MWM4NDlmMDhiNGE1NGYxID0gTC5wb3B1cCh7Im1heFdpZHRoIjogIjEwMCUifSk7CgogICAgICAgIAogICAgICAgICAgICB2YXIgaHRtbF85Y2M2NjVlYTE3NDY0NGVkYThjZTY3NzcxY2RjZDFiMiA9ICQoYDxkaXYgaWQ9Imh0bWxfOWNjNjY1ZWExNzQ2NDRlZGE4Y2U2Nzc3MWNkY2QxYjIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjUwIHBpeGVsczwvZGl2PmApWzBdOwogICAgICAgICAgICBwb3B1cF9lYzNiZmUyY2NmMmQ0ZmRiODFjODQ5ZjA4YjRhNTRmMS5zZXRDb250ZW50KGh0bWxfOWNjNjY1ZWExNzQ2NDRlZGE4Y2U2Nzc3MWNkY2QxYjIpOwogICAgICAgIAoKICAgICAgICBjaXJjbGVfbWFya2VyX2Y3OTgyMDFlNDI5YzQ0ODA5Y2JmZTc4YmNmZTk2ZjU0LmJpbmRQb3B1cChwb3B1cF9lYzNiZmUyY2NmMmQ0ZmRiODFjODQ5ZjA4YjRhNTRmMSkKICAgICAgICA7CgogICAgICAgIAogICAgCiAgICAKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9mNzk4MjAxZTQyOWM0NDgwOWNiZmU3OGJjZmU5NmY1NC5iaW5kVG9vbHRpcCgKICAgICAgICAgICAgICAgIGA8ZGl2PgogICAgICAgICAgICAgICAgICAgICBJIGFtIGluIHBpeGVscwogICAgICAgICAgICAgICAgIDwvZGl2PmAsCiAgICAgICAgICAgICAgICB7InN0aWNreSI6IHRydWV9CiAgICAgICAgICAgICk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZTFhMjVlNTE0N2ExNDFmZjg2YmRjYmZmMzc2NTEwODkgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFstMjcuMzUsIC00OC44XSwKICAgICAgICAgICAgICAgIHsiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsICJjb2xvciI6ICJibGFjayIsICJkYXNoQXJyYXkiOiBudWxsLCAiZGFzaE9mZnNldCI6IG51bGwsICJmaWxsIjogZmFsc2UsICJmaWxsQ29sb3IiOiAiYmxhY2siLCAiZmlsbE9wYWNpdHkiOiAwLjYsICJmaWxsUnVsZSI6ICJldmVub2RkIiwgImxpbmVDYXAiOiAicm91bmQiLCAibGluZUpvaW4iOiAicm91bmQiLCAib3BhY2l0eSI6IDEsICJyYWRpdXMiOiAyNSwgInN0cm9rZSI6IHRydWUsICJ3ZWlnaHQiOiAzfQogICAgICAgICAgICApLmFkZFRvKG1hcF84YWY3OTk1NTQxYWU0OTc3OTE2NzIzNmY1YzhiZTE2NSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9lYmY0NWVjYmIyZDI0NjcyYjg1M2M4YjQ1YjViZTI3MSA9IEwuY2lyY2xlKAogICAgICAgICAgICAgICAgWy0yNy41NTE2NjcsIC00OC40Nzg4ODldLAogICAgICAgICAgICAgICAgeyJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwgImNvbG9yIjogImJsYWNrIiwgImRhc2hBcnJheSI6IG51bGwsICJkYXNoT2Zmc2V0IjogbnVsbCwgImZpbGwiOiB0cnVlLCAiZmlsbENvbG9yIjogImdyZWVuIiwgImZpbGxPcGFjaXR5IjogMC42LCAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsICJsaW5lQ2FwIjogInJvdW5kIiwgImxpbmVKb2luIjogInJvdW5kIiwgIm9wYWNpdHkiOiAxLCAicmFkaXVzIjogMTAwMDAsICJzdHJva2UiOiB0cnVlLCAid2VpZ2h0IjogMX0KICAgICAgICAgICAgKS5hZGRUbyhtYXBfOGFmNzk5NTU0MWFlNDk3NzkxNjcyMzZmNWM4YmUxNjUpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIHBvcHVwXzAwZjZhYzc2ODZmYjRkYWFiMTE1NTFmNjEzM2Y1MWY1ID0gTC5wb3B1cCh7Im1heFdpZHRoIjogIjEwMCUifSk7CgogICAgICAgIAogICAgICAgICAgICB2YXIgaHRtbF85ODMyZjJlNjUxODE0ZmNmODg3M2MwZWU5MTBkOGFlYiA9ICQoYDxkaXYgaWQ9Imh0bWxfOTgzMmYyZTY1MTgxNGZjZjg4NzNjMGVlOTEwZDhhZWIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjEwMDAwIG1ldGVyczwvZGl2PmApWzBdOwogICAgICAgICAgICBwb3B1cF8wMGY2YWM3Njg2ZmI0ZGFhYjExNTUxZjYxMzNmNTFmNS5zZXRDb250ZW50KGh0bWxfOTgzMmYyZTY1MTgxNGZjZjg4NzNjMGVlOTEwZDhhZWIpOwogICAgICAgIAoKICAgICAgICBjaXJjbGVfZWJmNDVlY2JiMmQyNDY3MmI4NTNjOGI0NWI1YmUyNzEuYmluZFBvcHVwKHBvcHVwXzAwZjZhYzc2ODZmYjRkYWFiMTE1NTFmNjEzM2Y1MWY1KQogICAgICAgIDsKCiAgICAgICAgCiAgICAKICAgIAogICAgICAgICAgICBjaXJjbGVfZWJmNDVlY2JiMmQyNDY3MmI4NTNjOGI0NWI1YmUyNzEuYmluZFRvb2x0aXAoCiAgICAgICAgICAgICAgICBgPGRpdj4KICAgICAgICAgICAgICAgICAgICAgSSBhbSBpbiBtZXRlcnMKICAgICAgICAgICAgICAgICA8L2Rpdj5gLAogICAgICAgICAgICAgICAgeyJzdGlja3kiOiB0cnVlfQogICAgICAgICAgICApOwogICAgICAgIAo8L3NjcmlwdD4= onload=\"this.contentDocument.open();this.contentDocument.write(atob(this.getAttribute('data-html')));this.contentDocument.close();\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
19      ],
20      "text/plain": [
21       "<folium.folium.Map at 0x7f68502b2130>"
22      ]
23     },
24     "execution_count": 1,
25     "metadata": {},
26     "output_type": "execute_result"
27    }
28   ],
29   "source": [
30    "import folium\n",
31    "from folium.plugins.measure_control import MeasureControl\n",
32    "\n",
33    "m = folium.Map(location=[-27.5717, -48.6256], zoom_start=9)\n",
34    "\n",
35    "c = MeasureControl()\n",
36    "c.add_to(m)\n",
37    "\n",
38    "radius = 50\n",
39    "folium.CircleMarker(\n",
40    "    location=[-27.55, -48.8],\n",
41    "    radius=radius,\n",
42    "    color=\"cornflowerblue\",\n",
43    "    stroke=False,\n",
44    "    fill=True,\n",
45    "    fill_opacity=0.6,\n",
46    "    opacity=1,\n",
47    "    popup=\"{} pixels\".format(radius),\n",
48    "    tooltip=\"I am in pixels\",\n",
49    ").add_to(m)\n",
50    "\n",
51    "radius = 25\n",
52    "folium.CircleMarker(\n",
53    "    location=[-27.35, -48.8],\n",
54    "    radius=radius,\n",
55    "    color=\"black\",\n",
56    "    weight=3,\n",
57    "    fill=False,\n",
58    "    fill_opacity=0.6,\n",
59    "    opacity=1,\n",
60    ").add_to(m)\n",
61    "\n",
62    "radius = 10000\n",
63    "folium.Circle(\n",
64    "    location=[-27.551667, -48.478889],\n",
65    "    radius=radius,\n",
66    "    color=\"black\",\n",
67    "    weight=1,\n",
68    "    fill_opacity=0.6,\n",
69    "    opacity=1,\n",
70    "    fill_color=\"green\",\n",
71    "    fill=False,  # gets overridden by fill_color\n",
72    "    popup=\"{} meters\".format(radius),\n",
73    "    tooltip=\"I am in meters\",\n",
74    ").add_to(m)\n",
75    "\n",
76    "m"
77   ]
78  },
79  {
80   "cell_type": "markdown",
81   "metadata": {},
82   "source": [
83    "### PolyLine"
84   ]
85  },
86  {
87   "cell_type": "code",
88   "execution_count": 2,
89   "metadata": {},
90   "outputs": [
91    {
92     "data": {
93      "text/html": [
94       "<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+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgCiAgICAgICAgPHNjcmlwdD4KICAgICAgICAgICAgTF9OT19UT1VDSCA9IGZhbHNlOwogICAgICAgICAgICBMX0RJU0FCTEVfM0QgPSBmYWxzZTsKICAgICAgICA8L3NjcmlwdD4KICAgIAogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS42LjAvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2NvZGUuanF1ZXJ5LmNvbS9qcXVlcnktMS4xMi40Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS42LjAvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L2doL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9mb2xpdW0vdGVtcGxhdGVzL2xlYWZsZXQuYXdlc29tZS5yb3RhdGUubWluLmNzcyIvPgogICAgCiAgICAgICAgICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsCiAgICAgICAgICAgICAgICBpbml0aWFsLXNjYWxlPTEuMCwgbWF4aW11bS1zY2FsZT0xLjAsIHVzZXItc2NhbGFibGU9bm8iIC8+CiAgICAgICAgICAgIDxzdHlsZT4KICAgICAgICAgICAgICAgICNtYXBfMTE3NzQzOWFiYWIyNDQ0NzhhZTYzYTk0M2U3MzhjYzQgewogICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwLjAlOwogICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgIAo8L2hlYWQ+Cjxib2R5PiAgICAKICAgIAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb2xpdW0tbWFwIiBpZD0ibWFwXzExNzc0MzlhYmFiMjQ0NDc4YWU2M2E5NDNlNzM4Y2M0IiA+PC9kaXY+CiAgICAgICAgCjwvYm9keT4KPHNjcmlwdD4gICAgCiAgICAKICAgICAgICAgICAgdmFyIG1hcF8xMTc3NDM5YWJhYjI0NDQ3OGFlNjNhOTQzZTczOGNjNCA9IEwubWFwKAogICAgICAgICAgICAgICAgIm1hcF8xMTc3NDM5YWJhYjI0NDQ3OGFlNjNhOTQzZTczOGNjNCIsCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgY2VudGVyOiBbNDEuOSwgLTk3LjNdLAogICAgICAgICAgICAgICAgICAgIGNyczogTC5DUlMuRVBTRzM4NTcsCiAgICAgICAgICAgICAgICAgICAgem9vbTogNCwKICAgICAgICAgICAgICAgICAgICB6b29tQ29udHJvbDogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICBwcmVmZXJDYW52YXM6IGZhbHNlLAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApOwoKICAgICAgICAgICAgCgogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciB0aWxlX2xheWVyXzYyNDg5NmM5MDNiZTQ2ODM4OWZjMGZlYTIzOTE0N2NlID0gTC50aWxlTGF5ZXIoCiAgICAgICAgICAgICAgICAiaHR0cHM6Ly97c30udGlsZS5vcGVuc3RyZWV0bWFwLm9yZy97en0ve3h9L3t5fS5wbmciLAogICAgICAgICAgICAgICAgeyJhdHRyaWJ1dGlvbiI6ICJEYXRhIGJ5IFx1MDAyNmNvcHk7IFx1MDAzY2EgaHJlZj1cImh0dHA6Ly9vcGVuc3RyZWV0bWFwLm9yZ1wiXHUwMDNlT3BlblN0cmVldE1hcFx1MDAzYy9hXHUwMDNlLCB1bmRlciBcdTAwM2NhIGhyZWY9XCJodHRwOi8vd3d3Lm9wZW5zdHJlZXRtYXAub3JnL2NvcHlyaWdodFwiXHUwMDNlT0RiTFx1MDAzYy9hXHUwMDNlLiIsICJkZXRlY3RSZXRpbmEiOiBmYWxzZSwgIm1heE5hdGl2ZVpvb20iOiAxOCwgIm1heFpvb20iOiAxOCwgIm1pblpvb20iOiAwLCAibm9XcmFwIjogZmFsc2UsICJvcGFjaXR5IjogMSwgInN1YmRvbWFpbnMiOiAiYWJjIiwgInRtcyI6IGZhbHNlfQogICAgICAgICAgICApLmFkZFRvKG1hcF8xMTc3NDM5YWJhYjI0NDQ3OGFlNjNhOTQzZTczOGNjNCk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvbHlfbGluZV8yZjUzM2JiNmFkZTE0OGVjOGIxMzA3ZDkzNjYzODk5OSA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICBbWzQyLjM1ODEsIC03MS4wNjM2XSwgWzQyLjgyOTk1ODE1LCAtNzQuNzg5OTE0NDRdLCBbNDMuMTc5Mjk4MTksIC03OC41NjYwMzMwNl0sIFs0My40MDMyMDIxNiwgLTgyLjM3Nzc0NTE5XSwgWzQzLjQ5OTc1NDg5LCAtODYuMjA5NjU4NDVdLCBbNDMuNDY4MTE5NDEsIC05MC4wNDU2OTA4N10sIFs0My4zMDg1NzA3MSwgLTkzLjg2OTYxODE4XSwgWzQzLjAyMjQ4NDU2LCAtOTcuNjY1NjMyNjddLCBbNDIuNjEyMjgyNTksIC0xMDEuNDE4ODY4MzJdLCBbNDIuMDgxMzM4NjgsIC0xMDUuMTE1ODUxOThdLCBbNDEuNDMzODU0OSwgLTEwOC43NDQ4NTA2OV0sIFs0MC42NzQ3MTc0NywgLTExMi4yOTYwOTk1NF0sIFszOS44MDkzNDM0LCAtMTE1Ljc2MTkwODIxXSwgWzM4Ljg0MzUyNzc2LCAtMTE5LjEzNjY1Njc4XSwgWzM3Ljc4MzMsIC0xMjIuNDE2N11dLAogICAgICAgICAgICAgICAgeyJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwgImNvbG9yIjogIiNGRjAwMDAiLCAiZGFzaEFycmF5IjogbnVsbCwgImRhc2hPZmZzZXQiOiBudWxsLCAiZmlsbCI6IGZhbHNlLCAiZmlsbENvbG9yIjogIiNGRjAwMDAiLCAiZmlsbE9wYWNpdHkiOiAwLjIsICJmaWxsUnVsZSI6ICJldmVub2RkIiwgImxpbmVDYXAiOiAicm91bmQiLCAibGluZUpvaW4iOiAicm91bmQiLCAibm9DbGlwIjogZmFsc2UsICJvcGFjaXR5IjogMS4wLCAic21vb3RoRmFjdG9yIjogMS4wLCAic3Ryb2tlIjogdHJ1ZSwgIndlaWdodCI6IDV9CiAgICAgICAgICAgICkuYWRkVG8obWFwXzExNzc0MzlhYmFiMjQ0NDc4YWU2M2E5NDNlNzM4Y2M0KTsKICAgICAgICAKICAgIAogICAgICAgICAgICBwb2x5X2xpbmVfMmY1MzNiYjZhZGUxNDhlYzhiMTMwN2Q5MzY2Mzg5OTkuYmluZFRvb2x0aXAoCiAgICAgICAgICAgICAgICBgPGRpdj4KICAgICAgICAgICAgICAgICAgICAgRnJvbSBCb3N0b24gdG8gU2FuIEZyYW5jaXNjbwogICAgICAgICAgICAgICAgIDwvZGl2PmAsCiAgICAgICAgICAgICAgICB7InN0aWNreSI6IHRydWV9CiAgICAgICAgICAgICk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvbHlfbGluZV84ZjczMzgwNmNmMDM0MDU4YjhiYjZjM2JkZjBjZGQ1OSA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICBbWzQyLjM1ODEsIC03MS4wNjM2XSwgWzQyLjgyOTk1ODE1LCAtNzQuNzg5OTE0NDRdLCBbNDMuMTc5Mjk4MTksIC03OC41NjYwMzMwNl0sIFs0My40MDMyMDIxNiwgLTgyLjM3Nzc0NTE5XSwgWzQzLjQ5OTc1NDg5LCAtODYuMjA5NjU4NDVdLCBbNDMuNDY4MTE5NDEsIC05MC4wNDU2OTA4N10sIFs0My4zMDg1NzA3MSwgLTkzLjg2OTYxODE4XSwgWzQzLjAyMjQ4NDU2LCAtOTcuNjY1NjMyNjddLCBbNDIuNjEyMjgyNTksIC0xMDEuNDE4ODY4MzJdLCBbNDIuMDgxMzM4NjgsIC0xMDUuMTE1ODUxOThdLCBbNDEuNDMzODU0OSwgLTEwOC43NDQ4NTA2OV0sIFs0MC42NzQ3MTc0NywgLTExMi4yOTYwOTk1NF0sIFszOS44MDkzNDM0LCAtMTE1Ljc2MTkwODIxXSwgWzM4Ljg0MzUyNzc2LCAtMTE5LjEzNjY1Njc4XSwgWzM3Ljc4MzMsIC0xMjIuNDE2N11dLAogICAgICAgICAgICAgICAgeyJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwgImNvbG9yIjogImdyZXkiLCAiZGFzaEFycmF5IjogbnVsbCwgImRhc2hPZmZzZXQiOiBudWxsLCAiZmlsbCI6IGZhbHNlLCAiZmlsbENvbG9yIjogImdyZXkiLCAiZmlsbE9wYWNpdHkiOiAwLjIsICJmaWxsUnVsZSI6ICJldmVub2RkIiwgImxpbmVDYXAiOiAicm91bmQiLCAibGluZUpvaW4iOiAicm91bmQiLCAibm9DbGlwIjogZmFsc2UsICJvcGFjaXR5IjogMS4wLCAic21vb3RoRmFjdG9yIjogNTAsICJzdHJva2UiOiB0cnVlLCAid2VpZ2h0IjogNX0KICAgICAgICAgICAgKS5hZGRUbyhtYXBfMTE3NzQzOWFiYWIyNDQ0NzhhZTYzYTk0M2U3MzhjYzQpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHBvbHlfbGluZV84ZjczMzgwNmNmMDM0MDU4YjhiYjZjM2JkZjBjZGQ1OS5iaW5kVG9vbHRpcCgKICAgICAgICAgICAgICAgIGA8ZGl2PgogICAgICAgICAgICAgICAgICAgICBUb28gbXVjaCBzbW9vdGhpbmc/CiAgICAgICAgICAgICAgICAgPC9kaXY+YCwKICAgICAgICAgICAgICAgIHsic3RpY2t5IjogdHJ1ZX0KICAgICAgICAgICAgKTsKICAgICAgICAKPC9zY3JpcHQ+ onload=\"this.contentDocument.open();this.contentDocument.write(atob(this.getAttribute('data-html')));this.contentDocument.close();\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
95      ],
96      "text/plain": [
97       "<folium.folium.Map at 0x7f67f6b202b0>"
98      ]
99     },
100     "execution_count": 2,
101     "metadata": {},
102     "output_type": "execute_result"
103    }
104   ],
105   "source": [
106    "# Coordinates are 15 points on the great circle from Boston to\n",
107    "# San Francisco.\n",
108    "# Reference: http://williams.best.vwh.net/avform.htm#Intermediate\n",
109    "coordinates = [\n",
110    "    [42.3581, -71.0636],\n",
111    "    [42.82995815, -74.78991444],\n",
112    "    [43.17929819, -78.56603306],\n",
113    "    [43.40320216, -82.37774519],\n",
114    "    [43.49975489, -86.20965845],\n",
115    "    [43.46811941, -90.04569087],\n",
116    "    [43.30857071, -93.86961818],\n",
117    "    [43.02248456, -97.66563267],\n",
118    "    [42.61228259, -101.41886832],\n",
119    "    [42.08133868, -105.11585198],\n",
120    "    [41.4338549, -108.74485069],\n",
121    "    [40.67471747, -112.29609954],\n",
122    "    [39.8093434, -115.76190821],\n",
123    "    [38.84352776, -119.13665678],\n",
124    "    [37.7833, -122.4167],\n",
125    "]\n",
126    "\n",
127    "\n",
128    "# Create the map and add the line\n",
129    "m = folium.Map(location=[41.9, -97.3], zoom_start=4)\n",
130    "\n",
131    "folium.PolyLine(\n",
132    "    locations=coordinates,\n",
133    "    color=\"#FF0000\",\n",
134    "    weight=5,\n",
135    "    tooltip=\"From Boston to San Francisco\",\n",
136    ").add_to(m)\n",
137    "\n",
138    "folium.PolyLine(\n",
139    "    smooth_factor=50,\n",
140    "    locations=coordinates,\n",
141    "    color=\"grey\",\n",
142    "    tooltip=\"Too much smoothing?\",\n",
143    "    weight=5,\n",
144    ").add_to(m)\n",
145    "\n",
146    "m"
147   ]
148  },
149  {
150   "cell_type": "markdown",
151   "metadata": {},
152   "source": [
153    "### Dateline"
154   ]
155  },
156  {
157   "cell_type": "code",
158   "execution_count": 3,
159   "metadata": {},
160   "outputs": [
161    {
162     "data": {
163      "text/html": [
164       "<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+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgCiAgICAgICAgPHNjcmlwdD4KICAgICAgICAgICAgTF9OT19UT1VDSCA9IGZhbHNlOwogICAgICAgICAgICBMX0RJU0FCTEVfM0QgPSBmYWxzZTsKICAgICAgICA8L3NjcmlwdD4KICAgIAogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS42LjAvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2NvZGUuanF1ZXJ5LmNvbS9qcXVlcnktMS4xMi40Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS42LjAvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L2doL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9mb2xpdW0vdGVtcGxhdGVzL2xlYWZsZXQuYXdlc29tZS5yb3RhdGUubWluLmNzcyIvPgogICAgCiAgICAgICAgICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsCiAgICAgICAgICAgICAgICBpbml0aWFsLXNjYWxlPTEuMCwgbWF4aW11bS1zY2FsZT0xLjAsIHVzZXItc2NhbGFibGU9bm8iIC8+CiAgICAgICAgICAgIDxzdHlsZT4KICAgICAgICAgICAgICAgICNtYXBfNGVkMmVlODExNDM0NDg5YmE4MzdjYzhiMDIxOTYwYzMgewogICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwLjAlOwogICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgIAo8L2hlYWQ+Cjxib2R5PiAgICAKICAgIAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb2xpdW0tbWFwIiBpZD0ibWFwXzRlZDJlZTgxMTQzNDQ4OWJhODM3Y2M4YjAyMTk2MGMzIiA+PC9kaXY+CiAgICAgICAgCjwvYm9keT4KPHNjcmlwdD4gICAgCiAgICAKICAgICAgICAgICAgdmFyIG1hcF80ZWQyZWU4MTE0MzQ0ODliYTgzN2NjOGIwMjE5NjBjMyA9IEwubWFwKAogICAgICAgICAgICAgICAgIm1hcF80ZWQyZWU4MTE0MzQ0ODliYTgzN2NjOGIwMjE5NjBjMyIsCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgY2VudGVyOiBbMC4wLCAwLjBdLAogICAgICAgICAgICAgICAgICAgIGNyczogTC5DUlMuRVBTRzM4NTcsCiAgICAgICAgICAgICAgICAgICAgem9vbTogMSwKICAgICAgICAgICAgICAgICAgICB6b29tQ29udHJvbDogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICBwcmVmZXJDYW52YXM6IGZhbHNlLAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApOwoKICAgICAgICAgICAgCgogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciB0aWxlX2xheWVyXzZkNzdkMzE3MDQ3MTRjMTBhZmE5ZmVmOGY0MGFmZWI0ID0gTC50aWxlTGF5ZXIoCiAgICAgICAgICAgICAgICAiaHR0cHM6Ly97c30udGlsZS5vcGVuc3RyZWV0bWFwLm9yZy97en0ve3h9L3t5fS5wbmciLAogICAgICAgICAgICAgICAgeyJhdHRyaWJ1dGlvbiI6ICJEYXRhIGJ5IFx1MDAyNmNvcHk7IFx1MDAzY2EgaHJlZj1cImh0dHA6Ly9vcGVuc3RyZWV0bWFwLm9yZ1wiXHUwMDNlT3BlblN0cmVldE1hcFx1MDAzYy9hXHUwMDNlLCB1bmRlciBcdTAwM2NhIGhyZWY9XCJodHRwOi8vd3d3Lm9wZW5zdHJlZXRtYXAub3JnL2NvcHlyaWdodFwiXHUwMDNlT0RiTFx1MDAzYy9hXHUwMDNlLiIsICJkZXRlY3RSZXRpbmEiOiBmYWxzZSwgIm1heE5hdGl2ZVpvb20iOiAxOCwgIm1heFpvb20iOiAxOCwgIm1pblpvb20iOiAwLCAibm9XcmFwIjogZmFsc2UsICJvcGFjaXR5IjogMSwgInN1YmRvbWFpbnMiOiAiYWJjIiwgInRtcyI6IGZhbHNlfQogICAgICAgICAgICApLmFkZFRvKG1hcF80ZWQyZWU4MTE0MzQ0ODliYTgzN2NjOGIwMjE5NjBjMyk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvbHlfbGluZV9kNGY4Yzc5YmM3OTA0MzIyYTNkZjRlOTVlZDk5NzQ1MyA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICBbWzIuMCwgMTc5LjBdLCBbMi4wLCAtMTc5LjBdXSwKICAgICAgICAgICAgICAgIHsiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsICJjb2xvciI6ICJyZWQiLCAiZGFzaEFycmF5IjogbnVsbCwgImRhc2hPZmZzZXQiOiBudWxsLCAiZmlsbCI6IGZhbHNlLCAiZmlsbENvbG9yIjogInJlZCIsICJmaWxsT3BhY2l0eSI6IDAuMiwgImZpbGxSdWxlIjogImV2ZW5vZGQiLCAibGluZUNhcCI6ICJyb3VuZCIsICJsaW5lSm9pbiI6ICJyb3VuZCIsICJub0NsaXAiOiBmYWxzZSwgIm9wYWNpdHkiOiAxLjAsICJzbW9vdGhGYWN0b3IiOiAxLjAsICJzdHJva2UiOiB0cnVlLCAid2VpZ2h0IjogNn0KICAgICAgICAgICAgKS5hZGRUbyhtYXBfNGVkMmVlODExNDM0NDg5YmE4MzdjYzhiMDIxOTYwYzMpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHBvbHlfbGluZV9kNGY4Yzc5YmM3OTA0MzIyYTNkZjRlOTVlZDk5NzQ1My5iaW5kVG9vbHRpcCgKICAgICAgICAgICAgICAgIGA8ZGl2PgogICAgICAgICAgICAgICAgICAgICBXcm9uZwogICAgICAgICAgICAgICAgIDwvZGl2PmAsCiAgICAgICAgICAgICAgICB7InN0aWNreSI6IHRydWV9CiAgICAgICAgICAgICk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvbHlfbGluZV9mZjhkYWY5MWM4MTY0YWI5OWQzZGVhYzhkZGFiMmEwNSA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICBbWy0yLjAsIDE3OS4wXSwgWy0yLjAsIDE4MS4wXV0sCiAgICAgICAgICAgICAgICB7ImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLCAiY29sb3IiOiAiYmx1ZSIsICJkYXNoQXJyYXkiOiBudWxsLCAiZGFzaE9mZnNldCI6IG51bGwsICJmaWxsIjogZmFsc2UsICJmaWxsQ29sb3IiOiAiYmx1ZSIsICJmaWxsT3BhY2l0eSI6IDAuMiwgImZpbGxSdWxlIjogImV2ZW5vZGQiLCAibGluZUNhcCI6ICJidXR0IiwgImxpbmVKb2luIjogInJvdW5kIiwgIm5vQ2xpcCI6IGZhbHNlLCAib3BhY2l0eSI6IDEuMCwgInNtb290aEZhY3RvciI6IDEuMCwgInN0cm9rZSI6IHRydWUsICJ3ZWlnaHQiOiA2fQogICAgICAgICAgICApLmFkZFRvKG1hcF80ZWQyZWU4MTE0MzQ0ODliYTgzN2NjOGIwMjE5NjBjMyk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgcG9seV9saW5lX2ZmOGRhZjkxYzgxNjRhYjk5ZDNkZWFjOGRkYWIyYTA1LmJpbmRUb29sdGlwKAogICAgICAgICAgICAgICAgYDxkaXY+CiAgICAgICAgICAgICAgICAgICAgIENvcnJlY3QKICAgICAgICAgICAgICAgICA8L2Rpdj5gLAogICAgICAgICAgICAgICAgeyJzdGlja3kiOiB0cnVlfQogICAgICAgICAgICApOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfZjRiNjI3YzBlYzcyNGY2MGE3OGRhZjdjMDNjNjA0ZGYgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgW1stNi4wLCAtMTc5LjBdLCBbLTYuMCwgMTc5LjBdXSwKICAgICAgICAgICAgICAgIHsiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsICJjb2xvciI6ICJncmVlbiIsICJkYXNoQXJyYXkiOiBudWxsLCAiZGFzaE9mZnNldCI6IG51bGwsICJmaWxsIjogZmFsc2UsICJmaWxsQ29sb3IiOiAiZ3JlZW4iLCAiZmlsbE9wYWNpdHkiOiAwLjIsICJmaWxsUnVsZSI6ICJldmVub2RkIiwgImxpbmVDYXAiOiAic3F1YXJlIiwgImxpbmVKb2luIjogInJvdW5kIiwgIm5vQ2xpcCI6IGZhbHNlLCAib3BhY2l0eSI6IDEuMCwgInNtb290aEZhY3RvciI6IDEuMCwgInN0cm9rZSI6IHRydWUsICJ3ZWlnaHQiOiA2fQogICAgICAgICAgICApLmFkZFRvKG1hcF80ZWQyZWU4MTE0MzQ0ODliYTgzN2NjOGIwMjE5NjBjMyk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgcG9seV9saW5lX2Y0YjYyN2MwZWM3MjRmNjBhNzhkYWY3YzAzYzYwNGRmLmJpbmRUb29sdGlwKAogICAgICAgICAgICAgICAgYDxkaXY+CiAgICAgICAgICAgICAgICAgICAgIENvcnJlY3QKICAgICAgICAgICAgICAgICA8L2Rpdj5gLAogICAgICAgICAgICAgICAgeyJzdGlja3kiOiB0cnVlfQogICAgICAgICAgICApOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb2x5X2xpbmVfMjZiMjdjZmI2NTIxNDk5M2EyZDM2ZGUyMTUwYjcwM2IgPSBMLnBvbHlsaW5lKAogICAgICAgICAgICAgICAgW1sxMi4wLCAtMTc5LjBdLCBbMTIuMCwgMTkwLjBdXSwKICAgICAgICAgICAgICAgIHsiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsICJjb2xvciI6ICJvcmFuZ2UiLCAiZGFzaEFycmF5IjogbnVsbCwgImRhc2hPZmZzZXQiOiBudWxsLCAiZmlsbCI6IGZhbHNlLCAiZmlsbENvbG9yIjogIm9yYW5nZSIsICJmaWxsT3BhY2l0eSI6IDAuMiwgImZpbGxSdWxlIjogImV2ZW5vZGQiLCAibGluZUNhcCI6ICJyb3VuZCIsICJsaW5lSm9pbiI6ICJyb3VuZCIsICJub0NsaXAiOiBmYWxzZSwgIm9wYWNpdHkiOiAxLjAsICJzbW9vdGhGYWN0b3IiOiAxLjAsICJzdHJva2UiOiB0cnVlLCAid2VpZ2h0IjogNn0KICAgICAgICAgICAgKS5hZGRUbyhtYXBfNGVkMmVlODExNDM0NDg5YmE4MzdjYzhiMDIxOTYwYzMpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHBvbHlfbGluZV8yNmIyN2NmYjY1MjE0OTkzYTJkMzZkZTIxNTBiNzAzYi5iaW5kVG9vbHRpcCgKICAgICAgICAgICAgICAgIGA8ZGl2PgogICAgICAgICAgICAgICAgICAgICBBcnRpZmFjdD8KICAgICAgICAgICAgICAgICA8L2Rpdj5gLAogICAgICAgICAgICAgICAgeyJzdGlja3kiOiB0cnVlfQogICAgICAgICAgICApOwogICAgICAgIAo8L3NjcmlwdD4= onload=\"this.contentDocument.open();this.contentDocument.write(atob(this.getAttribute('data-html')));this.contentDocument.close();\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
165      ],
166      "text/plain": [
167       "<folium.folium.Map at 0x7f67f6ad0f70>"
168      ]
169     },
170     "execution_count": 3,
171     "metadata": {},
172     "output_type": "execute_result"
173    }
174   ],
175   "source": [
176    "lon = lat = 0\n",
177    "zoom_start = 1\n",
178    "\n",
179    "m = folium.Map(location=[lat, lon], zoom_start=zoom_start)\n",
180    "\n",
181    "kw = {\"opacity\": 1.0, \"weight\": 6}\n",
182    "folium.PolyLine(\n",
183    "    locations=[(2, 179), (2, -179)],\n",
184    "    tooltip=\"Wrong\",\n",
185    "    color=\"red\",\n",
186    "    line_cap=\"round\",\n",
187    "    **kw,\n",
188    ").add_to(m)\n",
189    "\n",
190    "\n",
191    "folium.PolyLine(\n",
192    "    locations=[(-2, 179), (-2, 181)],\n",
193    "    tooltip=\"Correct\",\n",
194    "    line_cap=\"butt\",\n",
195    "    color=\"blue\",\n",
196    "    **kw,\n",
197    ").add_to(m)\n",
198    "\n",
199    "\n",
200    "folium.PolyLine(\n",
201    "    locations=[(-6, -179), (-6, 179)],\n",
202    "    line_cap=\"square\",\n",
203    "    color=\"green\",\n",
204    "    tooltip=\"Correct\",\n",
205    "    **kw,\n",
206    ").add_to(m)\n",
207    "\n",
208    "\n",
209    "folium.PolyLine(\n",
210    "    locations=[(12, -179), (12, 190)],\n",
211    "    color=\"orange\",\n",
212    "    tooltip=\"Artifact?\",\n",
213    "    **kw,\n",
214    ").add_to(m)\n",
215    "\n",
216    "m"
217   ]
218  },
219  {
220   "cell_type": "markdown",
221   "metadata": {},
222   "source": [
223    "### MultiPolyline"
224   ]
225  },
226  {
227   "cell_type": "code",
228   "execution_count": 4,
229   "metadata": {},
230   "outputs": [
231    {
232     "data": {
233      "text/html": [
234       "<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+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgCiAgICAgICAgPHNjcmlwdD4KICAgICAgICAgICAgTF9OT19UT1VDSCA9IGZhbHNlOwogICAgICAgICAgICBMX0RJU0FCTEVfM0QgPSBmYWxzZTsKICAgICAgICA8L3NjcmlwdD4KICAgIAogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS42LjAvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2NvZGUuanF1ZXJ5LmNvbS9qcXVlcnktMS4xMi40Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS42LjAvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L2doL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9mb2xpdW0vdGVtcGxhdGVzL2xlYWZsZXQuYXdlc29tZS5yb3RhdGUubWluLmNzcyIvPgogICAgCiAgICAgICAgICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsCiAgICAgICAgICAgICAgICBpbml0aWFsLXNjYWxlPTEuMCwgbWF4aW11bS1zY2FsZT0xLjAsIHVzZXItc2NhbGFibGU9bm8iIC8+CiAgICAgICAgICAgIDxzdHlsZT4KICAgICAgICAgICAgICAgICNtYXBfNTM2MGYzNzBkOWE1NDM3NWI4YTJiMzNjZGM3YmIyYWIgewogICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwLjAlOwogICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgIAo8L2hlYWQ+Cjxib2R5PiAgICAKICAgIAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb2xpdW0tbWFwIiBpZD0ibWFwXzUzNjBmMzcwZDlhNTQzNzViOGEyYjMzY2RjN2JiMmFiIiA+PC9kaXY+CiAgICAgICAgCjwvYm9keT4KPHNjcmlwdD4gICAgCiAgICAKICAgICAgICAgICAgdmFyIG1hcF81MzYwZjM3MGQ5YTU0Mzc1YjhhMmIzM2NkYzdiYjJhYiA9IEwubWFwKAogICAgICAgICAgICAgICAgIm1hcF81MzYwZjM3MGQ5YTU0Mzc1YjhhMmIzM2NkYzdiYjJhYiIsCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgY2VudGVyOiBbMzguODkzOTksIC03Ny4wMzY1OV0sCiAgICAgICAgICAgICAgICAgICAgY3JzOiBMLkNSUy5FUFNHMzg1NywKICAgICAgICAgICAgICAgICAgICB6b29tOiAxNywKICAgICAgICAgICAgICAgICAgICB6b29tQ29udHJvbDogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICBwcmVmZXJDYW52YXM6IGZhbHNlLAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApOwoKICAgICAgICAgICAgCgogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciB0aWxlX2xheWVyXzA3YjUzMjlmNDk2MDQxYzJhOTRkZTYwMmUwMzA2YWViID0gTC50aWxlTGF5ZXIoCiAgICAgICAgICAgICAgICAiaHR0cHM6Ly97c30udGlsZS5vcGVuc3RyZWV0bWFwLm9yZy97en0ve3h9L3t5fS5wbmciLAogICAgICAgICAgICAgICAgeyJhdHRyaWJ1dGlvbiI6ICJEYXRhIGJ5IFx1MDAyNmNvcHk7IFx1MDAzY2EgaHJlZj1cImh0dHA6Ly9vcGVuc3RyZWV0bWFwLm9yZ1wiXHUwMDNlT3BlblN0cmVldE1hcFx1MDAzYy9hXHUwMDNlLCB1bmRlciBcdTAwM2NhIGhyZWY9XCJodHRwOi8vd3d3Lm9wZW5zdHJlZXRtYXAub3JnL2NvcHlyaWdodFwiXHUwMDNlT0RiTFx1MDAzYy9hXHUwMDNlLiIsICJkZXRlY3RSZXRpbmEiOiBmYWxzZSwgIm1heE5hdGl2ZVpvb20iOiAxOCwgIm1heFpvb20iOiAxOCwgIm1pblpvb20iOiAwLCAibm9XcmFwIjogZmFsc2UsICJvcGFjaXR5IjogMSwgInN1YmRvbWFpbnMiOiAiYWJjIiwgInRtcyI6IGZhbHNlfQogICAgICAgICAgICApLmFkZFRvKG1hcF81MzYwZjM3MGQ5YTU0Mzc1YjhhMmIzM2NkYzdiYjJhYik7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfOWY4NDBiNWY1YzUwNDZmNTgxZjRjNzMzMjU3YjRmMGYgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFszOC44OTQxNSwgLTc3LjAzNzM4XSwKICAgICAgICAgICAgICAgIHsiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsICJjb2xvciI6ICJyZWQiLCAiZGFzaEFycmF5IjogbnVsbCwgImRhc2hPZmZzZXQiOiBudWxsLCAiZmlsbCI6IHRydWUsICJmaWxsQ29sb3IiOiAicmVkIiwgImZpbGxPcGFjaXR5IjogMC4yLCAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsICJsaW5lQ2FwIjogInJvdW5kIiwgImxpbmVKb2luIjogInJvdW5kIiwgIm9wYWNpdHkiOiAxLjAsICJyYWRpdXMiOiAyMCwgInN0cm9rZSI6IHRydWUsICJ3ZWlnaHQiOiAzfQogICAgICAgICAgICApLmFkZFRvKG1hcF81MzYwZjM3MGQ5YTU0Mzc1YjhhMmIzM2NkYzdiYjJhYik7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNGEwZDMzY2MxNzVlNDVkZDg2ZmI5NjQ3ZDczNzE2OTkgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFszOC44OTQxNSwgLTc3LjAzNTc4XSwKICAgICAgICAgICAgICAgIHsiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsICJjb2xvciI6ICJyZWQiLCAiZGFzaEFycmF5IjogbnVsbCwgImRhc2hPZmZzZXQiOiBudWxsLCAiZmlsbCI6IHRydWUsICJmaWxsQ29sb3IiOiAicmVkIiwgImZpbGxPcGFjaXR5IjogMC4yLCAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsICJsaW5lQ2FwIjogInJvdW5kIiwgImxpbmVKb2luIjogInJvdW5kIiwgIm9wYWNpdHkiOiAxLjAsICJyYWRpdXMiOiAyMCwgInN0cm9rZSI6IHRydWUsICJ3ZWlnaHQiOiAzfQogICAgICAgICAgICApLmFkZFRvKG1hcF81MzYwZjM3MGQ5YTU0Mzc1YjhhMmIzM2NkYzdiYjJhYik7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvbHlfbGluZV80NzAzODUwYjUzN2I0N2M3YWE5ZDUzZWM2Y2QwMmVmZiA9IEwucG9seWxpbmUoCiAgICAgICAgICAgICAgICBbW1szOC44OTM1OTY0NDQzNTIxMzQsIC03Ny4wMzgxNDk4MzM2NzkyXSwgWzM4Ljg5MzM3OTMzMzcyMjA0LCAtNzcuMDM3OTI0NTI4MTIxOTVdXSwgW1szOC44OTMzNzkzMzM3MjIwNCwgLTc3LjAzNzkyNDUyODEyMTk1XSwgWzM4Ljg5MzE2MjIyMjQyODMxLCAtNzcuMDM3NjEzMzkxODc2MjJdXSwgW1szOC44OTMxNjIyMjI0MjgzMSwgLTc3LjAzNzYxMzM5MTg3NjIyXSwgWzM4Ljg5MzAyODYxNTE0ODQyNCwgLTc3LjAzNzMxMjk4NDQ2NjU1XV0sIFtbMzguODkzMDI4NjE1MTQ4NDI0LCAtNzcuMDM3MzEyOTg0NDY2NTVdLCBbMzguODkyOTIwMDU5MDQ4NDY0LCAtNzcuMDM2OTE2MDE3NTMyMzVdXSwgW1szOC44OTI5MjAwNTkwNDg0NjQsIC03Ny4wMzY5MTYwMTc1MzIzNV0sIFszOC44OTI5MDMzNTgwOTUyOTYsIC03Ny4wMzYzNzk1NzU3MjkzN11dLCBbWzM4Ljg5MjkwMzM1ODA5NTI5NiwgLTc3LjAzNjM3OTU3NTcyOTM3XSwgWzM4Ljg5MzAxMTkxNDIyMDc3LCAtNzcuMDM1OTI4OTY0NjE0ODddXSwgW1szOC44OTMwMTE5MTQyMjA3NywgLTc3LjAzNTkyODk2NDYxNDg3XSwgWzM4Ljg5MzE2MjIyMjQyODMxLCAtNzcuMDM1NDk5ODExMTcyNDldXSwgW1szOC44OTMxNjIyMjI0MjgzMSwgLTc3LjAzNTQ5OTgxMTE3MjQ5XSwgWzM4Ljg5MzQwNDM4NDk4MjQ4LCAtNzcuMDM1MTQ1NzU5NTgyNTJdXSwgW1szOC44OTM0MDQzODQ5ODI0OCwgLTc3LjAzNTE0NTc1OTU4MjUyXSwgWzM4Ljg5MzU5NjQ0NDM1MjEzNCwgLTc3LjAzNDk2MzM2OTM2OTVdXV0sCiAgICAgICAgICAgICAgICB7ImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLCAiY29sb3IiOiAib3JhbmdlIiwgImRhc2hBcnJheSI6IG51bGwsICJkYXNoT2Zmc2V0IjogbnVsbCwgImZpbGwiOiBmYWxzZSwgImZpbGxDb2xvciI6ICJvcmFuZ2UiLCAiZmlsbE9wYWNpdHkiOiAwLjIsICJmaWxsUnVsZSI6ICJldmVub2RkIiwgImxpbmVDYXAiOiAicm91bmQiLCAibGluZUpvaW4iOiAicm91bmQiLCAibm9DbGlwIjogZmFsc2UsICJvcGFjaXR5IjogMSwgInNtb290aEZhY3RvciI6IDAsICJzdHJva2UiOiB0cnVlLCAid2VpZ2h0IjogOH0KICAgICAgICAgICAgKS5hZGRUbyhtYXBfNTM2MGYzNzBkOWE1NDM3NWI4YTJiMzNjZGM3YmIyYWIpOwogICAgICAgIAo8L3NjcmlwdD4= onload=\"this.contentDocument.open();this.contentDocument.write(atob(this.getAttribute('data-html')));this.contentDocument.close();\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
235      ],
236      "text/plain": [
237       "<folium.folium.Map at 0x7f6850306550>"
238      ]
239     },
240     "execution_count": 4,
241     "metadata": {},
242     "output_type": "execute_result"
243    }
244   ],
245   "source": [
246    "lat = +38.89399\n",
247    "lon = -77.03659\n",
248    "zoom_start = 17\n",
249    "\n",
250    "m = folium.Map(location=[lat, lon], zoom_start=zoom_start)\n",
251    "\n",
252    "kw = {\"color\": \"red\", \"fill\": True, \"radius\": 20}\n",
253    "\n",
254    "folium.CircleMarker([38.89415, -77.03738], **kw).add_to(m)\n",
255    "folium.CircleMarker([38.89415, -77.03578], **kw).add_to(m)\n",
256    "\n",
257    "\n",
258    "locations = [\n",
259    "    [\n",
260    "        (38.893596444352134, -77.03814983367920),\n",
261    "        (38.893379333722040, -77.03792452812195),\n",
262    "    ],\n",
263    "    [\n",
264    "        (38.893379333722040, -77.03792452812195),\n",
265    "        (38.893162222428310, -77.03761339187622),\n",
266    "    ],\n",
267    "    [\n",
268    "        (38.893162222428310, -77.03761339187622),\n",
269    "        (38.893028615148424, -77.03731298446655),\n",
270    "    ],\n",
271    "    [\n",
272    "        (38.893028615148424, -77.03731298446655),\n",
273    "        (38.892920059048464, -77.03691601753235),\n",
274    "    ],\n",
275    "    [\n",
276    "        (38.892920059048464, -77.03691601753235),\n",
277    "        (38.892903358095296, -77.03637957572937),\n",
278    "    ],\n",
279    "    [\n",
280    "        (38.892903358095296, -77.03637957572937),\n",
281    "        (38.893011914220770, -77.03592896461487),\n",
282    "    ],\n",
283    "    [\n",
284    "        (38.893011914220770, -77.03592896461487),\n",
285    "        (38.893162222428310, -77.03549981117249),\n",
286    "    ],\n",
287    "    [\n",
288    "        (38.893162222428310, -77.03549981117249),\n",
289    "        (38.893404384982480, -77.03514575958252),\n",
290    "    ],\n",
291    "    [\n",
292    "        (38.893404384982480, -77.03514575958252),\n",
293    "        (38.893596444352134, -77.03496336936950),\n",
294    "    ],\n",
295    "]\n",
296    "\n",
297    "folium.PolyLine(\n",
298    "    locations=locations,\n",
299    "    color=\"orange\",\n",
300    "    weight=8,\n",
301    "    opacity=1,\n",
302    "    smooth_factor=0,\n",
303    ").add_to(m)\n",
304    "\n",
305    "m"
306   ]
307  },
308  {
309   "cell_type": "markdown",
310   "metadata": {},
311   "source": [
312    "### Rectangle"
313   ]
314  },
315  {
316   "cell_type": "code",
317   "execution_count": 5,
318   "metadata": {},
319   "outputs": [
320    {
321     "data": {
322      "text/html": [
323       "<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+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgCiAgICAgICAgPHNjcmlwdD4KICAgICAgICAgICAgTF9OT19UT1VDSCA9IGZhbHNlOwogICAgICAgICAgICBMX0RJU0FCTEVfM0QgPSBmYWxzZTsKICAgICAgICA8L3NjcmlwdD4KICAgIAogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS42LjAvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2NvZGUuanF1ZXJ5LmNvbS9qcXVlcnktMS4xMi40Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS42LjAvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L2doL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9mb2xpdW0vdGVtcGxhdGVzL2xlYWZsZXQuYXdlc29tZS5yb3RhdGUubWluLmNzcyIvPgogICAgCiAgICAgICAgICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsCiAgICAgICAgICAgICAgICBpbml0aWFsLXNjYWxlPTEuMCwgbWF4aW11bS1zY2FsZT0xLjAsIHVzZXItc2NhbGFibGU9bm8iIC8+CiAgICAgICAgICAgIDxzdHlsZT4KICAgICAgICAgICAgICAgICNtYXBfYjQyMjIxODlkYjllNDlhOTlmZTBkZTc1MTc4MWU5YzYgewogICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwLjAlOwogICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgIAo8L2hlYWQ+Cjxib2R5PiAgICAKICAgIAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb2xpdW0tbWFwIiBpZD0ibWFwX2I0MjIyMTg5ZGI5ZTQ5YTk5ZmUwZGU3NTE3ODFlOWM2IiA+PC9kaXY+CiAgICAgICAgCjwvYm9keT4KPHNjcmlwdD4gICAgCiAgICAKICAgICAgICAgICAgdmFyIG1hcF9iNDIyMjE4OWRiOWU0OWE5OWZlMGRlNzUxNzgxZTljNiA9IEwubWFwKAogICAgICAgICAgICAgICAgIm1hcF9iNDIyMjE4OWRiOWU0OWE5OWZlMGRlNzUxNzgxZTljNiIsCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgY2VudGVyOiBbMzUuNjg1LCAxMzkuNzZdLAogICAgICAgICAgICAgICAgICAgIGNyczogTC5DUlMuRVBTRzM4NTcsCiAgICAgICAgICAgICAgICAgICAgem9vbTogMTUsCiAgICAgICAgICAgICAgICAgICAgem9vbUNvbnRyb2w6IHRydWUsCiAgICAgICAgICAgICAgICAgICAgcHJlZmVyQ2FudmFzOiBmYWxzZSwKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIAoKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgdGlsZV9sYXllcl81N2QzN2ExY2U0MTg0ZGY3YTIyZTUwZjFmNTI0MGY0OSA9IEwudGlsZUxheWVyKAogICAgICAgICAgICAgICAgImh0dHBzOi8ve3N9LnRpbGUub3BlbnN0cmVldG1hcC5vcmcve3p9L3t4fS97eX0ucG5nIiwKICAgICAgICAgICAgICAgIHsiYXR0cmlidXRpb24iOiAiRGF0YSBieSBcdTAwMjZjb3B5OyBcdTAwM2NhIGhyZWY9XCJodHRwOi8vb3BlbnN0cmVldG1hcC5vcmdcIlx1MDAzZU9wZW5TdHJlZXRNYXBcdTAwM2MvYVx1MDAzZSwgdW5kZXIgXHUwMDNjYSBocmVmPVwiaHR0cDovL3d3dy5vcGVuc3RyZWV0bWFwLm9yZy9jb3B5cmlnaHRcIlx1MDAzZU9EYkxcdTAwM2MvYVx1MDAzZS4iLCAiZGV0ZWN0UmV0aW5hIjogZmFsc2UsICJtYXhOYXRpdmVab29tIjogMTgsICJtYXhab29tIjogMTgsICJtaW5ab29tIjogMCwgIm5vV3JhcCI6IGZhbHNlLCAib3BhY2l0eSI6IDEsICJzdWJkb21haW5zIjogImFiYyIsICJ0bXMiOiBmYWxzZX0KICAgICAgICAgICAgKS5hZGRUbyhtYXBfYjQyMjIxODlkYjllNDlhOTlmZTBkZTc1MTc4MWU5YzYpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciByZWN0YW5nbGVfYzY5ZGI5MjNjNGUwNGZhM2FkZDBjNzkzMTY2NDMyZTYgPSBMLnJlY3RhbmdsZSgKICAgICAgICAgICAgICAgIFtbMzUuNjgxLCAxMzkuNzY2XSwgWzM1LjY5MSwgMTM5Ljc3Nl1dLAogICAgICAgICAgICAgICAgeyJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwgImNvbG9yIjogImJsdWUiLCAiZGFzaEFycmF5IjogIjUsIDUiLCAiZGFzaE9mZnNldCI6IG51bGwsICJmaWxsIjogdHJ1ZSwgImZpbGxDb2xvciI6ICJyZWQiLCAiZmlsbE9wYWNpdHkiOiAwLjIsICJmaWxsUnVsZSI6ICJldmVub2RkIiwgImxpbmVDYXAiOiAicm91bmQiLCAibGluZUpvaW4iOiAicm91bmQiLCAibm9DbGlwIjogZmFsc2UsICJvcGFjaXR5IjogMS4wLCAic21vb3RoRmFjdG9yIjogMS4wLCAic3Ryb2tlIjogdHJ1ZSwgIndlaWdodCI6IDV9CiAgICAgICAgICAgICkuYWRkVG8obWFwX2I0MjIyMTg5ZGI5ZTQ5YTk5ZmUwZGU3NTE3ODFlOWM2KTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBwb3B1cF8xY2RiYjFlYTQ0YmE0NTRlODg2MjNhMzFhMGQ1MmQ5MyA9IEwucG9wdXAoeyJtYXhXaWR0aCI6ICIxMDAlIn0pOwoKICAgICAgICAKICAgICAgICAgICAgdmFyIGh0bWxfZDRiMjRiZmFhY2MwNDRkOGIzMjczNWQ0OTZkZTk2YjYgPSAkKGA8ZGl2IGlkPSJodG1sX2Q0YjI0YmZhYWNjMDQ0ZDhiMzI3MzVkNDk2ZGU5NmI2IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Ub2t5bywgSmFwYW48L2Rpdj5gKVswXTsKICAgICAgICAgICAgcG9wdXBfMWNkYmIxZWE0NGJhNDU0ZTg4NjIzYTMxYTBkNTJkOTMuc2V0Q29udGVudChodG1sX2Q0YjI0YmZhYWNjMDQ0ZDhiMzI3MzVkNDk2ZGU5NmI2KTsKICAgICAgICAKCiAgICAgICAgcmVjdGFuZ2xlX2M2OWRiOTIzYzRlMDRmYTNhZGQwYzc5MzE2NjQzMmU2LmJpbmRQb3B1cChwb3B1cF8xY2RiYjFlYTQ0YmE0NTRlODg2MjNhMzFhMGQ1MmQ5MykKICAgICAgICA7CgogICAgICAgIAogICAgCiAgICAKICAgICAgICAgICAgcmVjdGFuZ2xlX2M2OWRiOTIzYzRlMDRmYTNhZGQwYzc5MzE2NjQzMmU2LmJpbmRUb29sdGlwKAogICAgICAgICAgICAgICAgYDxkaXY+CiAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+Q2xpY2sgbWUhPC9zdHJvbmc+CiAgICAgICAgICAgICAgICAgPC9kaXY+YCwKICAgICAgICAgICAgICAgIHsic3RpY2t5IjogdHJ1ZX0KICAgICAgICAgICAgKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcmVjdGFuZ2xlX2E2ZWE0Yzk4N2NmZDRmZWFhM2Q5OTllMTM3ODA2MWE0ID0gTC5yZWN0YW5nbGUoCiAgICAgICAgICAgICAgICBbWzM1LjY4MSwgMTM5Ljc1NF0sIFszNS42OTEsIDEzOS43NjRdXSwKICAgICAgICAgICAgICAgIHsiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsICJjb2xvciI6ICJibHVlIiwgImRhc2hBcnJheSI6ICI1LCAxMCIsICJkYXNoT2Zmc2V0IjogbnVsbCwgImZpbGwiOiB0cnVlLCAiZmlsbENvbG9yIjogInJlZCIsICJmaWxsT3BhY2l0eSI6IDAuMiwgImZpbGxSdWxlIjogImV2ZW5vZGQiLCAibGluZUNhcCI6ICJyb3VuZCIsICJsaW5lSm9pbiI6ICJtaXR0ZXIiLCAibm9DbGlwIjogZmFsc2UsICJvcGFjaXR5IjogMS4wLCAic21vb3RoRmFjdG9yIjogMS4wLCAic3Ryb2tlIjogdHJ1ZSwgIndlaWdodCI6IDV9CiAgICAgICAgICAgICkuYWRkVG8obWFwX2I0MjIyMTg5ZGI5ZTQ5YTk5ZmUwZGU3NTE3ODFlOWM2KTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBwb3B1cF8xZjk3YWExMjAzMDE0MGNmOTVmZTcxYzU0NzZmMDM3NyA9IEwucG9wdXAoeyJtYXhXaWR0aCI6ICIxMDAlIn0pOwoKICAgICAgICAKICAgICAgICAgICAgdmFyIGh0bWxfODY4ZTZjYzYxMDhhNDIxMmIzMzk0NWEyNDkxYTk5NDAgPSAkKGA8ZGl2IGlkPSJodG1sXzg2OGU2Y2M2MTA4YTQyMTJiMzM5NDVhMjQ5MWE5OTQwIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Ub2t5bywgSmFwYW48L2Rpdj5gKVswXTsKICAgICAgICAgICAgcG9wdXBfMWY5N2FhMTIwMzAxNDBjZjk1ZmU3MWM1NDc2ZjAzNzcuc2V0Q29udGVudChodG1sXzg2OGU2Y2M2MTA4YTQyMTJiMzM5NDVhMjQ5MWE5OTQwKTsKICAgICAgICAKCiAgICAgICAgcmVjdGFuZ2xlX2E2ZWE0Yzk4N2NmZDRmZWFhM2Q5OTllMTM3ODA2MWE0LmJpbmRQb3B1cChwb3B1cF8xZjk3YWExMjAzMDE0MGNmOTVmZTcxYzU0NzZmMDM3NykKICAgICAgICA7CgogICAgICAgIAogICAgCiAgICAKICAgICAgICAgICAgcmVjdGFuZ2xlX2E2ZWE0Yzk4N2NmZDRmZWFhM2Q5OTllMTM3ODA2MWE0LmJpbmRUb29sdGlwKAogICAgICAgICAgICAgICAgYDxkaXY+CiAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+Q2xpY2sgbWUhPC9zdHJvbmc+CiAgICAgICAgICAgICAgICAgPC9kaXY+YCwKICAgICAgICAgICAgICAgIHsic3RpY2t5IjogdHJ1ZX0KICAgICAgICAgICAgKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcmVjdGFuZ2xlXzE1YTE4ODBlMmI0MzQxM2FiYTg3Y2M1OGZhMThiMWI5ID0gTC5yZWN0YW5nbGUoCiAgICAgICAgICAgICAgICBbWzM1LjY4MSwgMTM5Ljc0Ml0sIFszNS42OTEsIDEzOS43NTIyXV0sCiAgICAgICAgICAgICAgICB7ImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLCAiY29sb3IiOiAiYmx1ZSIsICJkYXNoQXJyYXkiOiAiMTUsIDEwLCA1LCAxMCwgMTUiLCAiZGFzaE9mZnNldCI6IG51bGwsICJmaWxsIjogdHJ1ZSwgImZpbGxDb2xvciI6ICJyZWQiLCAiZmlsbE9wYWNpdHkiOiAwLjIsICJmaWxsUnVsZSI6ICJldmVub2RkIiwgImxpbmVDYXAiOiAicm91bmQiLCAibGluZUpvaW4iOiAiYmV2ZWwiLCAibm9DbGlwIjogZmFsc2UsICJvcGFjaXR5IjogMS4wLCAic21vb3RoRmFjdG9yIjogMS4wLCAic3Ryb2tlIjogdHJ1ZSwgIndlaWdodCI6IDV9CiAgICAgICAgICAgICkuYWRkVG8obWFwX2I0MjIyMTg5ZGI5ZTQ5YTk5ZmUwZGU3NTE3ODFlOWM2KTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBwb3B1cF8yNTJlODg1MDU2NzI0Njg1OWI3OGY4ZmQ5YjhlMWE5YiA9IEwucG9wdXAoeyJtYXhXaWR0aCI6ICIxMDAlIn0pOwoKICAgICAgICAKICAgICAgICAgICAgdmFyIGh0bWxfNmRlYzVlMjQyMmZhNGM3NGJkNmFkM2VlNTliOGNhYjkgPSAkKGA8ZGl2IGlkPSJodG1sXzZkZWM1ZTI0MjJmYTRjNzRiZDZhZDNlZTU5YjhjYWI5IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Ub2t5bywgSmFwYW48L2Rpdj5gKVswXTsKICAgICAgICAgICAgcG9wdXBfMjUyZTg4NTA1NjcyNDY4NTliNzhmOGZkOWI4ZTFhOWIuc2V0Q29udGVudChodG1sXzZkZWM1ZTI0MjJmYTRjNzRiZDZhZDNlZTU5YjhjYWI5KTsKICAgICAgICAKCiAgICAgICAgcmVjdGFuZ2xlXzE1YTE4ODBlMmI0MzQxM2FiYTg3Y2M1OGZhMThiMWI5LmJpbmRQb3B1cChwb3B1cF8yNTJlODg1MDU2NzI0Njg1OWI3OGY4ZmQ5YjhlMWE5YikKICAgICAgICA7CgogICAgICAgIAogICAgCiAgICAKICAgICAgICAgICAgcmVjdGFuZ2xlXzE1YTE4ODBlMmI0MzQxM2FiYTg3Y2M1OGZhMThiMWI5LmJpbmRUb29sdGlwKAogICAgICAgICAgICAgICAgYDxkaXY+CiAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+Q2xpY2sgbWUhPC9zdHJvbmc+CiAgICAgICAgICAgICAgICAgPC9kaXY+YCwKICAgICAgICAgICAgICAgIHsic3RpY2t5IjogdHJ1ZX0KICAgICAgICAgICAgKTsKICAgICAgICAKPC9zY3JpcHQ+ onload=\"this.contentDocument.open();this.contentDocument.write(atob(this.getAttribute('data-html')));this.contentDocument.close();\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
324      ],
325      "text/plain": [
326       "<folium.folium.Map at 0x7f67f6abb610>"
327      ]
328     },
329     "execution_count": 5,
330     "metadata": {},
331     "output_type": "execute_result"
332    }
333   ],
334   "source": [
335    "m = folium.Map(location=[35.685, 139.76], zoom_start=15)\n",
336    "\n",
337    "kw = {\n",
338    "    \"color\": \"blue\",\n",
339    "    \"line_cap\": \"round\",\n",
340    "    \"fill\": True,\n",
341    "    \"fill_color\": \"red\",\n",
342    "    \"weight\": 5,\n",
343    "    \"popup\": \"Tokyo, Japan\",\n",
344    "    \"tooltip\": \"<strong>Click me!</strong>\",\n",
345    "}\n",
346    "\n",
347    "folium.Rectangle(\n",
348    "    bounds=[[35.681, 139.766], [35.691, 139.776]],\n",
349    "    line_join=\"round\",\n",
350    "    dash_array=\"5, 5\",\n",
351    "    **kw,\n",
352    ").add_to(m)\n",
353    "\n",
354    "dx = 0.012\n",
355    "folium.Rectangle(\n",
356    "    bounds=[[35.681, 139.766 - dx], [35.691, 139.776 - dx]],\n",
357    "    line_join=\"mitter\",\n",
358    "    dash_array=\"5, 10\",\n",
359    "    **kw,\n",
360    ").add_to(m)\n",
361    "\n",
362    "\n",
363    "folium.Rectangle(\n",
364    "    bounds=[[35.681, 139.766 - 2 * dx], [35.691, 139.7762 - 2 * dx]],\n",
365    "    line_join=\"bevel\",\n",
366    "    dash_array=\"15, 10, 5, 10, 15\",\n",
367    "    **kw,\n",
368    ").add_to(m)\n",
369    "\n",
370    "m"
371   ]
372  },
373  {
374   "cell_type": "markdown",
375   "metadata": {},
376   "source": [
377    "### Polygon"
378   ]
379  },
380  {
381   "cell_type": "code",
382   "execution_count": 6,
383   "metadata": {},
384   "outputs": [
385    {
386     "data": {
387      "text/html": [
388       "<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+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgCiAgICAgICAgPHNjcmlwdD4KICAgICAgICAgICAgTF9OT19UT1VDSCA9IGZhbHNlOwogICAgICAgICAgICBMX0RJU0FCTEVfM0QgPSBmYWxzZTsKICAgICAgICA8L3NjcmlwdD4KICAgIAogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS42LjAvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2NvZGUuanF1ZXJ5LmNvbS9qcXVlcnktMS4xMi40Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS42LjAvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L2doL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9mb2xpdW0vdGVtcGxhdGVzL2xlYWZsZXQuYXdlc29tZS5yb3RhdGUubWluLmNzcyIvPgogICAgCiAgICAgICAgICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsCiAgICAgICAgICAgICAgICBpbml0aWFsLXNjYWxlPTEuMCwgbWF4aW11bS1zY2FsZT0xLjAsIHVzZXItc2NhbGFibGU9bm8iIC8+CiAgICAgICAgICAgIDxzdHlsZT4KICAgICAgICAgICAgICAgICNtYXBfY2YzYjQwNzM5YWIxNGJmMWJlODgwNzg4NzBhOWRiYjUgewogICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwLjAlOwogICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgIAo8L2hlYWQ+Cjxib2R5PiAgICAKICAgIAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb2xpdW0tbWFwIiBpZD0ibWFwX2NmM2I0MDczOWFiMTRiZjFiZTg4MDc4ODcwYTlkYmI1IiA+PC9kaXY+CiAgICAgICAgCjwvYm9keT4KPHNjcmlwdD4gICAgCiAgICAKICAgICAgICAgICAgdmFyIG1hcF9jZjNiNDA3MzlhYjE0YmYxYmU4ODA3ODg3MGE5ZGJiNSA9IEwubWFwKAogICAgICAgICAgICAgICAgIm1hcF9jZjNiNDA3MzlhYjE0YmYxYmU4ODA3ODg3MGE5ZGJiNSIsCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgY2VudGVyOiBbMzUuNjcsIDEzOS43OF0sCiAgICAgICAgICAgICAgICAgICAgY3JzOiBMLkNSUy5FUFNHMzg1NywKICAgICAgICAgICAgICAgICAgICB6b29tOiAxMywKICAgICAgICAgICAgICAgICAgICB6b29tQ29udHJvbDogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICBwcmVmZXJDYW52YXM6IGZhbHNlLAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApOwoKICAgICAgICAgICAgCgogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciB0aWxlX2xheWVyXzU0YzI5ZmZjMzQ5NTQ2Zjc4NjkwMTNlNDBhY2Y4ZmM3ID0gTC50aWxlTGF5ZXIoCiAgICAgICAgICAgICAgICAiaHR0cHM6Ly97c30udGlsZS5vcGVuc3RyZWV0bWFwLm9yZy97en0ve3h9L3t5fS5wbmciLAogICAgICAgICAgICAgICAgeyJhdHRyaWJ1dGlvbiI6ICJEYXRhIGJ5IFx1MDAyNmNvcHk7IFx1MDAzY2EgaHJlZj1cImh0dHA6Ly9vcGVuc3RyZWV0bWFwLm9yZ1wiXHUwMDNlT3BlblN0cmVldE1hcFx1MDAzYy9hXHUwMDNlLCB1bmRlciBcdTAwM2NhIGhyZWY9XCJodHRwOi8vd3d3Lm9wZW5zdHJlZXRtYXAub3JnL2NvcHlyaWdodFwiXHUwMDNlT0RiTFx1MDAzYy9hXHUwMDNlLiIsICJkZXRlY3RSZXRpbmEiOiBmYWxzZSwgIm1heE5hdGl2ZVpvb20iOiAxOCwgIm1heFpvb20iOiAxOCwgIm1pblpvb20iOiAwLCAibm9XcmFwIjogZmFsc2UsICJvcGFjaXR5IjogMSwgInN1YmRvbWFpbnMiOiAiYWJjIiwgInRtcyI6IGZhbHNlfQogICAgICAgICAgICApLmFkZFRvKG1hcF9jZjNiNDA3MzlhYjE0YmYxYmU4ODA3ODg3MGE5ZGJiNSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvbHlnb25fM2JiMmJkNjkxOWJjNGU3YzhkZTUyM2NlZjY4YjViZmUgPSBMLnBvbHlnb24oCiAgICAgICAgICAgICAgICBbWzM1LjY3NjIsIDEzOS43Nzk1XSwgWzM1LjY3MTgsIDEzOS43ODMxXSwgWzM1LjY3NjcsIDEzOS43ODY4XSwgWzM1LjY3OTUsIDEzOS43ODI0XSwgWzM1LjY3ODcsIDEzOS43NzkxXV0sCiAgICAgICAgICAgICAgICB7ImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLCAiY29sb3IiOiAiYmx1ZSIsICJkYXNoQXJyYXkiOiBudWxsLCAiZGFzaE9mZnNldCI6IG51bGwsICJmaWxsIjogdHJ1ZSwgImZpbGxDb2xvciI6ICJyZWQiLCAiZmlsbE9wYWNpdHkiOiAwLjUsICJmaWxsUnVsZSI6ICJldmVub2RkIiwgImxpbmVDYXAiOiAicm91bmQiLCAibGluZUpvaW4iOiAicm91bmQiLCAibm9DbGlwIjogZmFsc2UsICJvcGFjaXR5IjogMS4wLCAic21vb3RoRmFjdG9yIjogMS4wLCAic3Ryb2tlIjogdHJ1ZSwgIndlaWdodCI6IDZ9CiAgICAgICAgICAgICkuYWRkVG8obWFwX2NmM2I0MDczOWFiMTRiZjFiZTg4MDc4ODcwYTlkYmI1KTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBwb3B1cF9mZDBhOWQxZWJlZWY0MmQ3OTg5ODE0Y2NjZTU4YTUwMSA9IEwucG9wdXAoeyJtYXhXaWR0aCI6ICIxMDAlIn0pOwoKICAgICAgICAKICAgICAgICAgICAgdmFyIGh0bWxfYzM2ZmYxNjcyODE0NDI3NWFiOTJjNTY5YWEyZmUzOGMgPSAkKGA8ZGl2IGlkPSJodG1sX2MzNmZmMTY3MjgxNDQyNzVhYjkyYzU2OWFhMmZlMzhjIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Ub2t5bywgSmFwYW48L2Rpdj5gKVswXTsKICAgICAgICAgICAgcG9wdXBfZmQwYTlkMWViZWVmNDJkNzk4OTgxNGNjY2U1OGE1MDEuc2V0Q29udGVudChodG1sX2MzNmZmMTY3MjgxNDQyNzVhYjkyYzU2OWFhMmZlMzhjKTsKICAgICAgICAKCiAgICAgICAgcG9seWdvbl8zYmIyYmQ2OTE5YmM0ZTdjOGRlNTIzY2VmNjhiNWJmZS5iaW5kUG9wdXAocG9wdXBfZmQwYTlkMWViZWVmNDJkNzk4OTgxNGNjY2U1OGE1MDEpCiAgICAgICAgOwoKICAgICAgICAKICAgIAogICAgCiAgICAgICAgICAgIHBvbHlnb25fM2JiMmJkNjkxOWJjNGU3YzhkZTUyM2NlZjY4YjViZmUuYmluZFRvb2x0aXAoCiAgICAgICAgICAgICAgICBgPGRpdj4KICAgICAgICAgICAgICAgICAgICAgQ2xpY2sgbWUhCiAgICAgICAgICAgICAgICAgPC9kaXY+YCwKICAgICAgICAgICAgICAgIHsic3RpY2t5IjogdHJ1ZX0KICAgICAgICAgICAgKTsKICAgICAgICAKPC9zY3JpcHQ+ onload=\"this.contentDocument.open();this.contentDocument.write(atob(this.getAttribute('data-html')));this.contentDocument.close();\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
389      ],
390      "text/plain": [
391       "<folium.folium.Map at 0x7f67f6b11b20>"
392      ]
393     },
394     "execution_count": 6,
395     "metadata": {},
396     "output_type": "execute_result"
397    }
398   ],
399   "source": [
400    "m = folium.Map(location=[35.67, 139.78], zoom_start=13)\n",
401    "\n",
402    "locations = [\n",
403    "    [35.6762, 139.7795],\n",
404    "    [35.6718, 139.7831],\n",
405    "    [35.6767, 139.7868],\n",
406    "    [35.6795, 139.7824],\n",
407    "    [35.6787, 139.7791],\n",
408    "]\n",
409    "\n",
410    "folium.Polygon(\n",
411    "    locations=locations,\n",
412    "    color=\"blue\",\n",
413    "    weight=6,\n",
414    "    fill_color=\"red\",\n",
415    "    fill_opacity=0.5,\n",
416    "    fill=True,\n",
417    "    popup=\"Tokyo, Japan\",\n",
418    "    tooltip=\"Click me!\",\n",
419    ").add_to(m)\n",
420    "\n",
421    "m"
422   ]
423  },
424  {
425   "cell_type": "code",
426   "execution_count": 7,
427   "metadata": {},
428   "outputs": [
429    {
430     "data": {
431      "text/html": [
432       "<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+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgCiAgICAgICAgPHNjcmlwdD4KICAgICAgICAgICAgTF9OT19UT1VDSCA9IGZhbHNlOwogICAgICAgICAgICBMX0RJU0FCTEVfM0QgPSBmYWxzZTsKICAgICAgICA8L3NjcmlwdD4KICAgIAogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS42LjAvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2NvZGUuanF1ZXJ5LmNvbS9qcXVlcnktMS4xMi40Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS42LjAvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L2doL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9mb2xpdW0vdGVtcGxhdGVzL2xlYWZsZXQuYXdlc29tZS5yb3RhdGUubWluLmNzcyIvPgogICAgCiAgICAgICAgICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsCiAgICAgICAgICAgICAgICBpbml0aWFsLXNjYWxlPTEuMCwgbWF4aW11bS1zY2FsZT0xLjAsIHVzZXItc2NhbGFibGU9bm8iIC8+CiAgICAgICAgICAgIDxzdHlsZT4KICAgICAgICAgICAgICAgICNtYXBfNDY4ODEwMjQzY2Y2NGViMzk5YTBjNDAyOWE1MWI1OGUgewogICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwLjAlOwogICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwLjAlOwogICAgICAgICAgICAgICAgICAgIGxlZnQ6IDAuMCU7CiAgICAgICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgIAo8L2hlYWQ+Cjxib2R5PiAgICAKICAgIAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb2xpdW0tbWFwIiBpZD0ibWFwXzQ2ODgxMDI0M2NmNjRlYjM5OWEwYzQwMjlhNTFiNThlIiA+PC9kaXY+CiAgICAgICAgCjwvYm9keT4KPHNjcmlwdD4gICAgCiAgICAKICAgICAgICAgICAgdmFyIG1hcF80Njg4MTAyNDNjZjY0ZWIzOTlhMGM0MDI5YTUxYjU4ZSA9IEwubWFwKAogICAgICAgICAgICAgICAgIm1hcF80Njg4MTAyNDNjZjY0ZWIzOTlhMGM0MDI5YTUxYjU4ZSIsCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgY2VudGVyOiBbNy41Nzc3OTgxMTM5OTE4MzIsIDguOTk3MzExMTA0NTIzOTNdLAogICAgICAgICAgICAgICAgICAgIGNyczogTC5DUlMuRVBTRzM4NTcsCiAgICAgICAgICAgICAgICAgICAgem9vbTogMTYsCiAgICAgICAgICAgICAgICAgICAgem9vbUNvbnRyb2w6IHRydWUsCiAgICAgICAgICAgICAgICAgICAgcHJlZmVyQ2FudmFzOiBmYWxzZSwKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIAoKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgdGlsZV9sYXllcl82YzYyYzkzNWQxNmY0MGExYjg1OGVhZWRhYjMyNWMwNSA9IEwudGlsZUxheWVyKAogICAgICAgICAgICAgICAgImh0dHBzOi8ve3N9LnRpbGUub3BlbnN0cmVldG1hcC5vcmcve3p9L3t4fS97eX0ucG5nIiwKICAgICAgICAgICAgICAgIHsiYXR0cmlidXRpb24iOiAiRGF0YSBieSBcdTAwMjZjb3B5OyBcdTAwM2NhIGhyZWY9XCJodHRwOi8vb3BlbnN0cmVldG1hcC5vcmdcIlx1MDAzZU9wZW5TdHJlZXRNYXBcdTAwM2MvYVx1MDAzZSwgdW5kZXIgXHUwMDNjYSBocmVmPVwiaHR0cDovL3d3dy5vcGVuc3RyZWV0bWFwLm9yZy9jb3B5cmlnaHRcIlx1MDAzZU9EYkxcdTAwM2MvYVx1MDAzZS4iLCAiZGV0ZWN0UmV0aW5hIjogZmFsc2UsICJtYXhOYXRpdmVab29tIjogMTgsICJtYXhab29tIjogMTgsICJtaW5ab29tIjogMCwgIm5vV3JhcCI6IGZhbHNlLCAib3BhY2l0eSI6IDEsICJzdWJkb21haW5zIjogImFiYyIsICJ0bXMiOiBmYWxzZX0KICAgICAgICAgICAgKS5hZGRUbyhtYXBfNDY4ODEwMjQzY2Y2NGViMzk5YTBjNDAyOWE1MWI1OGUpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb2x5Z29uXzVmZWI1YjIxZDlmYTRmZDliZjg5ZmQzZDRhNmRlMTM0ID0gTC5wb2x5Z29uKAogICAgICAgICAgICAgICAgW1tbNy41Nzc3OTQzMjY5NDY2NzMsIDguOTk4NTAzOTAxNDMzOTM1XSwgWzcuNTc3ODUxNDM0Nzk1OTQ1LCA4Ljk5ODU3MjQzMDY3MzE2NF0sIFs3LjU3Nzk4ODQ5MTQ3NTc2NCwgOC45OTg2NTIzODA0MDMwODddLCBbNy41NzgxMDU1NjA3MjMwODgsIDguOTk4NDI2ODA3MDUxNTQ0XSwgWzcuNTc3ODkxNDA5NjYwODc4LCA4Ljk5ODI4OTc1MDM3MTcyNV0sIFs3LjU3Nzc5NDMyNjk0NjY3MywgOC45OTg1MDM5MDE0MzM5MzVdXSwgW1s3LjU3ODEzOTgyNDg5MzA3MSwgOC45OTkyOTE5NzkxNDE1Nl0sIFs3LjU3ODM1OTY4NzU0OTYwNywgOC45OTk0MTQ3NTkwODM4OV0sIFs3LjU3ODQ1Njc2OTM2NDQzNSwgOC45OTkyNjYyODEwMTQxMTZdLCBbNy41Nzg0NzEwNDYxMDE5MjUsIDguOTk5MTk3MTgxNjA0N10sIFs3LjU3ODI0NzMzMTY0OTA5NSwgOC45OTkwOTQ4ODM3MjE5NjRdLCBbNy41NzgxMzk4MjQ4OTMwNzEsIDguOTk5MjkxOTc5MTQxNTZdXSwgW1s3LjU3Nzg1MTczMDY3Mjg3NiwgOC45OTc4MTEyNjg3NzUwOF0sIFs3LjU3ODAxMjU3OTgxNjc0MywgOC45OTc0NjA0NjQ4Mjg2MzNdLCBbNy41Nzc3OTgxMTM5OTE4MzIsIDguOTk3MzExMTA0NTIzOTNdLCBbNy41Nzc2Njc5MDI5NTE0MTgsIDguOTk3NjYzNDQwOTE1MTE5XSwgWzcuNTc3ODUxNzMwNjcyODc2LCA4Ljk5NzgxMTI2ODc3NTA4XV0sIFtbNy41Nzg1NjI0MTcyMjE4MDMsIDguOTk5NTUxODE2NjYzMDI5XSwgWzcuNTc4Njg4MDUyNTExNjY2LCA4Ljk5OTY1NDYwOTE3MjkyMV0sIFs3LjU3ODgxMzY4ODcwMDg0OSwgOC45OTk0NDMzMTM0NTgxODVdLCBbNy41Nzg2NzA5MjA0MjY3MDMsIDguOTk5MzY5MDczNTIzOTVdLCBbNy41Nzg1NjI0MTcyMjE4MDMsIDguOTk5NTUxODE2NjYzMDI5XV0sIFtbNy41Nzc4NjU3MTE1MzM0MzMsIDguOTk4MjUyMDU5Nzg0NzYxXSwgWzcuNTc3OTg5NjAxMjM5MTUyLCA4Ljk5ODAwMjc1NjAyMjQwMl0sIFs3LjU3NzY0ODc1NDU4NjM5MSwgOC45OTc3ODQ0NjA4ODQxOV0sIFs3LjU3NzU0NTkxMTcxNDQ4MSwgOC45OTgwNjkzMTY2NDU2ODNdLCBbNy41Nzc4NjU3MTE1MzM0MzMsIDguOTk4MjUyMDU5Nzg0NzYxXV1dLAogICAgICAgICAgICAgICAgeyJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwgImNvbG9yIjogImNyaW1zb24iLCAiZGFzaEFycmF5IjogbnVsbCwgImRhc2hPZmZzZXQiOiBudWxsLCAiZmlsbCI6IGZhbHNlLCAiZmlsbENvbG9yIjogImNyaW1zb24iLCAiZmlsbE9wYWNpdHkiOiAwLjIsICJmaWxsUnVsZSI6ICJldmVub2RkIiwgImxpbmVDYXAiOiAicm91bmQiLCAibGluZUpvaW4iOiAicm91bmQiLCAibm9DbGlwIjogdHJ1ZSwgIm9wYWNpdHkiOiAxLjAsICJzbW9vdGhGYWN0b3IiOiAyLCAic3Ryb2tlIjogdHJ1ZSwgIndlaWdodCI6IDN9CiAgICAgICAgICAgICkuYWRkVG8obWFwXzQ2ODgxMDI0M2NmNjRlYjM5OWEwYzQwMjlhNTFiNThlKTsKICAgICAgICAKICAgIAogICAgICAgICAgICBwb2x5Z29uXzVmZWI1YjIxZDlmYTRmZDliZjg5ZmQzZDRhNmRlMTM0LmJpbmRUb29sdGlwKAogICAgICAgICAgICAgICAgYDxkaXY+CiAgICAgICAgICAgICAgICAgICAgIEhpIHRoZXJlIQogICAgICAgICAgICAgICAgIDwvZGl2PmAsCiAgICAgICAgICAgICAgICB7InN0aWNreSI6IHRydWV9CiAgICAgICAgICAgICk7CiAgICAgICAgCjwvc2NyaXB0Pg== onload=\"this.contentDocument.open();this.contentDocument.write(atob(this.getAttribute('data-html')));this.contentDocument.close();\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
433      ],
434      "text/plain": [
435       "<folium.folium.Map at 0x7f67f6b203d0>"
436      ]
437     },
438     "execution_count": 7,
439     "metadata": {},
440     "output_type": "execute_result"
441    }
442   ],
443   "source": [
444    "locations = [\n",
445    "    [\n",
446    "        [7.577794326946673, 8.998503901433935],\n",
447    "        [7.577851434795945, 8.998572430673164],\n",
448    "        [7.577988491475764, 8.998652380403087],\n",
449    "        [7.578105560723088, 8.998426807051544],\n",
450    "        [7.577891409660878, 8.998289750371725],\n",
451    "        [7.577794326946673, 8.998503901433935],\n",
452    "    ],\n",
453    "    [\n",
454    "        [7.578139824893071, 8.999291979141560],\n",
455    "        [7.578359687549607, 8.999414759083890],\n",
456    "        [7.578456769364435, 8.999266281014116],\n",
457    "        [7.578471046101925, 8.999197181604700],\n",
458    "        [7.578247331649095, 8.999094883721964],\n",
459    "        [7.578139824893071, 8.99929197914156],\n",
460    "    ],\n",
461    "    [\n",
462    "        [7.577851730672876, 8.997811268775080],\n",
463    "        [7.578012579816743, 8.997460464828633],\n",
464    "        [7.577798113991832, 8.997311104523930],\n",
465    "        [7.577667902951418, 8.997663440915119],\n",
466    "        [7.577851730672876, 8.997811268775080],\n",
467    "    ],\n",
468    "    [\n",
469    "        [7.578562417221803, 8.999551816663029],\n",
470    "        [7.578688052511666, 8.999654609172921],\n",
471    "        [7.578813688700849, 8.999443313458185],\n",
472    "        [7.578670920426703, 8.999369073523950],\n",
473    "        [7.578562417221803, 8.999551816663029],\n",
474    "    ],\n",
475    "    [\n",
476    "        [7.577865711533433, 8.998252059784761],\n",
477    "        [7.577989601239152, 8.998002756022402],\n",
478    "        [7.577648754586391, 8.997784460884190],\n",
479    "        [7.577545911714481, 8.998069316645683],\n",
480    "        [7.577865711533433, 8.998252059784761],\n",
481    "    ],\n",
482    "]\n",
483    "\n",
484    "m = folium.Map(location=[7.577798113991832, 8.997311104523930], zoom_start=16)\n",
485    "\n",
486    "folium.Polygon(\n",
487    "    locations=locations,\n",
488    "    smooth_factor=2,\n",
489    "    color=\"crimson\",\n",
490    "    no_clip=True,\n",
491    "    tooltip=\"Hi there!\",\n",
492    ").add_to(m)\n",
493    "\n",
494    "m"
495   ]
496  }
497 ],
498 "metadata": {
499  "kernelspec": {
500   "display_name": "Python 3",
501   "language": "python",
502   "name": "python3"
503  },
504  "language_info": {
505   "codemirror_mode": {
506    "name": "ipython",
507    "version": 3
508   },
509   "file_extension": ".py",
510   "mimetype": "text/x-python",
511   "name": "python",
512   "nbconvert_exporter": "python",
513   "pygments_lexer": "ipython3",
514   "version": "3.9.0"
515  }
516 },
517 "nbformat": 4,
518 "nbformat_minor": 1
519}
520