Android开发指南(43) —— Location and Maps
前言
本章内容为 Android开发者指南的 Framework Topics/Location and Maps章节,译为"位置和地图",版本为Android 4.0 r1,翻译来自:"太阳火神的美丽人生",欢迎访问他的微博:"http://alot.sinaapp.com",再次感谢他 !期待你一起参与翻译Android的相关资料,联系我over140@gmail.com。
位置和地图
译者署名:太阳火神的美丽人生
版本:Android 4.0 r1
原文
http://developer.android.com/guide/topics/location/index.html
基于位置和地图的应用对移动设备用户来说更引人注目。你可以使用android.location
包的类和谷歌地图扩展库将这种能力构建到你的应用中。以下各部分提供细节信息。
位置服务
Android 通过 android.location
包中的类使你的应用可以访问由设备来支撑的位置服务。位置框架的核心组件是
LocationManager
系统服务,它提供了一些应用编程接口来确定位置和测定底层设备的方向(如果可用)。
和其它系统服务一样,你不要直接实例化LocationManager
。当然,你可以通过调用
getSystemService(Context.LOCATION_SERVICE)
从系统请求一个实例。该方法返回指向一个新的
LocationManager
实例的句柄。
一旦你的应用有了一个 LocationManager
,就可以做如下三件事了:
- 查询到所有的
LocationProvider
的列表,以获得最新的用户位置。 - 从某个位置提供者注册/注销定期更新用户的当前位置(通过条件或名称指定)。
- 注册/注销在设备接近给定经/纬度范围(由米为单位的半径指定)内时要被激活的指定意向。
要获得更多信息,阅读 获得用户位置 指南。
谷歌地图扩展库
为了使你添加强大的地图能力到应用中更容易,谷歌提供了包含com.google.android.maps 包的地图扩展库。com.google.android.maps包的类提供了内置的下载、渲染和缓存地图碎片能力,以及各种显示选项和控件。
地图包中的主要类是com.google.android.maps.MapView
,它是一个
ViewGroup
的子类。
MapView显示承载从谷歌地图服务获得的数据的地图。当MapView获得焦点时,它会自动捕获键盘按键和触摸手势来平移和缩放地图,包括处理网络请求获得额外的地图碎片。它也提供了所有必需的用户界面元素给用户来控制地图。你的应用也可以使用MapView类方法来编程控制MapView并在地图上绘制一定数量的修饰样式。
通常,MapView类提供一个谷歌地图应用编程接口的包装,它使你的应用可以通过类方法操作谷歌地图数据,并且当你想要其它类型的视图时它可以让你使用地图数据。
地图扩展库不是标准Android 库的一部分,所以它可能在某些兼容的Android设备上不存在。同样,地图扩展库也未包含在SDK 提供的标准Android库中。地图扩展库作为Android SDK谷歌应用编程接口插件的一部分提供给你使用,以便你可以使用
要了解更多有关地图扩展库的信息以及如何下载和使用谷歌应用编程接口插件,访问
http://code.google.com/android/add-ons/google-apis
为了您的方便,谷歌应用编程接口插件也可以作为可下载的组件从Android SDK 和 AVD Manager中下载使用(参见Adding SDK 组件)。
注意:要在一个MapView中显示谷歌地图数据,你必须注册谷歌地图服务并获得一个Maps API Key(地图应用编程接口密钥)。要了解有关如何获得一个Maps API Key(地图应用编程接口密钥)的信息,参见 获得一个地图应用编程接口密钥(btaining a Maps API Key)。