2011-11-10 41 views
0

我正在製作Map應用程序,並且我已經能夠調用Web服務來顯示帶有註釋的地圖上的商店位置。我的網絡服務在澳大利亞擁有200多家商店。我正在採用一個UISearch欄,當我插入Syd .....然後澳大利亞悉尼時,應該打開一個地址自動填寫表格視圖。我怎樣才能實現這個..我是否需要再次調用web服務Url進行地址自動填寫tablview或者我應該手動插入地址還是有任何方法?iPhone中的UISearch Bar查詢

編輯:= 在我的應用程序中,我正在搜索半徑5,10,15公里內的商店位置。如果用戶想要另一個位置而不是當前位置,則他可以插入他的任何位置來查找圍繞該插入位置的商店信息。所以,當用戶插入他的位置,然後自動填充地址tableview應該打開

回答

0

一種可能的解決方案ca n是將預定義值保留在數據庫(核心數據)中,然後在searchBar的textDidChange委託上,如果數據匹配當前serach關鍵字,則可以查詢數據庫以搜索列表。由此產生的結果可以在具有一些動畫效果的表格視圖中顯示,以便給出自動建議的感覺。

在textDidChange上調用webservice將會阻止用戶界面,並不是一個好的選擇。雖然這個功能在網絡上更普遍,但在設備上我發現第一個選擇比第二個更有效率。

編輯:對於問題的回答被詢問的問題

  1. 的編輯部分,您需要把自動提示。
  2. 從服務器獲取數據(使用Web服務)。

現在提供地址建議的功能,如「Syd」變成澳大利亞悉尼,我上面的答案將幫助您將這些靜態地址放入數據庫,然後爲用戶提供自動建議選項。對於第二部分,您可以保存數據庫中地點的緯度/經度,並且一旦用戶完成他的選擇,您可以查詢web服務以獲取數據。

的步驟可以概括爲..

  • 用戶類型西德妮。
  • 您可以使用某些查詢(例如place LIKE%syd%)查詢數據庫以搜索與Syd匹配的地點。
  • 使用autosuggest填充表格,並顯示地址名稱,如 澳大利亞悉尼。
  • 用戶選擇的地方,相應地你挑緯度/長(獲取與上述查詢名稱以及 )和查詢您的Web服務 獲取你的數據

廣場 = Sydny,澳大利亞(不是真的必需) 緯度 = SOME VALE悉尼 經度 - 某一值時,悉尼 半徑 = 5,10,15這取決於你的應用程序邏輯

然後,服務器將爲您提供特定緯度/經度的給定範圍內的所有商店。

可以在服務器端和客戶端完成更多的計算密集型工作,應該減少Web服務調用以避免延遲。

+0

你可以再次閱讀我編輯的任務 –

+0

你可以給它一些代碼示例/教程。 –

0

我有同樣的應用程序顯示人的地址,所以我使用的Web服務,它給了我所有的地址,我把它們保存在NSMutableArray,然後我在UISearchBar的textDidChange函數中檢查數組中的字符串,並且如果有任何字符串與前綴匹配,那麼我在UISearchBar中顯示地址...但在這種情況下,如果您只寫了'S',那麼它將返回多條記錄所以你需要根據客戶的要求決定如何顯示,他想要列表或任何匹配的記錄......如果列表是預期的,那麼你需要顯示tableview,當用戶選擇該值,然後隱藏tableview ... ..

+0

在我的應用程序中,我正在搜索半徑5,10,15公里內的商店位置。如果用戶想要另一個位置而不是當前位置,則他可以插入他的任何位置來查找圍繞該插入位置的商店信息。因此,當用戶插入他的位置,然後自動填充地址tableview應該打開...... –

+0

做一個web服務,它將採取您的當前位置/位置由用戶設置,並通過其經度和鄰近(5公里/ 10公里)和獲取數據... – Minakshi

+0

現在我在孟買和設置半徑8000Km我能夠從當前位置孟買在單個按鈕上獲得商店在澳大利亞的位置。現在我想在UISearch欄中插入sydney位置,它將在tableview中打開similer sydney地址自動填充。關於選擇那個位置,我想搜索周圍的悉尼商店....... –