百度地图ak申请一个AK能共用吗,就是我创建了一个地图用了这个AK在创建一个地图是要重新创建AK还是可以共用

今天看啥 热点:
百度地图开发的学习(一),百度地图开发学习由于项目需求缘故,最近在学习Android地图的开发,所以就记录一下学习过程。最近都会陆续更新啦。目前使用百度地图API的挺多的,所以就先以它为基础学习一些地图的调用。
一、AK的申请
与web开发不一样,Android的地图项目开发需要申请一个AK才能调用地图功能。
1.注册成为百度开发者,正常填入信息即可。
2.申请密钥:
  在/apiconsole/key中创建应用,现在百度只允许一个key对应一个应用。
  (1)应用名称:与自己创建项目名一致。
  (2)应用类型:Android SDK
  (3)启动服务:建议全部勾选,方便项目后续继续添加功能。
  (4)数字签名(SHA1):
  在Android studio上有命令行,直接启动,进入C:\用户名\.android,输入keytool -list -v -keystore debug.keystore(密钥库命令是android),会出现证书指纹,将SHA1的值粘贴过去即可。
  由于百度推荐的这个方法出来的SHA1可能出现错误,百度论坛上许多人包括本人也出现SHA1值错误导致的AK匹对失败,在论坛上看到官方给出一个测试AK的app,它可以获取所有应用正确的SHA1和包名,我们可以把以前错误替换掉。这是网址:http://bbs./forum.php?mod=viewthread&tid=85103&extra=page%3D1
  (5)包名:Android studio里在app文件下的build.gradle,applicationId就是包名。
&二、下载SDK开发包
1.在网址:/index.php?title=androidsdk/sdkandev-download
&一键下载会把jar包、so文件以及一些demo都包含,后面也比较方便查看。
&2.接下来就是在android studio创建项目,过程就不说啦,建完后添加jar包和so文件
jar包:添加在libs文件下,并右击右击里选择add as library;
&so文件:在main文件下新建jniLibs文件,将各种编译环境的so文件粘贴进去。
&3.在AndroidManifest.xml 声明AK和权限
&application&
&meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="开发者 key" /&
&/application&
权限(算是比较齐全的权限):
&uses-permission android:name="android.permission.INTERNET"/&&uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" /&&uses-permission android:name="android.permission.WAKE_LOCK"/&&uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /&&uses-permission android:name="android.permission.WRITE_SETTINGS" /&&uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /&&uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /&&uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /&&uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /&&uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /&&uses-permission android:name="android.permission.READ_PHONE_STATE" /&&uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /&&uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /&&uses-permission android:name="android.permission.READ_LOGS" /&&uses-permission android:name="android.permission.WRITE_SETTINGS"/&
4.在布局文件中添加地图控件
&com.baidu.mapapi.map.MapView
android:id="@+id/bmapView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true"&&/com.baidu.mapapi.map.MapView&5.应用创建需要初始化SDK,引用全局变量:&
&6.创建基础地图:
在主线程里面声明了控件引用就可以使用基础地图了,显示基本的地图信息。mMapView = (MapView) findViewById(R.id.bmapView);
然后管理声明周期,在各个阶段同步地图的状态。
@Overrideprotected void onDestroy() {
super.onDestroy();
mMapView.onDestroy();}@Overrideprotected void onResume() {
super.onResume();
mMapView.onResume();}@Overrideprotected void onPause() {
super.onPause();
mMapView.onPause();}
&后面会陆续更新定位的获取,地图POI的检索和一些路线规划等等。
相关搜索:
相关阅读:
相关频道:
Android教程最近更新&>&&>&&>&&>&百度地图获得详细地址,城市,省份,街道等
百度地图获得详细地址,城市,省份,街道等
上传大小:1.61MB
异步获得百度地图 详细地址 城市 省份 街道,已打包成jar包,直接调用即可,不过需要你到百度地图官网注册一个秘钥(ak),这是调用百度地图必须的。使用方法:
1.manifest下声明service:
&service android:name=&com.baidu.location.f& android:enabled=&true& android:process=&:remote&&
&/service&
2.manifest下的application内提供ak:
&meta-data
android:name=&com.baidu.lbsapi.API_KEY&
android:value=&输入你注册得到的秘钥& /&&!-- 这里输入百度地图api ak密匙 --&
3.实现onaddresscallback接口,用于获得位置后回调
4.new BDLBSMapHelper().getAddressDetail(context,onaddresscallback)获得地址信息
5.内有一个调用实例
6.注意API版本为3.2.2...展开收缩
综合评分:4.1(14位用户评分)
所需积分:2
下载次数:152
审核通过送C币
创建者:huang3513
创建者:xiaoyaoyou1212
创建者:nigelyq
课程推荐相关知识库
上传者其他资源上传者专辑
移动开发热门标签
VIP会员动态
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
android服务器底层网络模块的设计方法
所需积分:0
剩余积分:720
您当前C币:1
可兑换下载积分:2
兑换下载分:
兑换失败,您当前C币不够,请先充值C币
消耗C币:0
你当前的下载分为234。
百度地图获得详细地址,城市,省份,街道等
会员到期时间:
剩余下载次数:
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:> 博客详情
摘要: 前一阵搞了百度地图1.3的离线版,有人询问2.0怎么搞。其实差不多。搞了下,记录下来,供大家参考。
鉴于许多人询问百度地图2.0怎么搞?因为搞过1.3,所以感觉2.0应该也是不难搞的。因此本文整理一下2.0版离线程序的过程。
本过程完全基于1.3版的离线程序,因此许多资源如何下载就不重复了。瓦片都是一样的,相关的文件只有两个:第一个是api主文件,暂且命名apiv2.0.min.js吧,这样和apiv1.3.min.js格式就完全一致了。另一个是模块插件文件,命名为getmodulesv2.0.js。
1. 下载api主文件
api文件的地址请访问http://api./api?v=2.0。在线版使用该链接引入百度地图的js,还需要增加一个ak参数,就是应用注册时拿到的应用代码。这个代码是私有的,我就补贴出来了。事实证明无需这个代码能拿到主api文件,并且是完全没有问题的。
从这个地址拿到的是一段代码,里面有一个链接,打开它就能拿到api主文件了。
2. 修改api主文件
2.1 加载模块短路处理
搜索下面的代码:“Pb(e.aG.MP+"&mod="+a.join(","))”,不包括两端的中文引号
替换成为:“Pb("js/getmodules2.0.js")”
2.2 加载瓦片改为离线瓦片
搜索下面的代码:”Uc.getTilesUrl“,不包括两端的中文引号
将其实现改为:Uc.getTilesUrl=function(a,b,c){var x=a.x,y=a.y,e=1,z=b;return "tiles/"+z+"/"+x+"/"+y+".png";}
这时基本上就修改好了,只是还存在一个问题,就是非法调用的问题。
2.3 去掉ak验证
ak验证是通过jsonp来实现的,具体在哪里调用的不清楚,但只要把jsonp工具移除就Ok了。
function&Pb(a,&b)&{
&&&&if&(b)&{
&&&&&&&&var&c&=&(1E5&*&Math.random()).toFixed(0);
&&&&&&&&z._rd["_cbk"&+&c]&=&function(a)&{
&&&&&&&&&&&&b&&&&b(a);
&&&&&&&&&&&&delete&z._rd["_cbk"&+&c]
&&&&&&&&};
&&&&&&&&a&+=&"&callback=BMap._rd._cbk"&+&c
&&&&var&d&=&K("script",&{
&&&&&&&&type&:&"text/javascript"
&&&&d.charset&=&"utf-8";
&&&&d.src&=&a;
&&&&d.addEventListener&?&d.addEventListener("load",&function(a)&{
&&&&&&&&a&=&a.
&&&&&&&&a.parentNode.removeChild(a)
&&&&},&q)&:&d.attachEvent
&&&&&&&&&&&&&&&d.attachEvent("onreadystatechange",&function()&{
&&&&&&&&&&&&&&&&var&a&=&window.event.srcE
&&&&&&&&&&&&&&&&a&&&&("loaded"&==&a.readyState&||&"complete"&==&a.readyState)
&&&&&&&&&&&&&&&&&&&&&&&&&&&a.parentNode.removeChild(a)
&&&&&&&&&&&&});
&&&&setTimeout(function()&{
&&&&&&&&document.getElementsByTagName("head")[0].appendChild(d);
&&&&&&&&d&=&p
把这个方法找到,里面的内容不解释了,自己看吧。把里面的代码都清空就O了。
修正!2.1步骤里面调用了该方法加载模块代码,因此清空是不行的!运行没问题,但扩展就不行了!改成这样:
function&Pb(a,&b)&{
&&&&if&(/^http/.test(a))//这里判断一下,如果是调用外部资源就退出去好了
&&&&if&(b)&{
&&&&&&&&var&c&=&(1E5&*&Math.random()).toFixed(0);
&&&&&&&&z._rd["_cbk"&+&c]&=&function(a)&{
&&&&&&&&&&&&b&&&&b(a);
&&&&&&&&&&&&delete&z._rd["_cbk"&+&c]
&&&&&&&&};
&&&&&&&&a&+=&"&callback=BMap._rd._cbk"&+&c
&&&&var&d&=&K("script",&{
&&&&&&&&type&:&"text/javascript"
&&&&d.charset&=&"utf-8";
&&&&d.src&=&a;
&&&&d.addEventListener&?&d.addEventListener("load",&function(a)&{
&&&&&&&&a&=&a.
&&&&&&&&a.parentNode.removeChild(a)
&&&&},&q)&:&d.attachEvent
&&&&&&&&&&&&&&&d.attachEvent("onreadystatechange",&function()&{
&&&&&&&&&&&&&&&&var&a&=&window.event.srcE
&&&&&&&&&&&&&&&&a&&&&("loaded"&==&a.readyState&||&"complete"&==&a.readyState)
&&&&&&&&&&&&&&&&&&&&&&&&&&&a.parentNode.removeChild(a)
&&&&&&&&&&&&});
&&&&setTimeout(function()&{
&&&&&&&&document.getElementsByTagName("head")[0].appendChild(d);
&&&&&&&&d&=&p
向大家道歉!
2.4 本地工具资源的引用
搜索“z.url.domain.main_domain_cdn.baidu[0]”,能够找到z.ma的定义,将其置为空串即可。z.ma="";
2.5 去掉对blank.gif调用
搜索“nb=o,setTimeout”,去掉对blank.gif的调用,把function体内的代码都清除即可,即:
function(a){a&&(nb=o,setTimeout(function(){}, 50))};
如果你要求不严格,这步可以不做。
3. 下载模块代码
从2.1步骤中可以知道,模块是通过一个连接下载下来的,再次访问这个连接可以获得一个js文档,命名为getmodules2.0.js丢到js文件夹中就行了。当然,2.1里面怎么写,这里就怎么做。
这个地址大约是这样的:
如果要扩展就得自己查看模块路径啦。
好了,其他的都还用1.3的内容。可能有一些扩展功能不兼容,但总体上是一样的。Enjoy it!
代码下载点击
事情总是戏剧性发展,这是始料未及的。
我已开始研究这个2.0版本的时候,我在本地建立的文件夹是v2.0,然后一切很顺利,跑起来也很正常。但是IE下一直不正常,我就继续在研究(我主要用火狐,观察比较方便)。结果发现,除了上面把加载模块的代码给错误的屏蔽了之外,如果我的代码拷贝到别的文件夹下就运行不正常,症状和IE一样。再进一步发现,v2.0这个文件夹改名为别的也出现这样的错误。
一开始以为是缓存的问题,清缓存,还是不行,必须文件夹在我一开始的位置上,名字都不能变,改名就不行,换位置也不行。
经过进一步的跟踪,发现问题出现在load方法上:
var&load=function(a,b,c){
&&&&var&d=this.gb(a);
&&&&if(d.Bd==this.Fj.Zp)
&&&&&&&&c&&b();
&&&&&&&&if(d.Bd==&this.Fj.hG){
&&&&&&&&&&&&this.bK(a);
&&&&&&&&&&&&this.jN(a);
&&&&&&&&&&&&var&e=
&&&&&&&&&&&&e.zC==q&&(
&&&&&&&&&&&&&&&&&&&&e.zC=o,
&&&&&&&&&&&&&&&&&&&&setTimeout(function(){
&&&&&&&&&&&&&&&&&&&&&&&&for(var&a=[],b=0,c=e.Md.En.b&c;b++){
&&&&&&&&&&&&&&&&&&&&&&&&&&&&var&d=e.Md.En[b],l="";
&&&&&&&&&&&&&&&&&&&&&&&&&&&&ja.Gy.VJ(d)?l=ja.Gy.get(d):(l="",a.push(d+"_"+Qb[d]));
&&&&&&&&&&&&&&&&&&&&&&&&&&&&e.Md.Pv.push({DM:d,EE:l})
&&&&&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&&&&&e.zC=q;
&&&&&&&&&&&&&&&&&&&&&&&&e.Md.En.length=0;
&&&&&&&&&&&&&&&&&&&&&&&&alert(a);//这里很重要!帮助我们找到我们需要加载的模块!
&&&&&&&&&&&&&&&&&&&&&&&&0==a.length?e.LK():Pb("js/getmodules.js")
&&&&&&&&&&&&&&&&&&&&&&&&//这里原先是:Pb(e.aG.MP+"&mod="+a.join(","))
&&&&&&&&&&&&&&&&&&&&},1)
&&&&&&&&&&&&&&&&&&&&);
&&&&&&&&&&&&d.Bd=this.Fj.vP
&&&&&&&&d.Pu.push(b)
问题就在于,a是一个数组,是统计到底哪些模块是没有加载进来的,需要发起请求来到网络上去再加载。
好了,当目录在我原先的v2.0里面的时候,a数组为空,并不需要再加载,因此调用的是e.LK(),这个方法到底干了写什么,我也不清楚,太乱了。但是目录换了,好家伙,a数组是一个好长的东西,长度15,是否会更长,我也不知道。
看到我alert一下了吧,在火狐底下是可以复制这个对话框里面的内容的。然后把它放在步骤3给出的连接后面去下载这些代码,然后放在2.1里面规定的js里面,然后就一切搞定,IE下也表现正常了。这个文件一下子膨胀到了433KB,真是恐怖啊!
后来收集了几次,列出如下:
map_3uc0wi,scommon_ktwwno,mapclick_pispkz,oppc_kh0en0,vectordrawlib_o0famu,style_fcoka2,tile_5r2pa2,navictrl_vohbha,canvablepath_x52cuy,common_5w45zj,symbol_fwsijz,marker_25gtk1,draw_o13qo0,drawbysvg_wqhg4u,poly_qwgivycanvablepath_x52cuy,common_5w45zj,symbol_fwsijz,marker_25gtk1,draw_o13qo0,drawbysvg_wqhg4u,poly_qwgivycopyrightctrl_4v1wlkhotspot_41pssw
现在我仍然不明白,我的v2.0目录咋就不需要这些东西呢?因为不需要,所以也就不加载getmodules.js里面的内容了,这也导致扩展成问题了。到底什么时候需要,什么时候不需要呢?
好在这个加载过程是被动态调用的,就是你需要的时候才去加载。因此扩展的时候一定把功能跑全了,每弹出这个对话框的时候,都意味着要加载额外的代码。收集这些信息,一次性加载到getmodules.js里面就OK了。不会重复加载模块的。
为了兼容IE9以下的版本,需要在demo.html里面增加一句:
&meta&http-equiv="X-UA-Compatible"&content="IE=edge,chrome=1"&
在此谢过@woodj
人打赏支持
码字总数 15203
对覆盖物支持不好。你删掉关于marker和polyline的这两段js代码看看是不是好了
没加载相应的模块。需要您自己选择需要的模块,一次性打包在js当中。由于代码时间久远,您需要重新按照文中所述流程修改代码。建议先完成在线版所有的功能,然后再做离线版,免得后面再需要加载的时候需要重新再做一遍。
引用来自“Cody_Yu”的评论没加载相应的模块。需要您自己选择需要的模块,一次性打包在js当中。由于代码时间久远,您需要重新按照文中所述流程修改代码。建议先完成在线版所有的功能,然后再做离线版,免得后面再需要加载的时候需要重新再做一遍。万分感谢。谢谢您的一句话。 “先完成在线版所有的功能,然后再做离线版”。 目前可以弹出信息窗口了。
离线地图下载的话。 有一个软件比较好, 太乐地图,4.9有绿色版。
在现行的百度地图的架构之下,您的这个断言应该是确定的。个人感觉。
引用来自“Cody_Yu”的评论没加载相应的模块。需要您自己选择需要的模块,一次性打包在js当中。由于代码时间久远,您需要重新按照文中所述流程修改代码。建议先完成在线版所有的功能,然后再做离线版,免得后面再需要加载的时候需要重新再做一遍。引用来自“个人心里表白书”的评论万分感谢。谢谢您的一句话。 “先完成在线版所有的功能,然后再做离线版”。 目前可以弹出信息窗口了。
离线地图下载的话。 有一个软件比较好, 太乐地图,4.9有绿色版。能不能共享下这个软件
我的情况跟您一样,请问您找到解决方法了吗?
引用来自“Cody_Yu”的评论没加载相应的模块。需要您自己选择需要的模块,一次性打包在js当中。由于代码时间久远,您需要重新按照文中所述流程修改代码。建议先完成在线版所有的功能,然后再做离线版,免得后面再需要加载的时候需要重新再做一遍。引用来自“个人心里表白书”的评论万分感谢。谢谢您的一句话。 “先完成在线版所有的功能,然后再做离线版”。 目前可以弹出信息窗口了。
离线地图下载的话。 有一个软件比较好, 太乐地图,4.9有绿色版。请问下,需要怎么改,我加了模块,2.0的还是不能弹出来。
引用来自“Cody_Yu”的评论没加载相应的模块。需要您自己选择需要的模块,一次性打包在js当中。由于代码时间久远,您需要重新按照文中所述流程修改代码。建议先完成在线版所有的功能,然后再做离线版,免得后面再需要加载的时候需要重新再做一遍。引用来自“个人心里表白书”的评论万分感谢。谢谢您的一句话。 “先完成在线版所有的功能,然后再做离线版”。 目前可以弹出信息窗口了。
离线地图下载的话。 有一个软件比较好, 太乐地图,4.9有绿色版。引用来自“jason_nuc”的评论请问下,需要怎么改,我加了模块,2.0的还是不能弹出来。因为代码版本兼容的问题,要按照老师的步骤,从api主文件开始修改,仅仅加入最新的模块是不行的。
请问你是在什么浏览器下测试的?
支付宝支付
微信扫码支付
打赏金额: ¥
已支付成功
打赏金额: ¥本文是在完成了的基础上继续实现的。
本文实例为大家分享了Android如何显示地图,并为后续内容做准备,供大家参考,具体内容如下
&1、运行效果
&本章共有25个示例,在x86模拟器中运行的效果如下:
下面介绍主要设计步骤。
&2、添加资源
&(1)drawable-hdpi&
Resources/ drawable-hdpi下的文件:将下载的示例对应文件夹下的文件全部拖放到该文件夹下,并将所有【生成操作】属性全部设置为&AndroidResource&。&
(2)layout&
Resources/layout下的文件:该文件夹下的所有文件的【生成操作】属性全部为&AndroidResource&。后续的各节示例中再逐步向该文件夹下添加文件,这是为了让你明白每个例子对应的是哪个布局文件。
Resources/raw下的文件:将下载的示例对应文件夹下的文件全部拖放到该文件夹下,并确认【生成操作】属性设为&AndroidResource&。&
(4)values
&Resources/values下的文件:将下载的示例对应文件夹下的文件全部拖放到该文件夹下,并将所有【生成操作】属性全部设为&AndroidResource&。&
3、在layout下添加HelloBdMap.axml文件
&在layout文件夹下添加该文件,将其改为下面的代码:
android:layout_width=&fill_parent&
android:layout_height=&fill_parent&
android:orientation=&vertical&&
<com.baidu.mapapi.map.texturemapview android:id=&@+id/bmapView&
android:layout_width=&fill_parent&
android:layout_height=&fill_parent&
android:clickable=&true& /&</com.baidu.mapapi.map.texturemapview
4、在根目录下添加HelloBaiduMap.cs文件
&将该文件改为下面的代码:&
using Android.A
using Android.Content.PM;
using Android.OS;
using Com.Baidu.Mapapi.M
namespace BdMapV371Demos
[Activity(Label = &BdMapV371Demos&, MainLauncher = false,
ConfigurationChanges = ConfigChanges.Orientation,
ScreenOrientation = ScreenOrientation.Sensor,
Icon = &@drawable/icon&)]
public class HelloBaiduMap : Activity
private TextureMapView mMapV
protected override void OnCreate(Bundle bundle)
& base.OnCreate(bundle);
& SetContentView(Resource.Layout.HelloBdMap);
& mMapView = FindViewById(Resource.Id.bmapView);
protected override void OnPause()
& base.OnPause();
& mMapView.OnPause();
protected override void OnResume()
& base.OnResume();
& mMapView.OnResume();
protected override void OnDestroy()
& base.OnDestroy();
& mMapView.OnDestroy();
5、修改Main.axml文件
&将该文件改为下面的内容:&
android:layout_width=&fill_parent&
android:layout_height=&wrap_content&
android:orientation=&vertical&&
<textview android:id=&@+id/text_Info&
android:layout_width=&fill_parent&
android:layout_height=&wrap_content&
android:textSize=&14sp& /&
<view android:layout_width=&fill_parent&
android:layout_height=&1dip&
android:background=&?android:attr/listDivider& /&
<listview android:id=&@+id/listView&
android:layout_width=&fill_parent&
android:layout_height=&wrap_content& /&</listview</view</textview
6、添加DemoApplication.cs文件
&在项目的根文件夹下添加该文件。&
using Android.A
using Android.R
using Com.Baidu.M
namespace BdMapV371Demos
[Application]
public class DemoApplication : Application
public DemoApplication(IntPtr javaReference, JniHandleOwnership transfer)
& : base(javaReference, transfer)
public override void OnCreate()
& base.OnCreate();
& // 在使用 SDK 各组间之前初始化 context 信息,传入 ApplicationContext
& SDKInitializer.Initialize(ApplicationContext);
7、添加SDKReceiver.cs文件
&在项目的根文件夹下添加该文件。&
using Android.C
using Android.G
using Android.U
using Android.W
using Com.Baidu.M
namespace BdMapV371Demos
/// 广播监听类,监听 SDK key 验证以及网络异常广播
[BroadcastReceiver]
public class SDKReceiver : BroadcastReceiver
private static readonly string LTAG = nameof(MainActivity);
private MainActivity bMapApiDemoM
public SDKReceiver()
public SDKReceiver(MainActivity bMapApiDemoMain)
& : base()
& this.bMapApiDemoMain = bMapApiDemoM
public override void OnReceive(Context context, Intent intent)
& string s = intent.A
& Log.Debug(LTAG, &action: & + s);
& TextView text = bMapApiDemoMain.FindViewById(Resource.Id.text_Info);
& text.SetTextColor(Color.Red);
& switch(s)
& case SDKInitializer.SdkBroadtcastActionStringPermissionCheckError:
&& text.Text = &key 验证出错! 请在 AndroidManifest.xml 文件中检查 key 设置&;
& case SDKInitializer.SdkBroadtcastActionStringPermissionCheckOk:
&& text.Text += &,key验证成功!&;
&& text.SetTextColor(Color.Yellow);
& case SDKInitializer.SdkBroadcastActionStringNetworkError:
&& text.Text = &网络出错&;
8、修改String.xml文件&
BdMapV371Demos
【1】Hello BaiduMap
Demo01--Hello BaiduMap
用TextureMapView渲染地图
【2】基本地图功能
Demo02--基本地图功能
创建一张百度地图并管理地图的生命周期
【3】基于MapFragment的基本地图
Demo03--MapFragment的使用
创建一个基于Fragment的地图框架
【4】图层展示
Demo04--图层展示
展示普通图、卫星图、交通流量图及百度城市热力图
【5】多地图展示
Demo05--多地图展示
在一个Activity中创建多个地图展示
【6】地图操作功能
Demo06--地图操作功能
地图基本控制方法
【7】UI控制功能
Demo07--UI控制功能
介绍开关手势功能和显示隐藏UI控件
【8】定位图层展示
Demo08--定位图层展示
介绍定位图层的基本用法
【9】覆盖物功能
Demo09--覆盖物功能
介绍添加覆盖物并响应点击功能和弹出pop功能
【10】热力图功能
Demo10--热力图功能
介绍如何以热力图形式显示用户自有数据
【11】地理编码功能
Demo11--地理编码功能
介绍地址信息与坐标之间的相互转换
【12】POI搜索功能
Demo12--POI搜索功能
介绍关键词查询、suggestion查询和查看餐饮类Place详情页功能
【13】路径规划功能
Demo13--路径规划功能
介绍公交、驾车和步行三种线路规划方法和自设路线方法
【14】公交线路查询功能
Demo14--公交线路查询功能
介绍查询公交线路功能
【15】短串分享
Demo15--短串分享功能
介绍关键词查询、suggestion查询和查看餐饮类Place详情页功能
\t\t短串分享是指,用户搜索查询后得到的每一个地理位置结果将会对应一条短串(短链接),用户可以通过短信、邮件或第三方分享组件(如微博、微信等)把短串分享给其他用户从而实现地理位置信息的分享。当其他用户收到分享的短串后,点击短串即可打开手机上的百度地图客户端或者手机浏览器进行查看。\n\n
\t\t例如,用户搜索&百度大厦&后通过短信使用短串分享功能把该地点分享给好友,好友点击短信中的短串&http://j./XLCrk&后可以调起百度地图客户端或者手机浏览器查看&百度大厦&的地理位置信息。\n\n
\t\t目前短串分享功能暂时开放了&POI搜索结果分享&和&反向地理编码结果分享&,日后会开放更多的功能,欢迎广大开发者使用。
【16】离线地图功能
Demo16--离线地图功能
介绍如何下载和使用离线地图
【17】周边雷达功能
Demo17--周边雷达功能
介绍如何使用周边雷达功能上传位置、检索周边的人
【18】自定义绘制功能
Demo18--自定义绘制功能
介绍自定义绘制点、线、多边形、圆等几何图形和文字
【19】全景图 Hello World
Demo19--全景图 Hello World
【20】全景图功能
Demo20--全景图功能
介绍如何通过多种方式获取百度全景
【Demo20-1】通过百度全景ID(PID)获取全景
【Demo20-2】通过百度经纬度坐标获取全景
【Demo20-3】通过百度墨卡托坐标获取全景
【Demo20-4】通过百度地图UID获取外景
【Demo20-5】通过百度地图UID获取内景
【Demo20-6】添加自定义标注到全景图
【Demo20-7】高德, 腾讯, 谷歌坐标转换百度坐标
【Demo20-8】其他全景参数设置
【21】兴趣点收藏功能
Demo21--兴趣点收藏功能
介绍如何创建、管理本地点数据
【22】LBS云检索功能
Demo22--LBS云检索功能
介绍如何使用LBS云检索用户自有数据
云检索使用介绍
\t\tLBS云是百度地图针对LBS开发者推出的平台级服务。结合已有的地图API和SDK服务。通过开放服务端存储和计算能力,提供海量位置数据存储、检索、展示一体化解决方案。\n\n
\t\t该服务对开发者免费开放。测试demo里写入了测试的ak。开发者可以使用测试ak查看 LBS.云检索的效果。如果开发者要使用自己的数据,请在申请ak后替换demo中的ak。\n\n
\t\t如有任何关于LBS云服务的问题,诸如如何申请ak、如何存储和检索数据等,请访问百度地图官方&LBS开放平台&。地址:/ \n
【23】瓦片图功能
Demo23--瓦片图功能
介绍如何在地图上添加自定义的瓦片图
【24】OpenGL绘制功能
Demo24--OpenGL绘制功能
介绍如何使用OpenGL绘制在地图中进行绘制
Demo22--点聚合功能
点聚合功能--MarkerClusterDemo
POI附近搜索功能
POI附近检索功能
【25】调启百度地图
Demo25--调启百度地图
介绍如何调启百度地图实现自身业务功能
9、修改MainActivity.cs文件
&将该文件改为下面的代码:&
using Android.A
using Android.C
using Android.V
using Android.W
using Android.OS;
using Android.G
using Android.Content.PM;
using Com.Baidu.M
using Com.Baidu.Mapapi.M
using BdMapV371Demos.SrcSdkD
namespace BdMapV371Demos
[Activity(Label = &BdMapV371Demos&, MainLauncher = true,
ConfigurationChanges = ConfigChanges.Orientation,
ScreenOrientation = ScreenOrientation.Sensor,
Icon = &@drawable/icon&)]
public class MainActivity : Activity
private SDKReceiver sdkR
//百度地图上河南大学计算机与信息工程学院的经纬度(中心点位置)
public static readonly LatLng HeNanUniversity = new LatLng(34.4.315745);
protected override void OnCreate(Bundle bundle)
& base.OnCreate(bundle);
& SetContentView(Resource.Layout.Main);
& TextView text = FindViewById(Resource.Id.text_Info);
& text.SetTextColor(Color.Red);
& text.Text = &百度地图Android SDK v& + VersionInfo.ApiV
& ListView mListView = FindViewById(Resource.Id.listView);
& // 添加ListItem,设置事件响应
& mListView.Adapter = new DemoListAdapter(this);
& // 注册SDK广播监听者
& IntentFilter intentFilter = new IntentFilter();
& intentFilter.AddAction(SDKInitializer.SdkBroadtcastActionStringPermissionCheckOk);
& intentFilter.AddAction(SDKInitializer.SdkBroadtcastActionStringPermissionCheckError);
& intentFilter.AddAction(SDKInitializer.SdkBroadcastActionStringNetworkError);
& sdkReceiver = new SDKReceiver(this);
& RegisterReceiver(sdkReceiver, intentFilter);
& mListView.ItemClick += (sender, args) =&
& int index = args.P
& Intent intent = new Intent(this, demos[index].demoClass.GetType());
& StartActivity(intent);
private static readonly DemoInfo[] demos =
& //示例1--HelloBaiduMap
& new DemoInfo(Resource.String.demo_title_hello,
& Resource.String.demo_desc_hello,
& new Demo01HelloBaiduMap()),
& //示例2--基本地图功能
& new DemoInfo(Resource.String.demo_title_basemap,
& Resource.String.demo_desc_basemap,
& new Demo02BaseMap()),
& //示例3--MapFragment使用
& new DemoInfo(Resource.String.demo_title_map_fragment,
& Resource.String.demo_desc_map_fragment,
& new Demo03MapFragment()),
& //示例4--图层展示
& new DemoInfo(Resource.String.demo_title_layers,
& Resource.String.demo_desc_layers,
& new Demo04Layers()),
& //示例5--多地图展示
& new DemoInfo(Resource.String.demo_title_multimap,
& Resource.String.demo_desc_multimap,
& new Demo05MutiMapView()),
& //示例6--地图操作功能
& new DemoInfo(Resource.String.demo_title_control,
& Resource.String.demo_desc_control,
& new Demo06MapControl()),
& //示例7--UI控制功能
& new DemoInfo(Resource.String.demo_title_ui,
& Resource.String.demo_desc_ui,
& new Demo07UISetting()),
& //示例8--定位图层展示
& new DemoInfo(Resource.String.demo_title_location,
& Resource.String.demo_desc_location,
& new Demo08Location()),
& //示例9--覆盖物功能
& new DemoInfo(Resource.String.demo_title_overlay,
& Resource.String.demo_desc_overlay,
& new Demo09Overlay()),
& //示例10--热力图功能
& new DemoInfo(Resource.String.demo_title_heatmap,
& Resource.String.demo_desc_heatmap,
& new Demo10HeatMap()),
& //示例11--地理编码功能
& new DemoInfo(Resource.String.demo_title_geocode,
& Resource.String.demo_desc_geocode,
& new Demo11GeoCoder()),
& //示例12--POI搜索功能
& new DemoInfo(Resource.String.demo_title_poi,
& Resource.String.demo_desc_poi,
& new Demo12PoiSearch()),
& //示例13--路径规划功能
& new DemoInfo(Resource.String.demo_title_route,
& Resource.String.demo_desc_route,
& new Demo13RoutePlan()),
& //示例14--公交线路查询功能
& new DemoInfo(Resource.String.demo_title_bus,
& Resource.String.demo_desc_bus,
& new Demo14BusLineSearch()),
& //示例15--短串分享功能
& new DemoInfo(Resource.String.demo_title_share,
& Resource.String.demo_desc_share,
& new Demo15Share()),
& //示例16--离线地图功能
& new DemoInfo(Resource.String.demo_title_offline,
& Resource.String.demo_desc_offline,
& new Demo16Offline()),
& //示例17--周边雷达功能
& new DemoInfo(Resource.String.demo_title_radar,
& Resource.String.demo_desc_radar,
& new Demo17Radar()),
& //示例18--自定义绘制功能
& new DemoInfo(Resource.String.demo_title_geometry,
& Resource.String.demo_desc_geometry,
& new Demo18Geometry()),
& //示例19--全景图 Hello World
& new DemoInfo(Resource.String.demo_title_panorama_hello,
& Resource.String.demo_desc_panorama,
& new Demo19PanoHelloWorld()),
& //示例20--全景图功能
& new DemoInfo(Resource.String.demo_title_panorama,
& Resource.String.demo_desc_panorama,
& new Demo20PanoActivity()),
& //示例21--兴趣点收藏功能
& new DemoInfo(Resource.String.demo_title_favorite,
& Resource.String.demo_desc_favorite,
& new Demo21Favorite()),
& //示例22--LBS云检索功能
& new DemoInfo(Resource.String.demo_title_cloud,
& Resource.String.demo_desc_cloud,
& new Demo22CloudSearch()),
& //示例23--瓦片图功能
& new DemoInfo(Resource.String.demo_title_tileoverlay,
& Resource.String.demo_desc_tileoverlay,
& new Demo23TileOverlay()),
& //示例24--OpenGL绘制功能
& new DemoInfo(Resource.String.demo_title_opengl, Resource.String.demo_desc_opengl,
& new Demo24OpenGL()),
& //示例25--调启百度地图
& new DemoInfo(Resource.String.demo_title_open_baidumap, Resource.String.demo_desc_open_baidumap,
& new Demo25OpenBaiduMap()),
protected override void OnResume()
& base.OnResume();
protected override void OnDestroy()
& // 取消监听 SDK 广播
& UnregisterReceiver(sdkReceiver);
& base.OnDestroy();
private class DemoListAdapter : BaseAdapter
& MainActivity bMapApiDemoM
& public DemoListAdapter(MainActivity bMapApiDemoMain)
& : base()
& this.bMapApiDemoMain = bMapApiDemoM
& public override View GetView(int index, View convertView, ViewGroup parent)
& convertView = View.Inflate(bMapApiDemoMain, Resource.Layout.demo_info_item, null);
& TextView title = convertView.FindViewById(Resource.Id.title);
& TextView desc = convertView.FindViewById(Resource.Id.desc);
& title.SetText(demos[index].title);
& desc.SetText(demos[index].desc);
& //if (index &= 16)
& // title.SetTextColor(Color.Red);
& return convertV
& public override int Count
& get { return demos.L }
& public override .Lang.Object GetItem(int index)
& return demos[index];
& public override long GetItemId(int id)
private class DemoInfo : .Lang.Object where T : Activity
& public readonly T demoC
& public DemoInfo(int title, int desc, T demoClass)
& this.title =
& this.desc =
& this.demoClass = demoC
按调试运行,在主界面中单击【Hello BaiduMap】,观察效果。
&注意:本章后面介绍的所有例子都是在这一节例子的基础上继续修改完成的。这样做的目的是为了在同一个项目中演示多个示例,而不是一个项目仅包含一个示例,这样可避免必须申请多个密钥的麻烦。
&要确保该例子在你的模拟器上运行没问题,才能继续学习后续的demo。
相关文章列表:

我要回帖

更多关于 百度地图ak申请 的文章

 

随机推荐