创建一个我的足迹地图

关于我页面,有个个人足迹的图片。

这个图片最早是通过google maps的足迹地图来生成的。

谷歌地图

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

下午看了下百度的要好很多,于是下午折腾了一下,把足迹点,通过代码拼成url直接添加图片就能显示了,这个还是不错的,最终效果如下:

我的足迹

其中粉色点点是最起码呆过一段时间的,黄色的点点是途径点。

处理的代码也比较简单,不过最开始用的高德,于是gps坐标获取用的高德的api,需要提供高德的key。

静态地图用的百度的,所以又需要百度地图的ak,这个ak必须用服务端的ak哈。全部代码如下,没做配置功能,需要的自己改改代码就行了(运行前 pip install requests 依赖库):

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&center=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@mars
* 网址:https://oba.by/
* 个性:https://oba.by/
* 本文标题: 《创建一个我的足迹地图》
* 本文链接:https://lang.bi/2024/11/18537
* 短链接:https://oba.by/?p=18537
* 转载文章请标明文章来源,原文标题以及原文链接。请遵从 《署名-非商业性使用-相同方式共享 2.5 中国大陆 (CC BY-NC-SA 2.5 CN) 》许可协议。


You may also like

60 comments

    1.  Level 5
      WebView 4 WebView 4 Android 12 Android 12 cn中国–广东–珠海 电信

      百度的ak有限额么?我那个人工智能图片识别用完额度了,拍天空用不了了

  1. Level 3
    Google Chrome 118 Google Chrome 118 Windows 11 Windows 11 cn中国–安徽–安庆 电信

    基本上都在周边玩耍,待我闲了周游全国也搞个这个,很有趣

  2. Level 5
    Firefox 132 Firefox 132 Windows 10 Windows 10 cn中国–安徽–合肥 移动

    我的想法是这样的:我的文章里设置写文章所在地(虽然不准确,之前的文章可以手动写进去),然后这个地图可以获取文章的的所在地,在地图上显示出来,那就好了。
    其次呢,百度的产品,现在对它失去信心了。目前就用它的网站统计。

    1. 公主 Queen 
      Google Chrome 130 Google Chrome 130 Android 10 Android 10 cn中国–山东–青岛 联通

      单独的点其实也不是特别必要吧。
      毕竟也不会导航过去。

  3. Level 2
    Google Chrome 130 Google Chrome 130 GNU/Linux GNU/Linux cn中国–广西–桂林 联通

    我的about页面也搞了一个,手动涂色的。以县级行政区为单位比以地级市为单位更加科学smile

    1. 公主 Queen 
      Google Chrome 126 Google Chrome 126 Windows 10 Windows 10 cn中国–山东–青岛 联通

      的确,其实类似高德app那种足迹是最准确的,不过这种就大范围打点,也行吧。毕竟不是整个县城都跑遍了。

  4. Level 3
    Google Chrome 123 Google Chrome 123 Windows 10 Windows 10 us美国–弗吉尼亚州–费尔法克斯县–赫恩登 Network_Solutions公司

    哈哈。太勤快了。我是真得懒。

  5. Level 1
    Microsoft Edge 130 Microsoft Edge 130 Windows 10 Windows 10 cn中国–河北–邢台 移动

    原来如此,还可以这样记录一下自己足迹,学到了,不过对于阿宅,这个点应该比较集中吧哈哈!

  6. Level 5
    Google Chrome 130 Google Chrome 130 Windows 11 Windows 11 cn中国–湖北–武汉 联通

    原来这玩意还有api呀,我记得高德手机上好像是有个足迹来着

  7. Level 2
    Google Chrome 127 Google Chrome 127 GNU/Linux GNU/Linux cn中国–贵州–贵阳 移动

    我感觉这玩意 玩玩体验一下可以 要是长期定位并记录自己的位置信息 不太安全 哈哈哈

    1. 公主 Queen 
      Google Chrome 130 Google Chrome 130 Android 10 Android 10 cn中国–山东–青岛 联通

      问题也不大 高德的默认是只能自己看
      这个定位就是城市标注

  8. Level 5
    Firefox 132 Firefox 132 Windows 10 Windows 10 cn中国–云南–丽江 电信

    这个功能我看了好久想整但后来放弃了,技术不到另外要付钱哈。现在想折腾的事个人博客圈他们那个运动数据页面,几次看几次没搞懂哈

  9. Level 3
    Safari 18 Safari 18 iPad iOS 18.0.1 iPad iOS 18.0.1 cn中国–香港–新界–荃湾区 Hytron_Network_Services

    要是有地级市地图就好了,那样我的点点才会多一点,哈哈

    1. 公主 Queen 
      Google Chrome 130 Google Chrome 130 Android 10 Android 10 cn中国–山东–青岛 联通

      可以定义中心坐标和缩放比例就可以显示自定义区域啦

    1. 公主 Queen 
      Google Chrome 126 Google Chrome 126 Mac OS X 10.15 Mac OS X 10.15 cn中国–山东–青岛 联通

      赶紧出,其实我的活动范围也是省内居多。

    1. 公主 Queen 
      Google Chrome 126 Google Chrome 126 Mac OS X 10.15 Mac OS X 10.15 cn中国–山东–青岛 联通

      不至于,不至于,这个东西很多人都已经弄过了。我这是属于更新,😂

  10. Level 6
    Google Chrome 109 Google Chrome 109 Windows 10 Windows 10 cn中国–上海–上海 腾讯云

    灵妹妹周末也偷偷摸摸的更新,【关于我】没放《我的写真》实属差评。

    1. 公主 Queen 
      Google Chrome 126 Google Chrome 126 Mac OS X 10.15 Mac OS X 10.15 cn中国–山东–青岛 联通

      是的,不过好多头像代理服务,更新头像太慢了。

  11. Level 1
    Microsoft Edge 131 Microsoft Edge 131 Windows 11 Windows 11 cn中国–上海–上海–普陀区 电信

    目前只去过2个城市:北京(2015年暑假去的)和厦门(2016年暑假去的)。之后如果有空的话,想去成都看大熊猫。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注