王德貴 王薇
本期我們在AppInventor中利用高德地圖組件開發(fā)一款導航應用——寶貝你在哪,它可以查找停在附近停車場的愛車。停車時打開該應用定位,記錄位置后可關閉應用,需要找車時再次打開應用,就可以查看車的位置,并規(guī)劃當前位置到車輛之間的路徑,之后開始步行導航。
本應用在WxBit漢化版(app.wxbit.com)中開發(fā),它的組件比較多,應用安裝時不會出現(xiàn)新舊手機的兼容問題。如果使用其他開發(fā)環(huán)境,需要安裝相應的插件。
代碼較復雜,請先在文末掃碼下載源代碼,對照學習。
1.應用效果圖
應用效果如圖,根據(jù)組件列表完成界面制作,組件屬性的顏色、位置等參數(shù)可自行微調(diào),由于組件較多注意為組件重命名增加程序可讀性(圖1)。

2. 組件設計
各組件作用和屬性如列表,注意,地圖類型有3種,通過下拉框選擇(如下表)。


程序設計過程中,最好是邊寫代碼,邊測試,隨時發(fā)現(xiàn)問題,隨時解決。如果最后一起測試,就不容易找到哪段代碼有問題了。
1.申請APIKey
路徑規(guī)劃的APIKey需要去高德開放平臺申請后填入。
注冊高德開放平臺→開發(fā)者認證→控制臺→新建應用→添加→自行輸入Key名稱→選Web服務(只需申請Web服務Key,其他不需要)→提交。之前我在測試的時候,按照路徑規(guī)劃的說明文檔,做了很多無用功。這個Key是獲取路徑規(guī)劃方案的鑰匙,也是身份證明。
2.顯示當前經(jīng)緯度和海拔
當開啟APP時或位置改變時,高德定位組件自動定位當前經(jīng)度、緯度和海拔,并顯示在標簽上。APP開啟后,可以通過按鈕顯示到高德地圖上(圖2、圖3)。


3.記錄寶貝位置
在車附近10秒鐘以上更新經(jīng)緯度數(shù)據(jù),記錄位置,否則車的位置會有偏差。把數(shù)據(jù)保存在本地數(shù)據(jù)庫,按標簽保存數(shù)據(jù),以便以后打開APP時調(diào)用(圖4)。

4.顯示寶貝位置
當需要查看車的位置時,點擊按鈕,就可以從本地數(shù)據(jù)庫中調(diào)取保存的寶貝位置信息,通過標簽顯示出來,同時高德地圖也做相應的標記,以方便查看(圖5)。

5. 點擊標記放大地圖
點擊寶貝位置標記(粉色)或點擊當前位置標記(紅色),都會放大地圖,縮放級別為1-18,與高德地圖屬性的縮放級別有關,用兩個手指也可以放大縮小地圖(圖6)。

6. 地圖類型
地圖類型有3種,平面圖、衛(wèi)星圖、混合圖,用下拉列表框選擇(圖7)。

7. 顯示路徑規(guī)劃
給出從當前位置到車的位置之間的步行分段方案。這個方案,是路徑規(guī)劃方案,也可以用HTTP請求,獲取方案信息,經(jīng)過處理后,效果相同。如果出錯,給出提示,方便調(diào)試。點擊文字執(zhí)行清除提示(圖8)。

8. 變量和過程
創(chuàng)建多個全局變量“總距離、總時間、步行步驟總數(shù)目、步行線段數(shù)目、距離2、時間2”,初始值均為0。
創(chuàng)建多個全局變量“步行步驟總方案、步行指示、步行線段、坐標點字符串”并賦值為空文本。
定義4個函數(shù),兩個用來分離經(jīng)緯度,將獲取的經(jīng)緯度數(shù)據(jù)交換位置,以適應路徑規(guī)劃的應用(圖9)。

兩個用來控制路徑線條,線條數(shù)目本例只有2條。你可以繼續(xù)添加,還可以利用動態(tài)組件控制線條數(shù)目,大家可以嘗試一下(圖10)。

9.路徑規(guī)劃獲取方案
這個路徑規(guī)劃方案,是利用列表數(shù)據(jù)處理的,如何查看和分析列表,請參考往期的JSON數(shù)據(jù)應用。也可以將JSON數(shù)據(jù)轉換為字典處理,結果相同(圖11、圖12)。


10. 開始導航
顯示行走路線的線條。實際路徑規(guī)劃有多個區(qū)段,每個區(qū)段又有很多線段構成,可以利用遍歷的方法一一連接,本文只說明原理,不做詳述(圖13)。

11.初始化
初始化是打該應用時,將事先保存的數(shù)據(jù)加載到內(nèi)存,以便處理。延時2秒(2000ms)給提取本地數(shù)據(jù)庫信息留夠時間。如果本地數(shù)據(jù)庫沒有保存的數(shù)據(jù),則顯示0.0(圖14、圖15)。


1.調(diào)試
手機安裝AI伴侶,在連接中掃碼,找一位置模擬車位,停留10秒鐘以上,然后點擊“記錄寶貝位置”,然后到另一個位置,高德地圖會顯示當前位置信息。可以點擊“顯示寶貝位置”來查看車的位置,也可以點擊“顯示當前位置”來查看當前位置信息。“查看路徑規(guī)劃”用來顯示路徑規(guī)劃信息,點擊文字,隱藏。“開始導航”必須查看路徑規(guī)劃后,才顯示行進路徑線條,本例只顯示2條。其實,在每個線條里,還會有多個線段。多路段情況,有興趣的朋友可以深入研究探討(圖16)。
2.打包
把程序生成為APK文件,脫離開發(fā)環(huán)境,以備在其他手機上安裝。由于高德地圖是會員組件需要成為會員才能打包,但不影響之前的編輯和調(diào)試。應當注意的是,這個APK文件在電腦和手機里都會誤報病毒,殺毒時會清除掉,如想保存,建議打包壓縮后,留存。
3. 上架
誰都希望自己的應用能放在應用市場上供大家下載安裝。
先完成誤報病毒申訴。到騰訊手機管家(m.qq.com/complaint)上申請誤報病毒,按要求填寫提交。申訴成功后,即可發(fā)布應用了。
發(fā)布申請。在阿里應用分發(fā)平臺(aliapp.open.uc.cn)根據(jù)提示進行分發(fā)。
以上實例只是導航路徑規(guī)劃的簡單應用,如果想開發(fā)更完善的路徑規(guī)劃,還要了解多路段情況,這里不再贅述。
程序比較復雜,您可以在壹零社下載程序源代碼并對照視頻學習。