{"id":650,"date":"2018-12-27T23:10:18","date_gmt":"2018-12-27T14:10:18","guid":{"rendered":"https:\/\/dong1lkim.oboki.net\/?p=650"},"modified":"2019-09-01T22:23:33","modified_gmt":"2019-09-01T13:23:33","slug":"folium-%ec%a7%80%eb%a6%ac%ec%a0%95%eb%b3%b4-%ec%8b%9c%ea%b0%81%ed%99%94","status":"publish","type":"post","link":"https:\/\/oboki.net\/workspace\/python\/folium-%ec%a7%80%eb%a6%ac%ec%a0%95%eb%b3%b4-%ec%8b%9c%ea%b0%81%ed%99%94\/","title":{"rendered":"[Python] Folium &#8211; \uc9c0\ub9ac\uc815\ubcf4 \uc2dc\uac01\ud654"},"content":{"rendered":"<h1>Folium<\/h1>\n<p><code>Folium<\/code>\uc740 <code>Leaflet.js<\/code>\ub97c \uc774\uc6a9\ud558\uc5ec \uc704\uce58 \uc88c\ud45c\uacc4 \uac12\uc744 \uc9c0\ub3c4 \uc704\uc5d0 \uc2dc\uac01\ud654\ud560 \uc218 \uc788\ub2e4.<\/p>\n<h2>Map<\/h2>\n<p>\uba3c\uc800 Map \ud074\ub798\uc2a4\ub97c \ub85c\ub4dc\ud574\uc11c \ubc94\uc704\ub97c \uc9c0\uc815\ud574\uc900\ub2e4. <code>location<\/code> \uc18d\uc131\uc73c\ub85c \uc8fc\uc2dc\ud558\uace0\uc790 \ud558\ub294 \uc9c0\ub3c4\uc758 \uc815\uc911\uc559 \uc88c\ud45c\ub97c \uc124\uc815\ud558\uace0, <code>zoom_start<\/code> \uc18d\uc131\uc73c\ub85c \ubc30\uc728\uc744 \uc124\uc815\ud55c\ub2e4.<\/p>\n<p>\ubcf4\uace0\uc790 \ud558\ub294 \uc704\uce58\uc758 \uc88c\ud45c\uacc4 \uac12\uc744 \uc5bb\uc5b4\ub0b4\ub294 \uac00\uc7a5 \ub2e8\uc21c\ud55c \ubc29\ubc95\uc740 Google \uc9c0\ub3c4\ub97c \uc774\uc6a9\ud558\ub294 \ubc29\ubc95\uc774\ub2e4. \uc544\ub798\uc640 \uac19\uc774 \uad6c\uae00 \uc9c0\ub3c4\uc5d0\uc11c \uac80\uc0c9\uc744 \ud558\uba74 \uc0c1\ub2e8 \uc8fc\uc18c\ucc3d\uc5d0 \ud574\ub2f9 \uc704\uce58\uc758 \ub300\ub7b5\uc801\uc778 \uc88c\ud45c\uacc4 \uac12\uacfc \uba87 \ubc30\uc728\ub85c \uc9c0\ub3c4\uac00 \ubcf4\uc5ec\uc9c0\uace0 \uc788\ub294\uc9c0 \ud655\uc778\ud560 \uc218 \uc788\ub2e4.<\/p>\n<p><img decoding=\"async\" src=\"\/workspace\/wp-content\/uploads\/2018\/12\/google_maps_geo.png\" alt=\"\" \/><\/p>\n<p><code>37.5838699,127.0565831,17z<\/code> \uac12\uc740 \uc815\ud655\ud788\ub294 \ud574\ub2f9 \uc704\uce58\uc758 \uc88c\ud45c\uac12\uc774 \uc544\ub2c8\ub77c \uad6c\uae00 \uc9c0\ub3c4 \ud654\uba74\uc774 \ubcf4\uc5ec\uc8fc\uace0 \uc788\ub294 \ud654\uba74\uc758 \uc815\uc911\uc559 \uac12\uc758 \uc88c\ud45c\uc640 \ubc30\uc728\uc774\ub2e4.<\/p>\n<p>\uad6c\uae00 \uc9c0\ub3c4\uc5d0\uc11c \uc54c\uc544\ub0b8 \uac12\uc744 \ubc14\ud0d5\uc73c\ub85c \uc544\ub798\uc640 \uac19\uc774 \uc9c0\ub3c4\ub97c \ucd08\uae30\ud654\ud560 \uc218 \uc788\uace0, <code>folium.Map.save()<\/code> \ub97c \uc774\uc6a9\ud574\uc11c html \ud30c\uc77c\ub85c \uc800\uc7a5\ud560 \uc218 \uc788\ub2e4.<\/p>\n<pre><code class=\"py\">import folium\n\nm = folium.Map(\n    location=[37.5838699,127.0565831],\n    zoom_start=15\n)\n\nm.save('map.html')\n<\/code><\/pre>\n<p>\uc800\uc7a5\ub41c \uc9c0\ub3c4\ub97c \uc6f9\ube0c\ub77c\uc6b0\uc800\ub85c \uc5f4\uc5b4\ubcf4\uba74 \ub2e4\uc74c\uacfc \uac19\ub2e4.<\/p>\n<p><img decoding=\"async\" src=\"\/workspace\/wp-content\/uploads\/2018\/12\/folium_map_init.png\" alt=\"\" \/><\/p>\n<ul>\n<li>tiles\n<ul>\n<li><a href=\"https:\/\/nbviewer.jupyter.org\/github\/python-visualization\/folium\/blob\/master\/examples\/TilesExample.ipynb\">https:\/\/nbviewer.jupyter.org\/github\/python-visualization\/folium\/blob\/master\/examples\/TilesExample.ipynb<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2>Marker<\/h2>\n<p>Marker \ud074\ub798\uc2a4\ub97c \uc774\uc6a9\ud558\uba74 \ud2b9\uc815 \uc704\uce58\ub97c \uc544\uc774\ucf58\uc73c\ub85c \uac15\uc870\ud560 \uc218 \uc788\ub2e4.<\/p>\n<h3>Icon<\/h3>\n<p>\uae30\ubcf8\uc801\uc73c\ub85c <a href=\"https:\/\/getbootstrap.com\/docs\/3.3\/components\/#glyphicons-glyph\"><code>Glyphicons<\/code><\/a>\uc5d0\uc11c \uc81c\uacf5\ud558\ub294 \uc774\ubbf8\uc9c0\ub97c \uc774\uc6a9\ud574 \uc9c0\ub3c4 \uc704\uc5d0 \ud45c\uc2dc\ud560 \uc218 \uc788\ub2e4.<\/p>\n<pre><code class=\"python\">import folium\n\nm = folium.Map(\n    location=[37.5838699,127.0565831],\n    zoom_start=15\n)\n\nfolium.Marker(\n  location=[37.5838699,127.0565831],\n  popup='University of Seoul',\n  icon=folium.Icon(color='red',icon='star')\n).add_to(m)\n\nm.save('map.html')\n<\/code><\/pre>\n<p><code>popup<\/code> \uc18d\uc131\uc5d0 \ubb38\uc790\uc5f4\uc744 \uc9c0\uc815\ud558\uc5ec \ud074\ub9ad \uc2dc \ud31d\uc5c5\ub418\ub294 \uba54\uc2dc\uc9c0\ub97c \uc124\uc815\ud560 \uc218 \uc788\ub2e4.<\/p>\n<p><img decoding=\"async\" src=\"\/workspace\/wp-content\/uploads\/2018\/12\/folium_map_uos_icon.png\" alt=\"\" \/><\/p>\n<h3>Circle<\/h3>\n<p>CircleMarker \ub97c \uc774\uc6a9\ud574\uc11c \uc6d0\ud615\uc73c\ub85c \ud45c\uc2dc\ud560 \uc218\ub3c4 \uc788\ub2e4.<\/p>\n<pre><code class=\"python\">import folium\n\nm = folium.Map(\n    location=[37.5838699,127.0565831],\n    zoom_start=15\n)\n\nfolium.CircleMarker(\n  [37.5838699,127.0565831],\n  radius=100,\n  color='#ffffgg',\n  fill_color='#fffggg',\n  popup='University of Seoul'\n).add_to(m)\n\nm.save('map.html')\n<\/code><\/pre>\n<p><img decoding=\"async\" src=\"\/workspace\/wp-content\/uploads\/2018\/12\/folium_map_uos_circle.png\" alt=\"\" \/><\/p>\n<h3>MarkerCluster<\/h3>\n<p>MarkerCluster \ub97c \uc774\uc6a9\ud558\uba74 \uac00\uae4c\uc6b4 \uac70\ub9ac\uc758 Marker\ub4e4\uc744 \uad70\uc9d1\uc2dc\ucf1c\uc11c \ud574\ub2f9 \uac74\uc218\ub97c \ud45c\ud604\ud574\uc900\ub2e4. \ud2b9\uc815 \ud074\ub7ec\uc2a4\ud130\ub97c \ud074\ub9ad\ud558\uba74 \ud574\ub2f9 \uc704\uce58\ub97c \ud655\ub300\uc2dc\ucf1c \uc790\uc138\ud788 \ub4e4\uc5ec\ub2e4\ubcfc \uc218 \uc788\ub2e4.<\/p>\n<p>\uc544\ub798\uc640 \uac19\uc774 \ub85c\ub610 777\ud68c\ucc28 1\ub4f1 \ub2f9\ucca8 \uc815\ubcf4\ub97c \ubc14\ud0d5\uc73c\ub85c MarkerCluster \ub97c \uc0dd\uc131\ud560 \uc218 \uc788\ub2e4.<\/p>\n<pre><code class=\"python\">import folium\n\nm = folium.Map(\n  location=[36.5053542,127.7043419],\n  zoom_start=8\n)\n\nlotto = [\n  {\"store\":\"\ub2f4\ubc30\",\"loc\":[37.62585944357624,127.01847823823798]},   {\"store\":\"\ud654\uace1\ubcf8\ub9c8\ud2b8\",\"loc\":[37.54248103738589,126.84414659211494]},   {\"store\":\"\uc6a9\uafc8\ub3fc\uc9c0\uafc8\",\"loc\":[37.5447438346992,126.95223862043447]},   {\"store\":\"\uc77c\uc774\uc624\ub9c8\ucf13\",\"loc\":[37.47943673430032,126.98346178441342]},   {\"store\":\"\uc5ec\uba85\uc288\ud37c\ub9c8\ucf13\",\"loc\":[37.61432815661055,127.0415039221072]},   {\"store\":\"5\uac00\ub85c\ub610\ub808\ub4dc\ud0d1\",\"loc\":[37.570756251987575,127.00235901546226]},   {\"store\":\"\ubcf5\uad8c\uc138\uc0c1\",\"loc\":[35.91885025656432,128.55034430109828]},   {\"store\":\"\ubcf5\uad8c\uc804\ubb38\uc810\",\"loc\":[37.50384327747725,126.71513104367074]},   {\"store\":\"\uc778\ud604\ub3d9\uc9c0\ud558\uac00\ud310\",\"loc\":[37.47627910055104,126.63147671205866]},   {\"store\":\"CU(\uad11\uc8fc\uc11c\ub3d9\uc810)\",\"loc\":[35.14814807640179,126.90555219336346]},   {\"store\":\"\uc9c0\uc0b0\ub85c\ub610\ubc29\",\"loc\":[35.148338888178,126.93203920504686]},   {\"store\":\"\ucc9c\uc0ac\ub85c\ub610\ubc29\",\"loc\":[37.63618838692431,127.21107884503209]},   {\"store\":\"\uc624\ub80c\uc9c0\ud1b5\uc2e0\",\"loc\":[37.42889361993242,127.10232604117991]},   {\"store\":\"\uc5ec\uc218\ubcf5\uad8c\ubc29\",\"loc\":[37.418353650942116,127.12640523182601]},   {\"store\":\"\ub458\ub9ac\ubcf5\uad8c\ubc29\",\"loc\":[37.34532813934063,126.73627994929885]},   {\"store\":\"\uae08\uc13124\uc2dc\ud3b8\uc758\uc810\",\"loc\":[37.84401249737699,127.06236893072152]},   {\"store\":\"GS25(\uccad\uc8fc\uc8fc\uc740\uc810)\",\"loc\":[36.60987111587086,127.49134026856717]},   {\"store\":\"\uc7a5\ubbf8\uc288\ud37c\",\"loc\":[36.276304155315685,126.90940713047799]},   {\"store\":\"\uc7a5\ubbf8\uc288\ud37c\",\"loc\":[36.276304155315685,126.90940713047799]},   {\"store\":\"\uc544\uc77424(\uc218\uc1a1\uc810)\",\"loc\":[35.970108052787594,126.7189421934312]},   {\"store\":\"\ud0d1\ub85c\ub610\",\"loc\":[34.87844231008963,128.62803523643754]} \n]\n\nfrom folium.plugins import MarkerCluster\nmarker_cluster = MarkerCluster().add_to(m)\n\nfor i in range(len(lotto)):\n  folium.Marker(\n    location=lotto[i]['loc'],\n    popup=lotto[i]['store'],\n    icon=folium.Icon(color='red',icon='ok'),\n  ).add_to(marker_cluster)\n\nm.save('map.html')\n<\/code><\/pre>\n<p>\uc544\ub798\uc640 \uac19\uc774 \uac00\uae4c\uc774 \uc788\ub294 \ub9c8\ucee4\ub4e4\ub07c\ub9ac \ubb36\uc74c\uc73c\ub85c \ud45c\ud604\ub418\uace0<\/p>\n<p><img decoding=\"async\" src=\"\/workspace\/wp-content\/uploads\/2018\/12\/folium_map_lotto_cluster.png\" alt=\"\" \/><\/p>\n<p>\uc11c\uc6b8 \uc8fc\ubcc0\uc758 \ud074\ub7ec\uc2a4\ud130\ub97c \ud074\ub9ad\ud558\uba74 \uc544\ub798\uc640 \uac19\uc774 \ud655\ub300\ub41c\ub2e4.<\/p>\n<p><img decoding=\"async\" src=\"\/workspace\/wp-content\/uploads\/2018\/12\/folium_map_lotto_cluster_click.png\" alt=\"\" \/><\/p>\n<h2>GeoJson<\/h2>\n<p>geoJson\uc744 \ud65c\uc6a9\ud558\uc5ec \ub2e4\uac01\ud615\uc744 \ud45c\ud604\ud560 \uc218 \uc788\ub2e4. \ud589\uc815\uad6c\uc5ed\uac19\uc740 \uacbd\uacc4\uc120\uc774\ub098 \uacbd\ub85c\ub97c \ud45c\ud604\ud558\ub294\ub370 \ud6a8\uc728\uc801\uc774\ub2e4.<\/p>\n<p>\uc11c\uc6b8\uc2dc \ud589\uc815\uad6c\uc5ed \ub370\uc774\ud130(<a href=\"https:\/\/raw.githubusercontent.com\/southkorea\/seoul-maps\/master\/juso\/2015\/json\/seoul_municipalities_geo.json\">seoul_muncipalities_geo.json<\/a>)\ub97c \uc774\uc6a9\ud574\uc11c \uc544\ub798\uc640 \uac19\uc774 \uc2dc\uac01\ud654\ud560 \uc218 \uc788\ub2e4.<\/p>\n<pre><code class=\"python\">import folium\n\nm = folium.Map(\n    location=[37.5838699,127.0565831],\n    zoom_start=10\n)\n\nimport json\nwith open('.\/seoul_municipalities_geo.json',mode='rt',encoding='utf-8') as f:\n    geo = json.loads(f.read())\n    f.close()\n\nfolium.GeoJson(\n    geo,\n    name='seoul_municipalities'\n).add_to(m)\n\nm.save('map.html')\n<\/code><\/pre>\n<p><img decoding=\"async\" src=\"\/workspace\/wp-content\/uploads\/2018\/12\/folium_map_geo_json.png\" alt=\"\" \/><\/p>\n<h2>\uae30\ud0c0<\/h2>\n<p><code>folium.Map().get_root().render()<\/code> \ub97c \uc774\uc6a9\ud558\uba74 html \ud30c\uc77c\uc744 \uc800\uc7a5\ud558\ub294\uac70 \ub9d0\uace0 html \uc18c\uc2a4\ub97c \ub9ac\ud134\ud560 \uc218 \uc788\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Folium Folium\uc740 Leaflet.js\ub97c \uc774\uc6a9\ud558\uc5ec \uc704\uce58 \uc88c\ud45c\uacc4 \uac12\uc744 \uc9c0\ub3c4 \uc704\uc5d0 \uc2dc\uac01\ud654\ud560 \uc218 \uc788\ub2e4. Map \uba3c\uc800 Map \ud074\ub798\uc2a4\ub97c \ub85c\ub4dc\ud574\uc11c \ubc94\uc704\ub97c \uc9c0\uc815\ud574\uc900\ub2e4. location \uc18d\uc131\uc73c\ub85c \uc8fc\uc2dc\ud558\uace0\uc790 \ud558\ub294 \uc9c0\ub3c4\uc758 \uc815\uc911\uc559 \uc88c\ud45c\ub97c \uc124\uc815\ud558\uace0, zoom_start \uc18d\uc131\uc73c\ub85c \ubc30\uc728\uc744 \uc124\uc815\ud55c\ub2e4. \ubcf4\uace0\uc790 \ud558\ub294 \uc704\uce58\uc758 \uc88c\ud45c\uacc4 \uac12\uc744 \uc5bb\uc5b4\ub0b4\ub294 \uac00\uc7a5 \ub2e8\uc21c\ud55c \ubc29\ubc95\uc740 Google \uc9c0\ub3c4\ub97c \uc774\uc6a9\ud558\ub294 \ubc29\ubc95\uc774\ub2e4. \uc544\ub798\uc640 \uac19\uc774 \uad6c\uae00 \uc9c0\ub3c4\uc5d0\uc11c \uac80\uc0c9\uc744 \ud558\uba74 \uc0c1\ub2e8 \uc8fc\uc18c\ucc3d\uc5d0 \ud574\ub2f9 \uc704\uce58\uc758 \ub300\ub7b5\uc801\uc778 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[121,113,34],"class_list":["post-650","post","type-post","status-publish","format-standard","hentry","category-python","tag-folium","tag-geo","tag-python"],"_links":{"self":[{"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/posts\/650","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/comments?post=650"}],"version-history":[{"count":6,"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/posts\/650\/revisions"}],"predecessor-version":[{"id":1371,"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/posts\/650\/revisions\/1371"}],"wp:attachment":[{"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/media?parent=650"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/categories?post=650"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/oboki.net\/workspace\/wp-json\/wp\/v2\/tags?post=650"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}