BaiduMap 使用小结
来源:互联网 发布:原画梦的网络课怎么样 编辑:程序博客网 时间:2024/04/28 01:05
最好根据百度官方文档 来看此文
百度地图API:
LBS - Location Based Services
POI - Point Of Interest 兴趣点
百度地图官方文档:http://developer.baidu.com/map
百度地图根据经纬度 获取位置信息api:http://api.map.baidu.com/geocoder?output=json&location=latitude,longitude&key=AK
1)新建App,获取秘钥
安全码:安全码的组成是 Android签名证书的SHA1签名+";"+包名
获取安全码:1)进入.android 目录,输入指令keytool -list -v -keystore debug.keystore,密码是 android。keytool 是jdk自带工具,debug.keystore是Android签名证书文件
2)导包
src/main/目录下新建 jniLibs目录,放入so文件(armeabi/)
libs下 导入jar包
3)关于混淆
在集成地图SDK 的应用中,在打包混淆的时候,需要注意与地图相关的方法不可被混淆
-keep class com.baidu.** {*;}
-keep class vi.com.** {*;}
-dontwarn com.baidu.**
4)在application标签下添加 meta-data name=com.baidu.lbsapi.API_KEY value=AK
添加权限
5)地图的使用 都需要先 调用 SDKInitializer.initialize(appcontext)
6)注意 地图控件的 生命周期方法onResume onPause onDestory onCreate就是find
7)在地图上创建一个 MarkerOptions(包括 创建,地图的缩放、定位,InfoWindow的显示)
//创建一个 Bitmap
BitmapDescriptor bitmapDescriptor = BitmapDescriptorFactory.fromResource(id)
MarkerOptions markerOptions = new MarkOptions()
.position(new Latlng(0,0))
.icon(bitmapDescriptor)
.title("title")
.extraInfo(bundle);
baiduMap.addOerlay(markerOptions);
//设置地图显示 样式
MapStatusUpdate mapStatusUpdate = MapStatusUpdateFactory.newMapStatus(
new MapStutas.Builder()
.overlook(15) //俯视角度
.target(latlng)//中心点
.zoom(16) //缩放到 等级16
.build()
);
baiduMap.setMapStatus(mapStatusUpdates);
//设置图层点击事件
baiduMap.setOnMarkerClickListener(new ..){
onMarkerClick(Marker marker){
TextView tv = new TextView(context);
//设置textView点击事件, 隐藏InfoWindow
tv.setOnClickListener(new ..){
onClick(v){ baiduMap.hideInfoWindow(); }
}
//显示 infoWindow
baiduMap.showInfoWindow(new InfoWindow(tv, marker.positon(), -30));
}
}
8)POI(Point Of Interest)兴趣点检索
所有的 POI检索 都是用的 PoiSearch类
//初始化 并设置 监听事件
poiSearch = PoiSearch.newInstance();
poiSearch.setOnGetPoiSearchResultListener(this);
//使用POI 检索,查询周边
poiSearch.searchNearBy(
new PoiNearBySearchOption()
.location(latlng)
.keyword(keyword)
.radius(5000) //单位 m
.pageCapacity(10)
.pageNum(1)
);
//查询 城市
poiSearch.searchCity(
new PoiCitySearchOption()
.city("北京")
.keyword(keyword)
.pageCatacity(10)
.pageNum(1)
);
//区域查询 也一样, 线路查询没有看,需要补充
//检索需要重写的方法
public void OnGetPoiResult(PoiResult poiResult){
if(poiResult.error == SearchResult.ERROR.NO_ERROR){
//清除 旧数据
baiduMap.clear();
List<PoiInfo> poiInfos = poiResult.getAllPoi();
// 将第一个POI 作为地图的中心
baiduMap.setMapStatus(MapStatusFactory.newLatlng(poiInfo.get(0).location));
//利用 PoiOverlay 将地图缩放到 正好放下所有查询结果的大小 和 位置
PoiOverlay poiOverlay = new PoiOverlay(baiduMap);
poiOverlay.addData(poiResult);
poiOverlay.addToMap(baiduMap);
poiOverlay.zoomToSpan();
baiduMap.clear();//将上面 poiOverlay图层上的 marker 清除
//可以通过markerOptions.extraInfo(args) 来保存 设置 一些数据
}
}
8)定位(可以脱离 百度地图 单独使用)
要求要与baidumap 最好 是相同的版本号
1、将 locSDK_5.1.jar jar包拷入 libs文件夹
2、将 so问价 拷入 main/jniLibs 文件夹下,所有的适配 类型的 文件夹都拷进去
//初始化 并注册监听事件
LocationClient location = new LocationClient(getApplicationContext());
location.registerLocationListener(locationListener);
//配置 定位SDK 参数
LocationClientOption option = new LocationOption();
option.setLocationMode(LocationClientOption.LocationMode.Battery_Saving);
option.setCoorType("bd09ll");//设置 定位坐标系
option.setScanSpan(1000); //定位的 时间 间隔
option.setOpenGps(true);
option.setIgnoreKillProcess(false); //定位SDK,在内部 实际上是 一个Service,并放到独立进程,是否在stop 的时候杀死此进程,默认杀死
location.setLocOption(option);
location.start();
//监听事件
locationListener = new BDLocationListener{
public void onReceiverLocation(BDLocation location){
//location中有各种需要的参数
//可根据 百度提供的api来根据 经纬度获取各种信息
//http://api.map.baidu.com/geocoder?output=json&location=latitude,longitude&key=AK
}
}
百度地图API:
LBS - Location Based Services
POI - Point Of Interest 兴趣点
百度地图官方文档:http://developer.baidu.com/map
百度地图根据经纬度 获取位置信息api:http://api.map.baidu.com/geocoder?output=json&location=latitude,longitude&key=AK
1)新建App,获取秘钥
安全码:安全码的组成是 Android签名证书的SHA1签名+";"+包名
获取安全码:1)进入.android 目录,输入指令keytool -list -v -keystore debug.keystore,密码是 android。keytool 是jdk自带工具,debug.keystore是Android签名证书文件
2)导包
src/main/目录下新建 jniLibs目录,放入so文件(armeabi/)
libs下 导入jar包
3)关于混淆
在集成地图SDK 的应用中,在打包混淆的时候,需要注意与地图相关的方法不可被混淆
-keep class com.baidu.** {*;}
-keep class vi.com.** {*;}
-dontwarn com.baidu.**
4)在application标签下添加 meta-data name=com.baidu.lbsapi.API_KEY value=AK
添加权限
5)地图的使用 都需要先 调用 SDKInitializer.initialize(appcontext)
6)注意 地图控件的 生命周期方法onResume onPause onDestory onCreate就是find
7)在地图上创建一个 MarkerOptions(包括 创建,地图的缩放、定位,InfoWindow的显示)
//创建一个 Bitmap
BitmapDescriptor bitmapDescriptor = BitmapDescriptorFactory.fromResource(id)
MarkerOptions markerOptions = new MarkOptions()
.position(new Latlng(0,0))
.icon(bitmapDescriptor)
.title("title")
.extraInfo(bundle);
baiduMap.addOerlay(markerOptions);
//设置地图显示 样式
MapStatusUpdate mapStatusUpdate = MapStatusUpdateFactory.newMapStatus(
new MapStutas.Builder()
.overlook(15) //俯视角度
.target(latlng)//中心点
.zoom(16) //缩放到 等级16
.build()
);
baiduMap.setMapStatus(mapStatusUpdates);
//设置图层点击事件
baiduMap.setOnMarkerClickListener(new ..){
onMarkerClick(Marker marker){
TextView tv = new TextView(context);
//设置textView点击事件, 隐藏InfoWindow
tv.setOnClickListener(new ..){
onClick(v){ baiduMap.hideInfoWindow(); }
}
//显示 infoWindow
baiduMap.showInfoWindow(new InfoWindow(tv, marker.positon(), -30));
}
}
8)POI(Point Of Interest)兴趣点检索
所有的 POI检索 都是用的 PoiSearch类
//初始化 并设置 监听事件
poiSearch = PoiSearch.newInstance();
poiSearch.setOnGetPoiSearchResultListener(this);
//使用POI 检索,查询周边
poiSearch.searchNearBy(
new PoiNearBySearchOption()
.location(latlng)
.keyword(keyword)
.radius(5000) //单位 m
.pageCapacity(10)
.pageNum(1)
);
//查询 城市
poiSearch.searchCity(
new PoiCitySearchOption()
.city("北京")
.keyword(keyword)
.pageCatacity(10)
.pageNum(1)
);
//区域查询 也一样, 线路查询没有看,需要补充
//检索需要重写的方法
public void OnGetPoiResult(PoiResult poiResult){
if(poiResult.error == SearchResult.ERROR.NO_ERROR){
//清除 旧数据
baiduMap.clear();
List<PoiInfo> poiInfos = poiResult.getAllPoi();
// 将第一个POI 作为地图的中心
baiduMap.setMapStatus(MapStatusFactory.newLatlng(poiInfo.get(0).location));
//利用 PoiOverlay 将地图缩放到 正好放下所有查询结果的大小 和 位置
PoiOverlay poiOverlay = new PoiOverlay(baiduMap);
poiOverlay.addData(poiResult);
poiOverlay.addToMap(baiduMap);
poiOverlay.zoomToSpan();
baiduMap.clear();//将上面 poiOverlay图层上的 marker 清除
//可以通过markerOptions.extraInfo(args) 来保存 设置 一些数据
}
}
8)定位(可以脱离 百度地图 单独使用)
要求要与baidumap 最好 是相同的版本号
1、将 locSDK_5.1.jar jar包拷入 libs文件夹
2、将 so问价 拷入 main/jniLibs 文件夹下,所有的适配 类型的 文件夹都拷进去
//初始化 并注册监听事件
LocationClient location = new LocationClient(getApplicationContext());
location.registerLocationListener(locationListener);
//配置 定位SDK 参数
LocationClientOption option = new LocationOption();
option.setLocationMode(LocationClientOption.LocationMode.Battery_Saving);
option.setCoorType("bd09ll");//设置 定位坐标系
option.setScanSpan(1000); //定位的 时间 间隔
option.setOpenGps(true);
option.setIgnoreKillProcess(false); //定位SDK,在内部 实际上是 一个Service,并放到独立进程,是否在stop 的时候杀死此进程,默认杀死
location.setLocOption(option);
location.start();
//监听事件
locationListener = new BDLocationListener{
public void onReceiverLocation(BDLocation location){
//location中有各种需要的参数
//可根据 百度提供的api来根据 经纬度获取各种信息
//http://api.map.baidu.com/geocoder?output=json&location=latitude,longitude&key=AK
}
}
0 0
- BaiduMap 使用小结
- BaiduMap API 使用
- BaiDuMap
- baidumap
- baiduMap
- BaiduMap
- baiduMap
- baiduMap
- BaiduMap
- baiduMap
- baiduMap
- baiduMap 使用Fragment的方法
- BaiduMap SDK的使用流程
- BaiduMap百度地图使用攻略
- BaiduMap SDK使用中遇到的问题
- R语言 baidumap和REmap包使用学习(一)——baidumap包
- 【新手入门】Android应用程序使用BaiduMap API获取KEY的方法
- Android 位置服务——BaiduMap的使用
- 第十九章 动态URL权限控制
- Linux下FTP服务器搭建
- 数据库课堂笔记
- POJ 3126
- (解题报告)HDU2048--神、上帝以及老天爷!(错排)
- BaiduMap 使用小结
- android面试攻略(3)
- WinPcap笔记(6):过滤数据包
- light oj 1245 - Harmonic Number (II)【规律】
- 深入理解BootStrap Item7 -- 栅格系统(布局)
- CentOS 7.1 linux 裁剪 嵌入式 系统 定制
- iOS在程序中控制系统的屏幕亮度
- C++11新特性
- 硬盘分区重新调整后,双系统不能进入Ubuntu14.04