
在关于我页面,有个个人足迹的图片。
这个图片最早是通过google maps的足迹地图来生成的。

然而,好景不常,这个东西现在也下架了,今年又去了很多地方,但是这个图片要更新就变得非常麻烦,总不能用ps往上打点吧?这也有点太智障了。于是想着通过地图来实现这个功能,高德或者百度,上午试了一下高德,发现免费的静态地图,最多只能添加10个marker,这尼玛是出来恶心姐姐我的吗?就离谱。
下午看了下百度的要好很多,于是下午折腾了一下,把足迹点,通过代码拼成url直接添加图片就能显示了,这个还是不错的,最终效果如下:

其中粉色点点是最起码呆过一段时间的,黄色的点点是途径点。
处理的代码也比较简单,不过最开始用的高德,于是gps坐标获取用的高德的api,需要提供高德的key。
静态地图用的百度的,所以又需要百度地图的ak,这个ak必须用服务端的ak哈。全部代码如下,没做配置功能,需要的自己改改代码就行了(运行前 pip install requests 依赖库):
def amap_geodecode(addr):
'key': '高德的key', # 高德地图开放平台申请的key
url = 'https://restapi.amap.com/v3/geocode/geo?' # 高德地图API接口
req = requests.get(url, para)
m = req['geocodes'][0]['location']
if __name__ == '__main__':
url_bast = 'https://api.map.baidu.com/staticimage/v2?ak=<百度的ak>&width=900&height=800&zoom=5¢er=103.8319522831,36.0615585627&markerStyles=0xFF0000|0x808000&markers='
city_list = ['北京','上海','深圳', '东营','连云港','锡林郭勒盟','赤峰','承德','济南','泰安','枣庄','昆明','长沙','湘潭','株洲','日照','威海','烟台','深圳','广州','西安','临沂','潍坊','青岛','大理','清迈','海口','三亚','蜈支洲岛','清莱']
pass_city_list = ['天津','德州','景德镇','衢州','佛山','无锡']
visited_marker_style_list = []
visited_marker_style_list.append('m,V,0xFF69B4')
visited_marker_style_list.append('s,P,0xFFFF00')
print('|'.join(cord_list))
print(url_bast + '&markerStyles=' + '|'.join(visited_marker_style_list) + '&markers=' + '|'.join(cord_list))
import time
import requests
def amap_geodecode(addr):
try:
para = {
'key': '高德的key', # 高德地图开放平台申请的key
'address': addr # 传入地址参数
}
url = 'https://restapi.amap.com/v3/geocode/geo?' # 高德地图API接口
req = requests.get(url, para)
req = req.json()
print('-' * 30)
print(req)
m = req['geocodes'][0]['location']
print(addr)
print(m)
except:
return None
return m
# 按装订区域中的绿色按钮以运行脚本。
if __name__ == '__main__':
url_bast = 'https://api.map.baidu.com/staticimage/v2?ak=<百度的ak>&width=900&height=800&zoom=5¢er=103.8319522831,36.0615585627&markerStyles=0xFF0000|0x808000&markers='
city_list = ['北京','上海','深圳', '东营','连云港','锡林郭勒盟','赤峰','承德','济南','泰安','枣庄','昆明','长沙','湘潭','株洲','日照','威海','烟台','深圳','广州','西安','临沂','潍坊','青岛','大理','清迈','海口','三亚','蜈支洲岛','清莱']
pass_city_list = ['天津','德州','景德镇','衢州','佛山','无锡']
print('添加点亮城市:')
cord_list = []
visited_marker_style_list = []
for c in city_list:
m = amap_geodecode(c)
if m:
v = '' + m
cord_list.append(v)
visited_marker_style_list.append('m,V,0xFF69B4')
time.sleep(2)
print('添加途径城市:')
for c in pass_city_list:
m = amap_geodecode(c)
if m:
v = '' + m
cord_list.append(v)
visited_marker_style_list.append('s,P,0xFFFF00')
time.sleep(2)
print(cord_list)
print('|'.join(cord_list))
print('最终url:')
print(url_bast + '&markerStyles=' + '|'.join(visited_marker_style_list) + '&markers=' + '|'.join(cord_list))
import time
import requests
def amap_geodecode(addr):
try:
para = {
'key': '高德的key', # 高德地图开放平台申请的key
'address': addr # 传入地址参数
}
url = 'https://restapi.amap.com/v3/geocode/geo?' # 高德地图API接口
req = requests.get(url, para)
req = req.json()
print('-' * 30)
print(req)
m = req['geocodes'][0]['location']
print(addr)
print(m)
except:
return None
return m
# 按装订区域中的绿色按钮以运行脚本。
if __name__ == '__main__':
url_bast = 'https://api.map.baidu.com/staticimage/v2?ak=<百度的ak>&width=900&height=800&zoom=5¢er=103.8319522831,36.0615585627&markerStyles=0xFF0000|0x808000&markers='
city_list = ['北京','上海','深圳', '东营','连云港','锡林郭勒盟','赤峰','承德','济南','泰安','枣庄','昆明','长沙','湘潭','株洲','日照','威海','烟台','深圳','广州','西安','临沂','潍坊','青岛','大理','清迈','海口','三亚','蜈支洲岛','清莱']
pass_city_list = ['天津','德州','景德镇','衢州','佛山','无锡']
print('添加点亮城市:')
cord_list = []
visited_marker_style_list = []
for c in city_list:
m = amap_geodecode(c)
if m:
v = '' + m
cord_list.append(v)
visited_marker_style_list.append('m,V,0xFF69B4')
time.sleep(2)
print('添加途径城市:')
for c in pass_city_list:
m = amap_geodecode(c)
if m:
v = '' + m
cord_list.append(v)
visited_marker_style_list.append('s,P,0xFFFF00')
time.sleep(2)
print(cord_list)
print('|'.join(cord_list))
print('最终url:')
print(url_bast + '&markerStyles=' + '|'.join(visited_marker_style_list) + '&markers=' + '|'.join(cord_list))
别问为啥这么搞,问就是懒得改了,哈哈哈。添加图片直接使用最后的url即可。以后足迹点多了之后,修改list重新生成url即可。
唯一的缺点,不支持国外的坐标,我的泰国的坐标标不上,不过也无所谓了,反正就一个泰国而已。
更多定制化功能,参考百度地图的相关开发文档:
https://lbsyun.baidu.com/faq/api?title=static/prepare
https://lbsyun.baidu.com/faq/api?title=static/markerStatic
https://lbsyun.baidu.com/faq/api?title=static/heightStatic
obaby
爱好广泛的火星小妖精,有问题欢迎留言交流啊~(✪ω✪)
爬虫类工具请先点击这个链接查看用法https://oba.by/?p=12240
闺蜜圈APP下载 https://guimiquan.cn
60 comments
见识太少羞于展示
额。不至于,可以多出去玩玩啊。
百度的ak有限额么?我那个人工智能图片识别用完额度了,拍天空用不了了
貌似是有的
这个好,我得来一发
简单粗暴的办法,哈哈哈
滴,知识+1
滴,识别错误
太棒了!
嗯嗯 这个比较简单
基本上都在周边玩耍,待我闲了周游全国也搞个这个,很有趣
全国蹦跶吧 嘎嘎
我的想法是这样的:我的文章里设置写文章所在地(虽然不准确,之前的文章可以手动写进去),然后这个地图可以获取文章的的所在地,在地图上显示出来,那就好了。
其次呢,百度的产品,现在对它失去信心了。目前就用它的网站统计。
单独的点其实也不是特别必要吧。
毕竟也不会导航过去。
只显示图片这个创意很好
嗯嗯 就是个图片 简单粗暴 哈哈哈
我的about页面也搞了一个,手动涂色的。以县级行政区为单位比以地级市为单位更加科学
的确,其实类似高德app那种足迹是最准确的,不过这种就大范围打点,也行吧。毕竟不是整个县城都跑遍了。
哈哈。太勤快了。我是真得懒。
在公司有点时间就折腾下
原来如此,还可以这样记录一下自己足迹,学到了,不过对于阿宅,这个点应该比较集中吧哈哈!
来个热力图
我去过的地方真不多
我也是周边居多
原来这玩意还有api呀,我记得高德手机上好像是有个足迹来着
是的 但是不能导出分享
看看这个,再看看我的,顿时觉得我的不香了。
主打简单粗暴
我感觉这玩意 玩玩体验一下可以 要是长期定位并记录自己的位置信息 不太安全 哈哈哈
问题也不大 高德的默认是只能自己看
这个定位就是城市标注
只要安全 怎么玩都可以
没来过我大江西啊 可惜了
找机会去 好多地方都没去过呢
这个功能我看了好久想整但后来放弃了,技术不到另外要付钱哈。现在想折腾的事个人博客圈他们那个运动数据页面,几次看几次没搞懂哈
那个页面数据多数是假的 不是实时更新的
握草,好强啊
啊?
要是有地级市地图就好了,那样我的点点才会多一点,哈哈
可以定义中心坐标和缩放比例就可以显示自定义区域啦
没出过江浙沪
赶紧出,其实我的活动范围也是省内居多。
这个可以有!
正好我从网上也搞了一个,供你参考,最好能优化下哈哈哈
https://pwsz.com/hobby/4108.html
展示:https://pwsz.com/travel
效果比我弄得这个要高级不少。
马上博友圈是不是就得兴起足迹热了。
不至于,不至于,这个东西很多人都已经弄过了。我这是属于更新,
厉害呀,都走遍大半个祖国的美好山河,看来回忆也是满满
还不够过,找机会还要继续,哈哈哈
灵妹妹周末也偷偷摸摸的更新,【关于我】没放《我的写真》实属差评。
哇 去过的地方不少
还行,还行
这个很好玩,可惜我去的地方太少了!!!
嗯嗯,有时间还是喜欢到处溜达。
去过不少地方啊
换了avatar啦,不错呀
是的,不过好多头像代理服务,更新头像太慢了。
可以可以,之前看好多人弄的,自己又懒得弄。哈哈哈
这就高级啦
目前只去过2个城市:北京(2015年暑假去的)和厦门(2016年暑假去的)。之后如果有空的话,想去成都看大熊猫。
成都是个不错的地方,我也想去。