excel表格常用技巧大全 通过调用百度地图批量查询两个城市(县区级)的距离,及行车时间

百度地图Android Sdk的Api里面,没有现成的直接获取两个坐标点之间距离的方法,但是,在jsapi里面,有直接计算距离的方法。

所以,根据上面的方法,我们把计算距离的方法用java语言实现如下:

 
}

获取了Location实例,就可以从中获取关心的地理信息了:

getSpeed():获取速度信息,单位米/秒

getTime():获取时间信息,返回从到现在的毫秒数。

以上,只能获取一次地理位置信息,如何动态实时地获取地理位置信息呢?

该方法有多重重载形式,这里只简单试用下这种重载形式,参数说明:

provider:指定获取地理位置的方式;

minTime:指定监听位置变化的时间间隔,单位毫秒;

minDistance:指定监听位置变化的最小距离间隔,单位米;

listener:指定监听器,设置不同事件的回调处理。

每隔5秒监测下位置的变化情况,一旦距离变化超过1米,就会回调onLocationChanged()方法,并将新的Location实例作为参数传入该方法。

以上,就是简单的获取地理位置的方法,帮助文档中关于LocationManager还有其他一些可能也会用到的方法,如临近警告,测距等,在用到的时候可以再查阅。

2.百度地图控制器的简单使用,设置地图的旋转,缩放,及视角变化:

跟2.x版本不同,之前在控制器中直接就可以调用各个方法进行旋转、缩放等操作,新版的控制器类名为BaiduMap,这里要用到的是它的animateMapStatus()方法:

所有要执行的旋转、缩放等动作没有直接对应的方法,而是把这些地图状态变化的动作封装到MapStatusUpdate对象中,然后传递给BaiduMap的animateMapStatus()以动画的方式执行动作。

所以,这里的关键是获取MapStatusUpdate对象,封装要执行的动作。

但是,查看帮助文档中,MapStatusUpdate类没有任何实际的帮助信息……

有这么几个字段,用于存放地图状态信息,注意文档中说明zoom的取值范围为3-20,overlook的取值是-45-0。但是没有对应的设置方法,所以猜测应该在其内部类Builder中存在相关设置方法

构造方法,第二个带参的构造应该会比较有用,要进行地图状态变化,肯定要有一个参照,是在当前状态基础之上进行旋转缩放等。

build()方法返回一个MapStatus对象,如同之前常用到的android中的Builder内部类一样,在进行完一连串的设置之后,最后调用该方法得到一个需要的MapStatus对象。

rotate()方法,设置逆时针旋转角度

target()方法,设置地图中心店

targetScreen()方法设置地图中心点在屏幕的坐标

zoom()方法,设置地图的缩放级别。

下面根据这几个类,试着进行地图的旋转、缩放、设置中心点及视角变化:

修改布局文件,在MapView下方添加几个控件,用于控制地图缩放:

修改布局文件,添加一个旋转按钮:

}

我要回帖

更多关于 excel表格常用技巧大全 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信