1 简介
百度地图LBS云是百度地图针对LBS开发者全新推出的平台级服务。
通过LBS云,一方面解决移动开发者服务器端日益增长的海量位置数据的存储维护压力,另一方面彻底解决所有LBS开发者基于位置数据的高并发检索瓶颈。
如何检索开发者自己的数据?
1 数据存储:首先开发者需要将待检索数据存入LBS云;(点击了解详情)
2调用:利用SDK为开发者提供的接口检索自己的数据;
3展示:开发者可根据自己的实际需求以多种形式展现自己的数据。
2 云检索
开发者在完成数据在LBS云端的存储之后,即可调用SDK搜索、计算自己在云端的数据了。具体使用方法如下:
首先实例化GeoSearchListener接口:
@Override
public void onGetGeoDetailsResult(DetailResult result, int type, int iError)
{
if(result !=null){
if(result.content!=null){
Toast.makeText(MyMapActivity.this, result.content.name, Toast.LENGTH_LONG).show();
}
else{
Toast.makeText(MyMapActivity.this, "status:" + result.status, Toast.LENGTH_SHORT).show();
}
}
}
@Override
public void onGetGeoResult(GeoSearchResult result, int type, int iError)
{
if(result !=null&&result.poiList!=null&&result.poiList.size() >0){
CloudOverlay poiOverlay = new CloudOverlay(this);
poiOverlay.setData(result.poiList);
mMapView.getOverlays().clear();
mMapView.getOverlays().add(poiOverlay);
mMapView.refresh ();
mMapView.getController().animateTo(new GeoPoint((int)(result.poiList.get(0).latitude * 1e6), (int)(result.poiList.get(0).longitude * 1e6)));
}
}
发起云检索请求:
BoundsSearchInfo r = new BoundsSearchInfo();
r.queryWords = "五中";
r.ak = "输入你的ak"; // 注意:此处的ak并不是您申请的android开发的key,这个是LBS云服务的AK
r.bounds = new Bounds(39843895, 116402214, 40956948, 116431457);
r.filter.put("databox", 848);
r.scope = 2;
GeoSearchManager.getInstance().searchBounds(r);
// 当请求成功时,会回调onGetGeoResult函数,执行打点操作。
CloudOverlay poiOverlay = new CloudOverlay(this);
poiOverlay.setData(result.poiList);
mMapView.getOverlays().clear();
mMapView.getOverlays().add(poiOverlay);
mMapView.refresh();
运行结果如下:
更多详细信息请登录百度地图API官方网站:http://developer.baidu.com/map/
百度地图API论坛:http://bbs.lbsyun.baidu.com/