手机百度地图记录行车轨迹怎么记录轨迹 百度地图记录行车轨迹轨迹记录方法

百度手机地图如何记录出行轨迹 手机百度地图记录出行轨迹教程 - 手机技巧 - 电脑百事网
手机扫描二维码
百度手机地图如何记录出行轨迹 手机百度地图记录出行轨迹教程
来源:百事网原创
编辑:王新和
百度手机地图如何记录出行轨迹呢?全新的手机版百度地图新增了“我的足迹”功能,此功能可以把我们的出行轨迹全都记录下来,以便自己回忆,也是一件有趣的事情,下面百事网小编为大家分享一下手机百度地图记录出行轨迹教程,一起来看看吧!1)打开手机百度地图,在其主界面找到并点击【我的】一栏,然后选择【我的足迹】(如下图)2)然后点击一下【开始轨迹记录】,然后在百度地图就会记录我们的行动轨迹,完成之后点击右下方的【停止】,如下图所示:以上就是小编带来的相关教程,希望对大家有所帮助!18203人阅读
百度地图Android SDK下载:
下面是效果:
采样点取得太频繁所以看起来像是一个个点。。。&& 可以自己设计算法只取有用的点。
为了方便,我直接修改百度提供的示例代码。
要修改的是BMapApiDemoApp.java,LocationOverlay.java还有自定义一个继承自Overlay的RunLineOverlay。
BMapApiDemoApp:
public class BMapApiDemoApp extends Application {
static BMapApiDemoApp mDemoA
//百度MapAPI的管理类
BMapManager mBMapMan = null;
// 授权Key
// TODO: 请输入您的Key,
// 申请地址:/wiki/static/imap/key/
String mStrKey = &你的Key&;
boolean m_bKeyRight = true;
// 授权Key正确,验证通过
// 常用事件监听,用来处理通常的网络错误,授权验证错误等
static class MyGeneralListener implements MKGeneralListener {
public void onGetNetworkState(int iError) {
Log.d(&MyGeneralListener&, &onGetNetworkState error is &+ iError);
Toast.makeText(BMapApiDemoApp.mDemoApp.getApplicationContext(), &您的网络出错啦!&,
Toast.LENGTH_LONG).show();
public void onGetPermissionState(int iError) {
Log.d(&MyGeneralListener&, &onGetPermissionState error is &+ iError);
if (iError ==
MKEvent.ERROR_PERMISSION_DENIED) {
// 授权Key错误:
Toast.makeText(BMapApiDemoApp.mDemoApp.getApplicationContext(),
&请在BMapApiDemoApp.java文件输入正确的授权Key!&,
Toast.LENGTH_LONG).show();
BMapApiDemoApp.mDemoApp.m_bKeyRight = false;
public void onCreate() {
Log.v(&BMapApiDemoApp&, &onCreate&);
mDemoApp = this;
mBMapMan = new BMapManager(this);
boolean isSuccess = mBMapMan.init(this.mStrKey, new MyGeneralListener());
// 初始化地图sdk成功,设置定位监听时间
if (isSuccess) {
mBMapMan.getLocationManager().enableProvider(MKLocationManager.MK_GPS_PROVIDER);
mBMapMan.getLocationManager().setNotifyInternal(10, 5);
// 地图sdk初始化失败,不能使用sdk
super.onCreate();
//建议在您app的退出之前调用mapadpi的destroy()函数,避免重复初始化带来的时间消耗
public void onTerminate() {
// TODO Auto-generated method stub
if (mBMapMan != null) {
mBMapMan.destroy();
mBMapMan = null;
super.onTerminate();
mStrKey的值是你申请来的Key,申请地址上面有。
onCreate里加了句mBMapMan.getLocationManager().enableProvider(MKLocationManager.MK_GPS_PROVIDER);用来打开GPS位置。
RunLineOverlay:
public class RunLineOverlay extends Overlay {
private List&GeoPoint& mL
public RunLineOverlay() {
// TODO Auto-generated constructor stub
mList=new ArrayList&GeoPoint&();
public void draw(Canvas arg0, MapView arg1, boolean arg2) {
// TODO Auto-generated method stub
super.draw(arg0, arg1, arg2);
Projection projection = arg1.getProjection();
Paint paint=new Paint();
paint.setColor(Color.BLACK);
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeWidth(5.0f);
Point p1=projection.toPixels(mList.get(0), null);
Point p2=projection.toPixels(mList.get(0), null);
for (GeoPoint item : mList) {
p1.x=p2.x;
p1.y=p2.y;
p2=projection.toPixels(item, null);
arg0.drawLine(p1.x, p1.y, p2.x, p2.y, paint);
public List&GeoPoint& getmList() {
public void setmList(List&GeoPoint& mList) {
this.mList = mL
public void addGeoPoint(GeoPoint point){
mList.add(point);
这是一个自定义的用于在底图上根据点画出轨迹的覆盖物。Projection用于经纬度和屏幕像素点的转换。大概功能就是取出经纬度点然后转成屏幕像素点然后连成轨迹。
LocationOverlay:
public class LocationOverlay extends MapActivity {
MapView mMapView = null;
LocationListener mLocationListener = null;//onResume时注册此listener,onPause时需要Remove
MyLocationOverlay mLocationOverlay = null;
//定位图层
RunLineOverlay mRunLine=null;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mapviewdemo);
BMapApiDemoApp app = (BMapApiDemoApp)this.getApplication();
if (app.mBMapMan == null) {
app.mBMapMan = new BMapManager(getApplication());
app.mBMapMan.init(app.mStrKey, new BMapApiDemoApp.MyGeneralListener());
app.mBMapMan.start();
// 如果使用地图SDK,请初始化地图Activity
super.initMapActivity(app.mBMapMan);
mMapView = (MapView)findViewById(R.id.bmapView);
mMapView.setBuiltInZoomControls(true);
//设置在缩放动画过程中也显示overlay,默认为不绘制
mMapView.setDrawOverlayWhenZooming(true);
// 添加定位图层
mLocationOverlay = new MyLocationOverlay(this, mMapView);
mMapView.getOverlays().add(mLocationOverlay);
// 注册定位事件
mLocationListener = new LocationListener(){
public void onLocationChanged(Location location) {
if (location != null){
GeoPoint pt = new GeoPoint((int)(location.getLatitude()*1e6),
(int)(location.getLongitude()*1e6));
if(mRunLine==null)
{mRunLine=new RunLineOverlay();
mRunLine.addGeoPoint(pt);
mMapView.getOverlays().add(mRunLine);}else
mRunLine.addGeoPoint(pt);
mMapView.getController().animateTo(pt);
protected void onPause() {
BMapApiDemoApp app = (BMapApiDemoApp)this.getApplication();
app.mBMapMan.getLocationManager().removeUpdates(mLocationListener);
mLocationOverlay.disableMyLocation();
mLocationOverlay.disableCompass(); // 关闭指南针
app.mBMapMan.stop();
super.onPause();
protected void onResume() {
BMapApiDemoApp app = (BMapApiDemoApp)this.getApplication();
// 注册定位事件,定位后将地图移动到定位点
app.mBMapMan.getLocationManager().requestLocationUpdates(mLocationListener);
mLocationOverlay.enableMyLocation();
mLocationOverlay.enableCompass(); // 打开指南针
app.mBMapMan.start();
super.onResume();
protected boolean isRouteDisplayed() {
// TODO Auto-generated method stub
return false;
主要修改的代码是
public void onLocationChanged(Location location) {&&&&&&&&&&&&&&& if (location != null){&&&&&&&&&&&&&&&&&&& GeoPoint pt = new GeoPoint((int)(location.getLatitude()*1e6),&&&&&&&&&&&&&&&&&&&&&&&&&&& (int)(location.getLongitude()*1e6));&&&&&&&&&&&&&&&&&&& if(mRunLine==null)&&&&&&&&&&&&&&&&&&& {mRunLine=new RunLineOverlay();&&&&&&&&&&&&&&&&&&& mRunLine.addGeoPoint(pt);&&&&&&&&&&&&&&&&&&& mMapView.getOverlays().add(mRunLine);}else&&&&&&&&&&&&&&&&&&&&&&& mRunLine.addGeoPoint(pt);&&&&&&&&&&&&&&&&&&& mMapView.getController().animateTo(pt);&&&&&&&&&&&&&&& }
当位置改变是这个方法会被调用。功能就是把新位置放入mRunLine。当然第一次要mMapView.getOverlays().add(mRunLine);把mRunLine放进mMapView的覆盖物列表,这样当mMapView被重绘时mRunLine的draw方法就会被调用。
改好后运行程序,列表点击Overlaytest,然后出去转一圈。
&script type=&text/javascript&&&!--
google_ad_client = &ca-pub-8447&;
/* cnblogs 首页横幅 */
google_ad_slot = &&;
google_ad_width = 728;
google_ad_height = 90;
//--&&/script&&script type=&text/javascript& src=&/pagead/show_ads.js&&&/script&
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:7489536次
积分:80724
积分:80724
排名:第10名
原创:435篇
转载:4678篇
译文:22篇
评论:1642条
文章:21篇
阅读:43917
文章:15篇
阅读:33358
文章:22篇
阅读:198148
(4)(8)(28)(21)(47)(1)(1)(8)(170)(814)(1012)(1351)(969)(262)(207)(2)(3)(2)(61)(19)(2)(28)(22)(37)(1)(3)(4)(6)(9)(10)(26)查看: 22890|回复: 5
百度地图或者高德地图能记录步行轨迹吗
参加活动:0 次组织活动:0 次
& && && && && && && && && && && && && && & 1、打开百度地图,点击右下角“我的”,选择“我的足迹”。
& && && && && && && && && && && && && && & 2、点击“开始轨迹记录”,然后百度地图就会开始记录你的行动轨迹,完成后点击左下角“停止”。
& && && && && && && && && && && && && && & 3、可以看到自己刚刚出行的轨迹数据,点击右上角“关闭”返回“我的足迹”页面,刚才的出行轨迹就已经记录下来了。
& && && && && && && && && && && && && &&&
b999a394a14d0cbfc.png (261.17 KB, 下载次数: 0)
09:57 上传
& && && && && && && && && && && && && && && && && && && && && && && && && && && && && && & 同样道理.. 高德地图也可以记录线路轨迹的!
参加活动:0 次组织活动:0 次
参加活动:0 次组织活动:0 次
参加活动:4 次组织活动:0 次
参加活动:0 次组织活动:0 次
参加活动:0 次组织活动:0 次
Powered by当前位置: >
百度地图如何记录出行轨迹
12:32编稿:91UU网&&&()
91UU手机软件教程中心,小编精心整理智能手机软件教程、安卓手机软件教程和Iphone软件教程,手机软件使用手册和使用技巧等,下面请看正文内容。& & )打开百度地图点击右下角【我的】选择【我的足迹】& & )点击【开始轨迹记录】然后百度地图就会开始记录你的行动轨迹完成后点击左下角【停止】& & )我们可以看到自己刚刚出行的轨迹数据点击右上角【关闭】返回【我的足迹】页面刚才的出行轨迹已经记录起来了
91UU手机软件教程中心,以上是小编精心整理的教程内容,内容来自互联网,希望对你有所帮助,如若有异议,可以联系本站管理员更正。
推荐游戏下载
《冰火皇权》
海鸣威献唱《
《皇图》公测
神雕侠侣9月
热门安卓游戏
copyright@
深圳市金矩阵网络有限公司 版权所有
粤ICP备号-1
关注新浪微博:&&&&&&&&&& 关注微社区:百度地图如何记录出行轨迹_iTunes之家
百度地图如何记录出行轨迹
时间:日 | 关键字: | 来源:
&  1)打开百度地图,点击右下角【我的】,选择【我的足迹】。
  2)点击【开始轨迹记录】,然后百度地图就会开始记录你的行动轨迹,完成后点击左下角【停止】。
  3)我们可以看到自己刚刚出行的轨迹数据,点击右上角【关闭】返回【我的足迹】页面,刚才的出行轨迹已经记录起来了。}

我要回帖

更多关于 百度地图api轨迹记录 的文章

更多推荐

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

点击添加站长微信