第9章的MJAndroid示例应用需要的就是在地图之上增加一层图形覆盖层,用以显示工作所在区域的地理位置。因此,这个应用使用的是MapView,而没有使用Google Maps应用,使用MapView就可以根据需要添加图形覆盖层。每个Activity只能使用一个MapView,而且该Activity必须继承MapActivity。正如你看到的,这是把MapView所提供的强大的图形功能添加到应用中所需要付出的一个小小的代价。
MapView的使用有两个唯一的前置条件,在第9章的MJAndroid初始化中可以看到这两个前置条件:
包含MapView库
MapView没有在默认的Android库中。因此,需要在AndroidManifest.xml文件中指定要使用该库:
<application android:icon="@drawable/icon2"> <uses-library android:name="com.google.android.maps" />
uses-library这行代码不能随意放在AndroidManifest.xml文件中的任意位置;它需要在<application>标签内,并且在<activity>标签定义外。
注册应用,并从Google获取Maps API密钥
当在应用中使用MapView时,实际上是使用Google Maps的数据绘制地图。出于法律原因,Google需要追踪谁在使用它的地图数据。Google不关心应用是如何使用数据的,但是需要在Google注册以获取API密钥,并同意遵守其服务条款。这相当于告诉Google你在使用其地图数据,以及你是否也在使用Google Maps提供的路由数据。P138“Google地图API密钥”一节介绍过注册应用及获取API密钥的过程。
注意:记住,要使用MapView,程序必须是注册过的。为了构建MicroJobs应用,你需要获取密钥,具体方法可以参考P138“Google地图API密钥”一节中的说明。