关于手机天气应用中的城市搜索的联想查找方式优化
2016-04-28 19:19
441 查看
---- 作者:Meiq.lin
笔者近期在开发一款品牌手机上预装的天气类应用,开发过程中对于城市查询的联想查找方式有些优化,写下来供自己及有需要的人士参考。
AccuWeather简介
AccuWeather气象预报公司是在1962年由知名气象学教授麦尔斯(Joel Myers)所创。该公司成为
业界先驱,为知名媒体、能源公司、滑雪场等顾客,量身订做他们需要的气象预报数据。
长期以来,AccuWeather是全美最大、知名度最高的气象预报公司。 AccuWeather网站总部设在宾夕法尼亚州立大学,拥有最大数量的预测气象数据,数据来源是独立的,他们号称能预测世界任何地方气象,为美国政府以及付费机构提供气象信息。
Auto Complete支持的URL查询格式
AccuWeather提供的api支持Auto
Complete的功能,即城市的联想搜索功能,可通过不完整的城市名搜索某一城市。每次搜索查询最多返回10条结果,返回前10条结果。返回Parameters包括: Version,
Key, Type,Country, Administrative Area and Rank。
AutoComplete支持的URL格式如下:
http://{ href="http://apidev.accuweather.com/developers/locationAPIparameters#queryParameters" target=_blank>{api} or {{apidev}}.accuweather.com/locations/ {version}/cities/autocomplete{.{format}}?q={location}{&apikey={your
key}}{&language={language
code}}
上述URL中location指城市名称,可使用英文/拼音、简体中文、繁体中文进行查询。language指返回结果的语音类型。下面通过改变location和language的语言格式进行验证(仅针对英文、简中、繁中三种语言格式)。
首先针对国内城市进行验证。
如上表可知,
1. AccuWeather支持国内城市的拼音/简中/繁中的搜索输入。
城市名location为英文/拼音,且无指定返回语言则返回结果为英文/拼音。
城市名location为简中,且指定language=zh/zh-cn,返回结果为简中。
城市名location为繁中,且指定language=zh-tw,返回结果为繁中。
2. 部分市及以下(区、县、镇等)地区不支持URL中language=zh-tw繁体中文的搜索输入。但支持URL中language=zh-hk繁体中文的搜索输入。
如表中黄色区域的宁德,翔安区。
3. 输入的城市名语言格式要与指定的language code一致,否则返回结果为空。
如表中最后两列。
再针对国外城市进行验证。
如上表可知,
1. AccuWeather支持国外城市的英文/简中/繁中的搜索输入。
城市名location为英文,且无指定返回语言则返回结果为英文。
城市名location为简中,且指定language=zh/zh-cn,返回结果为简中。
城市名location为繁中,且指定language=zh-tw或language=zh-hk,返回结果都为繁中。
2. 城市名location的语言格式要与指定的language
code一致,否则返回结果为空。
如表中最后两列。
综合上述验证可知,AccuWeather的Auto Complete功能(即城市的联想搜索功能)支持城市的英文、简中、繁中的搜索输入。国内部分市及以下(区、县、镇等)地区不支持繁体中文的language=zh-tw的搜索输入,但支持繁体中文的language=zh-hk的搜索输入。
搜索时要保证URL中城市名location的语言格式与指定的language
code一致,否则返回结果为空。
Weather之前使用的城市联想搜索方式
Weather之前使用将城市名转化成英文/拼音的格式进行城市的搜索。
若用户输入城市名简中/繁中,则将其转化成拼音后,通过解析
http:// href="http://apidev.accuweather.com/developers/locationAPIparameters#queryParameters" target=_blank>apidev.accuweather.com/locations/{version}/cities/autocomplete?q={location}{&apikey={your
key}}获得查询结果。
若用户输入城市名英文,则直接通过解析
http:// href="http://apidev.accuweather.com/developers/locationAPIparameters#queryParameters" target=_blank>apidev.accuweather.com/locations/{version}/cities/autocomplete?q={location}{&apikey={your
key}}获得查询结果。
使用此方法的缺陷如下:
1. 不论用户输入哪种语言(英文、简中、繁中),查询得到的结果都是英文。
2. 对于国外城市,用户必须输入英文名才可以查询到结果。若用户不知道其英文名就无法搜索到该城市。所以,比较局限性。
3. 部分城市名称不同,但拼音相同。导致搜索到的结果里包含很多用户不期望的结果,且显示结果都是拼音,无法区分城市名不同但拼音相同的城市。如下图:
Weather目前使用的城市联想搜索方式
目前使用URL
http:// href="http://apidev.accuweather.com/developers/locationAPIparameters#queryParameters" target=_blank>apidev.accuweather.com/locations/ {version}/cities/autocomplete?q={location}&apikey={your
key}&language={language
code}进行搜索。
与之前的使用方式相比,增加了language的限定。即要求用户使用当前系统语言输入城市名进行搜索。若当前语言为简中,则用户输入简中城市名后搜索显示简中的结果。若当前语言为繁中,则用户输入繁中城市名后搜索显示繁中的结果。若当前语言为英文,则用户输入英文城市名后搜索显示英文的结果。
这样保证了显示结果的语言与系统语言一致,且显示的结果更直观。如下图,
对于国外城市,当系统语言为简体/繁体中文时,只要输入该城市的中文名称就可以搜索到结果。与之前的使用方式相比,这点更人性化。
当前系统语言为简体/繁体中文时,不再会出现因城市名不同拼音相同,而搜索到不期望的结果。
综合上述,使用目前加language限定的查询方式更方便更直观,也去掉了之前的缺陷。
笔者近期在开发一款品牌手机上预装的天气类应用,开发过程中对于城市查询的联想查找方式有些优化,写下来供自己及有需要的人士参考。
AccuWeather简介
AccuWeather气象预报公司是在1962年由知名气象学教授麦尔斯(Joel Myers)所创。该公司成为
业界先驱,为知名媒体、能源公司、滑雪场等顾客,量身订做他们需要的气象预报数据。
长期以来,AccuWeather是全美最大、知名度最高的气象预报公司。 AccuWeather网站总部设在宾夕法尼亚州立大学,拥有最大数量的预测气象数据,数据来源是独立的,他们号称能预测世界任何地方气象,为美国政府以及付费机构提供气象信息。
Auto Complete支持的URL查询格式
AccuWeather提供的api支持Auto
Complete的功能,即城市的联想搜索功能,可通过不完整的城市名搜索某一城市。每次搜索查询最多返回10条结果,返回前10条结果。返回Parameters包括: Version,
Key, Type,Country, Administrative Area and Rank。
AutoComplete支持的URL格式如下:
http://{ href="http://apidev.accuweather.com/developers/locationAPIparameters#queryParameters" target=_blank>{api} or {{apidev}}.accuweather.com/locations/ {version}/cities/autocomplete{.{format}}?q={location}{&apikey={your
key}}{&language={language
code}}
上述URL中location指城市名称,可使用英文/拼音、简体中文、繁体中文进行查询。language指返回结果的语音类型。下面通过改变location和language的语言格式进行验证(仅针对英文、简中、繁中三种语言格式)。
首先针对国内城市进行验证。
如上表可知,
1. AccuWeather支持国内城市的拼音/简中/繁中的搜索输入。
城市名location为英文/拼音,且无指定返回语言则返回结果为英文/拼音。
城市名location为简中,且指定language=zh/zh-cn,返回结果为简中。
城市名location为繁中,且指定language=zh-tw,返回结果为繁中。
2. 部分市及以下(区、县、镇等)地区不支持URL中language=zh-tw繁体中文的搜索输入。但支持URL中language=zh-hk繁体中文的搜索输入。
如表中黄色区域的宁德,翔安区。
3. 输入的城市名语言格式要与指定的language code一致,否则返回结果为空。
如表中最后两列。
再针对国外城市进行验证。
如上表可知,
1. AccuWeather支持国外城市的英文/简中/繁中的搜索输入。
城市名location为英文,且无指定返回语言则返回结果为英文。
城市名location为简中,且指定language=zh/zh-cn,返回结果为简中。
城市名location为繁中,且指定language=zh-tw或language=zh-hk,返回结果都为繁中。
2. 城市名location的语言格式要与指定的language
code一致,否则返回结果为空。
如表中最后两列。
综合上述验证可知,AccuWeather的Auto Complete功能(即城市的联想搜索功能)支持城市的英文、简中、繁中的搜索输入。国内部分市及以下(区、县、镇等)地区不支持繁体中文的language=zh-tw的搜索输入,但支持繁体中文的language=zh-hk的搜索输入。
搜索时要保证URL中城市名location的语言格式与指定的language
code一致,否则返回结果为空。
Weather之前使用的城市联想搜索方式
Weather之前使用将城市名转化成英文/拼音的格式进行城市的搜索。
若用户输入城市名简中/繁中,则将其转化成拼音后,通过解析
http:// href="http://apidev.accuweather.com/developers/locationAPIparameters#queryParameters" target=_blank>apidev.accuweather.com/locations/{version}/cities/autocomplete?q={location}{&apikey={your
key}}获得查询结果。
若用户输入城市名英文,则直接通过解析
http:// href="http://apidev.accuweather.com/developers/locationAPIparameters#queryParameters" target=_blank>apidev.accuweather.com/locations/{version}/cities/autocomplete?q={location}{&apikey={your
key}}获得查询结果。
使用此方法的缺陷如下:
1. 不论用户输入哪种语言(英文、简中、繁中),查询得到的结果都是英文。
2. 对于国外城市,用户必须输入英文名才可以查询到结果。若用户不知道其英文名就无法搜索到该城市。所以,比较局限性。
3. 部分城市名称不同,但拼音相同。导致搜索到的结果里包含很多用户不期望的结果,且显示结果都是拼音,无法区分城市名不同但拼音相同的城市。如下图:
Weather目前使用的城市联想搜索方式
目前使用URL
http:// href="http://apidev.accuweather.com/developers/locationAPIparameters#queryParameters" target=_blank>apidev.accuweather.com/locations/ {version}/cities/autocomplete?q={location}&apikey={your
key}&language={language
code}进行搜索。
与之前的使用方式相比,增加了language的限定。即要求用户使用当前系统语言输入城市名进行搜索。若当前语言为简中,则用户输入简中城市名后搜索显示简中的结果。若当前语言为繁中,则用户输入繁中城市名后搜索显示繁中的结果。若当前语言为英文,则用户输入英文城市名后搜索显示英文的结果。
这样保证了显示结果的语言与系统语言一致,且显示的结果更直观。如下图,
对于国外城市,当系统语言为简体/繁体中文时,只要输入该城市的中文名称就可以搜索到结果。与之前的使用方式相比,这点更人性化。
当前系统语言为简体/繁体中文时,不再会出现因城市名不同拼音相同,而搜索到不期望的结果。
综合上述,使用目前加language限定的查询方式更方便更直观,也去掉了之前的缺陷。
相关文章推荐
- 关于软件体系架构的认识
- C#将科大讯飞语音合成文件转换为MULAW音频格式
- 浅谈软件体系架构
- 入侵的实践总结经验
- git的使用
- 朱、刘算法:求最小树形图权值个人理解+个人详解【最小树形图模板】
- NSSet集合对象
- 关于css里的class和id
- HDU_1011_Starship Troopers_树型dp
- 工厂模式初识
- 排序算法
- Linux下python升级至2.7步骤
- Android利用tcpdump和wireshark抓取网络数据包
- JAVA设计模式(04):创建型-建造模式(Builder)
- iOS开发中,根据三个点获得之间的夹角
- HDU-4612-Warm up(无向图缩点+直径)
- 查看Windows 10系统是否永久激活
- 使用springMVC实现文件上传和下载之文件下载
- 【饥荒mod制作吧第五篇】MOD下载及安装
- 如何在服务器上面执行定时程序,在指定的时候执行指定的代码