• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > Android定位&地图&导航——基于百度地图移动获取位置和自动定位,android定位城市

Android定位&地图&导航——基于百度地图移动获取位置和自动定位,android定位城市

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了android定位开发,android定位源码,android定位城市,android 定位权限,android定位demo等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

Android定位&地图&导航——基于百度地图移动获取位置和自动定位,android定位城市


一、问题描述

使用百度地图实现如图所示应用,首先自动定位当前我起始位置(小圆点位置),并跟随移动不断自动定位我的当前位置

百度Api不同版本使用会有些差异,本例中加入lib如下:

二、编写MyApplication类
public class MyApplication extends Application {
    static MyApplication myApplication;
    BMapManager mBMapManager = null;
    String mStrKey = "7ZfuRcOx1G3oZ8TKuTNGm4sO";
    boolean m_bKeyRight = true; // 授权Key正确,验证通过
    private List<Activity> activityList = new LinkedList<Activity>();
    @Override
    public void onCreate() {
        myApplication = this;
        initEngineManager(this);
        super.onCreate();
    }
    public void initEngineManager(Context context) {
        if (mBMapManager == null) {
            mBMapManager = new BMapManager(context);
            Toast.makeText(MyApplication.getInstance().getApplicationContext(),
                    "BMapManager  初始化SUCSUC!", Toast.LENGTH_LONG).show();
        }
        if (!mBMapManager.init(mStrKey, new MyGeneralListener())) {
            Toast.makeText(MyApplication.getInstance().getApplicationContext(),
                    "BMapManager  初始化错误!", Toast.LENGTH_LONG).show();
        }
    }

    public static MyApplication getInstance() {
        if (myApplication == null) {
            myApplication = new MyApplication();
        }
        return myApplication;
    }
    public void addActivity(Activity activity) {
        activityList.add(activity);
    }
    public void exit() {
        for (Activity activity : activityList) {
            activity.finish();
        }
        System.exit(0);
    }
    // 常用事件监听,用来处理通常的网络错误,授权验证错误等
    static class MyGeneralListener implements MKGeneralListener {
        public void onGetNetworkState(int iError) {
            if (iError == MKEvent.ERROR_NETWORK_CONNECT) {
                Toast.makeText(
                        MyApplication.getInstance().getApplicationContext(),
                        "您的网络出错啦!", Toast.LENGTH_LONG).show();
            } else if (iError == MKEvent.ERROR_NETWORK_DATA) {
                Toast.makeText(
                        MyApplication.getInstance().getApplicationContext(),
                        "输入正确的检索条件!", Toast.LENGTH_LONG).show();
            }
            // ...
        }
        public void onGetPermissionState(int iError) {
            if (iError == MKEvent.ERROR_PERMISSION_DENIED) {
                // 授权Key错误:
                Toast.makeText(
                        MyApplication.getInstance().getApplicationContext(),
                        "请输入正确的授权Key!",
                        Toast.LENGTH_LONG).show();
                MyApplication.getInstance().m_bKeyRight = false;
            }
        }

    }
}
三、编写主程序MainActivity,显示当前所处位置

 主程序MainActity:

public class MainActivity extends Activity {
    public MyApplication app;
    static MapView mMapView = null;
    public MKMapViewListener mMapListener = null;
    MyLocationOverlay myLocationOverlay = null;
    // 定位相关
    LocationClient mLocClient;
    public NotifyLister mNotifyer = null;
    public MyLocationListenner myListener = new MyLocationListenner();
    LocationData locData = null;
    private MapController mMapController = null;
    
    static MKSearch mkSerach;

    Handler mHandler = new Handler() {
        public void handleMessage(android.os.Message msg) {
            Toast.makeText(MainActivity.this, "msg:" + msg.what,
                    Toast.LENGTH_SHORT).show();
        };
    };
    static TextView showAddr;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        showAddr = (TextView) findViewById(R.id.showAddr);
        MyIcon mi = new MyIcon(this);
        //在屏幕中心点添加接我图标
        getWindow().addContentView(
                mi,
                new LayoutParams(LayoutParams.FILL_PARENT,
                        LayoutParams.FILL_PARENT));
        MyIcon2 m2 = new MyIcon2(this);
        getWindow().addContentView(
                m2,
                new LayoutParams(LayoutParams.FILL_PARENT,
                        LayoutParams.FILL_PARENT));

        mMapView = (MapView) findViewById(R.id.bmapsView);
        mMapController = mMapView.getController();
        initMapView();
        app = MyApplication.getInstance();
        mLocClient = new LocationClient(this);
        mLocClient.registerLocationListener(myListener);
        
        //搜索初始化
        mkSerach = new MKSearch();
        mkSerach.init(app.mBMapManager, new MKSearchListener() {

            @Override
            public void onGetWalkingRouteResult(MKWalkingRouteResult arg0,
                    int arg1) {
                // TODO Auto-generated method stub

            }

            @Override
            public void onGetTransitRouteResult(MKTransitRouteResult arg0,
                    int arg1) {
                // TODO Auto-generated method stub

            }

            @Override
            public void



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Android定位&amp;地图&amp;导航——自定义公交路线代码,android定位城市
  • Android定位&amp;地图&amp;导航——基于百度地图移动获取位置和自动定位,android定位城市

相关文章

  • 2017-05-26解决 file /isolinux/vmlinuz0 not found
  • 2017-05-26我的android学习经历9,android学习经历9
  • 2017-05-26Android 蓝牙操作详解,android蓝牙详解
  • 2017-05-26PigeonCall:一款Android VoIP网络电话App架构的介绍
  • 2017-05-26getCacheDir()、getFilesDir()、getExternalFilesDir()、getExternalCacheDir(),mediacachefiles
  • 2017-05-26Android Fragment 剖析,androidfragment
  • 2017-05-26『BUG』Android Studio 64位 始终提示 JVM 启动不了,JDK配置失败,error code,androidjvm
  • 2017-05-26Java时间间隔问题在Android中的使用,javaandroid
  • 2017-05-26Android--JNI简单的实例解析
  • 2017-05-26微博API常用方法,博API常用方法

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 初识react native遇到的问题,reactnative
    • Android Support Library 之 Toolbar
    • 关于linux的busybox工具mdev的使用和声卡热插拔以及驱动挂载的总结
    • Android特效专辑(九)——仿微信雷达搜索好友特效,逻辑清晰实现简单
    • 安卓高级组件-----进度条,安卓-----进度条
    • 阿里巴巴开源Weex 开发教程,开源weex
    • ViewPager结合Fragment进行无限滑动,viewpagerfragment
    • 充值,充值平台
    • Android解析编译之后的所有文件(so,dex,xml,arsc)格式
    • android基于口令加密快速搞懂(一),android搞懂

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有