位置和地图(Location and Maps)

Android的位置和地图

位置和基于地图的应用程序,对于移动设备用户来说是最具吸引力的。你能够使用android.location包和Google Map的外部类库,把这些能力构建到你的应用程序中。

位置服务

Android通过android.location包中的类把设备所支持的位置服务提供给你的应用程序。位置框架的核心组件是LocationManager系统服务,它提供了API来确定位置和设备的方位(如果有效)。

跟其他系统服务一样,不需要直接实例化LocationManager。相反,你可以通过调用getSystemService(Context.LOCATION_SERVICE)方法来向系统申请一个实例。这个方法会返回一个新的LocationManager实例的句柄。

一旦你的应用程序有了LocationManager对象,你的应用程序就能够做以下3件事情:

  • 查询所有的最有获取用户位置的LocationProvider对象的列表;

  • 注册/注销来自位置提供器的用户当前位置的周期性更新(既可以通过规则来指定,也可以通过名称来指定)

  • 注册/注销设备接近给定的经纬度(以米为单位的半径区域)范围时所要触发的Intent对象。

Google Map外部类库

为了让你更加容易的把强大的地图能力添加到你的应用程序中,Google提供了一个地图外部类库,它包含在com.google.android.maps包中。这个包中类提供了内置的下载、呈现和题图标题缓存功能,以及各种显示选项和控制。
这个地图包的关键类是com.google.android.maps.MayView,它是ViewGroup的一个子类。MapView显示了一份带有从Google Maps服务中所获取的数据的地图。当该MapView有焦点的时候,它会捕获按键和触摸手势,来自动的平移和缩放地图,包括处理额外的获取地图标题的网络请求。它还提供了所有的用于用户控制地图所需要的UI元素。你的应用程序也能够使用MapView类的方法来编程控制MapView,并且在地图的上面绘制一些重叠类型。
通常,MapView类围绕Google Maps API提供了一个封装,从而让你的应用程序通过这些封装的方法来维护Google Maps数据。并且它会让你把地图数据跟其他类型的View一起来工作。
这个地图外部类库不是标准Android类库的一部分,因此,它可能在兼容性Android设备上不存在。类似的,该地图外部类库没有包含在SDK所提供的标准的Android类库中,因此,你只有在该地图外部类库是作为Google API的一部分被添加到Android SDK时,你才能够使用com.google.android.maps包中的类来进行开发。

Copyright© 2020-2022 li-xyz 冀ICP备2022001112号-1