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 栅格地图显示效果图
图3-1 栅格地图显示效果图
矢量地图显示
将libminimapv320.so 复制到工程目录下的libs\armeabi,目录结构见图3-2 工程目录结构图:
图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 矢量地图显示效果图
图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小时内删除。
发表评论