230 likes | 482 Views
國立 交通大學 電信工程研究所 Android 平台上之位置感知行事曆提醒系統 指導教授:林亭佑 博士 研究生 :陳柏丞. 班級:碩研資管一甲 學號: MA290110 姓名 :陳 靜 宜. 目錄. 緒論 系統 架構 功能 架構 實 作 結論. 緒論. 研究動機: 每個人的購物習慣不一樣。 智慧型手機都有行事曆。 使用者使用智慧型 手機幾乎 有上網功能。 研究目的: 使用者接近商家或時間區間內,發出提醒。 規劃一條最佳路徑。 手機與雲端同步。 廠商新增商品或使用者自行新增商家。. 本系統 APP 特性功能如下:
E N D
國立交通大學 電信工程研究所Android 平台上之位置感知行事曆提醒系統指導教授:林亭佑 博士研究生:陳柏丞 班級:碩研資管一甲 學號:MA290110 姓名:陳 靜 宜
目錄 • 緒論 • 系統架構 • 功能架構 • 實作 • 結論
緒論 • 研究動機: • 每個人的購物習慣不一樣。 • 智慧型手機都有行事曆。 • 使用者使用智慧型手機幾乎有上網功能。 • 研究目的: • 使用者接近商家或時間區間內,發出提醒。 • 規劃一條最佳路徑。 • 手機與雲端同步。 • 廠商新增商品或使用者自行新增商家。
本系統 APP 特性功能如下: 1.普通記事功能 2.新增店家 3.新增購物清單 4.自行設置欲提醒的時間範圍區間 5.獲取實際路徑的道路情況 6.根據實際道路情況進行商家最佳路徑規劃 7.離線資料庫 8.能將附近商家都有賣的東西,列出每家商家所販賣之價格 9.商品分類庫 10.震動提醒功能 11. 顯示目前使用者與店家的地圖相對位置 • 與其他APP比較:
系統架構 • 手機一直接收GPS訊號。 • 此時使用者設置好購物清單要提醒的商品。 • 手機透過GPS來知道使用者位置,再去比對資料庫的資料。 • 最後透過距離演算法來計算是否離使用者很近。 • 若很近就提醒使用者。 • 本系統另一項同步功能:手機無法連上網路,也能正常操作,若恢復網路將自動同步使用者的資訊、所有商家跟購物資料。
2.2Android phone 有大量API能使用,如:需要震動讓使用者知道新訊息,開發者只要透過幾行程式就能達到,具有強大得整合性。
2.3Web services • 為一種網路服務,透過Port80的方式,透過穿越 Port來存取背後的資料庫,其目的就是要當作雲端,提供 Android 透過網路交換資料或備份之用。 • 例如:假設我們要建立一個氣象網站,網站提供的服務包括了氣象資訊查詢等等,我們只要能找提供服務的 Web Services,然後將它們整合到網站中即可,不需要再花費時間和成本來建立自己的資料庫系統等。 • 本論文使用方法是HTTP的port80來存取資料庫的資料,並與手機端做同步的動作。
2.4 資料庫(database) • 本論文的實作資料庫採用的是 MS-SQL 2008: • 1. 可信度很高且具有安全性、可靠性和可擴展性。 • 2. 高效能,可以降低開發和管理資料基礎設施的時間和成本。 地址 記事資料表 Data記下提醒項目和告知系統提醒時間。 推測距離 商家資訊資料表 分類資訊資料表
功能架構3.1程式架構 購物資料庫模組 GPS 地圖相關模組
3.1.1GPS 地圖相關模組 • GPS 控制模組 • 接收 GPS 的訊號,將經緯度回傳給 GPS 地圖模組。 • Google Map 地圖顯示模組 • 負責將 GPS 的點顯示在地圖上,並提供使用者查詢之功能, • 也能透過此模組標出商家的位置,同時也能做路徑規劃等應用。 • 計算距離模組 • 計算商店和現在使用者位置的距離,本論文預設的距離為300M 內,代表接近可以提醒使用者。 • 因為每個人對距離的觀念不同,所以這個數值並非固定,可由使用者去調整。 • 計算 Hamilton Path 模組 • 應用上最創新的演算法,透過此模組就能抓取使用者現在位置,至所有商家的路線,為此來找尋一條最佳路徑。 • 目的是讓使用者把欲前往購物之商店在不需折返的情況之下都拜訪過一次,把之前在購物清單的物品做採買的。
3.1.2 購物資料模組 • 購物記事模組 • 此模組能協助使用者,在某個自定的範圍時間內買購物清單上的東西。 • 當使用者將購物清單設置好之後,只要等到使用者的手機GPS 有更新時,系統就會讀取此模組,將所有相關的商家資料進行比對。 • 若 GPS 偵測在附近,就可開啟控制震動提醒;若沒有則略過,直到有找到為止。 • 另外這個模組很重要功能,就是將某個商品所有附近有賣的店家都列出,並把價格標示出來,由使用者選擇想去的商家。 • SQLite 資料庫模組 • 手機端本地的資料庫,存取包含購物記事資料、商品項目、商家等等。 • 確保兩邊與雲端資料庫同步,也會主動去檢查兩邊的資料是否相同。 • 資料庫連線模組 • 與 Web Services 連線,透過 JSON 來交換格式資料,並存取最新的資料或進行上傳之動作,來讓資料同步。
3.1.3 提醒模組 • 能主要是使用 Android SDK 提供的 API 來實作,只要對一個函數下動作,就會震動或發出聲音提醒使用者。 • 手機端的主要流程是透過 GPS 控制模組,能抓取最新目前的點座標→ • 程式會主動去抓取資料庫中的商品,並自動比對列出符合商家的資料→ • 並觸發提醒模組去震動手機或發出聲音來提醒使用者。 • 主要的技術是透過資料庫連線模組來與本地資料庫做存取,進行網路同步之動作,它主要透過 JSON 和 KSoap2 兩個 API。 • JSON(資料交換語言): • 透過文字基礎,將屬性連結起來,因為可降低語系的問題。 • 資料量相對也小很多,所以目前許多網路服務、API 都喜歡使用 JSON 格式的字串做為交換格式。 • KSoap2: • Android 平台調用 Web Services 需要使用 KSoap2,它是一個 SOAP Web • services,透過 KSoap2 Android 的 API 來實作。
3.1.4WEB SERVICES 端 • wsGPS模組 • 處理由 port80 進來的網路資料,手機端程式會使用 KSoap2 通訊方式來求取資料。 • 資料庫存取模組是否有對應的資料,若有的話會收集資料並轉換成 JSON 格式回傳給手機端。 • 資料庫存取模組 • 為負責存取資料庫的模組,不管是商品項目、商家資料等等,都能透過下 SQL 指令的方式與 SQL Server Database 作溝通。 • SQL Server Database • 雲端的資料庫,它會與手機端的本地資料作同步之動作,以防到時使用者在別地方安裝本系統 APP,資料會無法同步。 • * Web Services 流程是由手機端透過 Web Services 在 Port 80 利用KSoap2 通訊,交由模組來做資料存取。 • *基本上 Web Services 端還是主要在存取資料用,重要的運算和判斷都是在手機端作處理。
3.2 實作規格 手機端實作規格: Server 端實作規格 :
3.2.2 環境建置 • Eclipse + Android SDK: • (1)下載 Eclipse classic • (2) 下載 Java SDK(JDK) • (3) 下載 Android SDK • (4) 安裝 Eclipse 與 Android SDK • (5) 安裝 Eclipse ADT(Android Development Tools) • (6) 安裝後重新啟動 • (7) 安裝完後,就能開始開發 Android APP • Visual Studio 2008 + SQL Server 2008: • Web Services 採用.NET 的平台來實作。 • 資料庫為MS-SQL2008。 • 程式語言採用 C#。 • 必須安裝以下軟體: • (1) 安裝 Visual Studio 2008 專業版 • (2) 安裝 SQL Server 2008 • (3) 透過 lib 項目做連結
3.3 距離演算法 • 距離演算法: • 輸入兩點的 GPS 座標,就能算出兩點之間的距離。 • 定義是由是否小於某個距離數值來認定。 • 若進入販賣此時,就會由提醒模組來告知。 • EARTH_RADIUS 是個定值,設為 6371。 點相減用 toRadians取得弧度再透過數學公式,就能取得兩點距離如下公式:
實際路徑選擇: • 距離長的到達時間和紅綠燈秒數相加, • 相加 • 若與距離短的到達時間和紅綠燈秒數相加, • 互相比較 • 選擇花費最小的 Cost 這條路線。 • 判斷是否發出提示: • 使用者與商家的距離小於 300 公尺。 • 就加入提醒清單,並透過使用者所設定的提醒模式做 trigger 的方式。 • 若距離大於 300 公尺則什麼都不做。
Hamilton Path 演算法: • 西元 1859 年愛爾蘭數學家漢米爾頓(William Hamilton)想解決路徑行走問題,目的是找出一個路徑,能夠把每一個城市中要拜訪的客戶都串起來,而且不能回溯。 • 例子: • 使用者將觸發提醒的參數距離設為1400 公尺,為半徑 1400 公尺範圍內。 • 路線上的數字代表所花費的 cost,考慮到實際路徑的紅綠燈秒數總和以及使用者與此間商家的直線距離。
3.4 運作機制流程圖 提醒流程: • 新增資料: 手機輸入要購買的品項清單或做普通記事功能。 資料經由 Web Services,透過走 Port 80 的方式。 也能透過 Json格式的方式來交換資料,進行同步等動作。
地圖顯示流程: Hamilton Path 流程: • 存取資料庫流程:
實作 APP主畫面 商品內容與類別 新增店家 日期範圍
商品在商店的資訊,並告知遠近 符合當下購物列 詳細店家資訊和購買的東西 最佳路徑
結論 • 本系統會連結到雲端上,所以若換另一隻手機也不用擔心同步問題。 • 自行決定要提醒的日期範圍區間,可以調配要在什麼時間區間裡提醒使用者需要買東西是很人性化的一個功能。 • 相同的商品在不同的店家會將價格排列出來提供使用者參考。 • 某家小店在資料庫中並無資料,可以自行新增店家資訊。 • 未來能更加精進之處: • 物品的分類不足。 • 無法確切掌握到實際路況。因為現在只用虛擬的紅綠燈秒數以及隨機的時速,並不符合真實的情況。 • 由於第二點,Hamilton Path 路徑也會有些許的誤差。 • 部分並無考慮到使用者是在對向或是目前這個車道上。