百度地图的集成过程
来源:互联网 发布:真盖塔 知乎 编辑:程序博客网 时间:2024/06/05 19:25
1.背景
在项目中我们需要集成百度地图的时候,虽然不难,但一路走下来也未必一帆风顺,在这里我只记录集成的细节问题,详细请看官方文档,例子就举个道路查询的例子,更多例子,请查看百度地图官方demo或者本人的简单小demo.
2.开发准备
2.1在百度开发者平台上创建应用,获取appKey。这里需要一个SHA1值(开发版和发布版),
具体获取请参考:http://blog.csdn.net/donkor_/article/details/53487133。
2.2 下载百度api,注意最好不要下载最新版本,在这里我下载的是v3.5的稳定版,将jar拷贝到libs目录下,在main目录下创建jniLibs文件夹,将so文件对应copy,如图:
3.开发之路
demo地址:
3.1 添加需要的权限,并在在AndroidManifest的application节点下添加如下:
<meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="appKey的位置" />
3.2 将校验appKey的代码,至少放在地图页面的呃前一个页面,注意:context须是getApplicationContext()
SDKInitializer.initialize(getApplicationContext());
3.3 百度地图的地图控件是MapView,只要运用这个控件,就可以展示地图了
<com.baidu.mapapi.map.MapView android:id="@+id/mapview" android:layout_width="match_parent" android:layout_height="match_parent" />
3.4 接下来简单说下驾车路线查询,其他的类似
3.4.1 通过mMapView拿到mBaiduMap,mBaiduMap是地图的操作类,是关键api,
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); SDKInitializer.initialize(getApplicationContext()); setContentView(R.layout.driving); ButterKnife.bind(this); mBaiduMap= mMapView.getMap(); mBaiduMap.setMapStatus(MapStatusUpdateFactory.newLatLng(new LatLng(39.106391, 116.3743))); }
3.4.2 通过routePlanSearch进行驾车搜索,利用drivingRoutePlanOption设置起始点及途经点,搜索结果在routePlanSearch.setOnGetRoutePlanResultListener()监听中获取并展示
RoutePlanSearch routePlanSearch = RoutePlanSearch.newInstance(); //设置搜索结果的监听 routePlanSearch.setOnGetRoutePlanResultListener(new OnDrivingListener()); // 驾车搜索 DrivingRoutePlanOption option = new DrivingRoutePlanOption(); option.policy(DrivingRoutePlanOption.DrivingPolicy.ECAR_FEE_FIRST); //设置起点 PlanNode _from= PlanNode.withLocation(latLng); option.from(_from); //设置终点 PlanNode _to = PlanNode.withCityNameAndPlaceName("北京","故宫"); option.to(_to); //设置途经点 List<PlanNode> list = new ArrayList<>(); list.add(PlanNode.withLocation(new LatLng(39.917661,116.215064))); option.passBy(list); routePlanSearch.drivingSearch(option);
3.4.3 在搜索结果的回调中处理
class OnDrivingListener implements OnGetRoutePlanResultListener { @Override public void onGetWalkingRouteResult(WalkingRouteResult walkingRouteResult) { } @Override public void onGetTransitRouteResult(TransitRouteResult transitRouteResult) { } @Override public void onGetDrivingRouteResult(DrivingRouteResult drivingRouteResult) { if(drivingRouteResult==null||drivingRouteResult.error.equals(SearchResult.ERRORNO.RESULT_NOT_FOUND)){ Toast.makeText(DrivingSearchDemo.this, "没有数据", Toast.LENGTH_SHORT).show(); return; } DrivingRouteOverlay drivingRouteOverlay = new DrivingRouteOverlay(baiduMap); // 给覆盖物传递事件 baiduMap.setOnMarkerClickListener(drivingRouteOverlay); drivingRouteOverlay.setData(drivingRouteResult.getRouteLines().get(0)); drivingRouteOverlay.addToMap(); drivingRouteOverlay.zoomToSpan(); } }
- 百度地图的集成过程
- 集成百度离线地图过程
- 百度地图的集成
- 百度地图的集成
- 百度地图的集成
- Androi百度地图的集成
- AndroidStudio百度地图定位功能的集成
- 集成百度地图遇到的问题汇总
- 百度地图Sdk集成的使用
- 百度地图的集成和简单使用
- 百度地图的集成——基础
- 集成百度地图的常见错误
- iOS毕业设计—百度地图的集成
- 百度地图集成的那些坑
- 百度地图的集成及使用
- 百度地图集成
- 集成百度地图
- iOS- 集成百度地图
- ios 收集crash xcode 调试 捕捉signal信号
- Android 当前日期,计算时间推后几天和提前几天的封装方法
- 线性表的链式描述
- Python:MECARD字符串转json
- 微信分享
- 百度地图的集成过程
- iOS
- 统计胜负
- android Studio 加快编译速度(2017-06-21版)
- 传统的操作数据库的主要步骤
- kali2.0 metasploit安装xssf模块
- SFML 与 VS2015 的安装配置
- DBN
- Android Studio JNI 初体验