百度地图内容简介•百度地图API•百度地图入门–显示地图–图层–缩放级别•百度地图加强–兴趣点–覆盖物–检索等什么是百度地图API百度地图API是为开发者免费提供的一套基于百度地图服务的应用接口,包括JavaScriptAPI、Web服务API、AndroidSDK、iOSSDK、定位SDK、车联网API、LBS云等多种开发工具与服务,提供基本地图展现、搜索、定位、逆/地理编码、路线规划、LBS云存储与检索等功能,适用于PC端、移动端、服务器等多种设备,多种操作系统下的地图应用开发。百度地图入门•三大核心SDKInitializerMapViewBaiduMap百度地图入门•准备工作获取APIKey建立工程添加地图引擎到Andoid工程中添加权限引入布局(地图控件)初始化地图引擎百度地图入门•获取APIKey–地址:•添加引擎到Andoid工程中–添加jar包:baidumapapi_v3_3_0.jar和locSDK_5.0.jar–添加.so文件:拷贝libBaiduMapSDK_v3_3_0_15.so、liblocSDK5.so到libs\armeabi目录下–注:locSDK_5.0.jar和liblocSDK5.so为百度定位SDK所使用资源,开发者可根据实际需求自行添加。添加权限(PPT6)“HelloWorld”•增加权限重点是处理位置信息权限•Layout中添加MapView控件用于展示地图•创建管理工具,并初使化•SDKInitializer在initialize时校验key(permissioncheckerror)和网络状态(networkerror),关于状态码信息我们可以在SDKInitializer查询•注意:•控制MapView的;•SDKInitializer对象创建一个就可onResume、onPause、onDestroy以;•必须校验key,并且key值不能为空;•Initialize方法接受的参数必须是globalApplication,不能传递Activity。“HelloWorld”•控制管理–通过MapView设置缩放控件showZoomControls(false),默认显示•缩放级别:V2.0之前支持(3-18),V2.0之后多一级(3-19)•默认的缩放级别12(5公里)MapStatusUpdatemapStatus=MapStatusUpdateFactory.zoomTo(15);//修改缩放级别为15baiduMap.setMapStatus(mapStatus);–设置地图的中心位置BaiduMapbaiduMap=mapView.getMap();doublelatitude=40.050966;//纬度doublelongitude=116.303128;//经度LatLnghmPos=newLatLng(latitude,longitude);//黑马MapStatusUpdatecenterMapStatus=MapStatusUpdateFactory.newLatLng(latlng);//设置中心点baiduMap.setMapStatus(centerMapStatus);“HelloWorld”•BaiduMap:控制地图移动、缩放、旋转–动画形式移动:animateMapStatus(MapStatusUpdate)–缩放:MapStatusUpdateFactory:zoomOut()—缩小;zoomIn()—放大;zoomTo(float)—指定缩放级别;zoomBy(float)—按增量缩放级别;–旋转:MapStatus•水平方向:rotate(float),旋转角范围:0~360,单位:度默认值为0度,逆时针旋转为角度增大方向,通过BaiduMap的getMapStatus().rotate获取当前角度•俯视:overlook(float),俯角范围:-45~0,单位:度–指南针设置Point(x,y)),坐标系原点为MapView左上顶:UiSettings().setCompassPosition(new点,指南针在3D模式下自动显现,隐藏指南针UiSettings().setCompassEnabled(false)百度地图加强•地图图层•覆盖物•搜索•离线地图地图图层•什么是地图图层–地图可以包含一个或多个图层,每个图层在每个级别都是由若干个图块组成的,它们覆盖了地图的整个表面。例如您所看到包括街道、兴趣点、学校、公园等内容的地图展现就是一个图层,另外交通流量的展现也是通过图层来实现的。•图层分类–底图•基本的地图图层,包括若干个缩放级别,显示基本的地图信息,包括道路、街道、学校、公园等内容。–实时交通信息图:baiduMap.setTrafficEnabled(true)–卫星图:baiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE)•卫星地图是卫星拍摄的真实的地理面貌,所以卫星地图可用来检测地面的信息,你可以了解到地理位置,地形等。覆盖物•所有叠加或覆盖到地图的内容,我们统称为地图覆盖物。如标注、矢量图形元素(包括:折线和多边形和圆)、定位图标等。覆盖物拥有自己的地理坐标,当您拖动或缩放地图时,它们会相应的处理。•覆盖物包括:本地覆盖物和搜索覆盖物–本地覆盖物的抽象基类:OverlayOptions(核心类)–圆形覆盖物:CircleOptions–文字覆盖物:TextOptions–marker覆盖物:MarkerOptions–圆点覆盖物:DotOptions–ground覆盖物:GroundOverlayOptions–多边形覆盖物:PolygonOptions–折线覆盖物:PolylineOptions–弧线覆盖物:ArcOptions覆盖物–搜索覆盖物抽象类:OverlayManager(核心类)–本地搜索覆盖物:PoiOverlay–驾车路线覆盖物:DrivingRouteOverlay–步行路线覆盖物:WalkingRouteOverlay–换乘路线覆盖物:TransitOverlay–公交路线覆盖物:BusLineOverlayCircleOptions•绘制步骤–创建圆形:CircleOptions()。–设置圆心坐标:center(LatLngcenter)–设置圆填充颜色:fillColor(intcolor),16进制如:#00ff0000透明、红、绿、蓝–设置圆半径:radius(intradius)–设置圆边框信息:stroke(Strokestroke)–设置圆是否可见:visible(booleanvisible)–设置圆zIndex(显示优先级)信息:zIndex(intzIndex),值越大优先级越高TextOptions•绘制步骤–创建文字覆盖物对象,TextOptions()–设置文字覆盖物地理坐标:position(LatLngposition)–设置文字覆盖物旋转角度,逆时针:rotate(floatrotate)–设置文字覆盖物的文字内容:text(java.lang.Stringtext)–设置文字覆盖物字体:typeface(Typefacetypeface)–设置文字覆盖物可见性:visible(booleanvisible)–设置文字覆盖物zIndex:zIndex(intzIndex)–设置文字覆盖物对齐方式,默认居中对齐:align(intalignX,intalignY)–设置文字覆盖物背景颜色:bgColor(intbgColor)–设置文字覆盖物额外信息:extraInfo(BundleextraInfo)–设置文字覆盖物字体颜色,默认黑色:fontColor(intcolor)–设置文字覆盖物字体大小:fontSize(intsize)MarkerOptions•某个类型的覆盖物,包含多个类型相同、显示方式相同、处理方式相同的项时,使用此类。或者用来标记位置。•开发步骤–设置marker覆盖物的位置坐标:position(LatLngposition)–设置marker覆盖物的标题:title(java.lang.Stringtitle)–设置Marker覆盖物的图标:icon(BitmapDescriptoricon)–设置marker是否允许拖拽,默认不可拖拽:draggable(booleandraggable)显示一个“泡泡窗口”•准备好泡泡的layout•在MapView中添加该泡泡–addView(Viewchild,LayoutParamsparams)–LayoutParams:MapViewLayoutParams–layoutMode(MapViewLayoutParams.ELayoutMode.mapMode)设置为地图模式,yOffset(-5)设置y轴离position的距离–在处理onMarkerClick时更新Layout,利用LayoutParams传递点位信息,同时可以获取标题信息,设置给TextView搜索•百度地图移动版API集成搜索服务包括–范围检索、城市检索、周边检索、公交检索、驾乘检索、步行检索•核心类:PoiSearch和OnGetPoiSearchResultListenerRoutePlanSearch和OnGetRoutePlanResultListener•实现思路–初始化PoiSearch类,通过setOnGetPoiSearchResultListener方法注册搜索结果的监听对象OnGetPoiSearchResultListener,实现异步搜索服务。–通过自定义MySearchListener实现类,处理不同的回调方法,获得搜索结果。–注意,OnGetPoiSearchResultListener只支持一个,以最后一次设置为准•结合覆盖物展示搜索–Poi搜索覆盖物:PoiOverlay–驾车路线覆盖物:DrivingRouteOverlay–步行路线覆盖物:WalkingRouteOverlay–换乘路线覆盖物:TransitOverlay本地搜索•POI(PointofInterest兴趣点)搜索有三种方式–根据范围和检索词发起范围检索searchInBound–周边检索searchNearby–城市poi检索searchInCity–poi详细信息检索searchPoiDetail•结果的展示:PoiOverlay本地搜索•查询加油站信息–多种查询方法,但结果的处理都在OnGetPoiSearchResultListener的onGetPoiResult方法中–处理步骤:•判断服务器结果返回•创建poi覆盖物•将服务器返回数据添加到poi覆盖物中•添加覆盖物到地图addToMap•缩放地图,使所有Overlay都在合适的视野内本地搜索•注意–POI检索结果每页容量默认情况下为10,可以通过pageCapacity设置,支持1-50(10)–翻页功能重新调用通过PoiSearch类的searchInXxx()方法并传递页数角标pageNum来实现,该方法是异步函数,搜索成功后会调用注册的事件处理函数onGetPoiResult返回查询页的结果。路线检索•驾车路线查询•结果展示:DrivingRouteOverlay•案例:从黑马到传智路线查询•驾车路线查询–查询:RoutePlanSearch.drivingSearch驾乘路线搜索,或者增加途经点.–PlanNode内容的设置:可以使用经纬度和地名,但不支持模糊查询,需要输入准确的名称–可以通过DrivingRoutePlanOption.policy(intpolicy)来设置驾车路线规划策略–结果处理:OnGetRoutePlanResult