BaiduMap开发详解(1) 申请key

     在iteye上已经有很久一段时间没有更新博客了,希望能把这半年内做Android开发的一些经验分享给大家。也作为抛砖引玉吧。

       此项目是我的毕业设计 GPS旅游自助导游系统。采用的是BaiduMap。通过整理一步步实现完整的系统。初入Android行业,高手勿喷!

       目前新版的百度地图,和之前的版本有了很大差别,首先来说如何申请key吧。

       具体的申请方式可以参加BaiduMap的官方网址 和pdf文档 我会上传在附件中:这里主要说说我申请之后碰到的问题和心酸历程吧!已经有了的东西不再重造车轮

 

首先 key的申请中要注意几个问题:我申请完了之后,发现地图是白格子,这个是经常碰到的问题:最有可能的问题还是你的key没有申请对!

 申请Key的时候:key有两部分组成 安全提示码+程序的包名。安全提示码有2种途径进行查看:

1 在eclipseADT中查看 点击 window-Preference- 在左侧的树状菜单中选择 Android下的 Build 就可以看到以下的安全码 选择 SHA1 fingerprint



 

2 BaiduMap的Key 是由安全码再加;再加你开发的程序包名 包名的查看你可以到Android应用程序下的配置文件 AndroidManifest.xml 下查看 

 

 

这样key就申请完了。

然后提交到百度api 控制台

 



 
 然后不要忘记掉给应用程序的配置文件 里添加相关的网络访问权限和屏幕自适应的权限  

 <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="android.permission.USE_CREDENTIALS" />
    <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
    <uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />

    <permission android:name="android.permission.BAIDU_LOCATION_SERVICE" >
    </permission>

    <uses-permission android:name="android.permission.BAIDU_LOCATION_SERVICE" >
    </uses-permission>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" >
    </uses-permission>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" >
    </uses-permission>
    <uses-permission android:name="android.permission.INTERNET" >
    </uses-permission>
    <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" >
    </uses-permission>
    <!-- <uses-permission android:name="android.permission.WRITE_APN_SETTINGS"></uses-permission> -->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" >
    </uses-permission>
    <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
    <uses-permission android:name="android.permission.WAKE_LOCK" >
    </uses-permission>
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_GPS" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.READ_CONTACTS" />
    <uses-permission android:name="android.permission.CALL_PHONE" />
    <uses-permission android:name="android.permission.READ_SMS" />
    <uses-permission android:name="android.permission.SEND_SMS" />
    <!-- SDK1.5需要android.permission.GET_TASKS权限判断本程序是否为当前运行的应用? -->
    <uses-permission android:name="android.permission.GET_TASKS" />
    <uses-permission android:name="android.permission.CAMERA" >
    </uses-permission>
    <uses-permission android:name="android.permission.RECORD_AUDIO" >
    </uses-permission>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" >
    </uses-permission>
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-permission android:name="android.permission.BROADCAST_STICKY" />
    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
    <!-- 来电消音 -->
    <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" >
    </uses-permission>
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />

    <supports-screens
        android:anyDensity="true"
        android:largeScreens="true"
        android:normalScreens="true"
        android:resizeable="true"
        android:smallScreens="true" />

 

这样你就可以使用百度地图来开发自己的程序了 下面写一个demo 

 

首先你要做一张布局页面 test.xml 在给xml页面命名的时候也不要忘记了xml页面命名是小写的 

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

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

</LinearLayout>

 

在加载地图渲染之前 首先要加载地图管理类 

地图管理类 已经放在了ApplicationDemo中  代码如下 :

public class DemoApplication extends Application {
	
    private static DemoApplication mInstance = null;
    public boolean m_bKeyRight = true;
    public BMapManager mBMapManager = null;

	
	@Override
    public void onCreate() {
	    super.onCreate();
		mInstance = this;
		initEngineManager(this);
	}
	
	public void initEngineManager(Context context) {
        if (mBMapManager == null) {
            mBMapManager = new BMapManager(context);
        }

        if (!mBMapManager.init(new MyGeneralListener())) {
            Toast.makeText(DemoApplication.getInstance().getApplicationContext(), 
                    "BMapManager  初始化错误!", Toast.LENGTH_LONG).show();
        }
	}
	
	public static DemoApplication getInstance() {
		return mInstance;
	}
	
	
	// 常用事件监听,用来处理通常的网络错误,授权验证错误等
    public static class MyGeneralListener implements MKGeneralListener {
        
        @Override
        public void onGetNetworkState(int iError) {
            if (iError == MKEvent.ERROR_NETWORK_CONNECT) {
                Toast.makeText(DemoApplication.getInstance().getApplicationContext(), "您的网络出错啦!",
                    Toast.LENGTH_LONG).show();
            }
            else if (iError == MKEvent.ERROR_NETWORK_DATA) {
                Toast.makeText(DemoApplication.getInstance().getApplicationContext(), "输入正确的检索条件!",
                        Toast.LENGTH_LONG).show();
            }
            // ...
        }

        @Override
        public void onGetPermissionState(int iError) {
        	//非零值表示key验证未通过
            if (iError != 0) {
                //授权Key错误:
                Toast.makeText(DemoApplication.getInstance().getApplicationContext(), 
                        "请在 DemoApplication.java文件输入正确的授权Key,并检查您的网络连接是否正常!error: "+iError, Toast.LENGTH_LONG).show();
                DemoApplication.getInstance().m_bKeyRight = false;
            }
            else{
            	DemoApplication.getInstance().m_bKeyRight = true;
            	Toast.makeText(DemoApplication.getInstance().getApplicationContext(), 
                        "key认证成功", Toast.LENGTH_LONG).show();
            }
        }
    }
}

其实到了这一步 ,你还缺少一步 :要在Android的配置文件中设定启动的Activity的名字 TestBaiduMapActivity设置为启动项  

这样此程序就可以在你的手机上跑起来了 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Baidumap是一个在R语言中使用百度地图API的包。根据引用提供的信息,你可以按照以下步骤进行安装和使用: 1. 首先,安装依赖包devtools并通过github安装baidumap和remap包: ``` library(devtools) install_github('badbye/baidumap') install_github('lchiffon/REmap') ``` 2. 使用getBaiduMap函数可以获取地图信息,其中参数location可以是包含经度和维度的向量、矩阵或地址字符串,width和height是地图的宽度和高度,zoom是地图的缩放比例,scale是像素数,color表示有色或黑白,messaging决定是否输出下载数据的信息。例如,使用以下代码获取北京大学的地图信息并绘制地图: ``` library(baidumap) library(ggmap) q <- getBaiduMap('北京大学', width=600, height=600, zoom=18, scale = 2, messaging=FALSE) ggmap(q) ``` 以上是根据引用提供的信息安装和使用Baidumap包的简要步骤。如果需要更详细的使用说明,可以参考引用中提供的github下载地址和引用中的示例代码。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [R语言 baidumap和REmap包使用学习(一)——baidumap包](https://blog.csdn.net/lotterychampion/article/details/51404364)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [R语言地图可视化—Baidumap包和REmap包](https://blog.csdn.net/lanxingyue25/article/details/88727837)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值