python百度地图标注,Python+百度地图实现地址多点标注--用上BMap了

本文介绍了如何使用Python结合百度地图API和pyecharts的BMap模块实现地址多点标注。通过注册百度开放平台获取ak,利用pyecharts初始化BMap,添加坐标并生成HTML。在过程中,作者分享了遇到的难点,如添加点、设置地图状态、显示标签等问题,并提供了详细的解决方法。最后,作者提到了使地图自适应大小的挑战,但尚未找到解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前用Python+百度地图api实现了多点标注,偶然的机会又看到还有pyecharts这个东东,里面的BMap可以直接生成一个html,真香(试过BMap就知道pyecharts里面的Map或者Geo也不香了),于是趁过年没事赶紧给我的多点标注程序升级到BMap。

要用BMap,首先涉及到百度开放平台的ak,然后导入pyecharts。初学的教程看这篇,从注册ak(比如注意填写*,还有类型选网页,都有讲到,照抄不会错),到导入pyecharts,再到初始化BMap,添加点,生成html,讲得详细又全面。

细节不清楚的,可以参考pyecharts的官方说明。

里面有几点不好上手,需要拿出来说一下:

1、添加点:add_coordinate(‘第一个参数是地点名’, ‘第二个参数是精度’, ‘第三个参数是纬度’),在有经纬度的情况下,写个循环就搞定了。

除此以外还可以用Json格式传值,详情参加官方说明,有示例。

2、初始化地图的那个add函数,里面有个data_pair列表:[('地点名(跟加坐标那个地点名一致)','数字或文字'),('……','……'),('……','……')]

因为BMap可以显示一个地点的状态或者数值,可以理解为这个data_pair是以相同地点名为索引,保存这个值或状态的。可能其他案例中都是保存数值的居多,比如做新冠肺炎数据统计,显示当地的确诊人数,除了存数值还可以存字符串。

3、set_series_opts里面&

Python Flask中使用百度地图可以使用百度地图API,通过引入JavaScript文件来实现多图层标点。下面是一个简单的实例: 1. 首先,在你的Flask项目中创建一个静态文件夹,比如“static”,并在其中创建一个“js”文件夹,用于存放百度地图API的JavaScript文件。 2. 在“js”文件夹下,下载并保存百度地图API的JavaScript文件。可以从[官方网站](https://lbsyun.baidu.com/index.php?title=jspopular3.0/guide/getscript)下载文件,选择“地图API” → “JavaScript API” → “下载”即可。 3. 在Flask的路由中,编写返回HTML页面的函数,并在其中引入百度地图API的JavaScript文件。 ```python from flask import Flask, render_template app = Flask(__name__) @app.route('/') def index(): return render_template('index.html') if __name__ == '__main__': app.run() ``` 4. 创建一个模板文件“index.html”,在其中添加HTML和JavaScript代码,以实现多图层标点。 ```HTML <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>百度地图</title> <style type="text/css"> #map { height: 500px; width: 100%; } </style> </head> <body> <div id="map"></div> <script type="text/javascript" src="{{ url_for('static', filename='js/Bmap.js') }}"></script> <script type="text/javascript"> // 创建地图实例 var map = new BMap.Map("map"); // 初始化地图,设置中心点坐标和地图级别 map.centerAndZoom(new BMap.Point(116.404, 39.915), 11); // 添加地图类型控件 map.addControl(new BMap.MapTypeControl()); // 设置地图显示的城市 此项是必须设置的 map.setCurrentCity("北京"); // 开启鼠标滚轮缩放 map.enableScrollWheelZoom(true); // 创建标注点数组 var markers = [ { point: new BMap.Point(116.404, 39.915), title: "北京市" }, { point: new BMap.Point(121.47, 31.23), title: "上海市" }, { point: new BMap.Point(113.27, 23.13), title: "广州市" } ]; // 循环标注点数组,创建标注点并添加到地图上 for (var i = 0; i < markers.length; i++) { var marker = new BMap.Marker(markers[i].point); marker.setTitle(markers[i].title); map.addOverlay(marker); } </script> </body> </html> ``` 5. 运行Flask应用程序,并在浏览器中访问“http://localhost:5000”(假设你的Flask应用程序在本地运行,并监听端口5000)。 ```python if __name__ == '__main__': app.run() ``` 通过上述步骤,就可以在Flask应用程序中使用百度地图API实现多图层标点。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值