def add_sector_information(base_map, geo_data): if geo_data is not None: # Have real sectors feature_group = FeatureGroup(name='Sector Information', control=True, show=True) gdf_cols = ['CircleCode', 'GeoName', 'geometry'] geo_data_sectors = geo_data[geo_data['type'] == 'sector'] gdf = gpd.GeoDataFrame(geo_data_sectors[gdf_cols], crs="EPSG:4326") folium.GeoJson(gdf).add_to(feature_group) add_sector_labels(feature_group, geo_data) feature_group.add_to(base_map)
def draw_circle_boundary(base_map, center_pt, circle_radius): # Draw the circle # marker_cluster = MarkerCluster(control=False) # marker_cluster.add_to(base_map) feature_group = FeatureGroup(name='circle boundary', control=True, show=True) circle_boundary = folium.vector_layers.Circle(center_pt, circle_radius, stroke=5, color='Magenta', opacity=0.5, dash_array='4 1') circle_boundary.add_to(feature_group) feature_group.add_to(base_map) return circle_boundary
def seoul_style(feature): style = {'fillColor': '#00000000'} return style def cluster_style(feature): style = {'color': "red", "fillColor": "red", "opacity": 0.9} return style def schoolzone_style(feature): style = {'color': "green", 'fillColor': "#D68910", "opacity": 0.6} return style m = folium.Map(location=[37.54, 126.98], zoom_start=12) folium.features.GeoJson(seoul, seoul_style, name="서울시 경계").add_to(m) folium.features.GeoJson(acdnt_cls).add_to(featuregroup1) folium.features.GeoJson(cluster, cluster_style).add_to(featuregroup2) folium.features.GeoJson(schoolzone, schoolzone_style).add_to(featuregroup3) featuregroup1.add_to(m) featuregroup2.add_to(m) featuregroup3.add_to(m) LayerControl().add_to(m) plugins.ScrollZoomToggler().add_to(m) m.save("docs/cluster.html")