---- 作者: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://{{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://apidev.accuweather.com/locations/{version}/cities/autocomplete?q={location}{&apikey={your key}}获得查询结果。

若用户输入城市名英文,则直接通过解析

http://apidev.accuweather.com/locations/{version}/cities/autocomplete?q={location}{&apikey={your key}}获得查询结果。

使用此方法的缺陷如下:

1.    不论用户输入哪种语言(英文、简中、繁中),查询得到的结果都是英文。

2.    对于国外城市,用户必须输入英文名才可以查询到结果。若用户不知道其英文名就无法搜索到该城市。所以,比较局限性。

3.    部分城市名称不同,但拼音相同。导致搜索到的结果里包含很多用户不期望的结果,且显示结果都是拼音,无法区分城市名不同但拼音相同的城市。如下图:

Weather目前使用的城市联想搜索方式

目前使用URL

http://apidev.accuweather.com/locations/ {version}/cities/autocomplete?q={location}&apikey={your key}&language={language code}进行搜索。

与之前的使用方式相比,增加了language的限定。即要求用户使用当前系统语言输入城市名进行搜索。若当前语言为简中,则用户输入简中城市名后搜索显示简中的结果。若当前语言为繁中,则用户输入繁中城市名后搜索显示繁中的结果。若当前语言为英文,则用户输入英文城市名后搜索显示英文的结果。

这样保证了显示结果的语言与系统语言一致,且显示的结果更直观。如下图,

对于国外城市,当系统语言为简体/繁体中文时,只要输入该城市的中文名称就可以搜索到结果。与之前的使用方式相比,这点更人性化。

当前系统语言为简体/繁体中文时,不再会出现因城市名不同拼音相同,而搜索到不期望的结果。

综合上述,使用目前加language限定的查询方式更方便更直观,也去掉了之前的缺陷。

关于手机天气应用中的城市搜索的联想查找方式优化相关推荐

  1. Android 天气APP(十五)增加城市搜索、历史搜索记录

    上一篇:Android 天气APP(十四)修复UI显示异常.优化业务代码逻辑.增加详情天气显示 添加城市 新版------------------- 一.推荐城市数据 二.推荐城市item布局和适配器 ...

  2. python爬取中国天气网中城市及其对应编号

    文章目录 一.前言 二.思路 三.程序 四.注意事项 一.前言 为了实现爬取各地城市天气预报及其可视化的需要,爬取中国天气网中城市及其对应编号 . 天气预报可视化文章如下: <python爬虫, ...

  3. android往天气接口里面传城市,Android使用中国天气网API数据通过城市名称获取天气情况...

    项目要求在应用首页面展示本地当日天气的概况,首先想到的是google和雅虎,前者很久之前接触过,听说后来用不了了,后者由于邮箱事件的缘故个人不喜欢(虽然貌似苹果也用雅虎的天气预报),之后又想到了前段时 ...

  4. 华为手机线刷工具_华为手机天气小工具误删/移除/丢失/不见了怎么办?

    手机天气小工具,让我们可以随时掌控时间,掌控天气,令我们的工作,出游更得心应手.游刃有余.可如果桌面天气不小心被误删了,在窗口小工具里找不到,是不是只能恢复出厂设置了呢? 帮帮总结了两个简单小方法,如 ...

  5. 雷军回应“小米手机都是中低端”;特斯拉CEO埃隆马斯克确认感染新冠病毒;Firefox 83.0发布|极客头条...

    整理 | 郑丽媛 头图 | CSDN 下载自东方 IC 快来收听极客头条音频版吧,智能播报由出门问问「魔音工坊」提供技术支持. 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「 ...

  6. 深入理解空间搜索算法 ——数百万数据中的瞬时搜索

    转自 干货|深入理解空间搜索算法 --数百万数据中的瞬时搜索 全球人工智能:专注为AI开发者提供全球最新AI技术动态和社群交流.用户来源包括:北大.清华.中科院.复旦.麻省理工.卡内基梅隆.斯坦福.哈 ...

  7. [Android] AlertDialog获取网上天气并显示各城市天气

    最近帮同学做android百度地图,其中涉及到定位城市天气功能.才知道自己技术非常的一般,还有很多东西需要学习,同时需要回归到我研究生的方向--数据挖掘.同时又见识到了一位叫柳峰的大神,推荐大家去看看 ...

  8. html中怎么获取搜索框中的值,百度API 搜索框,获取相应的地点的uid

    在百度API的输入框中怎么根据搜索到的地址获取百度的uid body, html{width: 100%;height: 100%;margin:0;font-family:"微软雅黑&qu ...

  9. 手机天气显示服务器错误,手机天气云服务器

    手机天气云服务器 内容精选 换一换 会.弹性云服务器运行在物理机上,虽然提供了多种机制来保证系统的可靠性.容错能力和高可用性,但是,服务器的硬件.电源等部件仍有较小概率的损坏.如果物理设备的损坏导致物 ...

  10. 手机QQ浏览器的HTML管理器,手机qq浏览器中文件管理器有哪些功能

    手机qq浏览器中文件管理器有哪些功能 QQ浏览器是我们现在经常使用的浏览器一,其中的文件管理器功能非常的多.今天小编跟大家分享的是手机QQ浏览器文件管理器有哪些作用. 具体如下: 1. 首先我们打开手 ...

最新文章

  1. intellij中的 iml文件与web.xml 文件分别是干什么的
  2. 数字信号处理中的自相关和互相关计算和物理意义(二)
  3. VTK:命名颜色用法实战
  4. linux无后缀名程序运行,linux – 如何在Ubuntu上运行无扩展(也许是ELF)文件?
  5. element tree不刷新视图_Vue项目布署后,刷新页面404的真正原因找到了
  6. Visio2010的下载
  7. 开发常用词汇表(带音标)
  8. 怎么发现愿景和目标 | 进击
  9. Windows10 LSTC 2021输入法无法使用的问题
  10. 计算机听觉应用,计算机音乐系统和音乐听觉训练
  11. Socket 系统调用深入研究(TCP协议的整个通信过程)
  12. Java爬取并下载酷狗TOP500歌曲
  13. Unity2019.4.31f1 通过鼠标和WASD在游戏内控制摄像机移动
  14. Gridmanager
  15. 老调重弹:JDBC系列 之 驱动加载原理全面解析
  16. Pandas.Series的加减乘除数学运算
  17. springmvc(四) springmvc的数据校验的实现
  18. CSDN做测试的老师教你Jmeter生成压力测试报告
  19. MySQL 玄学问题总结
  20. Sublime Text工具栏隐藏后,怎么重新显现

热门文章

  1. android studio 自定义应用主题,Android studio 设置主题
  2. linux没有无线wifi密码忘记,新版tplink无线密码(wifi密码)忘记了怎么办?
  3. 性能强大的家庭服务器,家庭服务器解决方案——硬件篇
  4. 关于对-rw-r--r-- 的详细讲解
  5. 服务器打完补丁无法进入系统,win7系统电脑更新补丁后无法进入系统怎么办
  6. [Klipper从入门到放弃]香橙派zero2设置2.4g无线热点
  7. 360随身wifi搭建无线热点
  8. 百宝云网络验证对接+脚本更新功能(源码)
  9. 2022第十七届巴拿马春晚-113万海内外观众欢聚迎新春
  10. Linux 操作系统 之 虚拟内存