API 简介
什么是高德地图Android API
高德地图Android API 版是一套基于Android 1.6 及以上设备的应用程序接口,通过该接口,用户可以轻松访问高德地图服务和数据,构建功能丰富、交互性强的地图应用程序。高德地图Android API 不仅包含构建地图的基本接口,还提供了诸如矢量地图、栅格地图、地图定位(GPS、、WiFi)、本地搜索、路线规划等数据服务,用户可以根据自己的需要进行选择。
面向的读者
API 是提供给具有一定Android 编程经验和了解面向对象概念的读者使用的。此外,读者还应该对地图产品有一定的了解。 用户在使用中遇到任何问题,可以通过问答社区反馈给我们。
兼容性
系统:支持Android 1.6 及以上系统。
注意事项
下面介绍在程序开发中需注意的问题:必须在manifest 中设置相应的权限,代码如下:
源码复制打印关于
1 <uses-permission 
2 android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission> 
3 <uses-permission   
4 android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission> 
5 <uses-permission   
6 android:name="android.permission.INTERNET"></uses-permission> 
7 <uses-permission   
8 android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission> 
9 <uses-permission   
10 android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> 
11 <uses-permission   
12 android:name="android.permission.READ_PHONE_STATE"></uses-permission> 
13 <uses-permission   
14 android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission> 
15 <uses-permission   
16 android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission> 
地图显示
如何把 API 添加到我的Android 工程中?
首先创建工程,并在工程Build Path>Configure Build Path>libraries 中选择“Add Externel JARs…”,选定MapApi.jar,点击OK,这样就可以将高德地图Android API 库文件引入。然后在工程Build Path>Configure Build Path>Order and Export 中将引入的库文件MapApi.jar 选中,点击OK,这样您就可以在您的程序中使用高德地图API 了。
栅格地图显示
MapActivity 是一个抽象类,任何想要显示MapView activity 都需要派生自MapActivity。并且在其派生类的onCreate() 中,都要创建一个MapView 实例。
源码复制打印关于
17 public class GridMapView extends MapActivity{ 
18 private MapView mMapView; 
19 private MapController mMapController; 
20 private GeoPoint point; 
21 @Override 
22 /**
23 *显示栅格地图,启用内置缩放控件,并用MapController 控制地图的中心点及Zoom 级别
24 */ 
25 protected void onCreate(Bundle  savedInstanceState) { 
26 // TODO Auto-generated method stub 
27 super.onCreate(savedInstanceState); 
28 setContentView(R.layout.mapview); 
29 mMapView = (MapView)  findViewById(R.id.mapView); 
30 mMapView.setBuiltInZoomControls(true);  //设置启用内置的缩放控件  
31 mMapController =  Controller();  // 得到mMapView 的控制权,可以用它控制和驱动平移和缩放  
32 point = new GeoPoint((int) (39.982378 *  1E6), 
33 (int) (116.304923 * 1E6));  //用给定的经纬度构造一个GeoPoint,单位是微度(* 1E6) 
34 mMapController.setCenter(point);  //设置地图中心点  
35 mMapController.setZoom(12);    //设置地图zoom 级别  
36
37
在布局 xml 中添加地图控件:
源码复制打印关于
38 <?xml version="1.0" encoding="utf-8"?> 
39 <LinearLayout xmlns:android="schemas.android/apk/res/android"                                 
40 xmlns:autonavi="schemas.android/apk/res/com.AMap" 
41 android:orientation="vertical"android编程入门指南 pdf android:layout_width="fill_parent" 
42 android:layout_height="fill_parent"
43 <com.amap.mapapi.map.MapView android:id="@+id/mapView" 
44 android:layout_width="fill_parent" android:layout_height="fill_parent" 
45 android:clickable="true"   
46 /> 
47 </LinearLayout> 
结果见图3-1 栅格地图显示效果图:

3-1 栅格地图显示效果图
矢量地图显示
libminimapv320.so 复制到工程目录下的libs\armeabi,目录结构见图3-2 工程目录结构图:
3-2 工程目录结构图
代码如下:
源码复制打印关于
48 public class VectorMapView extends  MapActivity{ 
49 private MapView mMapView; 
50 private MapController mMapController; 
51 private GeoPoint point; 
52 @Override 
53 /**
54 *显示矢量地图,将libminimapv300.so 复制到工程目录下的libs\armeabi
55 *启用内置缩放控件,并用MapController 控制地图的中心点及Zoom 级别
56 */ 
57 protected void onCreate(Bundle  savedInstanceState) { 
58 // TODO Auto-generated method stub 
59 this.setMapMode(MAP_MODE_VECTOR);//设置地图为矢量模式  
60 super.onCreate(savedInstanceState); 
61 setContentView(R.layout.mapview); 
62 mMapView = (MapView)  findViewById(R.id.mapView); 
63 mMapView.setBuiltInZoomControls(true);  //设置启用内置的缩放控件  
64 mMapController =  Controller();  // 得到mMapView 的控制权,可以用它控制和驱动平移和缩放  
65 point = new GeoPoint((int) (39.90923 * 1E6), 
66 (int) (116.397428 *  1E6));  //用给定的经纬度构造一个GeoPoint,单位是微度(* 1E6) 
67 mMapController.setCenter(point);  //设置地图中心点  
68 mMapController.setZoom(12);    //设置地图zoom 级别  
69
70
结果见图3-3 矢量地图显示效果图:

3-3 矢量地图显示效果图
定位信息
API 如何获取定位信息
高德地图Android API 中提供了GPS 和网络(WiFi)定位。如果使用此功能,必须注册GPS 和网络的使用权限,请参考注意事项。在获取用户位置时,优先使用GPS 进行定位;如果GPS 定位没有打开或者没有可用位置信息,则判断是否通过网络(和WiFi)连接,如果是,高德地图会根据手机所在环境选择WiFi 或者获取用户当前位置。
源码复制打印关于
71 public class LocationManager extends  Activity { 
72 private LocationManagerProxy locationManager  = null
73 private static final long  mLocationUpdateMinTime = 0; 

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。