最近在做一個地圖相關的應用,涉及到全國城市的切換,於是打算把這個記錄下來
用到的主要東西有:百度的全國城市列表,txt格式,jasonkit數據解析第三方,tableview,searchabar,漢字轉拼音。
1.首先拿到的是百度的全國城市列表,因爲是txt格式的,比較好處理,而且附帶經緯度(雖然百度的是火星座標,但處理起來那是後面的事情,總比沒有強),高德的是pdf格式,沒有經緯度。這份文件要做些適當的修改不然不能夠解析爲jason類型。百度的文件做了加密,這裏還需要解碼~真坑爹,好在不是很複雜,jason在這裏只現身一次,得到所需要的字典
2.漢字轉拼音,這個是爲了排序和後面的搜索用的,當然,漢字轉拼音也是用的代碼行,一樣很強大,速度也不慢,有一點需要強調的是,轉換的時候兩個if語句必須都要寫上,不然不起作用,這個沒細研究。封裝好的city對象有名字,拼音,經緯度
3.排序:因爲數組內存放的都是對象,所以需要對對象的某個屬性排序纔行,這裏用的是拼音,方法也很簡單
4.獲得所有城市的首字母並將相同首字母的城市封裝在同一個城市
列表顯示城市列表是按照首字母顯示的,所以這個很必要
最後需要三個數組
A:首字母數組;B:所有城市數組;C:按首字母分類好的所有城市列表
5.展示所有城市,tableview加載現成的數組,體力活
6.搜索
搜索的關鍵是按照拼音和漢字進行搜索的
拼音搜索的
demo下載地址http://download.csdn.net/detail/map625/6944965