博客 / 詳情

返回

使用 AI 編碼將路書 GPX 文件導入高德地圖生成路線的嘗試

最近在讀《30 歲人生開掛 7 步法》,其中提到,所有的賺錢活動大致可以歸為兩種:

  • 讓對方舒服
  • 讓對方幸福

解決別人的需求,能讓人感到舒服或者幸福。恰巧在上次騎車時,我也發現了一個這樣的需求。

蛇年路書.png

我本來想在元旦騎一個 2025 蛇年的路書,最初的嘗試是把路書導入碼錶,但實際騎行時碼錶不斷提示偏航。之後我嘗試了行者 APP,但可能由於手機放在騎行服後兜裏,導航方向也不準確。而我平時使用的高德地圖,不支持導入路書,如果手動在高德地圖上重新繪製路線,工作量又太大。這使得我原本充滿期待的騎行計劃,在畫完數字 5 之後便草草結束。

我有點想不通,為什麼高德地圖沒有做這個功能?在我看來,這些功能都是現成的。但轉念一想,既然我有這個需求,是不是很多人也都有這個需求?既然高德地圖沒做,我是不是可以填補這個空缺?

當天晚上回家我就着手實現,最初的想法是這樣的,從路書中拿到路徑點,導入到高德地圖,繪製一條路線。

首先是解決路書 GPX 文件,在此之前,對這方面一點了解都沒有,但不用擔心,交給 AI,他們能處理得很好

先讓 AI 解釋 GPX 文件規範

GPX文件規範.png

然後再讓 AI 給出解析 GPX 文件的代碼

解析 GPX.png

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

然後是高德地圖的接口,打開高德開放平台,接口非常多

高德開放平台.png

查看文檔後發現地圖小程序 API 裏的地圖路線滿足我的需求,可以添加途徑點。在高德地圖手動添加途徑點時,有數量限制,接口文檔中未提及此限制,想着是不是通過接口能突破這個限制。

這個接口是 http 請求,並沒有提供 SDK,可以把網頁發給 AI ,讓 AI 生成調用代碼

AI 實現接口.png

兩頭都實現好了,現在要做的就是把 GPX 解析出的數據按照接口的要求做轉換。

邏輯都寫好之後,調用接口卻提示 INSUFFICIENT_PRIVILEGES,不具備權限,當時已經是晚上 10 點多了,就加入了高德地圖的用户羣,想着第二天再問問。

在羣裏提問之後,得到的答覆是,需要用企業認證的賬户,而我是個人認證。這裏是我面臨的第一道難關。

為了解決認證的問題,我在網上查了下個人成立公司,倒是不難,但是每年各種費用可能要在幾千,感覺沒必要。朋友也有開公司的,換位想了下,如果我有公司,朋友來找我,可能我還是有點擔心的,所以也沒打擾。但是沒有企業認證,我的想法就無法實現,覺得還沒開始就要結束了。

好在後來突然想到了淘寶,搜了一下果然有提供企業認證 Key 的,最後選擇了一家 20 元 1 天,接口調用 20w 限額的。

因為接口調用是有時限的,所以在購買之前,我先把代碼都寫完,這樣不浪費時間。

還有一個難題是我一直沒有想通的,就算我把路書導入了高德地圖,我該如何把繪製好的路線分享給別人呢。

導入好的路線我可以保存,然後再分享出去,這個流程是通的,但是不夠自動。我希望實現的是,別人可以自助操作,自己上傳 GPX 文件,並能獲取結果。如果我把上傳的入口放到公眾號,還能給自己漲漲粉。

在調試的時候,發現需要 workMapId,我不知道怎麼取這個值,看文檔的時候不僅看到了新建地圖的接口,還發現了生成地圖二維碼鏈接的接口,只需要打開鏈接,就可以自動跳轉到高德地圖,打開這個路線。

現在程序的流程就變成了

  1. 創建地圖
  2. 解析 GPX 獲取座標點
  3. 調用接口創建路線
  4. 分享地圖

將代碼都寫好後,我就從淘寶上買了企業認證的 Key,開始測試

第一次生成出來的路線是這樣的

生成路線_第一版.png

差距非常大,點的位置有點偏移。之前看文檔,偶然間掃到過好像有多個座標系,找了找文檔,的確找到了一個座標轉換接口,能夠將用户輸入的非高德座標(GPS 座標、mapbar 座標、baidu 座標)轉換成高德座標。

轉換座標之後,效果如下

生成路線_第二版.png

路線還是不太對,而且可以發現,很多途徑點其實是不需要的,比如一條直線中的多個點

無用的途徑點.png

在行者 APP 中,雖然顯示的位置點數量和我解析出來的是一致的,但是他分成了 53 個導航段,這個才是我需要的

行者路書.png

自然又是問 AI,AI 提供了多種算法,比如 Ramer-Douglas-Peucker 算法,拐點檢測算法等等,後面我選擇了拐點檢測,實現也是 AI 提供的。原理就是當路徑的轉彎幅度超過某個閾值時,就認為這是一個新的導航段的開始。

修改之後,雖然將座標數從 260 降低到了 112,但看上去還是不太對。

生成路線_第三版.png

比如途徑點 1 這裏,明明可以直接左拐,但不知道為啥生成的路線非要多走一段,然後再掉頭。

奇怪的繞行.png

但其實這裏不是我真正的問題,在第一次生成完地圖後,我就發現實際上我的想法無法實現,路線可以創建,但無法使用導航。後兩次的修改都是出於自己的興趣了。

途徑點限制.jpg

雖然這次嘗試失敗了,但我覺得挺有意義的。正如之前網上很火的一個帖子,用8000塊半年賺了130萬,其實就是很準確的發現了一個需求並解決了,幫助別人的同時,自己也能得到回報。另一個體驗是,AI 大模型的發展大大降低了技術門檻。以前可能需要大量學習和調試的工作,藉助 AI,我能迅速掌握複雜的技術細節,從而讓想法的實現變得更加高效。

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.