android poi搜索提示搜索对象已销毁,Android SDK | 百度地图API SDK

使用须知

在使用百度地图SDK(Android版)之前,请仔细阅读使用条款,一旦您使用了百度地图SDK(Android版),即表明您已阅读并接受使用条款中的全部内容。百度地图SDK(Android版)可帮助您在应用中以丰富的形式展示地图,实现兴趣点搜索、线路规划等操作。 您只可使用在百度地图SDK(Android版)开发文档中所列明开放的功能来对相关服务数据的结果进行展示,不得直接存取、使用内部数据、图片、程序、模块或是任何其他百度地图的服务或功能。在接受使用条款约束的情况下,您可以在向最终用户提供其他信息的同时,使用 API 获取相关服务数据。

百度用和开发密钥

如何注册百度用户?

公众用户请在百度个人中心注册用户。企业用户请联系我们。

如何申请百度密钥?

公众用户在获取密钥中自行申请,可以每个应用申请一个Key,可以用在不同移动平台上的相同应用中。申请的Key个数目前没有限制。企业用户请联系我们。

注意:为了给用户提供更安全的服务,Android SDK自v2.1.3版本开始采用了全新的Key验证体系。因此,当您选择使用v2.1.3及之后版本的SDK时,需要到新的Key申请页面进行全新Key的申请,申请及配置流程请参考开发指南对应章节。(选择使用v2.1.2及之前版本SDK的开发者,申请密钥(Key)的方式不变)。

忘记申请过的开发密钥怎么办?

公众用户在获取密钥侧边栏中,点击“我的KEY”查看已申请过的Key和对应的应用名称(针对老版的Key)。

针对申请了新Key的用户,您需要到新的申请页面查看您之前所申请的Key,地址为:http://lbsyun.baidu.com/apiconsole/key。

问题集锦

地图和覆盖物相关

百度地图SDK支持三维效果的地图吗?

自2.0.0版本起,Android地图SDK支持矢量版地图,当地图放大到一定级别后,底图的显示将支持3D效果(该效果可通过相应的接口关闭)。

目前支持多少种类型的地图?

目前支持基础矢量地图和卫星地图,此外还支持实时路况地图。

地图无法正常显示

地图无法正常显示,一般从以下几面去追查问题:

检查网络情况是否可用;

检查开发密钥安全码配置、填写位置等是否正确;

调用相应的监听方法,查看是否有错误信息;

点击地图上的一点,如何获取相应的地理坐标?

mBaiduMap.setOnMapClickListener(new OnMapClickListener() {

public void onMapClick(LatLng point) {

//在此处理点击事件

}

public boolean onMapPoiClick(MapPoi poi) {

//在此处理底图标注点击事件

return false;

}

});

地图控件放在TabHost中,如何解决跳转时相互影响问题?

在TabHost中的activity使用MapView,有从其他tab页切回MapView异常的问题解决方案是在使用MapView的activity的onResume/onPause方法中手动调用设置view是否可见,具体如下:

@Override

protected void OnPause(){

mMapView.setVisibility(View.INVISIBLE);

mMapView.onPause();

super.onPause();

}

进入页面时

@Override

protected void onResume(){

mMapView.setVisibility(View.VISIBLE);

mMapView.onResume();

super.onResume();

}

目前有哪些城市具有实时交通图?

目前已有31个城市开通,分别为南京,广州,重庆,东莞,长春,台州,福州,金华,北京,常州,杭州,温州,大连,南昌,宁波,沈阳,中山,珠海,佛山,泉州,石家庄,成都,青岛,深圳,武汉,乌鲁木齐,长沙,上海,天津,无锡,厦门。之后其他城市还会陆续开通

检索功能相关

如何获得驾车/步行/公交路线距离?

//获取线路规划的第一条方案的线路距离

drivingRouteResult. getRouteLines().get(0).getDistance();

POI查询结果每页显示几个,如何翻页?

//每页默认显示10个

// mPoiSearch为PoiSearch对象

mPoiSearch.searchInCity((new PoiCitySearchOption())

.city(“北京”)

.keyword(“美食”)

// pageNum为你想要跳转到的页码

.pageNum(pageNum));

如何设置POI检索每页显示容量?

// 检索时指定页容量为20

// mPoiSearch为PoiSearch对象

mPoiSearch.searchInCity((new PoiCitySearchOption())

.city(“北京”)

.keyword(“美食”)

.pageCapacity(20));

路线规划不支持模糊搜索?

目前不支持模糊搜索,需要输入准确的站名。

搜索结果标注如何自定义点击处理?

private class MyPoiOverlay extends PoiOverlay {

public MyPoiOverlay(BaiduMap baiduMap) {

super(baiduMap);

}

@Override

public boolean onPoiClick(int index) {

super.onPoiClick(index);

// 自定义处理poi点击

PoiInfo poi = getPoiResult().getAllPoi().get(index);

if (poi.hasCaterDetails) {

mPoiSearch.searchPoiDetail((new PoiDetailSearchOption())

.poiUid(poi.uid));

}

return true;

}

}

POI是否支持按分类检索?

支持分类检索,只要在检索的关键词内填写相应的类别名称即可。

LBS云检索相关

什么是LBS云检索

百度地图LBS云是百度地图针对LBS开发者全新推出的平台级服务,不仅适用PC应用开发,同时适用移动设备应用的开发。使用LBS云,可以实现移动开发者存储海量位置数据的服务器零成本及维护压力,且支持高效检索用户数据,且实现地图展现。

空间分析工具相关

坐标相关问题

百度地图SDK采用的是百度自行加密的BD09ll坐标系,因此如果使用原始GPS坐标在地图上进行标绘等操作时,会存在较大的误差。在空间分析工具模块中,我们提供了相应的坐标转换方法,具体使用请参考开发指南、类参考等文档信息。

如何计算两点之间距离?

/**

* 测距工具

*/

public class DistanceUtil {

/**

* 返回两个点之间的距离

* @param p1LL

* 起点的百度经纬度坐标

* @param p2LL

* 终点的百度经纬度坐标

* @return 两点距离,单位为: 米,转换错误时返回-1.

*/

public static double getDistance(LatLng p1LL, LatLng p2LL) {

}

}

定位相关

获取位置信息

百度地图SDK自v2.0.0版本起,将定位功能进行了分类,因此,开发者如果需要使用定位功能的话,请下载定位SDK来获取相应的位置信息

在地图上使用定位信息

百度地图SDK提供相应的位置信息接收接口,帮助开发者快速展示位置信息,使用方法如下:

第一步:开启定位

// 地图初始化

mMapView = (MapView) findViewById(R.id.bmapView);

mBaiduMap = mMapView.getMap();

// 开启定位图层

mBaiduMap.setMyLocationEnabled(true);

// 定位初始化

mLocClient = new LocationClient(this);

mLocClient.registerLocationListener(myListener);

LocationClientOption option = new LocationClientOption();

option.setOpenGps(true);// 打开gps

option.setCoorType("bd09ll"); // 设置坐标类型

option.setScanSpan(1000);

mLocClient.setLocOption(option);

mLocClient.start();

第二步:定位数据展示

/**

* 定位SDK监听函数

*/

public class MyLocationListenner implements BDLocationListener {

@Override

public void onReceiveLocation(BDLocation location) {

// map view 销毁后不在处理新接收的位置

if (location == null || mMapView == null)

return;

MyLocationData locData = new MyLocationData.Builder()

.accuracy(location.getRadius())

// 此处设置开发者获取到的方向信息,顺时针0-360

.direction(100).latitude(location.getLatitude())

.longitude(location.getLongitude()).build();

mBaiduMap.setMyLocationData(locData);

if (isFirstLoc) {

isFirstLoc = false;

LatLng ll = new LatLng(location.getLatitude(),

location.getLongitude());

MapStatusUpdate u = MapStatusUpdateFactory.newLatLng(ll);

mBaiduMap.animateMapStatus(u);

}

}

public void onReceivePoi(BDLocation poiLocation) {

}

}

其他

Key的申请和应用名称有关系吗?

应用名称是在申请Key的时候由开发者自行填写的,后期不可更改。因此key和应用名称是一一对应的关系。但在使用上,开发者所申请的key和安全码(sha1;PCN)绑定,只要保证应用的sha1和PCN对应关系正确即可

为何我的程序在不混淆之前可以运行,混淆之后不能运行了?

矢量版SDK(即2.0.0及之后的版本):

如果是用proguard ,以下配置供参考:

-libraryjars libs/baidumapapi_v2_1_2.jar 替换成自己所用版本的jar包

-keep class com.baidu.** { *; }

-keep class vi.com.gdi.bgl.android.**{*;}

其他混淆工具也请进行与此类似的配置,指定对mapapi中的类和方法不进行混淆

如何解决adt 22 版本不兼容低版本project问题?

第一步,在eclipse 中选中工程,右键选 Properties->Java Build Path->Order and Export 使 Android Private Libraries处于勾选状态。

第二步,Project -> clean -> clean all 。

使用VersionInfo.getVersionDesc()方法获取组件化开发包的描述信息

1.背景:

SDK在可定制化后, 各种组合打成的开发包其包名都是一样的, 所以在可定制化版本中,SDK新增了一个方法来或取 SDK开发包的版本描述信息,SDK开发包版本描述信息是一个简短的字串,它用来说明当前使用的SDK的版本的版本号,功能描述等信息。

2.方法:

VersionInfo.getVersionDesc()

3. 返回值类型:

String

4. 返回值示例:

baidu_mapsdk_andr_2.3.0_com=map_search_util_so=c8c720ccb0cd02def054cc57af50b829

5. 说明:

baidu_mapsdk_andr:固定字符.

2.3.0:版本号

com=map_search_util:开发包功能说明,此开发包包含地图功能、检索功能和工具类

so=c8c720ccb0cd02def054cc57af50b829:该jar包所需的so文件对应的md5值,用于检验jar包与so对应关系是否正确

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值