最近在做一个地图相关的应用,涉及到全国城市的切换,于是打算把这个记录下来
用到的主要东西有:百度的全国城市列表,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