Mash-up

网络应用开发技术

混聚(Mashup)是一种基于Web Services、资源元数据规范等技术的网络应用开发技术,它可以将不同站点或应用程序的数据、资源、API加以混聚来构建新的业务流程,满足新的用户需求。混聚的思想最早启迪于艺术领域,现已作为一种网络应用开发模式为世人所熟知。

背景介绍
该模式指的是网站采用混合技术搭建,不同的功能模块与不同的外界API接口对接实现,雅虎、google都提供开放的API供其它网站使用。
摘要
混聚(Mashup)是一种基于Web Services、资源元数据规范等技术的网络应用开发技术,它可以将不同站点或应用程序的数据、资源、API加以混聚来构建新的业务流程,满足新的用户需求。本文介绍了混聚的技术原理、系统架构、主要的开发平台,并结合教学应用实例介绍了Mashup应用的开发方法与流程,并展望了其在教学中的应用。
关键词
混聚、Mashup、Web Services、Yahoo Pipes、网络教育应用
原理概况
发展概况
混聚(Mashup)是伴随着Web2.0和社会化网络的兴起而迅猛发展起来的一种网络应用开发模式,其设计思路是以特定的用户与业务需要为目标,将来自不同站点的数据源Web服务(Web Services)加以混合与集成,以此构建一个新的应用。
混聚的思想最早启迪于艺术领域。早在20世纪早期,画家George Braque和Pablo Picasso就开创了称为“拼贴画”(collage)的艺术表现形式,这种拼贴的技艺在之后成了“现代派文艺运动”(Modern Art movement,约1850-1950)的重要流派(WikiPedia,2008),这可以视为混聚思想的发源。上世纪后半期,混聚在音乐、电视等流行艺术中开始盛行,音乐(或电视)混聚作品通常是以截取多则其它音乐(或电视)中的片断,加以混编而成(WikiPedia,2008)。
混聚最早作为一种网络应用开发模式为世人所熟知,始于Paul Rademacher开发的Housingmap,在这个站点中,他创造性地使用Google Maps地图服务的应用程序接口(API),将来自在线房屋租赁网站Craiglist的数据源依据位置信息标识于地图中,使用户可以依据地理位置可视化地选择合适的房源。混聚由此获得广泛认知,并引起业界追捧。众多的网站如Flickr、Amazon、Google Maps等纷纷以数据源(Feeds)、API、Web Services等方式提供可编程扩展,鼓励第三方开发者与用户以创新的方式重组这些已有资源,构建混聚作品。此外,一些公司如Google、Yahoo、Microsoft、IBM等纷纷推出针对不同技术层次用户的混聚开发工具。业界的这些努力,为混聚的发展营造了一个良好的技术生态,推动了混聚开发与应用的迅速发展。据混聚技术观察网站的记录,自2007年5月至2008年8月,网络中公开的API由431个增加到907个,而混聚数量则由1900个增加到3328个。
技术原理与结构
混聚应用的系统结构包括数据提供站点、混聚站点与用户端三部分。
数据提供站点:这是混聚作品开发的基础,它们通常以特定的Web程序接口(API)和元数据标准(如RDF、RSS/Atom)等方式提供用于混聚的应用服务与数据源,以方便开发者搭建新的逻辑与业务流程。已有大量的站点开始提供WEB API,至于RSS/Atom形式,几乎已是所有主流站点的内容发布策略之一。甚至,对于那些没有提供现成API接口的站点,混聚开发者可以应用一种称为“屏幕抓取(Screen Scraping)”的技术,依据特点的应用需求,编写特定的页面内容分析程序进行捕获。
混聚站点:这是整个应用架构的核心,也是设计者整合多个数据来源,并进行特定的数据操作实现业务流程的关键部分。开发者既可以使用动态网络开发语言在服务器端进行混聚,也可以使用客户端脚本(如JavaScript)或Java Applet等在用户端运行环境(浏览器、Widget引擎等)中实现。在浏览器中进行客户端集成是混聚开发的主流,借助AJAX等呈现技术,这类作品可以提供很好的用户体验;而服务器混聚在流程设计与内容处理上有更大的灵活性,因而前景一样非常吸引人。
用户端:用于呈现混聚应用的客户端运行环境,也是用户交互的界面,其核心是Web浏览器,但除了浏览器外,还可以Widget(如Yahoo Widget引擎)方式直接在操作系统中运行。
分类
对混聚进行分类有助于厘清其发展脉络与应用现状,不同的研究者进行了不同的尝试。
Duane Merrill依据应用程序的外显特征,将混聚作品分为地图类、视频和图像类、搜索和购物类和新闻类4种(Merrill, 2008)。由于混聚是一种对原始数据服务的创意拼接,其应用形式千姿百态,因而具体的混聚程序在形态上未必严格对应于以上分类,并且也有理由相信将来会有新的混聚形态出现。
根据Web程序中混聚技术的应用层次,则可以将混聚分为以下五种(Hinchcliffe,2008),显然这一分类对了解其应用形式与实现方法更有参考价值:
表现层混聚(Presentation Mashup):这是最浅层的混聚形式,仅仅是将不同来源的数据和信息(甚至是简单的HTML内容)放置在一起。当前的很多Ajax应用和组织门户站点都采用了这一模式。
客户端数据混聚(Client-Side Data Mashup):将来自远程Web服务、数据源等混聚在一起,并对起进行客户端程序编写,使之按特定需求以特定的形式呈现,比如将信息发布者的地址信息转换为地理信息并在地图上显示。
客户端软件混聚(Client-Side Software Mashup):这种混聚方式是在浏览中通过客户端程序设计,使不同的Web应用程序组接(wire)到一起,构建成全新的基于浏览器应用软件
服务器端软件混聚(Server-Side Software Mashup):指那种在构建Web应用程序使用外部站点的Web服务的混聚方式。使用当前开放的大量公共API,开发者可以使用一些它们来构建一些外围应用,而将主要精力集中到核心业务设计上。
服务器端数据混聚(Server-Side Data Mashup):这一层次的混聚主要解决的是在来自不同厂商的数据库产品及不同站点间提供数据的混聚。在当前,使用语义Web技术(如RDF、RSS、Atom)用元数据对数据进行增强,从而使数据变得有意义,最终使数据变得适合进行自动化、集成、推理和重用,是一种很好的解决方式。
开发情况
常见开发平台
混聚应用开发的技术门槛较低,有经验的开发者可采用传统Web编程构建混聚程序。此外,还有一些专门的开发环境可以帮助开发者以更快捷、更简单的方式进行混聚程序的设计、开发、调试与发布,如Google Mashup Editor、Yahoo Pipes、Microsoft Popfly,此外,还有一些面向企业用户开发,用于构建组织内混聚生态系统的开发环境,如IBM Lotus的Mashups、Mashup Hub等。
Google Mashup Editor 是Google于2008年上半年推出的一款在线混聚开发软件。它提供了一个Ajax编程框架和混聚开发专用标记语言,此外还提供了在线测试与应用托管服务(阮高峰,2008)
Pipes是Yahoo推出的在线混聚开发平台,提供了可视化的混聚开发、测试与托管服务,并提供了开发者社区,因而用户可以自由地借鉴、学习优秀作品并与作者进行交流,正是如此,Pipes也是互联网上规模较大的混聚开发者社区与作品集散地之一。与GME相比,Yahoo Pipes对开发者更为友好,技术门槛更低,有关使用Yahoo Pipes进行混聚开发的实例,将在下文述及。
开发流程
混聚程序的开发一般包括资源收集与逻辑流程设计、资源混聚与流程架构、调试与发布等三个步骤,以下结合具体案例进行介绍。
案例背景:2008年,我国四川地区发生了里氏8.0级地震,造成了人民群众生命与财产的巨大损失。G市某小学打算在这一事件背景下对在校学生开展一次地震知识与防护常识的专题教育,为配合这一活动,学校还制作了一个专题网站。其中某一专题内容要求向学生展示最近一周我国境内发生的里氏2.5级以上的地震区域,并在地图上显示相关信息。G校的教师经与指导课题开展的S高校专家讨论后,决定使用混聚的方式进行专题栏目的开发。
2.2.1资源收集与逻辑流程设计。考虑到本案例所需显示信息的动态性,显然不宜采用手工更新最新地震源信息的做法。为保证信息的时效性与准确性,经查询比较后,开发者采用了美国内务部地质勘测局网站提供的过去1周内2.5级以上地震的数据源。
为将这一数据源中形如“Sichuan-Yunnan border region, China”的文本信息转为可标识于电子地图服务的位置(Location)信息,开发者又引用了Geonames网站提供的名为“RSS-to-geoRSS”的Web服务。
2.2.2. 资源混聚与流程架构。
本例基于Yahoo Pipes进行混聚程序的开发。具体思路是将USGS的最新地震信息数据源经RSS-to-GeoRSS服务转换为包含位置信息的新源,并并Yahoo地图API解析与显示。
2.2.3.调试与发布。
利用Pipes提供的在线调试功能,设计完毕后运行(Run)当前作品,此时Pipes会依次调用外部资源,并将源文件“编译”为在浏览器中运行的Web程序。如果相关功能已经实现,就可以发布(Publish)作品了,此时系统会针对你的混聚作品提供一个URL和外部调用ID。
教学应用
网络教育应用开发
互联网包含了大量教育资源,但资源的分散、无序、重复建设等分布特征又使得很难充分地挖掘其教育功用。混聚作为一种轻量、灵活、针对情境的设计开发模式,有助于教育资源开发者依据特定的需求,对零散的共享教育资源进行二次加工,系统整合,构建学习单元。相对于传统的网络教育应用开发技术,混聚具有以下优势。
内容的混合性和体验的汇聚性。混聚可以将来自不同来源的数据加以混合,并按一些的应用情境进行特定的编排、分类、地图化等操作,以创建具有良好交互性的富互联网应用(Rich Internet Application,RIA),有助于汇聚用户在不同站点的活动,营造连续、完整的网络学习体验。
面向业务,以用户为中心。混聚是一种面向特定的应用需求与业务流程,通过汇聚与特定用户需求相关的数据与应用,不但可以提升用户体验,还能大大提升用户的活动效率。
架构开放,适合快速开发。对开发者而言,采用混聚技术的教学应用可以直接引用丰富的外部资源与服务,并将主要精力放于核心流程的设计与实现,既可以节省宝贵的研发资源,又大大提高开发效率。而随着公共可编程扩展资源与开发工具的发展,其开发的技术门槛将进一步降低。
当然,混聚技术也有一些不足,表现:(1)以外部数据源与API为基础,这样便受到其功能、版本、访问速度等因素所限;(2)以客户端脚本形式调用外部资源,会带来安全隐患,并且这种引用外部资源的设计也可能会被一些网络安全软件所拦截,影响功能的实现;(3)如果引用的Web服务不支持匿名访问,则会要求校验用户身份,多个此类服务同时调用时,多次的身份校验会影响用户体验,当然,这可由诸如OpenID之类的分布式身份认证方案来解决(阮高峰&徐晓东,2008)
混聚技术作为一种全新的Web应用开发架构,可以在Web教育资源开发与共享方面给予我们颇多启示。
3.2.1 混聚技术有利于教育资源的共享与充分利用。
一方面,借助于已有的用于教育资源共享的软硬件基础设施,混聚技术可以创造性的方式整合已有的多种教育资源,促进与提高了网络教育资源的利用;另一方面,当混聚技术发展到足够高度,有关数据与服务共享的标准也会为更多的教育资源站点所推崇,也有助于资源建设标准化、开放性的发展。
3.2.2 混聚有助于发挥教育参与者群体智慧,并进而催生成熟的在线教育资源生态。
混聚开发的技术要求相对较低,使得其潜在的开发者队伍十分庞大,随着诸如Pipes等优秀的混聚开发环境的发展与成熟,混聚很可能会走上全民化的发展趋势,发挥“长尾”的力量,催生出一个更为成熟,更具健康与活力的在线教育教学资源生态。
3.2.3、混聚有可能提高网络学习组织方式的灵活性,实现个体学习的个性化。
混聚轻量化的技术特征使得其在设计思想上是传统的网络课程不一样,它比较关注于课程中具体知识内容的深度加工,通过对不同混聚应用的灵活组合,学习组织或个人可以依据个人的兴趣、爱好和已有的学习经验,灵活地设计学习内容与进路;此外,汇聚于混聚生态系统中的大量作品,也是个体进行深入的自主学习和非正式学习的重要资源。
小结
混聚这一网络应用开发模式兼具系统架构的开放性、资源选取的灵活性和技术门槛的低要求性,随着数据共享技术及混聚技术本身的成熟,它在Web应用开发中也会占据更多的比重。对教育领域而言,混聚为我们提供了一种教育资源整合和二次开发的新技术,尽管国内外使用混聚技术开发教育应用的相关案例尚不太多,但随着这一技术生态的不断成熟,我们应该对其教育应用前景抱乐观态度。
音乐风格
Mash up是一种新型的音乐风格
Mash Up的概念从2004年就已经出现,理念上Mash Up就是将各种不同类型的音乐重新编排混在一起,内容上接受House、Trance、Funk、Rock等各种不同类型的音乐风格,也可以由DJ自然发挥来重新混音。 作为Mash Up来说,它是电子音乐产量爆炸的产物,这本身对DJ的功底就是一个考验,Mash Up之中用的很多歌区本身就是冷门,但是如何把这些冷门的歌曲中最精彩的部分摘出来热场,这就是Mash Up的精髓所在。而对听者而言,可能最后听到的只是一个个高潮的展现,但是私下DJ要下的功夫远比一般人要大得多,单是音乐就要比其他单一类型的DJ多好几倍。
同样,作为Mash Up的听众而言,Mash Up就像是当下时兴的“微传媒”一般,用最短小精干的语言和最简洁明了的重点来填充对于信息的满足感,Mash Up是用最短小的段落来表现多首单曲之中最精彩的部分,并用最快的速度展示出来。Mash Up的精彩是通过一个非常规的音乐渠道来完成对现场的掌控和对音乐的诠释。
其实就Trance音乐这种大型派对常常出现的音乐类型而言,Mash Up的理念也曾经出现,例如世界首席Trance DJ—Armin van Buuren在每年的年末都会推出一张A State of Trance Yearmix的双CD,其中两张CD在2个小时内容纳入86-87首歌,甚至一首歌只有几十秒出现。虽然名为yearmix,但其实就是mash up在trance音乐中的变种产物。
而对于传统的Mash Up更多的是在House音乐的历史上出现的,例如Ministry of Sound的御用Mash Up dj—cut up boys每年就会主推Mash Up在全球的推广,而电子老炮Prodigy在前几年也在转型成Mash Up的新形态。但是由于呼应的人较少,因此也没能成功。
Mash Up存在一些无可奈何的问题,首先就是在快餐文化下,这种需要细嚼慢咽并精细的文化产品和当下的市场之间具有一定距离,虽然当下Mash Up一出,必然是精品,但却无法引起大部分业内人的兴趣。
全国各地天气预报查询

上海市

  • 市辖区
  • 云南省

  • 临沧市
  • 云南省

  • 丽江市
  • 云南省

  • 保山市
  • 云南省

  • 大理白族自治州
  • 云南省

  • 德宏傣族景颇族自治州
  • 云南省

  • 怒江傈僳族自治州
  • 云南省

  • 文山壮族苗族自治州
  • 云南省

  • 昆明市
  • 云南省

  • 昭通市
  • 云南省

  • 普洱市
  • 云南省

  • 曲靖市
  • 云南省

  • 楚雄彝族自治州
  • 云南省

  • 玉溪市
  • 云南省

  • 红河哈尼族彝族自治州
  • 云南省

  • 西双版纳傣族自治州
  • 云南省

  • 迪庆藏族自治州
  • 内蒙古自治区

  • 乌兰察布市
  • 内蒙古自治区

  • 乌海市
  • 内蒙古自治区

  • 兴安盟
  • 内蒙古自治区

  • 包头市
  • 内蒙古自治区

  • 呼伦贝尔市
  • 内蒙古自治区

  • 呼和浩特市
  • 内蒙古自治区

  • 巴彦淖尔市
  • 内蒙古自治区

  • 赤峰市
  • 内蒙古自治区

  • 通辽市
  • 内蒙古自治区

  • 鄂尔多斯市
  • 内蒙古自治区

  • 锡林郭勒盟
  • 内蒙古自治区

  • 阿拉善盟
  • 北京市

  • 市辖区
  • 吉林省

  • 吉林市
  • 吉林省

  • 四平市
  • 吉林省

  • 延边朝鲜族自治州
  • 吉林省

  • 松原市
  • 吉林省

  • 白城市
  • 吉林省

  • 白山市
  • 吉林省

  • 辽源市
  • 吉林省

  • 通化市
  • 吉林省

  • 长春市
  • 四川省

  • 乐山市
  • 四川省

  • 内江市
  • 四川省

  • 凉山彝族自治州
  • 四川省

  • 南充市
  • 四川省

  • 宜宾市
  • 四川省

  • 巴中市
  • 四川省

  • 广元市
  • 四川省

  • 广安市
  • 四川省

  • 德阳市
  • 四川省

  • 成都市
  • 四川省

  • 攀枝花市
  • 四川省

  • 泸州市
  • 四川省

  • 甘孜藏族自治州
  • 四川省

  • 眉山市
  • 四川省

  • 绵阳市
  • 四川省

  • 自贡市
  • 四川省

  • 资阳市
  • 四川省

  • 达州市
  • 四川省

  • 遂宁市
  • 四川省

  • 阿坝藏族羌族自治州
  • 四川省

  • 雅安市
  • 天津市

  • 市辖区
  • 宁夏回族自治区

  • 中卫市
  • 宁夏回族自治区

  • 吴忠市
  • 宁夏回族自治区

  • 固原市
  • 宁夏回族自治区

  • 石嘴山市
  • 宁夏回族自治区

  • 银川市
  • 安徽省

  • 亳州市
  • 安徽省

  • 六安市
  • 安徽省

  • 合肥市
  • 安徽省

  • 安庆市
  • 安徽省

  • 宣城市
  • 安徽省

  • 宿州市
  • 安徽省

  • 池州市
  • 安徽省

  • 淮北市
  • 安徽省

  • 淮南市
  • 安徽省

  • 滁州市
  • 安徽省

  • 芜湖市
  • 安徽省

  • 蚌埠市
  • 安徽省

  • 铜陵市
  • 安徽省

  • 阜阳市
  • 安徽省

  • 马鞍山市
  • 安徽省

  • 黄山市
  • 山东省

  • 东营市
  • 山东省

  • 临沂市
  • 山东省

  • 威海市
  • 山东省

  • 德州市
  • 山东省

  • 日照市
  • 山东省

  • 枣庄市
  • 山东省

  • 泰安市
  • 山东省

  • 济南市
  • 山东省

  • 济宁市
  • 山东省

  • 淄博市
  • 山东省

  • 滨州市
  • 山东省

  • 潍坊市
  • 山东省

  • 烟台市
  • 山东省

  • 聊城市
  • 山东省

  • 菏泽市
  • 山东省

  • 青岛市
  • 山西省

  • 临汾市
  • 山西省

  • 吕梁市
  • 山西省

  • 大同市
  • 山西省

  • 太原市
  • 山西省

  • 忻州市
  • 山西省

  • 晋中市
  • 山西省

  • 晋城市
  • 山西省

  • 朔州市
  • 山西省

  • 运城市
  • 山西省

  • 长治市
  • 山西省

  • 阳泉市
  • 广东省

  • 东莞市
  • 广东省

  • 中山市
  • 广东省

  • 云浮市
  • 广东省

  • 佛山市
  • 广东省

  • 广州市
  • 广东省

  • 惠州市
  • 广东省

  • 揭阳市
  • 广东省

  • 梅州市
  • 广东省

  • 汕头市
  • 广东省

  • 汕尾市
  • 广东省

  • 江门市
  • 广东省

  • 河源市
  • 广东省

  • 深圳市
  • 广东省

  • 清远市
  • 广东省

  • 湛江市
  • 广东省

  • 潮州市
  • 广东省

  • 珠海市
  • 广东省

  • 肇庆市
  • 广东省

  • 茂名市
  • 广东省

  • 阳江市
  • 广东省

  • 韶关市
  • 广西壮族自治区

  • 北海市
  • 广西壮族自治区

  • 南宁市
  • 广西壮族自治区

  • 崇左市
  • 广西壮族自治区

  • 来宾市
  • 广西壮族自治区

  • 柳州市
  • 广西壮族自治区

  • 桂林市
  • 广西壮族自治区

  • 梧州市
  • 广西壮族自治区

  • 河池市
  • 广西壮族自治区

  • 玉林市
  • 广西壮族自治区

  • 百色市
  • 广西壮族自治区

  • 贵港市
  • 广西壮族自治区

  • 贺州市
  • 广西壮族自治区

  • 钦州市
  • 广西壮族自治区

  • 防城港市
  • 新疆维吾尔自治区

  • 乌鲁木齐市
  • 新疆维吾尔自治区

  • 伊犁哈萨克自治州
  • 新疆维吾尔自治区

  • 克孜勒苏柯尔克孜自治州
  • 新疆维吾尔自治区

  • 克拉玛依市
  • 新疆维吾尔自治区

  • 博尔塔拉蒙古自治州
  • 新疆维吾尔自治区

  • 吐鲁番市
  • 新疆维吾尔自治区

  • 和田地区
  • 新疆维吾尔自治区

  • 哈密市
  • 新疆维吾尔自治区

  • 喀什地区
  • 新疆维吾尔自治区

  • 塔城地区
  • 新疆维吾尔自治区

  • 巴音郭楞蒙古自治州
  • 新疆维吾尔自治区

  • 昌吉回族自治州
  • 新疆维吾尔自治区

  • 自治区直辖县级行政区划
  • 新疆维吾尔自治区

  • 阿克苏地区
  • 新疆维吾尔自治区

  • 阿勒泰地区
  • 江苏省

  • 南京市
  • 江苏省

  • 南通市
  • 江苏省

  • 宿迁市
  • 江苏省

  • 常州市
  • 江苏省

  • 徐州市
  • 江苏省

  • 扬州市
  • 江苏省

  • 无锡市
  • 江苏省

  • 泰州市
  • 江苏省

  • 淮安市
  • 江苏省

  • 盐城市
  • 江苏省

  • 苏州市
  • 江苏省

  • 连云港市
  • 江苏省

  • 镇江市
  • 江西省

  • 上饶市
  • 江西省

  • 九江市
  • 江西省

  • 南昌市
  • 江西省

  • 吉安市
  • 江西省

  • 宜春市
  • 江西省

  • 抚州市
  • 江西省

  • 新余市
  • 江西省

  • 景德镇市
  • 江西省

  • 萍乡市
  • 江西省

  • 赣州市
  • 江西省

  • 鹰潭市
  • 河北省

  • 保定市
  • 河北省

  • 唐山市
  • 河北省

  • 廊坊市
  • 河北省

  • 张家口市
  • 河北省

  • 承德市
  • 河北省

  • 沧州市
  • 河北省

  • 石家庄市
  • 河北省

  • 秦皇岛市
  • 河北省

  • 衡水市
  • 河北省

  • 邢台市
  • 河北省

  • 邯郸市
  • 河南省

  • 三门峡市
  • 河南省

  • 信阳市
  • 河南省

  • 南阳市
  • 河南省

  • 周口市
  • 河南省

  • 商丘市
  • 河南省

  • 安阳市
  • 河南省

  • 平顶山市
  • 河南省

  • 开封市
  • 河南省

  • 新乡市
  • 河南省

  • 洛阳市
  • 河南省

  • 漯河市
  • 河南省

  • 濮阳市
  • 河南省

  • 焦作市
  • 河南省

  • 省直辖县级行政区划
  • 河南省

  • 许昌市
  • 河南省

  • 郑州市
  • 河南省

  • 驻马店市
  • 河南省

  • 鹤壁市
  • 浙江省

  • 丽水市
  • 浙江省

  • 台州市
  • 浙江省

  • 嘉兴市
  • 浙江省

  • 宁波市
  • 浙江省

  • 杭州市
  • 浙江省

  • 温州市
  • 浙江省

  • 湖州市
  • 浙江省

  • 绍兴市
  • 浙江省

  • 舟山市
  • 浙江省

  • 衢州市
  • 浙江省

  • 金华市
  • 海南省

  • 三亚市
  • 海南省

  • 三沙市
  • 海南省

  • 儋州市
  • 海南省

  • 海口市
  • 海南省

  • 省直辖县级行政区划
  • 湖北省

  • 十堰市
  • 湖北省

  • 咸宁市
  • 湖北省

  • 孝感市
  • 湖北省

  • 宜昌市
  • 湖北省

  • 恩施土家族苗族自治州
  • 湖北省

  • 武汉市
  • 湖北省

  • 省直辖县级行政区划
  • 湖北省

  • 荆州市
  • 湖北省

  • 荆门市
  • 湖北省

  • 襄阳市
  • 湖北省

  • 鄂州市
  • 湖北省

  • 随州市
  • 湖北省

  • 黄冈市
  • 湖北省

  • 黄石市
  • 湖南省

  • 娄底市
  • 湖南省

  • 岳阳市
  • 湖南省

  • 常德市
  • 湖南省

  • 张家界市
  • 湖南省

  • 怀化市
  • 湖南省

  • 株洲市
  • 湖南省

  • 永州市
  • 湖南省

  • 湘潭市
  • 湖南省

  • 湘西土家族苗族自治州
  • 湖南省

  • 益阳市
  • 湖南省

  • 衡阳市
  • 湖南省

  • 邵阳市
  • 湖南省

  • 郴州市
  • 湖南省

  • 长沙市
  • 甘肃省

  • 临夏回族自治州
  • 甘肃省

  • 兰州市
  • 甘肃省

  • 嘉峪关市
  • 甘肃省

  • 天水市
  • 甘肃省

  • 定西市
  • 甘肃省

  • 平凉市
  • 甘肃省

  • 庆阳市
  • 甘肃省

  • 张掖市
  • 甘肃省

  • 武威市
  • 甘肃省

  • 甘南藏族自治州
  • 甘肃省

  • 白银市
  • 甘肃省

  • 酒泉市
  • 甘肃省

  • 金昌市
  • 甘肃省

  • 陇南市
  • 福建省

  • 三明市
  • 福建省

  • 南平市
  • 福建省

  • 厦门市
  • 福建省

  • 宁德市
  • 福建省

  • 泉州市
  • 福建省

  • 漳州市
  • 福建省

  • 福州市
  • 福建省

  • 莆田市
  • 福建省

  • 龙岩市
  • 西藏自治区

  • 山南市
  • 西藏自治区

  • 拉萨市
  • 西藏自治区

  • 日喀则市
  • 西藏自治区

  • 昌都市
  • 西藏自治区

  • 林芝市
  • 西藏自治区

  • 那曲市
  • 西藏自治区

  • 阿里地区
  • 贵州省

  • 六盘水市
  • 贵州省

  • 安顺市
  • 贵州省

  • 毕节市
  • 贵州省

  • 贵阳市
  • 贵州省

  • 遵义市
  • 贵州省

  • 铜仁市
  • 贵州省

  • 黔东南苗族侗族自治州
  • 贵州省

  • 黔南布依族苗族自治州
  • 贵州省

  • 黔西南布依族苗族自治州
  • 辽宁省

  • 丹东市
  • 辽宁省

  • 大连市
  • 辽宁省

  • 抚顺市
  • 辽宁省

  • 朝阳市
  • 辽宁省

  • 本溪市
  • 辽宁省

  • 沈阳市
  • 辽宁省

  • 盘锦市
  • 辽宁省

  • 营口市
  • 辽宁省

  • 葫芦岛市
  • 辽宁省

  • 辽阳市
  • 辽宁省

  • 铁岭市
  • 辽宁省

  • 锦州市
  • 辽宁省

  • 阜新市
  • 辽宁省

  • 鞍山市
  • 重庆市

  • 重庆市

  • 市辖区
  • 陕西省

  • 咸阳市
  • 陕西省

  • 商洛市
  • 陕西省

  • 安康市
  • 陕西省

  • 宝鸡市
  • 陕西省

  • 延安市
  • 陕西省

  • 榆林市
  • 陕西省

  • 汉中市
  • 陕西省

  • 渭南市
  • 陕西省

  • 西安市
  • 陕西省

  • 铜川市
  • 青海省

  • 果洛藏族自治州
  • 青海省

  • 海东市
  • 青海省

  • 海北藏族自治州
  • 青海省

  • 海南藏族自治州
  • 青海省

  • 海西蒙古族藏族自治州
  • 青海省

  • 玉树藏族自治州
  • 青海省

  • 西宁市
  • 青海省

  • 黄南藏族自治州
  • 黑龙江省

  • 七台河市
  • 黑龙江省

  • 伊春市
  • 黑龙江省

  • 佳木斯市
  • 黑龙江省

  • 双鸭山市
  • 黑龙江省

  • 哈尔滨市
  • 黑龙江省

  • 大兴安岭地区
  • 黑龙江省

  • 大庆市
  • 黑龙江省

  • 牡丹江市
  • 黑龙江省

  • 绥化市
  • 黑龙江省

  • 鸡西市
  • 黑龙江省

  • 鹤岗市
  • 黑龙江省

  • 黑河市
  • 黑龙江省

  • 齐齐哈尔市