使用 AI 编码将路书 GPX 文件导入高德地图生成路线的尝试

最近在读《30 岁人生开挂 7 步法》,其中提到,所有的赚钱活动大致可以归为两种:

  • 让对方舒服
  • 让对方幸福

解决别人的需求,能让人感到舒服或者幸福。恰巧在上次骑车时,我也发现了一个这样的需求。

我本来想在元旦骑一个 2025 蛇年的路书,最初的尝试是把路书导入码表,但实际骑行时码表不断提示偏航。之后我尝试了行者 APP,但可能由于手机放在骑行服后兜里,导航方向也不准确。而我平时使用的高德地图,不支持导入路书,如果手动在高德地图上重新绘制路线,工作量又太大。这使得我原本充满期待的骑行计划,在画完数字 5 之后便草草结束。

我有点想不通,为什么高德地图没有做这个功能?在我看来,这些功能都是现成的。但转念一想,既然我有这个需求,是不是很多人也都有这个需求?既然高德地图没做,我是不是可以填补这个空缺?

当天晚上回家我就着手实现,最初的想法是这样的,从路书中拿到路径点,导入到高德地图,绘制一条路线。

首先是解决路书 GPX 文件,在此之前,对这方面一点了解都没有,但不用担心,交给 AI,他们能处理得很好

先让 AI 解释 GPX 文件规范

然后再让 AI 给出解析 GPX 文件的代码

自己再稍微修改一下就可以了,GPX 这部分是解决了。

然后是高德地图的接口,打开高德开放平台,接口非常多

查看文档后发现地图小程序 API 里的地图路线满足我的需求,可以添加途径点。在高德地图手动添加途径点时,有数量限制,接口文档中未提及此限制,想着是不是通过接口能突破这个限制。

这个接口是 http 请求,并没有提供 SDK,可以把网页发给 AI ,让 AI 生成调用代码

两头都实现好了,现在要做的就是把 GPX 解析出的数据按照接口的要求做转换。

逻辑都写好之后,调用接口却提示 INSUFFICIENT_PRIVILEGES,不具备权限,当时已经是晚上 10 点多了,就加入了高德地图的用户群,想着第二天再问问。

在群里提问之后,得到的答复是,需要用企业认证的账户,而我是个人认证。这里是我面临的第一道难关。

为了解决认证的问题,我在网上查了下个人成立公司,倒是不难,但是每年各种费用可能要在几千,感觉没必要。朋友也有开公司的,换位想了下,如果我有公司,朋友来找我,可能我还是有点担心的,所以也没打扰。但是没有企业认证,我的想法就无法实现,觉得还没开始就要结束了。

好在后来突然想到了淘宝,搜了一下果然有提供企业认证 Key 的,最后选择了一家 20 元 1 天,接口调用 20w 限额的。

因为接口调用是有时限的,所以在购买之前,我先把代码都写完,这样不浪费时间。

还有一个难题是我一直没有想通的,就算我把路书导入了高德地图,我该如何把绘制好的路线分享给别人呢。

导入好的路线我可以保存,然后再分享出去,这个流程是通的,但是不够自动。我希望实现的是,别人可以自助操作,自己上传 GPX 文件,并能获取结果。如果我把上传的入口放到公众号,还能给自己涨涨粉。

在调试的时候,发现需要 workMapId,我不知道怎么取这个值,看文档的时候不仅看到了新建地图的接口,还发现了生成地图二维码链接的接口,只需要打开链接,就可以自动跳转到高德地图,打开这个路线。

现在程序的流程就变成了

  1. 创建地图
  2. 解析 GPX 获取坐标点
  3. 调用接口创建路线
  4. 分享地图

将代码都写好后,我就从淘宝上买了企业认证的 Key,开始测试

第一次生成出来的路线是这样的

差距非常大,点的位置有点偏移。之前看文档,偶然间扫到过好像有多个坐标系,找了找文档,的确找到了一个坐标转换接口,能够将用户输入的非高德坐标(GPS 坐标、mapbar 坐标、baidu 坐标)转换成高德坐标。

转换坐标之后,效果如下

路线还是不太对,而且可以发现,很多途径点其实是不需要的,比如一条直线中的多个点

在行者 APP 中,虽然显示的位置点数量和我解析出来的是一致的,但是他分成了 53 个导航段,这个才是我需要的

自然又是问 AI,AI 提供了多种算法,比如 Ramer-Douglas-Peucker 算法,拐点检测算法等等,后面我选择了拐点检测,实现也是 AI 提供的。原理就是当路径的转弯幅度超过某个阈值时,就认为这是一个新的导航段的开始。

修改之后,虽然将坐标数从 260 降低到了 112,但看上去还是不太对。

比如途径点 1 这里,明明可以直接左拐,但不知道为啥生成的路线非要多走一段,然后再掉头。

但其实这里不是我真正的问题,在第一次生成完地图后,我就发现实际上我的想法无法实现,路线可以创建,但无法使用导航。后两次的修改都是出于自己的兴趣了。

虽然这次尝试失败了,但我觉得挺有意义的。正如之前网上很火的一个帖子,用8000块半年赚了130万,其实就是很准确的发现了一个需求并解决了,帮助别人的同时,自己也能得到回报。另一个体验是,AI 大模型的发展大大降低了技术门槛。以前可能需要大量学习和调试的工作,借助 AI,我能迅速掌握复杂的技术细节,从而让想法的实现变得更加高效。

相关推荐
API_Zevin9 分钟前
如何优化亚马逊广告以提高ROI?
大数据·开发语言·前端·后端·爬虫·python·学习
北极熊的咆哮14 分钟前
Go语言的 的编程环境(programming environment)基础知识
开发语言·后端·golang
白露与泡影1 小时前
Spring Boot中的 6 种API请求参数读取方式
java·spring boot·后端
CodeClimb1 小时前
【华为OD-E卷 - 服务失效判断 100分(python、java、c++、js、c)】
java·javascript·c++·python·华为od
CodeClimb1 小时前
【华为OD-E卷 - 九宫格按键输入 100分(python、java、c++、js、c)】
java·javascript·c++·python·华为od
_Soy_Milk1 小时前
Golang,Let‘s GO!
开发语言·后端·golang
1-programmer1 小时前
【Go研究】Go语言脚本化的可行性——yaegi项目体验
开发语言·后端·golang
大霸王龙1 小时前
Python中使用PostgreSQL和Apache AGE扩展来绘制和显示图表
python·postgresql·apache
几两春秋梦_1 小时前
PINN求解偏微分方程
人工智能·pytorch·python
数据小小爬虫1 小时前
淘宝商品详情API返回值说明:Python爬虫代码示例
java·爬虫·python