zoukankan      html  css  js  c++  java
  • 团队项目:安卓端用百度地图api定位显示跑道

      因为安卓调用api对我来说是一个完全陌生的领域,我在经过很长时间终于弄出来了,这段时间还是很有成效的,我得到了历练。

      第一步:注册成为百度开发者

    在百度地图开放平台创建应用。地址http://lbsyun.baidu.com/index.php?title=首页

      

    在电脑中找到sha1码来注册,寻找sha1码的方式,网上有教程,开始我没有用集成安卓的eclipse,用android studio。所以采用的是cmd命令台的方式查找的。

    这张图片节选自网络

    这是另一种方式:在eclipse中打开Windows-->Preferences-->Android-->Build

    下面是在eclipse中创建的包名,也要写入应用中;就可以得到一个AK

     

     这是我的开发应用AK:

     再将安卓地图SDK下载

    将SDK下载后找libs将其中的jar文件复制

    如图在eclipse(之前用了android studio尝试了5次,闪退,报错,可能是我不太熟悉android studio的平台吧。我改用了集成安卓的eclipse进行开发。)中新建一个名字叫map的安卓项目。

    在项目中新建一个libs项目,将jar文件粘贴到文件中。然后导入到项目中,左下方会有一个红色的小标记。

    再同理将所有的含有so文件的文件夹(即armeabi)等,导入到libs中。

    在AndroidMenifest.xml中添加权限

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <!-- 访问网络 -->
    <uses-permission android:name="android.permission.INTERNET" />
    <!-- 获取WiFi状态 -->
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <!-- 允许程序写入外部存储,如SD卡上写文件 -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
    <!-- 读取电话状态 -->
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.CALL_PHONE" />
    <!-- 获取精确位置 GPS芯片接收卫星的定位信息,定位精度达10米以内 -->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <!-- 通过WiFi或移动基站的方式获取用户错略的经纬度信息 -->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <!-- 获取模拟定位信息 -->
    <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_GPS" />

     增加ak

    <meta-data  
                android:name="com.baidu.lbsapi.API_KEY"  
                android:value="//AK码" /> 
    

      在activity_main.xml中增加代码

    <com.baidu.mapapi.map.MapView  
           android:id="@+id/bmapView"  
           android:layout_width="fill_parent"  
           android:layout_height="fill_parent"  
           android:clickable="true" />  
    

      在MainActivity中加入如下代码。

    package com.example.map;
    
    import com.baidu.mapapi.SDKInitializer;
    import com.baidu.mapapi.map.MapView;
    
    import android.os.Bundle;
    import android.app.Activity;
    import android.view.Menu;
    
    public class MainActivity extends Activity {  
    	  
        MapView mMapView = null;// 用于显示地图的控件;  
      
        @Override  
        protected void onCreate(Bundle savedInstanceState) {  
           
        	super.onCreate(savedInstanceState);  
            SDKInitializer.initialize(getApplicationContext());// 初始化地图SDK,注意一定要写在 setContentView(R.layout.activity_main);代码前;  
            setContentView(R.layout.activity_main);  
            
            mMapView = (MapView) findViewById(R.id.bmapView);// 绑定控件;  
        }  
      
        @Override  
        protected void onDestroy() {// 管理地图的生命周期:销毁  
            super.onDestroy();  
            mMapView.onDestroy();
            
        }  
      
        @Override  
        protected void onResume() {// 显示;  
            super.onResume();  
            mMapView.onResume();  
        }  
      
        @Override  
        protected void onPause() {// 暂停;  
            super.onPause();  
            mMapView.onPause();  
        }  
      
    } 
    

      

     运行普通地图。结果为

    这个是我上周六一直在家里调试之前的地图demo,在学校虚拟机显示的是方格图,我以为是因为电脑没有GPS才显示的,结果发现还有错误。这个是我调试了大半天,从早上到下午2点,才运行到手机上的.

    andriod studio我前后尝试了5次,每一次都是未运行前没有错误,因为个人认为已经把显示错误的地方给改好。第一次运行报了300多个错误,第二次报错700多个,我实在没办法,没法调。所以换成了eclipse。

     这是其中的一个studio截图

     下一步应该是将定位SDK参照以上方式导入到libs中

    以上是我自己做出来的。因为文件大小有33M,无法上传到coding.net。网盘下载地址链接:https://pan.baidu.com/s/1bYImiq

    实话实说,做出基本地图后,我找到了一个demo,我自己把它调试了出来,有定位功能,效果很好。也是基于eclipse版本的,是一个挺好的开发版本。网盘下载地址链接:https://pan.baidu.com/s/1qYTgojE

    这是我运行的定位效果图

    这段时间我在图书馆借了一本安卓的书,看了谷歌地图在studio的使用。总之,动手做了,也学会了不少东西。

    上了研究生学了这门课程,对我自己所研究的方向也有很大的用处,软件工程是一门很有用的课程,总之这个学期尤其在这门课程中我学会的很多。

  • 相关阅读:
    关于 转换图片url为base64格式以及base64格式图片地址转为图片文件
    rem布局在Androidwebview中页面错乱
    vue中 $event 的用法--获取当前父元素,子元素,兄弟元素
    vue实现动态改变title
    vue页面跳转-携带参数
    vue项目打包部署生产环境
    Mark区
    kma 2019CSP前刷题记录
    机房的沙茶日常
    2019NOIP算法复健+学习
  • 原文地址:https://www.cnblogs.com/brilliant2016/p/6119640.html
Copyright © 2011-2022 走看看