实例介绍
【实例简介】
百度地图Android SDK v4.3.1 Sample共有28个Demo,每个Demo的说明如下:
-------------------------------------------------------------------------------------
一、
Demo名称:基本地图功能
文件名: BaseMapDemo.java
简介:创建一张百度地图并管理地图的生命周期
详述:
(1)创建一张最简单的百度地图;
(2)管理地图的生命周期,具体请参看代码部分的相关注释;
(3)可监听地图加载完成事件;
(4)给出示例个性化地图、普通地图动态切换
-------------------------------------------------------------------------------------
二、
Demo名称:MapFragment使用
文件名: MapFragmentDemo.java
简介:介绍在Fragment框架下使用地图
详述:
(1)介绍了如何在Fragment框架下添加一个地图地图控件;
-------------------------------------------------------------------------------------
三、
Demo名称:图层展示功能
文件名: LayersDemo.java
简介:展示普通图、卫星图、交通流量图和百度城市热力图
详述:
(1)选择展示地图的图层为普通图或卫星图;
(2)在普通图或卫星图上叠加交通流量图;
(3)在普通图或卫星图上叠加百度城市热力图;
-------------------------------------------------------------------------------------
四、
Demo名称:多地图展示
文件名: MultiMapViewDemo.java
简介:介绍多MapView的使用
详述:
(1)在一个界面内,同时建立四个MapView控件;
(2)地图Logo位置变更,支持6个位置,多图展示中只展示了4个位置
-------------------------------------------------------------------------------------
五、
Demo名称:地图操作功能
文件名: MapControlDemo.java
简介:介绍平移和缩放地图,双指操作地图,监听地图点击事件
详述:
(1)介绍地图缩放级别、旋转度和俯视度的get和set方法;
(2)监听单击和长按地图事件;
(3)单击、双击和长按地图获取该点的经纬度坐标;
(4)对地图显示内容进行截图,截图保存地址为:/mnt/sdcard/test.png;
-------------------------------------------------------------------------------------
六、
Demo名称:UI控制功能
文件名: UISettingsDemo.java
简介:介绍开关手势功能和显示隐藏UI控件
详述:
(1)地图操作开关:平移、缩放、双击放大、双指操作(旋转度和俯视度);
(2)控件显示开关:显示/隐藏缩放按钮;
(3)指南针位置控制:显示在地图左上角或者右上角(仅举例),开发者可据实际情况任意改变位置;
(4)底图标注开关:控制显示/隐藏底图POI,隐藏POI可得到仅显示道路信息的地图
(5)禁用所有手势:控制是否一并禁止所有手势。
(6)设置地图setPadding,防止UI遮挡Logo等。
-------------------------------------------------------------------------------------
七、
Demo名称:定位图层展示
文件名: LocationOverlayDemo.java
简介:介绍定位图层的基本用法
详述:
(1)可自定义更换位置图标,精度圈填充及边框颜色;
(2)支持定位三态效果显示(普通态、跟随态、罗盘态);
(3)百度地图SDK从2.0.0版本起,将定位功能进行了分离,具体使用方法请见定位SDK;
(4)定位SDK开发指南详见http://developer.baidu.com/map/geosdk-android.htm;
(5)支持开发者自定义精度圈边框和填充区域的颜色。
-------------------------------------------------------------------------------------
八、
Demo名称:自定义绘制功能
文件名: GeometryDemo.java
简介:介绍自定义绘制点、线、多边形、圆等几何图形和文字
详述:
(1)支持绘制凸多边形,如要绘制凹多边形请用三角形进行拼接;
(2)支持绘制文字;
-------------------------------------------------------------------------------------
九、
Demo名称:覆盖物功能
文件名: OverlayDemo.java
简介:介绍添加覆盖物并响应点击功能和弹出pop功能
详述:
(1)在popup中添加弹出自定义View的示例;
(2)点击周围4个Marker,弹出popup,可更新marker位置和更新marker图标;
(3)中间显示的为图片图层,该图层可随地图的移动、缩放等做出相应的操作;
(4)支持Maker设置透明度的方法,利用滑动条可以展示maker透明度变化;
(5)支持Marker设置动画的能力,包含两种方式:从地上生长和从天上落下
-------------------------------------------------------------------------------------
十、
Demo名称:热力图功能
文件名: HeatMapDemo.java
简介绘制自有数据热力图
详述:
(1)设置热力图颜色;
(2)准备数据、生成热力图;
(3)删除热力图;
-------------------------------------------------------------------------------------
十一、
Demo名称:地理编码功能
文件名: GeoCodeDemo.java
简介:介绍地址信息与坐标之间的相互转换
详述:
(1)正向地理编码:将地址信息转换为经纬度坐标;
(2)反向地理编码:将经纬度坐标转换为地址信息;
-------------------------------------------------------------------------------------
十二、
Demo名称:POI搜索功能
文件名: POISearchDemo.java
简介:介绍关键词查询、suggestion查询和查看餐饮类Place详情页功能
详述:
(1)点击某些关键词查询后的结果(如“餐厅”)可跳转到Place详情页;
(2)提供suggestion查询进行联想查询,例如输入“天安门”则会弹出联想查询的列表;
-------------------------------------------------------------------------------------
十三、
Demo名称:路径规划功能
文件名: RoutePlanDemo.java, CustomRouteOverlay.java
简介:介绍跨城交通、公交、驾车、步行、骑行五种线路规划方法和自设路线方法
详述:
(1)驾车查询新增路径点查询功能,具体使用方法详见开发者指南路径规划部分,只需重载接口;
(2)自设路线功能演示开发者如何自己设定一条路线,包括如何设定起点、终点、途径站点和路段;
(3)自设路线功能同时也介绍如何在两个Activity之间切换的时候管理Mapview的生命周期;
(4)可自定义路线的起终点图标;
----------------------------------------------------------------------------------
十四、
Demo名称:行政区域边界数据检索
文件名称:DistrictSearchDemo.java
简介:介绍如何使用行政区域边界数据检索功能,绘制行政区覆盖物和边框
详述:
(1)通过输入省、市、区/县的名称,绘制出行政区覆盖物和边框
----------------------------------------------------------------------------------
十五、
Demo名称:公交线路查询功能
文件名: BusLineDemo.java
简介:介绍查询公交线路功能
(1)点击“开始”按钮可查询公交线路;
(2)搜索出公交线路后点击“下一条”按钮可查询该线路的反方向公交线路;
-------------------------------------------------------------------------------------
十六、
Demo名称:短串分享功能
文件名: ShareDemo.java
简介:将POI点、反Geo点和公交/驾车/骑行/步行线路规划,生成短链接以分享给好友
详述:
(1)将POI点、反Geo点和公交/驾车/骑行/步行线路规划,生成短链接串,此链接可通过短信等形式分享给好友;
(2)好友在终端设备点击此链接可快速打开Web地图、百度地图客户端进行信息展示;
(3)暂时开放了“POI搜索结果分享”、“公交/驾车/骑行/步行线路规划”和“反向地理编码结果分享”;
(4)日后会开放更多的功能,欢迎广大开发者使用短串分享功能;
-------------------------------------------------------------------------------------
十七、
Demo名称:离线地图功能
文件名: OfflineDemo.java
简介:介绍如何下载和使用离线地图
详述:
(1)可以搜索、下载、删除、查看离线地图;
-------------------------------------------------------------------------------------
十八、
Demo名称:周边雷达功能--RadarDemo
文件名:RadarDemo.java
注意:需要把应用的key在官网的雷达注册页面进行相关的注册才能使用!
注册网址:http://developer.baidu.com/map/index.php?title=radar
简介:介绍如果使用周边雷达功能上传位置、检索周边的人
详述:
(1)获取位置信息并单次上传服务端;
(2)获取位置信息连续上传服务端;
(3)检索周边用户的位置;
(4)用列表的形式及地图的形式展示周边用户的位置等信息;
-------------------------------------------------------------------------------------
十九、
Demo名称:调启百度地图
文件名: OpenBaiduMap.java
简介:介绍如果利用简单接口调用,开启百度地图客户端实现复杂逻辑业务
详述:
(1)调启百度地图导航(Native);
(2)调启百度地图导航(Web);
(3)调启百度地图POI周边检索;
(4)调启百度地图POI详情检索;
(5)调启百度地图步行线路规划;
(6)调启百度地图驾车线路规划;
(7)调启百度地图公交线路规划;
(8)调启百度地图步行导航;(需百度地图App 8.6.6以上版本支持)
(9)调启百度地图骑行导航(需百度地图App 8.6.6以上版本支持)
(10) 调启百度地图poi点全景展示;
(11) 调启百度地图步行AR导航;
-------------------------------------------------------------------------------------
二十、
Demo名称:点收藏功能--FavoriteDemo
文件名:FavoriteDemo.java
简介:介绍如何创建、管理本地点数据
详述:
(1)新建本地点收藏;
(2)查看已收藏本地点;
(3)删除已收藏本地点;
-------------------------------------------------------------------------------------
二十一、
Demo名称:LBS.云检索功能
文件名: CloudSearchDemo.java
简介:介绍如何使用LBS.云检索用户自有数据
注意:自v2.2.0起,SDK支持LBS云v2版的检索,使用v1版的用户请尽快完成升级或使用较低SDK版本。
详述:
(1)LBS.云是百度地图针对LBS开发者推出的平台级服务;
(2)提供海量位置数据存储、检索、展示一体化解决方案;
(3)该服务对开发者免费开放;
(4)Demo中放入了测试用ak,开发者若使用自己的数据,请更换为自己的ak;
(5)LBS.云检索使用方法请参考开发指南“LBS云服务”部分;
(6)详细了解LBS.云,欢迎访问:http://developer.baidu.com/map/lbs-cloud.htm
(7)申请ak及管理数据等问题,欢迎访问LBS开放平台官网:http://lbsyun.baidu.com/
-------------------------------------------------------------------------------------
二十二、
Demo名称:OpenGL绘制功能
文件名: OpenGLDemo.java
简介:介绍如何使用OpenGL在地图上实现自定义绘制
详述:
(1)利用OpenGL绘制基本折线;
(2)利用OpenGL在地图上进行纹理绘制;
-------------------------------------------------------------------------------------
二十三、
Demo名称:点聚合功能--MakerClusterDemo
文件名: MarkerClusterDemo.java
简介:新增点聚合功能,可通过缩小地图层级,将定义范围内的多个标注点,聚合显示成一个标注点
详述:
(1)支持缩放地图,实现点聚合功能
-------------------------------------------------------------------------------------
二十四、
Demo名称:瓦片图功能--TileOverlayDemo
文件名:TileOverlayDemo.java
简介:瓦片图层支持开发者添加自有瓦片数据,包括在线下载和本地加载两种方式。
详述:
(1)在线下载方式
(2)本地加载方式
(3)将地图类型设置为NONE,不下载地图底图瓦片
(4)控制了地图显示范围,仅显示设置范围内的地图
-------------------------------------------------------------------------------------
二十五、
Demo名称:地图由TextureView渲染
文件名:TextureMapViewDemo.java
使用前提:Android 4.0以上系统,并开启强制GPU渲染
简介:新增了TextureMapView类,实现地图由TextureView渲染。解决原MapView基于系统GLSurfaceView导致在TabHost和scrollView中等闪黑屏、白边、压盖等问题。
-------------------------------------------------------------------------------------
二十六、
Demo名称: 室内图--IndoorMapDemo
文件名称: IndoorMapDemo.java
简介:介绍如何进行室内图展示及室内路线规划
详述:
(1)室内图展示,包含打开、关闭室内图方法
(2)室内路线规划(只支持起终点在同一建筑物内),绘制室内规划路线
----------------------------------------------------------------------------------
二十七、
Demo名称: 室内图检索
文件名称: IndoorSearchDemo.java
简介:介绍在室内图中进行室内poi检索
----------------------------------------------------------------------------------
二十八、
Demo名称: 小车轨迹平滑移动
文件名称: TrackShowDemo.java
简介:介绍小车轨迹平滑移动的实现
----------------------------------------------------------------------------------
【实例截图】
【核心代码】
/* * Copyright (C) 2015 Baidu, Inc. All Rights Reserved. */ package baidumapsdk.demo; import android.app.Activity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.graphics.Color; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.BaseAdapter; import android.widget.ListView; import android.widget.TextView; import com.baidu.mapapi.SDKInitializer; import com.baidu.mapapi.VersionInfo; import baidumapsdk.demo.map.LocationDemo; import baidumapsdk.demo.map.LayersDemo; import baidumapsdk.demo.map.HeatMapDemo; import baidumapsdk.demo.map.BaseMapDemo; import baidumapsdk.demo.map.FavoriteDemo; import baidumapsdk.demo.map.IndoorMapDemo; import baidumapsdk.demo.map.GeometryDemo; import baidumapsdk.demo.map.MapControlDemo; import baidumapsdk.demo.map.MapFragmentDemo; import baidumapsdk.demo.map.MarkerAnimationDemo; import baidumapsdk.demo.map.TrackShowDemo; import baidumapsdk.demo.map.MarkerClusterDemo; import baidumapsdk.demo.map.MultiMapViewDemo; import baidumapsdk.demo.map.OfflineDemo; import baidumapsdk.demo.map.OpenglDemo; import baidumapsdk.demo.map.OverlayDemo; import baidumapsdk.demo.map.TextureMapViewDemo; import baidumapsdk.demo.map.TileOverlayDemo; import baidumapsdk.demo.map.UISettingDemo; import baidumapsdk.demo.search.RoutePlanDemo; import baidumapsdk.demo.search.BusLineSearchDemo; import baidumapsdk.demo.search.DistrictSearchDemo; import baidumapsdk.demo.search.GeoCoderDemo; import baidumapsdk.demo.search.PoiSearchDemo; import baidumapsdk.demo.search.ShareDemo; import baidumapsdk.demo.search.IndoorSearchDemo; import baidumapsdk.demo.cloud.CloudSearchDemo; import baidumapsdk.demo.radar.RadarDemo; import baidumapsdk.demo.util.OpenBaiduMap; public class BMapApiDemoMain extends Activity { private static final String LTAG = BMapApiDemoMain.class.getSimpleName(); /** * 构造广播监听类,监听 SDK key 验证以及网络异常广播 */ public class SDKReceiver extends BroadcastReceiver { public void onReceive(Context context, Intent intent) { String s = intent.getAction(); Log.d(LTAG, "action: " s); TextView text = (TextView) findViewById(R.id.text_Info); text.setTextColor(Color.RED); if (s.equals(SDKInitializer.SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_ERROR)) { text.setText("key 验证出错! 错误码 :" intent.getIntExtra (SDKInitializer.SDK_BROADTCAST_INTENT_EXTRA_INFO_KEY_ERROR_CODE, 0) " ; 请在 AndroidManifest.xml 文件中检查 key 设置"); } else if (s.equals(SDKInitializer.SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_OK)) { text.setText("key 验证成功! 功能可以正常使用"); text.setTextColor(Color.YELLOW); } else if (s.equals(SDKInitializer.SDK_BROADCAST_ACTION_STRING_NETWORK_ERROR)) { text.setText("网络出错"); } } } private SDKReceiver mReceiver; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); TextView text = (TextView) findViewById(R.id.text_Info); text.setTextColor(Color.YELLOW); text.setText("欢迎使用百度地图Android SDK v" VersionInfo.getApiVersion()); setTitle(getTitle() " v" VersionInfo.getApiVersion()); ListView mListView = (ListView) findViewById(R.id.listView); // 添加ListItem,设置事件响应 mListView.setAdapter(new DemoListAdapter()); mListView.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> arg0, View v, int index, long arg3) { onListItemClick(index); } }); // 注册 SDK 广播监听者 IntentFilter iFilter = new IntentFilter(); iFilter.addAction(SDKInitializer.SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_OK); iFilter.addAction(SDKInitializer.SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_ERROR); iFilter.addAction(SDKInitializer.SDK_BROADCAST_ACTION_STRING_NETWORK_ERROR); mReceiver = new SDKReceiver(); registerReceiver(mReceiver, iFilter); } void onListItemClick(int index) { Intent intent; intent = new Intent(BMapApiDemoMain.this, DEMOS[index].demoClass); this.startActivity(intent); } private static final DemoInfo[] DEMOS = { new DemoInfo(R.string.demo_title_basemap, R.string.demo_desc_basemap, BaseMapDemo.class), new DemoInfo(R.string.demo_title_map_fragment, R.string.demo_desc_map_fragment, MapFragmentDemo.class), new DemoInfo(R.string.demo_title_layers, R.string.demo_desc_layers, LayersDemo.class), new DemoInfo(R.string.demo_title_multimap, R.string.demo_desc_multimap, MultiMapViewDemo.class), new DemoInfo(R.string.demo_title_control, R.string.demo_desc_control, MapControlDemo.class), new DemoInfo(R.string.demo_title_ui, R.string.demo_desc_ui, UISettingDemo.class), new DemoInfo(R.string.demo_title_location, R.string.demo_desc_location, LocationDemo.class), new DemoInfo(R.string.demo_title_geometry, R.string.demo_desc_geometry, GeometryDemo.class), new DemoInfo(R.string.demo_title_overlay, R.string.demo_desc_overlay, OverlayDemo.class), new DemoInfo(R.string.demo_title_marker_animation, R.string.demo_desc_marker_animation, MarkerAnimationDemo.class), new DemoInfo(R.string.demo_title_heatmap, R.string.demo_desc_heatmap, HeatMapDemo.class), new DemoInfo(R.string.demo_title_geocode, R.string.demo_desc_geocode, GeoCoderDemo.class), new DemoInfo(R.string.demo_title_poi, R.string.demo_desc_poi, PoiSearchDemo.class), new DemoInfo(R.string.demo_title_route, R.string.demo_desc_route, RoutePlanDemo.class), new DemoInfo(R.string.demo_title_districsearch, R.string.demo_desc_districsearch, DistrictSearchDemo.class), new DemoInfo(R.string.demo_title_bus, R.string.demo_desc_bus, BusLineSearchDemo.class), new DemoInfo(R.string.demo_title_share, R.string.demo_desc_share, ShareDemo.class), new DemoInfo(R.string.demo_title_offline, R.string.demo_desc_offline, OfflineDemo.class), new DemoInfo(R.string.demo_title_radar, R.string.demo_desc_radar, RadarDemo.class), new DemoInfo(R.string.demo_title_open_baidumap, R.string.demo_desc_open_baidumap, OpenBaiduMap.class), new DemoInfo(R.string.demo_title_favorite, R.string.demo_desc_favorite, FavoriteDemo.class), new DemoInfo(R.string.demo_title_cloud, R.string.demo_desc_cloud, CloudSearchDemo.class), new DemoInfo(R.string.demo_title_opengl, R.string.demo_desc_opengl, OpenglDemo.class), new DemoInfo(R.string.demo_title_cluster, R.string.demo_desc_cluster, MarkerClusterDemo.class), new DemoInfo(R.string.demo_title_tileoverlay, R.string.demo_desc_tileoverlay, TileOverlayDemo.class), new DemoInfo(R.string.demo_desc_texturemapview, R.string.demo_desc_texturemapview, TextureMapViewDemo.class), new DemoInfo(R.string.demo_title_indoor, R.string.demo_desc_indoor, IndoorMapDemo.class), new DemoInfo(R.string.demo_title_indoorsearch, R.string.demo_desc_indoorsearch, IndoorSearchDemo.class), new DemoInfo(R.string.demo_track_show, R.string.demo_desc_track_show, TrackShowDemo.class) }; @Override protected void onResume() { super.onResume(); } @Override protected void onDestroy() { super.onDestroy(); // 取消监听 SDK 广播 unregisterReceiver(mReceiver); } private class DemoListAdapter extends BaseAdapter { public DemoListAdapter() { super(); } @Override public View getView(int index, View convertView, ViewGroup parent) { convertView = View.inflate(BMapApiDemoMain.this, R.layout.demo_info_item, null); TextView title = (TextView) convertView.findViewById(R.id.title); TextView desc = (TextView) convertView.findViewById(R.id.desc); title.setText(DEMOS[index].title); desc.setText(DEMOS[index].desc); if (index >= 25) { title.setTextColor(Color.YELLOW); } return convertView; } @Override public int getCount() { return DEMOS.length; } @Override public Object getItem(int index) { return DEMOS[index]; } @Override public long getItemId(int id) { return id; } } private static class DemoInfo { private final int title; private final int desc; private final Class<? extends Activity> demoClass; public DemoInfo(int title, int desc, Class<? extends Activity> demoClass) { this.title = title; this.desc = desc; this.demoClass = demoClass; } } }
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论