python3使用folium模块做一个某些地点附近1.5公里商户的地图可视化界面

1 篇文章 0 订阅
1 篇文章 0 订阅

python3使用folium模块做一个某些地点附近1.5公里商户的地图可视化界面

获取地点的经纬度

将地点地址写入到TXT文件里
具体名称不宜透露,请谅解

代码创建一个CSV文件用来存储程序获得的地点名称与经纬度。
在这里插入图片描述
从中发现每一行之后会空出一行,这个bug无关紧要(这个问题已经解决啦,在open里加个newline=""就好啦!),因为之后用来写进代码里的数据都是放在TXT中的,因为读取表格可能会出现很多其他问题,用TXT就方便很多了。
下面是主函数代码:

if __name__ == '__main__':
    file_csv = open('./经纬度.csv', 'w+', encoding='utf-8')
    writer = csv.writer(file_csv)
    writer.writerow(["area", "lat", "lng"])  # 列名
    for line in open("./hbwd.txt", encoding='utf8'):
        print(line)
        #得到经纬度
        url=get_url(line)
        json_data=get_json(url)
        lnglat=get_lnglat(json_data)

get_url:将地址转换成网络链接。
get_json:获取返回的json文件。
get_lnglat:解析json文件获得经纬度。

利用高德地图按上步经纬度做周边搜索

前部分与前面一样建立CSV文件与TXT(内容为连同地址名称一起把获取到的经纬度放到里面以空格隔开)
建立所要获取商户的类型如:保险、银行等
将类型代入周边检索网络链接中,其他步骤与上部一样。
在这里插入图片描述

利用folium建立地图

同样的建立TXT文件里面放入经纬度和其他要在地图上展示的内容。

if __name__ == '__main__':
	f = codecs.open('./hbwd_jwd.txt', mode='r', encoding='utf-8')
	    line = f.readline()
	    list4 = []
	    while line:
	        x = line.split()
	        all = x[0:5]
	        list4.append((all))
	        line = f.readline()
	    f.close()
	 f1 = codecs.open('sf_hp.txt', mode='r', encoding='utf-8')
	    line1 = f1.readline()
	    list1 = []
	    while line1:
	        a1 = line1.split()
	        all1 = a1[0:4]
	        list1.append((all1))
	        line1 = f1.readline()
	    f1.close()
	
	    #商户
	    f2 = codecs.open('./hb_sh.txt', mode='r', encoding='utf-8')
	    line2 = f2.readline()
	    list2 = []
	    while line2:
	        a2 = line2.split()
	        all2 = a2[0:5]
	        list2.append((all2))
	        line2 = f2.readline()
	    f2.close()
	 draw_map(list4,list1,list2)

这是展示结果:
在这里插入图片描述
上图的蓝色标记是我自己做的图片,可以在代码中规定他的大小,绿色标记是程序内部的图案,鼠标点击图标都可以生成一个信息框用来展示,上面的红线是每个区与每个区之间做的划分,也是用代码生成的,地图的底图是可以更换的,我这里用的是高德地图的,因为python自带的地图信息不全,因为项目需要更换了地图。
注:因为使用不同的地图api接口会生成不同的经纬度,用在不同的地图底板上会出现明显偏移,我这里使用了墨卡托坐标转换,下面是不同方法对应的地图。

######GCJ-02:高德、搜搜、51地图MapABC地图,谷歌中国地图
######WGS-84:国外的Google地图、OSM
######BD-09:百度坐标、图吧坐标、搜狗坐标
如果大家有什么程序上的问题或想法,欢迎大家来call我,本人QQ:2781057557
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值