android高德api的使用
- 格式:docx
- 大小:68.96 KB
- 文档页数:11
高德API的使用
Ps: demo具体实现了
1.定位;
2.自定义位置小蓝点(弃系统提供的);
3.点击地图弹marker;
4.点marker弹infowindow,infowindow包括3块,点击1弹dialog输入兴趣点搜附近,点击2查看具体信息,点击3跳转到路线查询界面(默认从兴趣点到当前位置)
开发过程如下:
1.进入高德官网申请map api key ,这一步不能少,否则无法获取地图。像百度也需要。
2.在Manifest中添加必要权限:
android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> android:name="android.permission.ACCESS_COARSE_LOCATION"/> android:name="android.permission.ACCESS_NETWORK_STATE"/> android:name="android.permission.ACCESS_FINE_LOCATION"/> android:name="android.permission.CHANGE_CONFIGURATION"/> ---------------------------------------------分割线------------------------------------------- 3.代码具体实现过程: A.导入jar包:从官网下载最新的jar B.在Main.xml中添加fragment用来显示地图。 android:id="@+id/map" android:layout_width="match_parent" android:layout_height="fill_parent" class="com.amap.api.maps.SupportMapFragment"/> ---------------------------------------------分割线------------------------------------------- C.MainActivity继承FragmentActivity,使用以下代码来初始化地图以及对地图添加监 听,启动定位等操作: if (aMap == null) { aMap = ((SupportMapFragment) getSupportFragmentManager() .findFragmentById(R.id.map)).getMap();//获取地 图实例 if (aMap!=null) { setCenterPoi();//最初显示的可视区域 setUpMap();//显示系统定位小蓝点 setMapListener();//对aMap添加监听器 } } ---------------------------------------------分割线------------------------------------------- 上述代码中的3个方法如下: private void setCenterPoi(){ LatLng latLng=new LatLng(31.23, 121.47);//默认城市经纬度 CameraPosition position=new CameraPosition(latLng,9, 0, 0);//相机位置,参数分别代表经纬度坐标,地图缩放级别4-20,可视区域倾斜角0-45°,可视区域指向的方向,以角度为单位,正北方向到地图方向逆时针旋转的角度0-360° CameraUpdate cameraUpdate= CameraUpdateFactory.newCameraPosition(position);//定义了一个可视区域的移动,具体参考api aMap.moveCamera(cameraUpdate);//移动相机到可视区域} ---------------------------------------------分割线------------------------------------------- private void setUpMap() { // 自定义系统定位小蓝点 MyLocationStyle myLocationStyle = new MyLocationStyle(); myLocationStyle.myLocationIcon(BitmapDescriptorFactory .fromResource(R.drawable.location_marker)); myLocationStyle.strokeColor(Color.BLUE); myLocationStyle.strokeWidth(1); aMap.setMyLocationStyle(myLocationStyle); mAMapLocManager= LocationManagerProxy.getInstance(this);