百度地图开发(三)之地图控制 + 定位

    转载请注明出处:http://blog.csdn.net/crazy1235/article/details/43898451

    前两篇关于百度地图的blog写的是,一些基本图层的展示 和 覆盖物的添加+地理编码和反地理编码

    接下来,这篇blog主要说一些关于地图控制方面的内容和定位功能。

    百度地图提供的关于地图的操作主要有:单击、双击、长按、缩放、旋转、俯视等。

地图控制

    我们现在已经知道,想要显示一个地图,只需要在xml文件中添加一个MapView控件即可,但是想要对其进行一些控制,就需要通过这个控件返回一个BaiduMap对象。

从API中先看一下MapView的方法:


    对于MapView这个类,官方解释是一个显示地图的视图,负责从服务器端获取地图数据,并且会捕捉到屏幕触控手势事件。使用这个类必须按照它的生命周期进行操作,从上图可以看到,它包括一些类似于activity生命周期的方法:onResume()、onPause()、onDestory()。所以我们需要在activity的各个生命周期中,把MapView的各个生命周期函数添加进去。

    在使用地图控件之前必须调用SDKInitializer.initialize(Context)函数用以提供全局Context信息。

    默认情况下,地图显示的时候会带着原生的缩放控件:。还有比例尺控件:

通过showZoomControls(boolean show)showScaleControl(boolean show)这两个方法可以设置显示或者不显示两个控件。还可以通过设置setxxxPosition(Point p)方法来设置控件的位置。

mapView.showZoomControls(false);// 不显示默认的缩放控件
mapView.showScaleControl(false);// 不显示默认比例尺控件
    要想实现地图的一些控制,就需要使用到BaiduMap,这个类是专门用来操作地图控件的。



    上面的四个接口就是用来对地图添加相应的事件的。我们主要看一下下面的两个方法,它们都是以动画的方式更新地图状态。不同的是一个可以指定时长,另一个有默认的动画耗时。

    参数MapStatusUpdate描述的是地图状态将要发生的变化。也就是说,要想改变地图的某些状态,需要构造出一个MapStatusUpdate对象,然后使用animateMapStatus()方法来更新地图状态。但是并没有在API中找到它的相关的构造方法。但是在com.baidu.mapapi.map包下面找到了对应的"工厂类"


    打开MapStatusUpdateFactory可以看到很多静态的方法:


    通过这些静态的方法能够构造出各种类型的MapStatusUpdate对象。

    zoomIn()和zoomOut()分别

  • 40
    点赞
  • 149
    收藏
    觉得还不错? 一键收藏
  • 52
    评论
要在安卓应用中使用百度地图定位功能,你需要按照以下步骤进行操作: 1. 在百度地图开放平台上注册账号并创建应用,获取AK(开发密钥)。 2. 在项目的 build.gradle 文件中添加以下依赖: ``` implementation 'com.baidu.androidsdk:location:7.6.3' implementation 'com.baidu.androidsdk:map-sdk-base:5.2.0' ``` 3. 在 AndroidManifest.xml 文件中添加以下权限: ``` <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> ``` 4. 创建一个 LocationClient 实例,并设置监听器,如下所示: ``` mLocationClient = new LocationClient(getApplicationContext()); mLocationClient.registerLocationListener(myLocationListener); ``` 5. 实现 BDAbstractLocationListener 接口,并在 onReceiveLocation 方法中获取定位信息,如下所示: ``` private class MyLocationListener extends BDAbstractLocationListener { @Override public void onReceiveLocation(BDLocation location) { if (location == null) { return; } // 获取经纬度信息 double latitude = location.getLatitude(); double longitude = location.getLongitude(); // 获取详细地址信息 String address = location.getAddrStr(); // 更新地图显示 // ... } } ``` 6. 在 Activity 的生命周期方法中启动和停止定位: ``` @Override protected void onResume() { super.onResume(); mLocationClient.start(); } @Override protected void onPause() { super.onPause(); mLocationClient.stop(); } ``` 以上就是在安卓应用中使用百度地图定位功能的基本步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 52
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值