Google地图数据资源的应用初探

   日期:2024-10-21     来源:网络整理    作者:佚名     移动:http://mip.ourb2b.com/news/667862.html
核心提示:Google地图数据资源的应用初探的地图数据资源,以方便自己的学习、工作和生活。的地图数据为用户提供位置服务。(3)用户在地图类型(如“地图”和“卫星”)之间进(4)微博信息显示:实时显示处于不同自己构造的城市中的人们在“百度贴吧”中发布的微博信息,以信息框的形式在地图的各个城市显示出来。地图数据资源应用的方法,从而满足具体需要。

Google地图数据资源的应用初探

摘 要:

为了使Google 地图服务得到更广泛地应用,Google 对外提供了便于二次开发的开放式地图服务应用程序接口(Google Maps API),允许开发者在程序中嵌入Google Maps 强大功能,从而让全世界对Google Maps 有兴趣的人能够自行开发Google Maps 服务。本文在分析Google Maps(Earth)研究现状的基础上,利用Google Maps API for Flex 实现Google Maps功能展示实例,既实现了Google Maps 基本功能,也实现了三维地图、搜索、行车路线显示、实时微博信息显示以及我的求学历程展示等其他功能。

关键词:

Google Maps(Earth);API;Flex

0.引言

人们观念中的地图都是纸质的,但随着科技的进步与发展,电子地图进入到我们的生活。Google Maps是Google 公司提供的电子地图服务,能提供矢量地图(传统地图)、不同分辨率的卫星照片以及地形视图等三种视图。2005 年6 月29 日,Google对外提供了便于二次开发的开放式地图服务应用程序接口( API)。

在不同的环境中,根据不同的需要,人们应该选择不同的方式来利用Google Maps 的地图数据资源,以方便自己的学习、工作和生活。可以选择编程的方式直接调用 卫星图片数据;还可以基于Google Maps API 来进行二次开发。本文在研究关于Google Maps(Earth)和 API for Flex 的相关理论以及关键技术的基础上,实现了Google 地图数据资源的应用,即基于Google Maps API for Flex 实现Google Maps 功能展示实例。

1.Google Maps 的技术支撑以及Flex 剖析

1.1Google Maps 的技术支撑

Ajax 是pt and XML 的缩写,即“异步的 和XML 处理技术”[1]。Google Maps 采用Ajax 技术[2]与传统Web 相比,Google Maps不再需要点击特定的链接来下载新的地图数据,用户的操作(如在地图上拖拽)随时触发浏览器与服务器之间的通信。另外,浏览器和服务器之间的交互是异步进行的,用户的工作流程不再被频繁的刷新过程打断。

1.2Flex 剖析

1.2.1Flex 概述

Flex 是Adobe公司开发的支持RIA( )开发和部署的技术产品,是为满足希望开发RIA 的企业级程序员的需求而推出的表示服务器和应用程序框架[3]。借助于Flex 强大功能,能够开发出增强更富有交互性和标签的用户界面。

Flex 弥补了许多传统Web 应用缺乏的元素,减少了与服务器之间通信的次数,更为详细地展示数据的细节。最适用的应用程序包括:解决多步处理、客户端验证、控制可视数据,使桌面应用和Web 应用结合在一起,表现出更强大的表现力[4]。

1.2.2 Flex 的基本架构和工作机制

(1)Flex 的基本架构包括4 部分(如图1 所示)

(2)一个Flex 应用程序通常包含6 种元素(如图2所示):

2.Google Maps API 介绍

2.1Google Maps API 概述

Google 于2006 年发布基于 的 API 后,已经有大约20 万个活跃网站在使用这个API,Google Maps API 已经成为最流行和最可信赖的网络开发工具。Google Maps API 是Google 为开发者提供的Maps 编程API,允许开发者在不必建立自己地图服务器的情况下,将Google Maps 地图数据嵌入到网站之中,实现嵌入Google Maps 的地图服务应用,借助Google Maps 的地图数据为用户提供位置服务。其开发原理(如图3 所示):

2.2 常用 API功能

Google Maps API 按照其具有的功能分为两部分,一部分为地图显示功能, 如GMap2、GPoint、GIcon和GLatLng等;一部分为API 的扩展功能,比如想开发自己的控件、标注和地图类型等,类或函数包括、、和等。[5]

具体功能包括:(1)创建/ 卸载地图。(2)设置地图属性。(3)创建信息窗口。(4)预定义地图事件。(5)事件监听器。(6)预定义组件。(7)创建标记。(8)创建折线和多边形。(9)创建新图层。(10)异步Http 通讯[6]等。

3.系统的总体设计

3.1 主界面设计方案

主界面设计方案:

3.1.1 系统界面最上面一行为“text=Google MapsAPI for Flash 应用程序示例”,居中显示,用于方便用户了解系统的主题。

3.1.2 下面一行是实现“微博信息显示”、“停止微博信息显示”和“我的求学历程展示”、“停止我的求学历程展示”的4 个按钮,等间距居中显示。

3.1.3 再下面一行是实现设置三维地图中的相对于正北方向定义查看者角度的“Set Yaw”按钮;设置三维地图中相对于地图上的地平线定义地图的镜头入射角的“Set Pitch”按钮;实现地址搜索的“Search”按钮。

3.1.4 最下面是显示行车路线的“Get ”和“GetNext Step”按钮,两个按钮上下对齐分两行显示。

3.1.5 最下面是显示地图区域。

整个主界面设计(如图4 所示):

3.2 功能设计

系统可以实现的功能包括Google Maps 自带的基本的功能和自主开发的特殊功能。

3.2.1 Google Maps 自带的基本的功能如下:

(1)在 上使用的平移控件的添加。

(2)在 上使用的缩放控件滑块的添

加。

(3)用户在地图类型(如“地图”和“卫星”)之间进

行切换。

(4)显示比例尺。

(5)显示位于屏幕一角的可折叠概览地图。

(6)启用鼠标滚轮实现缩放功能。

(7)双击地图实现放大功能。

(8)拖动平移功能。

3.2.2 自主开发的特殊功能如下所示:

(1)三维地图效果:可以在系统中操作设置角度google 地图 无法连接网络,已达到用户想要的效果。

(2)搜索查询功能:实现查询的位置在地图中以气球显示,点击气球处弹出该位置的名称信息框。

(3)行车路线功能:输入两点位置,在地图中显示出路线,并可以获得路线说明。

(4)微博信息显示:实时显示处于不同自己构造的城市中的人们在“百度贴吧”中发布的微博信息,以信息框的形式在地图的各个城市显示出来。

(5)我的求学经历显示:显示自己本人的求学之路历程,在信息框显示出哪年到哪年中就读于某个城市,各个城市间以带有颜色的折线连接。

4.基于 API for Flex 进行应用程序实例展示

4.1Google Maps 自带的基本功能的实现

实现 自带的基本功能通过向地图添加相关控件来实现:

4.1.1 添加控件,可以实现向地

图添加平移控件、缩放空间滑块、拖动平移功能以及双击地图放大功能。

4.1.2 添加MapType Control 控件,实现用户在

地图类型(如“地图”和“卫星”)之间进行切换;添加Scale Control 控件可以显示比例尺;添加 Control 控件可以显示位于屏幕一角的可折叠概览地图。

4.2 三维地图功能的实现

Google Maps API(Flash 版)可支持三维(3D)地图。采用Google Maps API(Flash 版)的三维地图是通过类似于Google 地球中所用到的真实视角展示的。要在Google Maps API(Flash 版)中使用三维地图,需要用一个新对象(Map3D 对象)替代标准的Map 对象。

本系统通过导入com. google. maps. Map3D、com.google. maps. View 和com.google. maps. geom. 类将三维功能添加到地图中,使用 视图初始化地图。对透视地图而言,地图是利用屏幕(镜头)前的一个虚拟参考点投影在视觉(屏幕)上的。地图、视口和镜头这三者在视口上形成了一种透视效果,从而使地图有了深浅层次的视觉效果。选择卫星地图,效果(如图5 所示):

4.3 搜索功能的实现

4.3.1 实现搜索功能的理论基础

在Google Maps API for Flash 中进行地址解析需要对Google 服务器发出异步请求。然后将该请求发送给Google 的地址解析服务。收到响应后会在 上生成事件,然后就可以使用该地址解析响应。在每种情况下,该事件都会在自身的以下属性中传回该地址解析请求的相关信息, 自身的属性包括:

(1)request:将原始地址解析请求存储为文本字符串。

(2):存储地址解析请求类型(当前“地址解析”是唯一的请求类型)。

(3).name:将原始地址解析请求存储为文本字符串。

(4)..address:存储解析的地址。

(5)..:存储符合可扩展地址语言(xAL)(一种地址格式化的国际标准)的地址详细信息。

(6)..point:存储符合可扩展地址语言(xAL)(一种地址格式化的国际标准)的地址详细信息。

(7)status:包含地址解析请求的状态,通常还会包含一些附加信息,例如有关地址解析尝试失败原因的信息。

4.3.2 实现搜索功能

将实例化,为 事件添加事件侦听器,并通过将地图移至该地址、添加一个标记并为该标记添加事件侦听器(点击该标记时会显示该地址)来处理成功的地址解析。搜索武汉大学,并点击地图的气球(如图6 所示):

4.4 行车路线功能的实现

4.4.1 实现行车路线功能的技术支持:

通过对象来利用Google Maps API for Flash 添加行车路线。 对象使用查询字符串或提供的文本经纬度请求结果。可通过指定“路标”请求两点或更多点之间的路线。发起路线请求:使用异步.load()方法请求行车路线。出行方式:默认情况下,路线假设为行车路线,尽管可通过在调用.load ()方法时在 对象中传递常量来请求其他出行方式。

处理传回的路线:当路线成功传回后,对象会在内部存储一个经过编码的折线(用以表示地图上的路线),并会在文本格式和HTML 格式的字段中存储系列文本路线。

路线和路段:文本格式和HTML 格式的路线在一个或一系列Route 对象中传回google 地图 无法连接网络,每个对象都包含在原始查询中指定的路段。同样,每个路线都包含一个或多个Step 对象,而每个对象又包含分路段显示的路线。可以使用.(i:Number)方法检索路线,其中,传递的数字代表传回路线的路段。可以使用Route.getStep(i:Number)方法检索路线中的路段。

4.4.2 行车路线功能的实现

发起行车路线请求,引入确定起点和终点的函数。处理传回的路线,以折线的形式在地图上显示出来,并设置了折线的颜色。实现该确定路线的路段(类型为Step)数目、该路线的起点和终点地址解析以及计算出的其他信息,如距离、持续时间等。输入从盘锦到武汉,并点击“Get Next Step”到不能再点击,得到行车路线、距离以及消耗时间等信息

(如图7 所示):

4.5 实时显示微博信息功能的实现

该功能的实现:

(1)根据URL 获取网页源文件,并保存到一个字符串中,实际就是从相应的网页上抓取相关数据。当加载完地图后,利用loader.load(url)函数加载URL,如果System. 为true,则使用系统代码页对该请求进行编码。

(2)加载完网页后,就会调用 函数,当程序执行到 函数,就是把所需网页的源文件中的信息全部保存到htmlStr 中了。用正则表达式提取微博信息数组,符合规则的信息都将会被提取,这样就实现了根据微博的信息,定位到用户的个人主页信息,从中提取用户所在地信息。

(3)然后对每条信息进行解析,获取其姓名、头像、发表的信息和个人主页网址、信息发布时间等。再设置1s 的间隔,将所有的信息重复三次;最后通过调用 函数来实现“结束后,重新加载网页,重复之前的过程”的功能,这样就实现了根据微博的信息,定位到用户的个人主页信息,从中提取用户所在地信息[7]。

(4)在“百度说吧”中想获得各个发布微博信息的用户的个人位置信息,包括所处城市等,必须要用自己的“百度说吧”账号登陆去查看,由于无法获得用户的确切的数据信息,所以我构造了一些地理位置(如北京、上海、武汉、广州、西安、盘锦、乌鲁木齐、九江、青岛和郑州)来作为系统的地理数据。通过调用()函数来实现设置语言为中文,并创建 实例。然后通过调用 Success(event:)得到返回数组的第一个对象,也就是转换后的经纬度数据,并设置地图中心坐标,这样就实现了利用Google maps API 中的将地址转换为经纬度。

(5)最后通过调用Info 函数实现在相应的经纬度地址将微博信息展示出来。点击“微博信息显示”按钮,可以按“停止微博信息显示”按钮,来结束微博显示(如图8 所示):

4.6 展示我的求学历程功能的实现

该功能其中主要是应用了之前介绍的类,作用就是给定两个地点,返回一条路径。假如我想展示从盘锦到武汉的求学之路,得先查出两者之间的路径,并绘制出来,再在盘锦和武汉两个地点上相应地加上Maker 标注。并且,在每个地点都加入窗口,以显示某个时间我就读于某个城市。

实现过程:

(1)构建“盘锦、武汉、上海、广州和成都”五个城市,并且构建“1992 年—1999 年就读于盘锦、1999年—2002 年就读于武汉、2002 年—2005 年就读于上海、2005 年—2009 年就读于广州和2009 年—2012 年就读于成都”的数据,把它们存放在“Array”中,利用 函数发发库商务信息网,借鉴实现微博功能中的 类,找到每个城市的经纬度,并且在每个地方标注一个点。

(2)调用 函数来实现查找出两个点中间的路径,将它保存下来,并把路径绘制在地图上,如此反复,直到所有的5 个城市都计算完毕,最后根据路线来确定显示的层次和等级。。

(3)通过调用onTimer 函数来实现隔若干时间就出发一次操作,用来显示动态效果。

(4)通过利用函数来实现在每个城市上进行窗口展示以显示相关信息。点击“我的求学历程演示”按钮(如图9 所示)

6.结束语

随着技术的飞速发展,GIS 网络化已成为必然趋势。人们越来越希望在网络地图中得到更多的人机交互体验,而Flex RIA 技术的出现,恰恰能满足这一需求[7]。本文对Google Maps、Flex 以及 API 的基础理论知识进行了介绍,展示了基于Google Maps API for Flex 的关于Google Maps 功能实例。在不同的环境中,考虑耗费时间等客观因素,根据个人的目的不同,可以选择合适的Google 地图数据资源应用的方法,从而满足具体需要。

参考文献:

[1] 孙晓茹,赵军.Google Maps API 在WebGIS中的应用[J].微计算机信息,2006(7):224—226.

[2] 田凤宾,赵军.基于Google Maps的同城生活信息平台设计策略研究[J].电脑知识与技术,2008.

[3] 周曦,鞠建荣,武小军,刘广霞.基于Flex 的数字测绘档案业务管理系统的设计与实现[J].城市勘测,2010(增刊1):63- 64.

[4] 杨天亮,王亮.基于Google Map API 的电信基站信息管理系统研究[J].地理空间信息,2008,6(4):19221.

[5] 韩永雷.基于Google Maps API 地理教学资源开发与应用[D].上海:华东师范大学,2010.

[6] [美]安德·勒维斯.Google Maps应用程序Rails和Ajax 开发指南[M].北京:机械工业出版社,2008.

[7] 罗娇.基于Flex 的城市基础地理数据发布系统的设计与实现[J].城市勘测,2012(1):41- 42.

最后,小编提醒,由于微信修改了推送规则,没有经常留言或点“在看”的,会慢慢的收不到推送!如果你还想每天看到我们的推送,请将ArcGis爱学习加为星标或每次看完后点击一下页面下端的“赞”“在看”Google地图数据资源的应用初探,拜托了!

▼往期精彩回顾

2、

3、

4、

【本文来源于互联网转载,如侵犯您的权益或不适传播,请邮件通知我们删除】

免责声明:Google地图数据资源的应用初探来源于互联网,如有侵权请通知我们删除!
本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请通过网站留言/举报反馈,本站将立刻删除!
 
 
更多>同类行业

推荐图文
最新发布
网站首页  |  网站地图  |  网站留言  |  RSS订阅  |  违规举报