Skip to content

Instantly share code, notes, and snippets.

@andy23512
Last active June 23, 2018 06:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save andy23512/392f01bd7e6f94e82a9996a9922a911d to your computer and use it in GitHub Desktop.
Save andy23512/392f01bd7e6f94e82a9996a9922a911d to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><iframe src=\"data:text/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVMgPSBmYWxzZTsgTF9OT19UT1VDSCA9IGZhbHNlOyBMX0RJU0FCTEVfM0QgPSBmYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdnaXQuY29tL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9tYXN0ZXIvZm9saXVtL3RlbXBsYXRlcy9sZWFmbGV0LmF3ZXNvbWUucm90YXRlLmNzcyIvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgICAgICAgICA8c3R5bGU+ICNtYXBfN2Q1NjE2Y2Q0ZjU0NDU0YWI5NzBhYmM4MGFhNTYxYzcgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogMTAwLjAlOwogICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAuMCU7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgIAogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL2pxdWVyeS8yLjAuMC9qcXVlcnkubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9qcXVlcnl1aS8xLjEwLjIvanF1ZXJ5LXVpLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9yYXdnaXQuY29tL25lemFzYS9pc284NjAxLWpzLXBlcmlvZC9tYXN0ZXIvaXNvODYwMS5taW4uanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vcmF3Z2l0LmNvbS9zb2NpYi9MZWFmbGV0LlRpbWVEaW1lbnNpb24vbWFzdGVyL2Rpc3QvbGVhZmxldC50aW1lZGltZW5zaW9uLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL2hpZ2hsaWdodC5qcy84LjQvc3R5bGVzL2RlZmF1bHQubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwOi8vYXBwcy5zb2NpYi5lcy9MZWFmbGV0LlRpbWVEaW1lbnNpb24vZGlzdC9sZWFmbGV0LnRpbWVkaW1lbnNpb24uY29udHJvbC5taW4uY3NzIi8+CjwvaGVhZD4KPGJvZHk+ICAgIAogICAgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvbGl1bS1tYXAiIGlkPSJtYXBfN2Q1NjE2Y2Q0ZjU0NDU0YWI5NzBhYmM4MGFhNTYxYzciID48L2Rpdj4KICAgICAgICAKPC9ib2R5Pgo8c2NyaXB0PiAgICAKICAgIAoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgYm91bmRzID0gbnVsbDsKICAgICAgICAgICAgCgogICAgICAgICAgICB2YXIgbWFwXzdkNTYxNmNkNGY1NDQ1NGFiOTcwYWJjODBhYTU2MWM3ID0gTC5tYXAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWFwXzdkNTYxNmNkNGY1NDQ1NGFiOTcwYWJjODBhYTU2MWM3JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjZW50ZXI6IFsyNC4yMzAxMDEsMTIwLjYwNDQwNF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB6b29tOiAxMywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heEJvdW5kczogYm91bmRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5ZXJzOiBbXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdvcmxkQ29weUp1bXA6IGZhbHNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JzOiBMLkNSUy5FUFNHMzg1NwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHRpbGVfbGF5ZXJfZmYyOWVjY2IxMmUwNDMyY2JiZmZiMGM5YjhhNDkxM2UgPSBMLnRpbGVMYXllcigKICAgICAgICAgICAgICAgICdodHRwczovL3tzfS50aWxlLm9wZW5zdHJlZXRtYXAub3JnL3t6fS97eH0ve3l9LnBuZycsCiAgICAgICAgICAgICAgICB7CiAgImF0dHJpYnV0aW9uIjogbnVsbCwKICAiZGV0ZWN0UmV0aW5hIjogZmFsc2UsCiAgIm1heFpvb20iOiAxOCwKICAibWluWm9vbSI6IDEsCiAgIm5vV3JhcCI6IGZhbHNlLAogICJzdWJkb21haW5zIjogImFiYyIKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfN2Q1NjE2Y2Q0ZjU0NDU0YWI5NzBhYmM4MGFhNTYxYzcpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIG1hcF83ZDU2MTZjZDRmNTQ0NTRhYjk3MGFiYzgwYWE1NjFjNy50aW1lRGltZW5zaW9uID0gTC50aW1lRGltZW5zaW9uKHtwZXJpb2Q6IlBUMU0ifSk7CiAgICAgICAgICAgIG1hcF83ZDU2MTZjZDRmNTQ0NTRhYjk3MGFiYzgwYWE1NjFjNy50aW1lRGltZW5zaW9uQ29udHJvbCA9IEwuY29udHJvbC50aW1lRGltZW5zaW9uKHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAnYm90dG9tbGVmdCcsCiAgICAgICAgICAgICAgICBhdXRvUGxheTogdHJ1ZSwKICAgICAgICAgICAgICAgIHBsYXllck9wdGlvbnM6IHsKICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uVGltZTogMjAwLAogICAgICAgICAgICAgICAgICAgIGxvb3A6IHRydWV9CiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIG1hcF83ZDU2MTZjZDRmNTQ0NTRhYjk3MGFiYzgwYWE1NjFjNy5hZGRDb250cm9sKG1hcF83ZDU2MTZjZDRmNTQ0NTRhYjk3MGFiYzgwYWE1NjFjNy50aW1lRGltZW5zaW9uQ29udHJvbCk7CgogICAgICAgICAgICB2YXIgdGltZXN0YW1wZWRfZ2VvX2pzb25fNGVhNzE3YzFlMDJmNDY0MTgwZmQzMWRhZGJmN2ZlNGMgPSBMLnRpbWVEaW1lbnNpb24ubGF5ZXIuZ2VvSnNvbigKICAgICAgICAgICAgICAgIEwuZ2VvSnNvbih7InR5cGUiOiAiRmVhdHVyZUNvbGxlY3Rpb24iLCAiZmVhdHVyZXMiOiBbeyJ0eXBlIjogIkZlYXR1cmUiLCAiZ2VvbWV0cnkiOiB7InR5cGUiOiAiUG9seWdvbiIsICJjb29yZGluYXRlcyI6IFtbWzEyMC41OTE0MDQsIDI0LjIzMDEwMV0sIFsxMjAuNTkzNDA0LCAyNC4yMzAxMDFdLCBbMTIwLjU5MzQwNCwgMjQuMjMyMTAxXSwgWzEyMC41OTE0MDQsIDI0LjIzMjEwMV1dXX0sICJwcm9wZXJ0aWVzIjogeyJ0aW1lcyI6IFsiMjAxNy0wNi0wMlQwMDowMDowMCIsICIyMDE3LTA2LTAyVDAwOjAwOjAwIl0sICJzdHlsZSI6IHsiY29sb3IiOiAicmVkIiwgIndlaWdodCI6IDV9fX0sIHsidHlwZSI6ICJGZWF0dXJlIiwgImdlb21ldHJ5IjogeyJ0eXBlIjogIlBvbHlnb24iLCAiY29vcmRpbmF0ZXMiOiBbW1sxMjAuNTk1NDA0LCAyNC4yMzAxMDFdLCBbMTIwLjU5NzQwNCwgMjQuMjMwMTAxXSwgWzEyMC41OTc0MDQsIDI0LjIzMjEwMV0sIFsxMjAuNTk1NDA0LCAyNC4yMzIxMDFdXV19LCAicHJvcGVydGllcyI6IHsidGltZXMiOiBbIjIwMTctMDYtMDJUMDA6MTA6MDAiLCAiMjAxNy0wNi0wMlQwMDoxMDowMCJdLCAic3R5bGUiOiB7ImNvbG9yIjogImJsdWUiLCAid2VpZ2h0IjogNX19fV19LCB7J3N0eWxlJzogZnVuY3Rpb24gKGZlYXR1cmUpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmVhdHVyZS5wcm9wZXJ0aWVzLnN0eWxlCiAgICAgICAgICAgICAgICB9fSksCiAgICAgICAgICAgICAgICB7dXBkYXRlVGltZURpbWVuc2lvbjogdHJ1ZSxhZGRsYXN0UG9pbnQ6IGZhbHNlfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfN2Q1NjE2Y2Q0ZjU0NDU0YWI5NzBhYmM4MGFhNTYxYzcpOwogICAgICAgIAo8L3NjcmlwdD4=\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
],
"text/plain": [
"<folium.folium.Map at 0x112cd0dd8>"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import folium\n",
"from folium import plugins\n",
"\n",
"m = folium.Map(location=[24.230101, 120.604404],zoom_start=13)\n",
"lines = [\n",
" {\n",
" 'coordinates': [\n",
" [\n",
" [120.591404, 24.230101],\n",
" [120.593404, 24.230101],\n",
" [120.593404, 24.232101],\n",
" [120.591404, 24.232101]\n",
" ],\n",
" ],\n",
" 'dates': ['2017-06-02T00:00:00', '2017-06-02T00:00:00'],\n",
" 'color': 'red'\n",
" },\n",
" {\n",
" 'coordinates': [\n",
" [\n",
" [120.595404, 24.230101],\n",
" [120.597404, 24.230101],\n",
" [120.597404, 24.232101],\n",
" [120.595404, 24.232101]\n",
" ]\n",
" ],\n",
" 'dates': ['2017-06-02T00:10:00', '2017-06-02T00:10:00'],\n",
" 'color': 'blue'\n",
" },\n",
"\n",
"]\n",
"features = [\n",
" {\n",
" 'type': 'Feature',\n",
" 'geometry': {\n",
" 'type': 'Polygon', # <- Change from MultiPolygon to Polygon, according to https://github.com/python-visualization/folium/blob/19bde41edd6346f447bd83523340edb9782dc20a/CHANGES.txt#L120\n",
" 'coordinates': line['coordinates'],\n",
" },\n",
" 'properties': {\n",
" 'times': line['dates'],\n",
" 'style': {\n",
" 'color': line['color'],\n",
" 'weight': line['weight'] if 'weight' in line else 5\n",
" }\n",
" }\n",
" } for line in lines]\n",
"\n",
"plugins.TimestampedGeoJson({\n",
" 'type': 'FeatureCollection',\n",
" 'features': features,\n",
"}, period='PT1M', add_last_point=False).add_to(m)\n",
"\n",
"m"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"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.6.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment