Pages

Saturday, February 25, 2012

AddressMap 讓地址直接開啟呈現在地圖上

AddressMap
在之前一篇 開發 Location based 的 iPhone app , MapKit 知多少 介紹了開發實務上會碰到的基本題和進階題。而其中進階題目第三題「透過使用者輸入地址查詢到該地址的座標」,這部分該怎麼做? Apple 沒有提供這樣的功能輸入地址就可以馬上查到了,所以這部分要借助別的方式。

有兩種會碰到的設計方式:
  1. 從 Search Bar 讓使用者輸入,幫它查詢完給予地點清單,再讓使用者點選哪一個適合他的,點選後再開啟到地圖上呈現。 
  2. 在 Table View 提供地址資訊,使用者只要點選地址就可以直接開啟在地圖上呈現。
我在 GitHub 上面開了一個 Open Source Project,叫做 Address Map。實作上是以第二個方式來呈現,但是如果挑用裡面的查詢功能,也是可以完成第一種效果。這個 Demo 程式步驟如下:
  1. AMLocationsModel.h 跟 Google Maps API 問詢經緯度座標。 
  2. 會將回傳的 JSON 內容轉換為需要的 Objects 叫做 AMLocationSpot.h 。 
  3. 再將這些 Annotations 加到地圖上面。
  4. 透過 Zoom 的效果讓它全部的點可以清楚呈現在畫面上。
目前設計上為了使用方便,直接拿 AMMapViewController.h 來用即可,給予地址就可以直接呈現在地圖上了。這個 Project 有用到兩個外部 Libraries 分別是 asi-http-request 和 JSONKit,為了是要解決呼叫 Google API 和解析回傳 JSON 格式所需。

如何使用呢?

  1. 用 Git command 將這 projects 透過 clone 下載回去。 
  2. 記得要下 git submodule init 和 git submodule update,如此一來才會將外部 libraries 建立起來。
  3. 參考 DemoViewController 就可以知道如何引用了。
地圖與經緯度有很多變化,這個 project 還會不會擴充再看實務上有什麼需求剛好貼切,再來擴充上去了。歡迎使用!

No comments:

Post a Comment