首页 > 范文大全 > 正文

基于Google+Map的地理信息服务研究

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于Google+Map的地理信息服务研究范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要 本文根据Android智能手机平台特点,结合Google Maps,设计一个基于Android操作系统的地理位置信息搜索服务系统。首先对系统平台和该服务系统各主要功能模块设计进行了详细的研究和分析,然后进行设计和实现。

关键词 Android平台;智能手机;Google Map

中图分类号TP39 文献标识码A 文章编号 1674-6708(2013)84-0176-02

0 引言

Android是近些年来发展最为迅速的新型智能手机操作系统, Android平台最大的特点也是其最大的优势即是其开放性的特点。手机地图服务,是其中一种非常热门的手机应用服务。手机地图服务最大优点在于便携性和数据的实时性[1] ,这使得用户在日常的生活中以最方便的方式使用地图服务。

1 Androld操作系统和GPS

Android是一种基于Linux的自由及开放源代码的操作系统。Android最大的特点就是其源代码的开放性,以及其服务免费等特色。它对第三方软件完全开放,代码完全开源免费,这非常好的刺激了Android应用软件的发展。

GPS是英文Global Positioning System的简称。该系统由空间部分、对面控制和用户接收机三部分组成[3]。全球定位系统主要有以下特点:全球全天候定位;定位精度高;观测时间短。

2 Google Maps API 及地图服务开发关键技术

2.1 Google Maps API的概念

Google Maps API是Google为开发者提供的地图编程API,它基于JavaScript的函数/类库,可以让我们自行开发基于Google Maps的服务,建立自己的地图网站。通过Google Maps API我们可以自己在地图上创建标记,信息窗口,折线,多边形,显示提示信息等操作。而它非常重要的一个特点,它是一项免费服务,我们作为普通开发者均可免费使用。

2.2 常用Google Map API介绍

2.2.1 GMap2类

对GMap2类进行实例实例化来创建用户页面上的一个地图,他是API中的中心类,其他丢失辅助类,同时GMap2类提供了许多地图操作的类方法。

2.2.2 GEvent命名空间

在google map 中使用GEvent 来注册管理事件。用于注册时间监听器等工作。

2.2.3 GControl类

这是一个创建可切换地图的控件。所有控件都实现这个接口,实现此接口,以便为地图提供自定义控件。开发过程中调用方法对控件的属性进行设置等工作。

2.2.4 GOverlay类

如果希望在地图上显示自定义的叠加层对象类型,可以实现这一功能。可使用 GMap2.addOverlay() 方法将GOverlay 的实例放置于地图上。

2.2.5 GMarker类

GMarker 标记地图上的位置。它实现 GOverlay 接口,因此可使用 GMap2.addOverlay() 方法添加到地图中。

2.3 地图服务开发关键技术

2.3.1 Google地图API的导入

开发Google地图应用程序要先申请一个Google Maps API KEY授权码,从Google网站申请依序经过验证的Maps API KEY,主要有以下两个步骤:产生keystore并取得认证指纹码;经Google网站签署取得Maps API KEY授权码,有了APIKEY以后就可以开始进行代码的编写。

在命令行中进行操作:

Win7:C\User\%USERNAME%\.android>keytool -list –v -alias androiddebugkey –keystore debug.keystore

密码为“android”,如此便产生了认证指纹。

进入网页

https:///android/maps-api-signup输入认证指纹,会得到我们开发地图应用所需要用到的Key。

2.3.2 Google地图上的叠加操作

在已经申请了MapAPIKey并且将其添加到AndroidManifest.xml后,就可以使用谷歌地图了。当我们在地图的使用过程中希望向地图上添加图标,此时就需要用到地图的叠加层。叠加层是将指定的对象,通过地图上到经纬度坐标一起显示出来。可以使用向地图添加叠加层以获得图层叠加的效果。

3 GPS定位功能实现

Android支持GPS服务的API,同时,GPS的定位方式最大限度的保证获了取得的位置准确性。该服务可以获取当前设备的地理位置,应用程序获得地理位置,并可以在代码中设定相应的时长等信息,定时更新地理位置,对用户进行追踪。

UserLocation的关键 API:LocationManager,用于管理Android的用户定位服务;LocationProvider,提供多种定位方式供开发者选择。

3.1 用户定位功能实现

1)首先需要在AndroidManifest.xml中进行相应权限的注册:

2)获取LocationManager对象。LocationManager主要用来管理用户定位的服务,所有的服务功能都是基于它提供出来的。

LocationManager locationManager=(LocationManager)MainActivity.this.getSystemService(Context.LOCATION_SERVICE);

3)获取LocationProvider

完成对Criteria的设置以后,就可以通过getBestProvider()方法,拿到最好的Provider.

4)绑定LocationListener对象

这里的设置是最短更新时间是5000毫秒,最短更新距离是50米

locationManager.requestLocationUpdates(LocationManager.GPS_PRIVIDER,5000,50,newLocationListener()) 。在该监听器中可以设置相应的方法,比如onLocationChanged(),当用户位置发生改变时执行该方法。

3.2 地址搜索功能实现

在用户进行地址搜索时,根据传入的地址,得到该地址名的Location,一个地址名可能会有很多个不同的Location,于是用数字10表示显示的10个。部分关键代码实现如下:

Geocoder geocoder=new Geocoder(MainActivity.this);

Listlocations = geocoder,.getFromLocationName(address,10);

3.3 路径导航功能实现

路径导航功能是通过载入web导航网页来实现。页面的Activity中编写代码进行跳转,从而进入web导航页面,显示导航路线的信息。下面是事例性代码,我们可以通过绑定监听器的方式,当出发该监听器时,执行该段代码,进行跳转,进入web导航页面。

Intent i = new Intent(

Intent.ACTION_VIEW, Uri .parse("http:///maps?f=d&source=s_d&saddr=32.24271,122.27541&daddr=32.42772,122.57873&hl=zh&t=m &"+params));

startActivity(i);

通过上述的操作基本上实现了线路的规划,后续工作可能是在此基础上对功能进行完善,添加更多可以使得用户获得更好体验的功能。

4 结论

本文通过对近年来流行的Android智能手机操作系统以及GPS定位服务技术的介绍,探讨了基于Android的地图应用的开发要点。通过将地图服务技术嵌入到其他应用程序的开发过程中,可以更好的提升用户体验,具有非常好的开发前景。未来希望可以在此应用功能上做进一步功能扩展,将地理信息服务更好的进行实际应用。

参考文献

[1]张国生,高搏,姚慧敏.手机定位服务与电子地图[J].绘科学技术学报,2007,24(3).

[2]孙枫.基于第三代移动通讯系统的定位技术研究.哈尔滨工业大学,2007.