高德map开发使用技术一
高德地图开发使用技术一
防止以后不知道怎么使用,记录一下地图开发过程中的一些细节
一,地图的三种模式
3D地图SDK提供三种地图类型:MAP_TYPE_NORMAL 、 MAP_TYPE_SATELLITE 和 MAP_TYPE_NIGHT。
1. MAP_TYPE_NORMAL:标准地图。地图包含道路、建筑,以及重要的自然风光(如河流)等。道路和功能标签为可见。
2. MAP_TYPE_SATELLITE:卫星地图。3D地图道路和功能标签为可见的,2D地图道路和功能标签不可见。
3. MAP_TYPE_NIGHT:夜景地图(仅3D地图)。道路和功能标签可见。
a,矢量地图
aMap.setMapTextZIndex(AMap.MAP_TYPE_NORMAL);
b,夜景地图
aMap.setMapType(AMap.MAP_TYPE_NIGHT);
c,卫星地图
aMap.setMapType(AMap.MAP_TYPE_SATELLITE);
二:定位;高德地图有三种定位方式:定位模式,跟随模式,设置定位类型根据地图面方向旋转
/** * 激活定位 */ @Override public void activate(OnLocationChangedListener onLocationChangedListener) { mListener = onLocationChangedListener; if (mAMapLocationManager == null) { mAMapLocationManager = LocationManagerProxy.getInstance(this); /* * mAMapLocManager.setGpsEnable(false); * 1.0.2版本新增方法,设置true表示混合定位中包含gps定位,false表示纯网络定位,默认是true Location * API定位采用GPS和网络混合定位方式 * ,第一个参数是定位provider,第二个参数时间最短是2000毫秒,第三个参数距离间隔单位是米,第四个参数是定位监听者 */ //此方法为每隔固定时间会发起一次定位请求,为了减少电量消耗或网络流量消耗, //注意设置合适的定位时间的间隔,并且在合适时间调用removeUpdates()方法来取消定位请求 //在定位结束后,在合适的生命周期调用destroy()方法 //其中如果间隔时间为-1,则定位只定一次 mAMapLocationManager.requestLocationData(LocationProviderProxy.AMapNetwork, -1, 10, this); } } /** * 停止定位 */ @Override public void deactivate() { mListener = null; if (mAMapLocationManager != null) { mAMapLocationManager.removeUpdates(this); mAMapLocationManager.destroy(); } mAMapLocationManager = null; } /** * 定位成功后回调函数 */ @Override public void onLocationChanged(AMapLocation aMapLocation) { if (mListener != null && aMapLocation != null) { mListener.onLocationChanged(aMapLocation);// 显示系统小蓝点 } }
三:设置比例尺
1,设置比例尺的缩放:
aMap.moveCamera(CameraUpdateFactory.zoomTo(30));
2,设置比例尺显示
mUiSettings.setScaleControlsEnabled(true);
四:Marker的使用;点击地图添加图片,需要实现OnMapCLickListener类的onMapClick()方法
如果需要改变标记图像,可以设置自定义的图像,通常被称为图标。自定义图标通常由 BitmapDescriptor 设置。可以在类 BitmapDescriptorFactory 使用以下其中一种方法定义。
1. fromAsset(String assetName) 在 assets 目录中使用图像创建自定义标记。
2. fromBitmap (Bitmap image) 使用位图图像创建自定义标记。
3. fromFile (String path) 指定路径的文件创建自定义图标。
4. fromResource (int resourceId) 使用已经存在的资源创建自定义图标。
@Override public void onMapClick(LatLng latLng) { MarkerOptions markerOptions = new MarkerOptions(); // 设置Marker的图标样式 markerOptions.icon(BitmapDescriptorFactory.fromResource(R.drawable.map_marker)); // 设置Marker点击之后显示的标题 markerOptions.title("Marker"); // 设置Marker的坐标,为我们点击地图的经纬度坐标 markerOptions.position(latLng); // 设置Marker的可见性 markerOptions.visible(true); // 设置Marker是否可以被拖拽,这里先设置为false,之后会演示Marker的拖拽功能 markerOptions.draggable(false); // 将Marker添加到地图上去 mAMap.addMarker(markerOptions); }