百度地图3.0
来源:互联网 发布:淘宝返利怎么弄 编辑:程序博客网 时间:2024/06/04 20:03
前段时间用到和学习了百度地图,很早就像总结一下,可是太懒,拖到了新年的最后一天,
百度地图3.0相较于之前的API有所差差别,先导入给出Demo
申请key,添加架包在百度地图API中都可以找到,这里就不啰嗦了
我认为3.0的不用就是获取地图管理器的方法不同了,也不需要必须在setContentView方法之前初始化管理器
mMapView = (MapView) findViewById(R.id.bmapView);mBaiduMap = mMapView.getMap();
在Activity结束时,mapView需要为空
@Overrideprotected void onDestroy() {super.onDestroy();mMapView.onDestroy();CloudManager.getInstance().destroy();}@Overrideprotected void onPause() {super.onPause();mMapView.onPause();}@Overrideprotected void onResume() {super.onResume();mMapView.onResume();}
下面是一些基本配置
// 隐藏地图缩放按钮mMapView.showZoomControls(false);// 准备标识地址图标descriptor = BitmapDescriptorFactory.fromBitmap(BitmapFactory.decodeResource(getResources(),R.drawable.map_store_mark));// 获取地图管理器mBaiduMap = mMapView.getMap();// 普通地图模式mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);// 设置地图最初缩放比例MapStatusUpdate msu = MapStatusUpdateFactory.zoomTo(17.0f);// 设置地图显示坐标MapStatusUpdate newLatLng = MapStatusUpdateFactory.newLatLng(new LatLng(Double.valueOf(latitude), Double.valueOf(longitude)));mBaiduMap.setMapStatus(msu);mBaiduMap.setMapStatus(newLatLng);显示标识图层
// add marker overlayLatLng latLng = new LatLng(Double.valueOf(latitude), Double.valueOf(longitude));OverlayOptions oo = new MarkerOptions().position(latLng).icon(descriptor).zIndex(9).draggable(true);mMarker = (Marker) (mBaiduMap.addOverlay(oo));Button button = new Button(getApplicationContext());button.setBackgroundResource(R.drawable.map_text_bg);button.setText(name + "\n" + address + "\n" + workingTime);button.setTextColor(getResources().getColor(R.color.white));LatLng ll = mMarker.getPosition();mInfoWindow = new InfoWindow(BitmapDescriptorFactory.fromView(button), ll, -47, null);mBaiduMap.showInfoWindow(mInfoWindow);定位
// 定位图层显示模式:普通mCurrentMode = LocationMode.NORMAL;mBaiduMap.setMyLocationConfigeration(new MyLocationConfiguration(mCurrentMode, true, null));// 开启定位图层mBaiduMap.setMyLocationEnabled(true);// 定位初始化mLocClient = new LocationClient(this);mLocClient.registerLocationListener(new MyLocationListenner());LocationClientOption option = new LocationClientOption();option.setOpenGps(true);// 打开gpsoption.setCoorType("bd09ll"); // 设置坐标类型option.setScanSpan(1000);mLocClient.setLocOption(option);mLocClient.start();定位监听
/** * 定位SDK监听函数 */public class MyLocationListenner implements BDLocationListener {@Overridepublic void onReceiveLocation(BDLocation location) {// map view 销毁后不在处理新接收的位置if (location == null || mMapView == null)return;MyLocationData locData = new MyLocationData.Builder().accuracy(location.getRadius())// 此处设置开发者获取到的方向信息,顺时针0-360.direction(100).latitude(location.getLatitude()).longitude(location.getLongitude()).build();mBaiduMap.setMyLocationData(locData);if (isFirstLoc) {isFirstLoc = false;startLatLng = new LatLng(location.getLatitude(), location.getLongitude());Log.i("--------------定位Latitude=" + location.getLatitude());Log.i("--------------定位Longitude=" + location.getLongitude());}}public void onReceivePoi(BDLocation poiLocation) {}}初始化导航引擎
BaiduNaviManager.getInstance().initEngine(NearShopMapActivity.this, getSdcardDir(), mNaviEngineInitListener,new LBSAuthManagerListener() {@Overridepublic void onAuthResult(int status, String msg) {String str = null;if (0 == status) {str = "key校验成功!";} else {str = "key校验失败, " + msg;}// Toast.makeText(NearShopMapActivity.this, str,// Toast.LENGTH_SHORT).show();Log.i("==========导航初始化=====" + str);}});开启导航(调用百度地图APP或者使用导航SDK)
endLatLng = new LatLng(Double.valueOf(latitude), Double.valueOf(longitude));// 构建 导航参数NaviPara para = new NaviPara();para.startPoint = startLatLng;para.startName = "从这里开始";para.endPoint = endLatLng;para.endName = "到这里结束";if (isAvilible("com.baidu.BaiduMap")) {try {BaiduMapNavigation.openBaiduMapNavi(para, NearShopMapActivity.this);} catch (BaiduMapAppNotSupportNaviException e) {e.printStackTrace();// AlertDialog.Builder builder = new// AlertDialog.Builder(NearShopMapActivity.this);// builder.setMessage("您尚未安装百度地图app或app版本过低,点击确认安装?");// builder.setTitle("提示");// builder.setPositiveButton("取消", null);// builder.setNegativeButton("确定", new// DialogInterface.OnClickListener() {// @Override// public void onClick(DialogInterface dialog, int// which) {// dialog.dismiss();// BaiduMapNavigation.getLatestBaiduMapApp(NearShopMapActivity.this);// }// });// builder.create().show();}} else {mStartPoint = new BNaviPoint(startLatLng.longitude, startLatLng.latitude, "起点",BNaviPoint.CoordinateType.GCJ02);mEndPoint = new BNaviPoint(endLatLng.longitude, endLatLng.latitude, "终点",BNaviPoint.CoordinateType.GCJ02);mViaPoints = new ArrayList<BNaviPoint>();if (mViaPoints.size() == 0) {launchNavigator();} else {launchNavigatorViaPoints();}}使用导航SDK
/** * 启动GPS导航. 前置条件:导航引擎初始化成功 */private void launchNavigator() {// 这里给出一个起终点示例,实际应用中可以通过POI检索、外部POI来源等方式获取起终点坐标BaiduNaviManager.getInstance().launchNavigator(NearShopMapActivity.this, startLatLng.latitude,startLatLng.longitude, "起点", endLatLng.latitude, endLatLng.longitude, "终点",NE_RoutePlan_Mode.ROUTE_PLAN_MOD_MIN_TIME, // 算路方式true, // 真实导航BaiduNaviManager.STRATEGY_FORCE_ONLINE_PRIORITY, // 在离线策略new OnStartNavigationListener() { // 跳转监听@Overridepublic void onJumpToNavigator(Bundle configParams) {Intent intent = new Intent(NearShopMapActivity.this, BNavigatorActivity.class);intent.putExtras(configParams);startActivity(intent);}@Overridepublic void onJumpToDownloader() {}});}
0 0
- 百度地图3.0学习
- 百度地图3.0
- 百度地图3.0
- android 百度地图3.0
- 百度地图
- 百度地图
- 百度地图
- 百度地图
- 百度地图
- 百度地图
- 百度地图
- 百度地图
- 百度地图
- 百度地图
- 百度地图
- 百度地图
- 百度地图
- 百度地图
- VS2013编译jthread-1.3.1和jrtplib-3.9.1
- 必须记住的Myeclipse快捷键
- 36会话界面的完成
- 如何在Ubuntu中使用root账号登录(新增Ubuntu12.04/14.04)?
- 简易的$_GET获取改写过滤函数
- 百度地图3.0
- 谷歌浏览器下在文本框中敲回车会下载。。。Resource interpreted as Document but transferred with MIME type application/json
- iOS 使用0x01作为分隔符
- java压缩文件,中文问题
- javascript 正则表达式简单使用
- android root权限破解分析
- 初识Object.defineProperty
- 2014年度总结篇 之 我要九阴真经
- u-boot的Makefile分析之顶层mkconfig