什么是百度地图android sdk

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是百度地图android sdk相关的知识,希望对你有一定的参考价值。

百度地图 Android SDK是一套基于Android 2.1及以上版本设备的应用程序接口, 您可以通过该接口实现丰富的LBS功能:使用该套 SDK开发适用于Android系统移动设备的地图应用,通过调用地图SDK接口,可以轻松访问百度地图服务和数据,构建功能丰富、交互性强的地图类应用程序。功能如下:
①地图:提供地图(2D、3D)的展示和缩放、平移、旋转、改变视角等地图操作;
②POI检索:可根据关键字,对POI数据进行周边、区域和城市内三种检索;
③地理编码:提供地理坐标和地址之间相互转换的能力;
④线路规划:支持公交信息查询、公交换乘查询、驾车线路规划和步行路径检索;
⑤覆盖物:提供多种地图覆盖物(自定义标注、几何图形、文字绘制、地形图图层等),满足开发者的各种需求;
⑥定位:采用多种定位模式,使用定位SDK获取位置信息,使用地图SDK我的位置图层进行位置展示;
⑦离线地图:支持使用离线地图,节省用户流量,同时为用户带来更好的地图体验;
⑧导航:支持调启百度地图导航和Web导航来满足用户对导航功能的需求;
⑨LBS云检索:支持用户检索存储在LBS云内的自有POI数据,并展示;
⑩特色功能:提供短串分享、Place详情页展示等特色功能,帮助开发者搭建功能更加强大的应用;
参考技术A 百度地图 Android SDK是一套基于Android 2.1(v1.3.5及以前版本支持android 1.5以上系统)及以上版本设备的应用程序接口,您可以通过该接口实现丰富的LBS功能:
☆ 地图展示:包括2D图、卫星图、3D图地图展示;
☆ 地图操作:提供平移、缩放、双指手势操作、底图旋转等地图相关操作;
☆ 地图搜索:提供根据关键字进行范围检索、城市检索和周边检索。且支持LBS云检索用户自有数据;
☆ 详情查询:提供餐饮类的POI的详细信息查看(Place详情);
☆ 线路规划:提供公交、驾车和步行三种类型,多种方案(最快捷、少换乘、少步行)的线路规划;
☆ 地理编码:提供地址信息与坐标之间的相互转换;
☆ 位置标注:提供一个或多个POI位置标注,且支持用户自定义图标;
☆ 实时路况:提供城市实时交通路况信息图;
☆ 离线地图:提供离线地图功能,可节省用户流量;
☆ 定位:采用GPS、WIFI、基站、IP混合定位模式,请使用Android定位SDK获取定位信息,使用地图SDK定位图层进行位置展示。本回答被提问者采纳

xamarin.android 绑定百度地图SDK遇到的问题

在 xamarin.android 绑定项目中,绑定 百度地图的LBS地图SDK,参考 https://developer.xamarin.com/guides/android/advanced_topics/binding-a-java-library/binding-a-jar/ 设置好后,编译,  然后提示错误,其中一个错误 是 

技术分享

 

意思就是说转换 出来的CS 代码中,有重复的 类型。 理论上来说,转换的 CS 代码 是不应该出现重复代码的,有重复,意味这 jar有重复代码。  

然后查看 百度地图的SDK说明 ,

 技术分享

 

发现 对应的这里有 “不同参数的重载方法” ,所以,猜测 在转换过程中,是无法识别这种具备相同方法名的,导致一对一转出来后,在 CS 中有重复类型代码。  

不过,xamarin 提供了 Metadata.xml 文件用于重写指定的方法名名称。 

查找 百度的SDK (或者反便宜jar文件),上面这2个方法是位于 OnMapStatusChangeListener  接口下。

反编译截图:

技术分享

 

定位到这个错误代码文件,然后 查找名称的 代码,有个接口 IOnMapStatusChangeListener ,下面 有 对应的上面 接口 

技术分享

 

其实转换出来的代码,在接口这里,是没有错的,  但是 IOnMapStatusChangeListener  接口实现的代码中,  每个接口 都有一个 对于的 EventHandler ,导致出现2个 OnMapStatusChangeStartHandler   才会在编译的时候 发生错误! 

既然问题找到了,那么解决方法 是? 

目前找到一个方法 ,就是把 名称修改一下,   

在 Metadata.xml 文件 中, path 是指 要修改的名称 的路径,  在转换出来的的 cs 文件中, 每个名称对应的路径都标注在 上面的注释中,实在是很方便,不用自己去找!

在这里,我要修改 第二个 OnMapStatusChangeStart ,即有2个参数的,修改名称为 OnMapStatusChangeStart2

  <attr path="/api/package[@name=‘com.baidu.mapapi.map‘]/interface[@name=‘BaiduMap.OnMapStatusChangeListener‘]/method[@name=‘onMapStatusChangeStart‘ and count(parameter)=2 and parameter[1][@type=‘com.baidu.mapapi.map.MapStatus‘] and parameter[2][@type=‘int‘]]" name="managedName">OnMapStatusChangeStart2</attr>

再次执行编译,就会编译通过了。

 

链接: https://blog.wuliping.cn/post/note-xamarin-android-binding-baidu-lbs-sdk

以上是关于什么是百度地图android sdk的主要内容,如果未能解决你的问题,请参考以下文章

Android 百度地图 SDK v3.0.0

android studio下百度地图sdk的初体验

Android 百度地图 SDK v3.0.0

Android 百度地图 SDK v3.0.0

xamarin.android 绑定百度地图SDK遇到的问题

百度地图sdk使用