{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# H3 Python API" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from h3 import h3\n", "import folium\n", "\n", "def visualize_hexagons(hexagons, color=\"red\", folium_map=None):\n", " \"\"\"\n", " hexagons is a list of hexcluster. Each hexcluster is a list of hexagons. \n", " eg. [[hex1, hex2], [hex3, hex4]]\n", " \"\"\"\n", " polylines = []\n", " lat = []\n", " lng = []\n", " for hex in hexagons:\n", " polygons = h3.h3_set_to_multi_polygon([hex], geo_json=False)\n", " # flatten polygons into loops.\n", " outlines = [loop for polygon in polygons for loop in polygon]\n", " polyline = [outline + [outline[0]] for outline in outlines][0]\n", " lat.extend(map(lambda v:v[0],polyline))\n", " lng.extend(map(lambda v:v[1],polyline))\n", " polylines.append(polyline)\n", " \n", " if folium_map is None:\n", " m = folium.Map(location=[sum(lat)/len(lat), sum(lng)/len(lng)], zoom_start=13, tiles='cartodbpositron')\n", " else:\n", " m = folium_map\n", " for polyline in polylines:\n", " my_PolyLine=folium.PolyLine(locations=polyline,weight=8,color=color)\n", " m.add_child(my_PolyLine)\n", " return m\n", " \n", "\n", "def visualize_polygon(polyline, color):\n", " polyline.append(polyline[0])\n", " lat = [p[0] for p in polyline]\n", " lng = [p[1] for p in polyline]\n", " m = folium.Map(location=[sum(lat)/len(lat), sum(lng)/len(lng)], zoom_start=13, tiles='cartodbpositron')\n", " my_PolyLine=folium.PolyLine(locations=polyline,weight=8,color=color)\n", " m.add_child(my_PolyLine)\n", " return m" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/html": [ "