Example:
zip file content:
Code:
import streamlit as st
from geopandas import gpd
import os
import numpy as np
from numpy import *
import folium
import pygeoj
import leafmap.foliumap as leafmap
from streamlit_folium import folium_static
st.set_page_config(layout="wide")
file = st.file_uploader("请上传文件", type=["zip"])
if file is not None:
head, sep, tail = str(file.name).partition(".")
if tail == "zip":
a = gpd.read_file(file, driver="Mapinfo File")
b = a["geometry"]
#st.write(b.area)显示TAB面积
b.to_file('series.geojson', driver='GeoJSON')
testfile = pygeoj.load("series.geojson")
lon = []
lat = []
for feature in testfile:
for i in range(len(feature.geometry.coordinates[0])):
lon.append(feature.geometry.coordinates[0][i][0])
lat.append(feature.geometry.coordinates[0][i][1])
col1, col2, col3, col4, col5 = st.columns([0.05,1,0.2,0.8,0.45])
with col1:
st.empty()
with col2:
basemaps = {
'Esri Satellite': folium.TileLayer(
tiles = 'https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}',
attr = 'Esri',
name = 'Esri Satellite',
overlay = True,
control = True
)
}
my_map = leafmap.Map(location=[mean(lat), mean(lon)], zoom_start=5)
basemaps['Esri Satellite'].add_to(my_map)
folium.GeoJson(open('series.geojson').read()).add_to(my_map)
folium_static(my_map)
with col3:
st.empty()
with col4:
my_map = leafmap.Map(location=[mean(lat), mean(lon)], zoom_start=5)
folium.GeoJson(open('series.geojson').read()).add_to(my_map)
folium_static(my_map)
with col5:
st.empty()