顯示具有 Diary 標籤的文章。 顯示所有文章
顯示具有 Diary 標籤的文章。 顯示所有文章

2015年4月30日 星期四

2015/04/30 OSMDFE開發日誌(二)

最近在準備期中考比較忙一點
就有點忘記更新了...
有點糟糕
先來Po目前的進度截圖~
 先大致說明一下
我底圖是用MapNIK做為圖資來源
藍色發光點代表的是使用者目前的所在位置
如果使用者按住底圖的某個點
就會出現綠色的標籤
那個代表使用者要新增的地點
然後PopWindows中有三個按鈕
Save:將資料寫入儲存空間&伺服器
Reset:將去伺服器取得前一個版本的內容並顯示出來
Delete:刪除目前這個新增標籤
以上前端的部分

至於後端的部分
我已經大致把與伺服器連接的相關方法已經都定義出來了
目前有這兩種型態的postData
postData(String ip, JSONObject json,Context context)//這個用來傳送使用者所新增的點
postData(String ip,Double latitude, Double longitude,Context context) //這個用來取得使用者周邊的點
至於REST API的部分撰寫正在進行中,就會全面轉換成用RestAPI做溝通
應該近期內就會完成

再來就是伺服器的部分
上次討論結果大致架構如下
1.App與資料庫資料
App <----REST API---->資料庫
2.網頁呈現方式
Umap <----REST API---->資料庫
3.OpenData
客戶端 ----REST API---->資料庫
客戶端<----轉為Json格式----資料庫
資料庫部分目前我也還在規劃當中
近期也會開始進行開發的部分

最後要來講一下目前的一些小小問題
目前正在研究我該怎麼在PopWindow中直接操作到MapView
因為我要讓Delete可以運作啊!!

心情抒發時間~
案子開發到現在...覺得自己進度有點...不對是非常緩慢,至於為什麼呢~大概就是不知道為什麼,教授都喜歡在期中前開始塞一大堆東西給我們,雖然也見怪不怪了但是每次做完就累癱了,真的開發時間就縮短很多... 我真的不是故意的...OAQ。Whatever, 期中考完之後會有段輕鬆期,要好好在這個時期把進度趕回來(握拳) 。

2015年3月26日 星期四

2015/03/27 OSMDFE開發日誌(一)

OSMDFE計畫也執行了一段時間,程式架構一改再改也終於訂出一個還算滿意的架構,算是蠻值得慶幸的事~ 所以也已經可以正式Coding啦,目前整個計畫我執行到地圖正常顯示且也已經能將使用者的位置標示在地圖上(如果抓不到的話就顯示整個台灣),雖然還是有些小Bug存在但也找到一些解決方案所以不算有太大的阻礙。既然這是開發日誌還是要放一些我遇到的問題與解決方案囉。
1.首先我遇到的問題就是在OSMDROID中Mapcontroller.setCenter()這個的offset問題,這個問題算折騰我還蠻久的,但還是解決啦~
 解決方案:將OSMDROID的版本從4.2更新至4.3

2.接下來我遇到的就是TileSource的問題,TileSource這個算是兩個問題

 (1) Zoom Level調到18(最高)卻只有相較於OpenStreetMap官網的Zoom Level 17的效果
 解決方案:使用 mapview.setTilesScaledToDpi(true)來讓TileSource可以吻合螢幕解析度

 (2)離線TileSource的問題
  其實這不算個問題,只是純粹搞不清楚OSMDROID背後在做什麼而已,舊版的OSMDROID4.2他會一直從伺服器抓資料下來,但到了4.3他就會去自動偵測SD卡中有沒有相對應的Tile,如果有就直接建構就不去伺服器拉資料,真的聰明很多。

3. Marker 問題
 解決方案:原本OSMDROID內建的Marker不是很好用,但我在網路上找到一個算擴充包的API叫做 OSMBONUSPACK ,他裡面提供的Marker就非常的易於使用(p.s 因為Google Code要關閉了,而OSMBONUSPACK本來就是託管在Google Code上面所以我就把它的程式碼拉到我的Github了)
 參考網址:Google Code:https://code.google.com/p/osmbonuspack/
        我轉移到我Github:https://github.com/lienching/osmbonuspack


目前一些基本問題都已經有起色了,我最後來說一下我目前使用了哪些API並他們的功用吧
  • OSMDROID_4.3 : 提供MapView、MapController等與OSM互動的工具
  • OSMBONUSPACK : 提供一些OSMDROID中沒有的工具或寫得比OSMDROID更好的工具
  • geojson : 這是用來解析與製作geojson的api, 我們目前是打算使用geojson來作為資料交換的格式