over 6 years ago

開發前注意事項:

  1. 若你打算使用場域內現有WiFi來作室內定位,可先使用Android BuildNGO佈道狗測試,先確認定位效果有符合需求,若場域中WiFi AP數量並不多,可建議購買便宜的WiFi AP作為定位參考點(只需插電源不需插網路線),若不知道哪邊可以買到最便宜的WiFi AP,cue我們一下,我們知道哪邊的WiFi AP便宜。
  2. 我們地圖粉彩工具目前只支援Android版本,因此建議開發者至少要準備一台Android手機。
  3. iOS不支援WiFi室內定位,必須在定位場域中架設SAILS Beacon,可在我們網頁上直接購買,至於要怎麼安裝定位效果最好價格最划算可以扒一下我們社群的文章,或是與我們聯絡:richard@sailstech.com / rocky@sailstech.com / robert.shieh@sailstech.com

本篇文章僅概略簡介開發步驟,詳細開發細節請參考本社群相關文章。

開發三部曲

三個步驟搞定室內定位專案:繪製室內地圖(使用JOSM+SAILS MRE)->蒐集定位資訊(使用BuildNGO)->開發APP(使用SAILS SDK)

欲完成一個室內定位的專案,得先從繪製室內地圖開始,但你或許會問,不是BuildNGO可以直接拍地圖照後定位嗎?為什麼還要繪製地圖呢?並非我們不提供圖檔作為室內地圖的方式,而是直接載圖檔會有幾個問題:

  1. 失真,地圖放越大越模糊。
  2. 圖形檔案過大(使用向量地圖檔之後可減少大約70%的檔案大小。)
  3. 與地圖不能直接互動,還須額外定義區塊
  4. 地圖旋轉字也跟著轉,使用者體驗差。 我們相信向量地圖所提供的功能才是你需要的,當你完成第一個專案後一定會有這樣的感覺。 #步驟一 要繪製向量室內地圖又有三個步驟,首先是使用JOSM繪製向量地圖,接著上傳到SAILS Cloud,再來是使用地圖粉彩師(SAILS MRE)來為地圖上色並做地圖的名稱與路徑規劃檢查。 萬事起頭難,JOSM剛開始並不是這麼容易上手,您可多多參考我們提供的教學影片,協助您快速上手。 JOSM是一個離線版的地圖編輯器,功能很強大,專門為open street map設計做地圖編輯,是一套基於open source的軟體工具。而JOSM本身是在繪製室外地圖,並非室內地圖,我們拿它來使用時tag就必須要自行定義,建議您從雲端上範例中的map.xml下載下來並用JOSM打開來看一下,很快就可以了解。 以台中大遠百室內地圖為例,最後利用JOSM繪製出來大概是長這樣子:

另外,若你需要有路徑規劃的功能,則必須用JOSM再開另外一個圖層繪製路徑。如下圖所示:

地圖檔與路徑規劃檔上傳到雲端後即可使用地圖粉彩師來為地圖上色並做一些地圖檢查。
SAILS MRE專門為地圖上色:


你可以任意更改地圖的樣式,例如:百貨公司週年慶全館殺紅眼,地圖全部要變紅的,這時候您的地圖不需要重繪,只要用粉彩師改一改上傳後,大家就可以看到殺紅眼的地圖。

可參考SAILS MRE的Demo Video了解它可以提供的功能。

步驟二

OK,到這邊你已經完成了室內地圖的部分,接下來,你需要使用BuildNGO佈道狗來擷取定位資訊。
BuildNGO佈道狗其實就是Build and Go,主要精神在於你佈建完就可以馬上體驗,省去許多不必要繁瑣的步驟。
你在開始定位專案之前,可能就已使用BuildNGO來測試定位效果,這樣相當好,代表你對BuildNGO已經有相當的了解。若是你還未用過BuildNGO也沒關係,你只要知道一件事情,BuildNGO就是協助你蒐集空間中的WiFi與藍牙資訊,有了這些資訊才可以計算使用者在室內的位置。基本上要提供定位的地方你都要蒐集。你或許會想好累喔,這樣要走好久,但其實我們走起來還好,並不會花費太多時間,大約1000平方米15分鐘就可以佈建完,算相當有效率。
可以看一下佈建的步驟:

另外要注意,這個展示影片其實是前期驗證定位效果的佈建流程。對於實際在run定位專案,你會先完成步驟一,也就是在這個階段你已經有地圖,在BuildNGO連結SAILS Cloud後會自動把地圖載下來,因此你是不需要在拍照地圖的。

另外,我們BuildNGO除了佈建之外,也可以做一些分析,只要走過一遍,BuildNGO就可以分析哪裡的WiFi或BTLE訊號不夠,哪裡的定位效果不好,可以在定位效果不好的地方加裝WiFi或BTLE節點加強定位效果。
前面的兩個步驟或許對你來說太專業或太麻煩,或是你想要在場域當中順便提供WiFi服務,我們專業的團隊會幫你將步驟一與步驟二搞定,你可以直接跳到步驟三做開發即可。

步驟三

好,現在你已擁有地圖與定位資訊,接下來就可以專心開發APP了,你只要知道你的開發者帳號的token id,跟你這個building專案的id,接著只要一行指令,我們的SDK即會幫你自動載入所有資訊:

mSails.loadCloudBuilding(String token_id,String building_id, OnFinishCallback)

Android開發者別忘了要打開網路與wifi permission否則無法順利執行:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>

我們會有一個Sample Activity的project,可以下載參考sample code。

以上是這些步驟的簡單講解,各步驟詳細的解說請參考本社群的相關文章,也可留言給我們,我們會儘速幫你處理。

← 來談談室內地圖 室內地圖 標籤 Tag Reference →
 
comments powered by Disqus