Я пытаюсь охватить регион ячейками Google s2 и показать их на картах с помощью фолиума:
1) Область покрытия
def return_polygons(covering):
geoms = []
for cellid in covering:
new_cell = Cell(cellid)
vertices = []
for i in range(0, 4):
vertex = new_cell.get_vertex(i)
latlng = LatLng.from_point(vertex)
vertices = vertices + [[latlng.lat().degrees, latlng.lng().degrees]]
geo = Polygon(vertices)
geoms.append(geo)
return geoms
polygons = return_polygons(covering)
2) Получите:
geopandas.GeoSeries(polygons[0]).to_json()
'{"type": "FeatureCollection", "features": [{"id": "0", "type": "Feature", "properties": {}, "geometry": {"type" : "Полигон", "координаты": [[[51.25717221746951, 29.99451832039972], [51.265801691038455, 30.004725462921563], [51.270012753116234, 29.9897878000882574], [51.2613809628, 291) 295 291 295 291 295 951 7957951485295951451951451451451455295951451455295291451451455295951451455295951455295951951951951951951951951951951451951958951482958951485951485951482951959291481959372959372959372959372255959295255959372959379959372-2957-95-95-95-37-95-95-95-95-95-95-95-95-95-95-95 , 29.97957594186747, 51.270012753116234, 30.004725462921563]}], "bbox": [51.25717221746951, 29.97957594186747, 51.270012753116234, 30.004725462921563]} '
3) Показать его на карте, но оно ничего не показывает:
m = folium.Map([55.75, 37.61], zoom_start=10)
style_function = lambda x: {'weight': 1, 'fillColor':'#eea500'}
folium.GeoJson(geopandas.GeoSeries(polygons[0]).to_json(),
style_function=style_function).add_to(m)
folium.LayerControl().add_to(m)
m