文章      动态     相关文章     最新文章     手机版动态     相关动态     |   首页|会员中心|保存桌面|手机浏览

9uyw1

http://g8akg8.riyuangf.com/com9uyw1/

相关列表
文章列表
  • 暂无文章
推荐文章
联系方式
  • 联系人:王先生
Android端百度地图API使用详解
发布时间:2024-11-18        浏览次数:0        返回列表

百度地图API简介

Android端百度地图API使用详解

百度地图移动版API(Android)是一套基于Android设备的应用程序接口,通过该接口,可以轻松的访问百度服务和数据,构建功能丰富、交互性强的地图应用程序。 百度地图移动版API不仅包含构建地图的基本接口,还提供了本地搜索、路线规划、地图定位等数据服务

  • 百度地图开发指南http://developer.baidu.com/map/index.php?title=androidsdk/guide/introduction

演示示例

一、准备工作

  • 1.注册百度开发者账号,创建应用,获取API key
    • 地址:http://lbsyun.baidu.com/apiconsole/key
  • 2.创建应用需要应用的数字签名SHA1和包名
    • 在Preference中可以看到Android项目Eclipse默认的数字签名SHA1

    • 切换到模拟器安装目录下输入命令默认密码是也能获取数字签名的SHA1

    • 获取创建的API key
  • 3.添加地图引擎(类库和.so文件)到工程中
  • 4.添加权限
  • 5.在清单文件Application节点下添加

二、MapView和BaiduMap介绍

三、地图图层

什么是地图图层

  • 地图可以包含一个或多个图层,每个图层在每个级别都是由若干个图块组成的,他们覆盖了地图的整个表面。例如您所看到的包括街道、兴趣点(POI)、学校、公园等内容的地图展现就是一个图层,另外交通留香的展现也是通过图层来实现的。

    图层分类

  • 底图
    • 基本的地图图层,包括软杆个缩放级别,显示基本的地图信息,包括道路、街道、学校、公园等内容
  • 实时交通信息图
  • 卫星图
    • 卫星地图是卫星拍摄的真实的地理面貌(其实很多都是飞机航拍的,因为卫星拍照贵啊),所以卫星地图可用来检测地面的信息

      覆盖物的成绩压盖关系,具体如下(从下至上的顺序: 1.基础底图(包括底图、底图道路、卫星图等; 2.地形图图层(GroundOverlay; 3.热力图图层(HeatMap; 4.实时路况图图层(BaiduMap.setTrafficEnabled(true);; 5.百度城市热力图(BaiduMap.setBaiduHeatMapEnabled(true);; 6.底图标注(指的是底图上面自带的那些POI元素; 7.几何图形图层(点、折线、弧线、圆、多边形; 8.标注图层(Marker,文字绘制图层(Text; 9.指南针图层(当地图发生旋转和视角变化时,默认出现在左上角的指南针; 10.定位图层(BaiduMap.setMyLocationEnabled(true);; 11.弹出窗图层(InfoWindow; 12.自定义View(MapView.addView(View);

  • 切换地图,交通图,卫星图,是否显示实时交通

四、覆盖物

所有叠加或覆盖到地图的内容,我们琮琤为地图覆盖物。如标注、矢量图性元素(包括:折现和多边形和圆,定位图标等。覆盖物拥有自己的地理坐标,当您拖动或缩放地图时,他们会向应的处理

覆盖物包括:本地覆盖物和搜索覆盖物

#### 本地覆盖物的抽象基类:OverlayOptions(核心类

  • 圆形覆盖物: CircleOptions
  • 文字覆盖物: TextOptions
  • marker覆盖物: MarkerOptions
  • 圆点覆盖物:DotOptions
  • ground 覆盖物:GroundOverlayOptions
  • 圆点覆盖物:DotOptions
  • 多边形覆盖物:PolygonOptions
  • 折线覆盖物:PolylineOptions
  • 弧线覆盖物:ArcOptions

    搜索覆盖物抽象类: OverlayManager (核心类

  • 本地搜索覆盖物:PoiOverlay
  • 驾车路线覆盖物:DrivingRouteOverlay
  • 步行路线覆盖物:WalkingRouteOverlay
  • 换乘路线覆盖物:TransitOverlay
  • 公交路线覆盖物:BusLineOverlay

    创建覆盖物的步骤

  1. 创建自己
  2. 给自己设置数据
  3. 把覆盖物添加到地图中
  • 添加圆形覆盖物
  • 效果

  • 添加文字覆盖物

  • 效果

  • Marker覆盖物

  • 效果

五、搜索

百度地图移动版API集成搜索服务,包括位置检索、周边检索、范围检索、公交检索、驾乘检索、步行检索

核心类

实现思路

  • 初始化PoiSearch类,通过setOnGetPoiSearchResultListtener方法注册搜索结果的监听对象onGetPoiSearchResultListener ,实现异步搜索服务。
  • 通过自定义MySearchListener实现类,处理不同的回调方法,获得搜索结果。
  • 注意,OnGetPoiSearchResultListener只支持一个,一最后一次设置为准

    结合覆盖物展示搜索

    本地搜索覆盖物:PoiOverlay 驾车路线覆盖物:DrivingRouteOverlay 步行路线覆盖物:WalkingRouteOverlay 换乘路线覆盖物:TransitOverlay

    POI(Point of Interest兴趣点)搜索有三种方式

    根据范围和检索词发起范围检索searchInBound 周边检索searchNearby 城市poi检索searchInCity poi详细信息检索 searchPoiDetail 结果的展示: PoiOverlay

    在OnGetPoiSearchResultListener的onGetPoiResult方法中处理搜索结果

  • 处理步骤
    • 判断服务器结果返回
    • 创建poi覆盖物
    • 将服务器返回数据添加到poi覆盖物中
    • 添加覆盖物到地图addToMap
    • 缩放地图,使所有Overlay都在合适的视野内
  • 注意
    • POI检索结果每页容量默认情况下为10,可以通过pageCapacity设置,支持1-50(10)
    • 翻页功能重新调用通过PoiSearch类的searchInXxx)方法并传递页数角标pageNum来实现,该方法是异步函数,搜索成功后会调用注册的事件处理函数onGetPoiResult 返回查询页的结果
  • 在一定范围内搜索POI

  • 搜索结果

  • 周边搜索

  • 搜索结果

  • 城市内搜索

  • 搜索结果

六、路线规划

自驾路线规划

结果展示: DrivingRouteOverlay

  • 驾车路线查询
    • 查询:RoutePlanSearch.drivingSearch驾乘路线搜索,或者增加途经点.
    • PlanNode内容的设置:可以使用经纬度和地名,但不支持模糊查询,需要输入准确的名称
    • 可以通过DrivingRoutePlanOption.policy (int policy)来设置驾车路线规划策略
    • 结果处理:OnGetRoutePlanResultListener. onGetDrivingRouteResult(DrivingRouteResult result)

步行路线规划

步行路线查询 结果展示: WalkingRouteOverlay RoutePlanSearch. walkingSearch步行路线搜索. 结果处理: OnGetRoutePlanResultListener. onGetWalkingRouteResult(WalkingRouteResult result)

公交换乘路线规划

结果展示:TransitRouteOverlay 检索: RoutePlanSearch. transitSearch 通过TransitRoutePlanOption.policy (int policy) 设置路线规划策略 结果处理: OnGetRoutePlanResultListener. onGetTransitRouteResult(TransitRouteResult result)

  • 自驾线路规划(路过特定地点
  • 搜索结果

  • 步行线路规划

  • 搜索结果

  • 公交换乘规划

  • 规划结果

七、地址解析服务

GeoCoder.geocode(GeoCodeOption option) 根据地址名获取地址信息 异步函数,返回结果在OnGetGeoCoderResultListener里的onGetGeoCodeResult方法通知 GeoCoder.reverseGeoCode(ReverseGeoCodeOption option) 根据地理坐标点获取地址信息 异步函数,返回结果在OnGetGeoCoderResultListener里的onGetReverseGeoCodeResult方法通知

八、联想词检索

SuggestionSearch . requestSuggestion(SuggestionSearchOption option) 查询一系列与指定key相关的内容,结果中包括城市及包含key的名称 结果处理onGetSuggestionResultListener . onGetSuggestionResult(SuggestionResult result)

九、定位

在百度地图移动版API中,提供一个重要的特色功能:定位,通过这个功能,能获取到用户当前所在位置。 在程序中,如果使用此功能,必须注册GPS和网络的使用权限。 在获取用户位置时,优先使用GPS进行定位;如果GPS定位没有打开或者没有可用位置信息,则会通过判断网络是否连接(即确认手机是否能上网,不论是连接2G/3G或Wi-Fi网络,如果是,则通过请求百度网络定位服务,返回网络定位结果。为了使获得的网络定位结果更加精确,请打开手机的Wi-Fi开关。 目前系统自带的网络定位服务精度低,且服务不稳定、精度低,并且从未来的趋势看,基站定位是不可控的(移动公司随时可能更改基站编号以垄断定位服务,而Wi-Fi定位则不然,它是一种精度更高、不受管制的定位方法。国内其它使用Wi-Fi定位的地图软件,Wi-Fi定位基本不可用,百度的定位服务量化指标优秀,网络接口返回速度快(服务端每次定位响应时间50毫秒以内,平均精度70米,其中Wi-Fi精度40米左右,基站定位精度200米左右,覆盖率98%,在国内处于一枝独秀的地位。 注意 关于经纬度的说明:该经纬度信息是经过加密处理,所以在其它地图工具中测得的经纬度 信息不适合百度的坐标系统。 使用百度经纬度坐标,可以通过http://api.map.baidu.com/lbsapi/getpoint/index.html查询地理坐标如果需要在百度地图上显示使用其他坐标系统的位置,请发邮件至mapapi@baidu.com申请坐标转换接口http://developer.baidu.com/map/index.php?title=android-locsdk/guide/v5-0

十、离线地图