[毕设记录]streamlit调用folium地图点击后返回坐标

用这个demo来收集一些数据

接上一篇,用百度地图那个js传输数据太头疼了
参考了很多文章:Intro to custom components用Python开发web应用——Streamlit框架解析:3 – 组件Python调用百度地图API实现路径规划提取真实距离、时间使用Python调用百度地图的API在地图上添加标记 and so on

但还是没解决,遂弃坑转战folium

import streamlit as st
import folium
from streamlit_folium import st_folium

# 创建 Streamlit 应用
def main():
    st.title('Click on the map to get coordinates')

    # 创建 Folium 地图
    folium_map = folium.Map(location=[37.539, 122.087], zoom_start=16)

    # 添加点击事件
    folium_map.add_child(folium.LatLngPopup())

    # 在 Streamlit 中显示 Folium 地图
    output = st_folium(folium_map, width=700, height=500)

    # 如果有点击事件,显示经纬度
    if output['last_clicked']:
        st.write('点击位置的经纬度为:')
        st.write(f"纬度: {output['last_clicked']['lat']}, 经度: {output['last_clicked']['lng']}")

if __name__ == '__main__':
    main()

在这里插入图片描述
在这里插入图片描述

本篇参考:


噢对了,今天又犯了一个以前犯过的错误…浪费了好多时间

在这里插入图片描述
在这里插入图片描述

  • 23
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Streamlit是一个用于构建数据应用程序的Python库,而Folium是一个用于在Python中创建互动地图的库。Folium支持多种地图提供商,包括Google Maps,OpenStreetMap和Mapbox。但是,Folium不支持高德地图,因此需要使用其他库来实现在Streamlit中使用高德地图。 一个可能的解决方案是使用amap-webapi-python库。该库提供了一个Python客户端,用于与高德地图Web API进行交互。使用amap-webapi-pythonFolium,您可以在Streamlit中创建基于高德地图的互动地图。 以下是使用StreamlitFolium和amap-webapi-python创建高德地图的代码示例: ```python import streamlit as st import folium from amap_webapi_python import AMapWebAPI # 初始化高德地图Web API客户端 amap = AMapWebAPI(key='your_amap_web_api_key') # 获取地点的经纬度坐标 location = amap.get_location('北京市') # 创建Folium地图 m = folium.Map(location=[location['lat'], location['lng']], zoom_start=12) # 添加标记 folium.Marker(location=[location['lat'], location['lng']], popup='北京市').add_to(m) # 在Streamlit中显示地图 st.write(m._repr_html_(), unsafe_allow_html=True) ``` 在上面的示例中,我们首先使用amap-webapi-python获取北京市的经纬度坐标。然后,我们在Folium中创建一个地图,并将标记添加到该地图上。最后,我们使用Streamlit在应用程序中显示地图。 请注意,为了在Streamlit中显示地图,我们需要使用Folium地图对象的_repr_html_()方法,并将其传递给Streamlit的write()函数。我们还需要设置unsafe_allow_html=True,以便Streamlit允许HTML代码的呈现。 当然,您可以使用amap-webapi-python进行更多高德地图Web API的操作,并使用FoliumStreamlit中显示结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值