android 百度地图自定义圆,更改默认图标等常用方法

xiaoxiao2021-03-01  14

总结了一下百度地图常用的方法(前提是集成百度地图环境成功): 1:定位到已经经纬度,只需要改变LatLng的参数即可。有两种方法:

方法1:

//定义Maker坐标点 LatLng point = new LatLng(39.963175, 116.400244); //构建Marker图标 BitmapDescriptor bitmap = BitmapDescriptorFactory .fromResource(R.mipmap.ic_launcher); //构建MarkerOption,用于在地图上添加Marker OverlayOptions option = new MarkerOptions() .position(point) .icon(bitmap); //在地图上添加Marker,并显示 baiduMap.getMap().addOverlay(option); 1234567891011

方法2:

MyLocationData locData = new MyLocationData.Builder() // 此处设置开发者获取到的方向信息,顺时针0-360 .direction(100).latitude(result.getLocation().latitude) .longitude(result.getLocation().longitude).build(); // 设置定位数据 baiduMap.setMyLocationData(locData); 123456

2:根据关键词key检索附近建筑(默认返回10条数据)

//经纬度搜索 poiSearch.searchNearby(new PoiNearbySearchOption().keyword("生").radius(5000).location(new LatLng(39.963175, 116.400244))); //城市搜索 poiSearch.searchInCity(new PoiCitySearchOption().city("杭州").keyword("东方通信科技园").pageCapacity(1)); 1234 poiSearch.setOnGetPoiSearchResultListener(this); 1 @Override public void onGetPoiResult(PoiResult poiResult) { if (poiResult == null || poiResult.error == SearchResult.ERRORNO.RESULT_NOT_FOUND) { return; } if (poiResult.error == SearchResult.ERRORNO.NO_ERROR) { // 附近搜索 baiduMap.getMap().clear(); //创建PoiOverlay PoiOverlay overlay = new MyPoiOverlay(baiduMap.getMap()); //设置overlay可以处理标注点击事件 baiduMap.getMap().setOnMarkerClickListener(overlay); //设置PoiOverlay数据 overlay.setData(poiResult); //添加PoiOverlay到地图中 overlay.addToMap(); overlay.zoomToSpan(); return; } } 1234567891011121314151617181920212223

3:地图放大设置zoom:

/** * 设置地图放大的倍数 */ mBaiduMap.setMapStatus(MapStatusUpdateFactory.newMapStatus(new MapStatus.Builder().zoom(18).build())); 1234

4: 更改默认图标有两种方法:

方法1 /** * 更改定位默认图标MyLocationConfiguration 第二个参数是是否显示方向信息 */ MyLocationConfiguration.LocationMode mCurrentMode = MyLocationConfiguration.LocationMode.NORMAL; BitmapDescriptor mCurrentMarker = BitmapDescriptorFactory .fromResource(R.drawable.icon_map_gcoding); mBaiduMap.setMyLocationConfiguration(new MyLocationConfiguration(mCurrentMode, false, mCurrentMarker)); 1234567 方法2: //定义Maker坐标点 //构建Marker图标 BitmapDescriptor bitmap = BitmapDescriptorFactory .fromResource(R.drawable.icon_map_gcoding); //构建MarkerOption,用于在地图上添加Marker OverlayOptions options = new MarkerOptions() .position(ll) .icon(bitmap); //在地图上添加Marker,并显示 mBaiduMap.addOverlay(options); 12345678910

5:将定位到的地方移到地图中央

/** * 将定位到的地方移到地图中央 */ LatLng ll = new LatLng(location.getLatitude(), location.getLongitude()); MapStatusUpdate msu = MapStatusUpdateFactory.newLatLng(ll); mBaiduMap.animateMapStatus(msu); 123456

6:在地图中央的地方画圆:

// 添加圆 OverlayOptions ooCircle = new CircleOptions().fillColor(0x2201A4F1) .center(ll).stroke(new Stroke(5, 0xAA01A4F1)) .radius(200); mBaiduMap.addOverlay(ooCircle); 12345

7:当地图放大时,不让默认的圆出现(不设置accuracy即可),

// 构造定位数据 accuracy设置精确度 MyLocationData locData = new MyLocationData.Builder() // 此处设置开发者获取到的方向信息,顺时针0-360 .direction(100).latitude(location.getLatitude()) .longitude(location.getLongitude()).build(); // 设置定位数据 mBaiduMap.setMyLocationData(locData);
转载请注明原文地址: https://www.6miu.com/read-3200209.html

最新回复(0)