百度地图4.1_1开发教程(1)

	官方文档:
http://wiki.lbsyun.baidu.com/cms/androidsdk/doc/v4_0_0/index.html

由于公司需要地图业务,因此学习了一些百度地图SDK,个人感觉上手容易但是完善的学习,还是比较困难的:
1:API不断更改,但有些官方文档并不会改,有时候出现问题摸不着头难
2:官方论坛活跃人太少,即使提出问题,不见得会有人回答,而且百度的工程师,也不会很快回答你的问题,甚至干脆不回答问题。(目前情况是这样的,不是我在这里乱讲)
3:QQ群有很多,但回答问题的寥寥无几,为此,我在学习的时候一次加了8个群,只有2个通过了验证。就算加入了群,也不见得有人会回答你的问题。
4.我确实在各大网站,群,论坛学习到了一些东西,帮助到了我。
5.鉴于此,我决定将我学习的这段历程分享给手足无措的新手。我希望用此方法回馈给大家。原谅我这里只介绍项目中用到的API,因为并没有太多精力去系统的学习全部,所以见谅。

此篇博客我将分多篇来讲述,我将会一边敲,一边讲解方法。确保手把手,某一环节不会出问题。

首先,你必须先阅读一下官网的基本介绍,在这里我就不介绍了。

http://lbsyun.baidu.com/index.php?title=androidsdk/guide/buildproject
这里介绍了开发指南,当然都是比较基本的东西。看完这里,你应该已经学会在AndroidStudio上配置环境了,(导入架包等)这里我们跳过去讲。

在Application节点下添加:
		<!-- 百度地图key -->
        <meta-data
            android:name="com.baidu.lbsapi.API_KEY"
            android:value="这里将会替换key"/>

        <!-- 百度定位权限 -->
        <service
            android:name="com.baidu.location.f"
            android:enabled="true"
            android:process=":remote"/>
在Minifest清单添加必要的权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<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.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
接下来,添加百度地图的View到布局
<com.baidu.mapapi.map.MapView  
    android:id="@+id/activity_main_mv_map"  
    android:layout_width="match_parent"  
    android:layout_height="match_parent"  
    android:clickable="true" />
到此,还需要去官网申请key,个人把key理解为,百度地图是一款免费地图,而使用百度地图要使用一个唯一的key来标识某一软件,可能会用于百度分析流量,完善功能等用途。
你需要申请一个百度开发者账号http://lbsyun.baidu.com/apiconsole/key
申请key的官方教程http://lbsyun.baidu.com/index.php?title=androidsdk/guide/key

当然,在这里可能遇到的问题,我之前已经总结了,由于写博客不太多,因此格式可能不太好看,取其精华即可。

APPScode码校验失败>>>>

http://blog.csdn.net/u012552275/article/details/52459408

'keytool' 不是内部或外部命令,也不是可运行的程序

http://blog.csdn.net/u012552275/article/details/52457276

以上两个链接是我在刚接触百度地图的时候遇到的坑,都总结了一下,希望对大家有帮助。

申请好key以后,粘贴到
`		<!-- 百度地图key -->
    <meta-data
        android:name="com.baidu.lbsapi.API_KEY"
        android:value="这里将会替换key"/>`

接下来,打开对应的MainActivity
public class MainActivity extends AppCompatActivity {  
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);   
        //在使用SDK各组件之前初始化context信息,传入ApplicationContext  
        //注意该方法要再setContentView方法之前实现  
        SDKInitializer.initialize(getApplicationContext());  
        setContentView(R.layout.activity_main);  
    }  
}
如果你的项目需要用到地图,我建议你将初始化放在Application中。
如果你是个新手,你需要考虑到Activity生命周期的维护,百度提供这样的接口,因此,我们根据官方文档,加入一下代码:
public class MainActivity extends Activity {  
    MapView mv_map = null;  
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);   
       
        SDKInitializer.initialize(getApplicationContext());  
        setContentView(R.layout.activity_main);  
        //获取地图控件引用  
        mv_map = (MapView) findViewById(R.id.activity_main_mv_map);  
    }  
    @Override  
    protected void onDestroy() {  
        super.onDestroy();  
        //在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理  
        mv_map.onDestroy();  
    }  
    @Override  
    protected void onResume() {  
        super.onResume();  
        //在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理  
        mv_map.onResume();  
        }  
    @Override  
    protected void onPause() {  
        super.onPause();  
        //在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理  
        mv_map.onPause();  
        }  
    }
至此,一个简单的只有展示功能的地图就这样成功的展示出来了。

这里写图片描述

在下一篇文章,我将介绍一些简单的功能、实现普通图、卫星图、交通图,热力图以及一些设置地图的样式的属性。

百度地图iOS SDK v2.10.0 Sample共有23个Demo,每个Demo的说明如下: ------------------------------------------------------------------------------------- 一、 Demo名称:基本地图功能 文件名: MapViewBaseDemoViewController.mm 简介:创建一张百度地图并管理地图的生命周期 详述: (1)创建一张最简单的百度地图; (2)管理地图的生命周期,具体请参看代码部分的相关注释; ------------------------------------------------------------------------------------- 二、 Demo名称:多地图展示功能 文件名: MultiMapViewDemo.mm 简介:在一个页面中创建多个地图 详述: (1)在一个页面内创建多个相互独立的地图 (2)地图Logo位置变更,支持6个位置 ------------------------------------------------------------------------------------- 三、 Demo名称:图层展示功能 文件名: MapViewDemoViewController.mm 简介:展示普通图、卫星图、路况图和路况卫星图 详述: (1)详情请参考代码部分或官网开发指南相关章节; ------------------------------------------------------------------------------------- 四、 Demo名称:地图操作功能 文件名: MapViewControlDemoViewController.mm 简介:介绍平移和缩放地图,双指操作地图,监听地图点击事件 详述: (1)介绍地图缩放级别、旋转度和俯视度的get和set方法; (2)监听单击、双击和长按地图事件; (3)单击、双击或长按地图获取该点的经纬度坐标; (4)对地图显示内容进行截图; ------------------------------------------------------------------------------------- 五、 Demo名称:UI控制功能 文件名: MapViewUISettingDemoViewController.mm 简介:介绍开关手势功能和显示隐藏UI控件 详述: (1)地图操作开关:平移、缩放; (2)控件显示开关:显示/隐藏比例尺控件; (3)指南针位置控制:显示在地图左上角或者右上角(仅举例),开发者可据实际情况任意改变位置; (4)禁用所有手势:控制是否一并禁止所有手势。 (5)设置边界区域:给地图增加边界。地图可操作区域和控件显示,都被限制在地图设定的边界内; (6)您还可以参照开发文档控制比例尺的显示位置; ------------------------------------------------------------------------------------- 六、 Demo名称:定位功能 文件名: LocationDemoViewController.mm 简介:介绍定位图层的基本用法 详述: (1)介绍如何开始定位和停止定位; (2)默认定位的状态显示为普通态,v2.0.2版本开始提供定位的跟随态和罗盘态; (3)开发者可以自己修改icon_center_point.png和icon_center_point@2x.png资源修改默认的定位图标; (4)支持开发者自行定义精度圈边框和填充区域的颜色。 ------------------------------------------------------------------------------------- 七、 Demo名称:覆盖物功能 文件名: AnnotationDemoViewController.mm 简介:介绍使用SDK内置方法绘制点线面等几何图形和如何添加标注 详述: (1)内置覆盖物标签: a、使用内置方法绘制几何图形; b、通过BMKMapView的addOverlay接口添加一个覆盖物; c、开发者可以实现BMKMapViewDelegate中mapView:viewForOverlay;接口,提供要添加到地图中的 标注的BMKOverlayView,开发者可以扩展此类丰富更多的功 (2)添加标注标签: a、给标注添加落下的动画效果,点击标注可弹出对话框,还可以拖拽标注; b、通过BMKMapView的addAn
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值