安卓集成百度地图api poi检索poi检索回传的对象为空是在怎么回事

poiList一直返回空值 百度地图API安卓开发_百度知道
poiList一直返回空值 百度地图API安卓开发
在使用百度地图API 进行安卓开发中,在获取点周围信息时,
onGetAddrResult(MKAddrInfo res, int iError)
Res不为空而
ArrayList&MKPoiInfo& pl=res.poiL
中的pl一直为空。求高手指点
由于代码太长不能全部写出,给出部分代码,如果有好心人真心想帮...
我有更好的答案
盛大富翁为午饭晚饭
为您推荐:
其他类似问题
百度地图api的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。> 博客详情
摘要: iOS百度地图poi检索包括:城市poi检索, 根据范围和检索词发起范围检索, 根据中心点、半径和检索词发起周边检索,以前百度地图是将这三个检索封装到了一个方法里,不知道这个什么时候改的,本人觉得这个新的很不方便,还是以前的那个检索比较方便
- (BOOL)poiSearchInCity:(NSString*)city withKey:(NSString*)key pageIndex:(int)
这个是以前的,很方便,现在将这些城市,范围全都单独封了起来,是何用意啊
后续我会把做到的百度地图遇到的问题详细记录,大家可以多交流一下!
正好做到百度地图的poi检索,拿来分享一下,基于百度地图2.3.0SDK开发,说实话,这个新版本poi真不好用
先来看头文件里面,定义poi对象,当然你也可以写到实现文件里面
#import&&UIKit/UIKit.h&
#import&"BMapKit.h"
@interface&NearByPlaceViewController&:&ViewControllerBase&&BMKPoiSearchDelegate&
&&&&BMKPoiSearch&*_poiS&&&&//poi搜索
#import&"NearByPlaceViewController.h"
#import&"UserLocationManager.h"
@interface&NearByPlaceViewController&()
&&&&NSString&*_cityN&&&//&检索城市名
&&&&NSString&*_keyW&&&&//&检索关键字
&&&&int&currentP&&&&&&&&&&&&//&&当前页
@implementation&NearByPlaceViewController
-&(id)initWithNibName:(NSString&*)nibNameOrNil&bundle:(NSBundle&*)nibBundleOrNil
&&&&self&=&[super&initWithNibName:nibNameOrNil&bundle:nibBundleOrNil];
&&&&if&(self)&{
&&&&&&&&//&Custom&initialization
&&&&return&
-&(void)viewDidLoad
&&&&[super&viewDidLoad];
&&&&self.view.backgroundColor&=&[UIColor&whiteColor];
&&&&[self&initPoiSearch];
#pragma&mark&--初始化poi类
-(void)initPoiSearch
&&&&_poiSearch&=&[[BMKPoiSearch&alloc]init];
&&&&_poiSearch.delegate&=&
&&&&currentPage&=&0;
&&&&//附近云检索,其他检索方式见详细api
&&&&BMKNearbySearchOption&*nearBySearchOption&=&[[BMKNearbySearchOption&alloc]init];
&&&&nearBySearchOption.pageIndex&=&currentP&//第几页
&&&&nearBySearchOption.pageCapacity&=&10;&&//最多几页
&&&&nearBySearchOption.keyword&=&@"设施";&&&//检索关键字
&&&&nearBySearchOption.location&=&[UserLocationManager&sharedInstance].clloction.&//&poi检索点
&&&&nearBySearchOption.radius&=&1000;&//检索范围&m
&&&&BOOL&flag&=&[_poiSearch&poiSearchNearBy:nearBySearchOption];
&&&&if(flag)
&&&&&&&&NSLog(@"城市内检索发送成功");
&&&&&&&&NSLog(@"城市内检索发送失败");
#pragma&mark&--BMKPoiSearchDelegate
&*返回POI搜索结果
&*@param&searcher&搜索对象
&*@param&poiResult&搜索结果列表
&*@param&errorCode&错误号,@see&BMKSearchErrorCode
-&(void)onGetPoiResult:(BMKPoiSearch*)searcher&result:(BMKPoiResult*)poiResult&errorCode:(BMKSearchErrorCode)errorCode
&&&&if&(errorCode&==&BMK_SEARCH_NO_ERROR)
&&&&&&&&for&(int&i&=&0;&i&&&poiResult.poiInfoList.&i++)
&&&&&&&&&&&&BMKPoiInfo*&poi&=&[poiResult.poiInfoList&objectAtIndex:i];
&&&&&&&&&&&&BMKPoiInfo就是检索出来的poi信息&&&&&&&&&&&&
-&(void)didReceiveMemoryWarning
&&&&[super&didReceiveMemoryWarning];
&&&&//&Dispose&of&any&resources&that&can&be&recreated.
大家有什么不明白的可以给我留言,必回,彼此交流一下,后续我会把做到的百度地图遇到的问题详细记录,大家可以多交流一下!
请问问题解决了么,怎么做的
请问问题解决了么,怎么做的
支付宝支付
微信扫码支付
打赏金额: ¥
已支付成功
打赏金额: ¥区域检索POI接口-易源接口总线-api接口中心
百度POI检索
可通过关键词查询在某个地区的POI信息。比如在北京查询“银行”,接口将会输出所有银行的地理信息列表。
接入点说明:
相关文档:
接口地址:
http://route.showapi.com/52-26 (注意:接口支持https,更安全,但稍慢一些,你懂的。请根据自己的情况进行选择。)
返回格式:
请求方式:
HTTP协议,支持GET/POST方法。
调用样式及调试工具:
Request parameter
非文件上传的POST时,enctype=application/x-www-form-urlencoded。
文件上传的POST时,enctype=multipart/form-data。
1、系统级参数(所有接入点都需要的参数):
showapi_appid
易源应用id
showapi_sign
698d51a19d8a121ceb701668
为了验证用户身份,以及确保参数不被中间人篡改,需要传递调用者的数字签名。
showapi_timestamp
客户端时间。
格式yyyyMMddHHmmss,如39
为了在一定程度上防止“重放攻击”,平台只接受在10分钟之内的请求。如果不传或传空串,则系统不再做此字段的检测。
showapi_sign_method
签名生成方式,其值可选为"md5"或"hmac"。如果不传入则默认"md5"。
showapi_res_gzip
返回值是否用gzip方式压缩。此值为1时将压缩,其他值不压缩。
2、应用级参数(每个接入点有自己的参数):
检索关键字,周边检索和矩形区域内检索支持多个关键字并集检索,不同关键字间以$符号分隔,最多支持10个关键字检索。如:”银行$酒店”。
检索区域(市级以上行政区域),如果取值为“全国”或某省份,则返回指定区域的POI及数量。
检索结果详细程度。取值为1 或空,则返回基本信息;取值为2,返回检索POI详细信息
范围记录数量,默认为10条记录,最大返回20条。多关键字检索时,返回的记录数为关键字个数*page_size。
分页页码,默认为0,0代表第一页,1代表第二页,以此类推。
Return parameter
以JSON格式返回结果。
1、系统级参数(所有接入点都会返回的参数):
showapi_res_body
{"city":"昆明","prov":"云南"}
消息体的JSON封装,所有应用级的返回参数将嵌入此对象 。
showapi_res_code
易源返回标志,0为成功,其他为失败。
-1,系统调用错误
-2,可调用次数或金额为0
-3,读取超时
-4,服务端返回数据解析错误
-5,后端服务器DNS解析错误
-6,服务不存在或未上线
-1000,系统维护
-1002,showapi_appid字段必传
-1003,showapi_sign字段必传
-1004,签名sign验证有误
-1005,showapi_timestamp无效
-1006,app无权限调用接口
-1007,没有订购套餐
-1008,服务商关闭对您的调用权限
-1009,调用频率受限
-1010,找不到您的应用
-1011,子授权app_child_id无效
-1012,子授权已过期或失效
-1013,子授权ip受限
showapi_res_error
用户输入有误!
错误信息的展示
2、应用级参数(系统级输出参数showapi_res_body字段中的json数据结构):
本次API访问状态,如果成功返回0,如果失败返回其他数字。
对API访问状态值的英文说明,如果成功返回
检索总数,用户请求中设置了page_num字段才会出现total字段。当检索总数值大于760时,多次刷新同一请求得到total的值可能稍有不同,属于正常情况。
PlaceItem[]
-&location
poi经纬度坐标
poi地址信息
-&telephone
poi电话信息
poi的唯一标示
-&detail_info
DetailInfo
poi的扩展信息,仅当scope=2时,显示该字段,不同的poi类型,显示的detail_info字段不同。
--&distance
距离中心点的距离
所属分类,如’hotel’、’cater’。
--&detail_url
poi的详情页
poi商户的价格
--&shop_hours
--&overall_rating
--&taste_rating
--&service_rating
--&environment_rating
--&facility_rating
星级(设备)评分
--&hygiene_rating
--&technology_rating
--&image_num
--&groupon_num
--&discount_num
--&comment_num
请填写参数描述
--&favorite_num
--&checkin_num
Request example
Return example
&showapi_res_code&: 0,
&showapi_res_error&: &&,
&showapi_res_body&: {
&message&: &ok&,
&total&: 400,
&ret_code&: 0,
&results&: [
&street_id&: &50f7d2210b6c&,
&uid&: &50f7d2210b6c&,
&detail&: 1,
&location&: {
&lng&: 116.312202,
&lat&: 40.05239
&address&: &北京市海淀区上地七街信息路2号&,
&name&: &中国工商银行(中关村支行)&,
&telephone&: &010-&
&status&: 0
本网站所列接口及文档全部由SHOWAPI网站提供,并对其拥有最终解释权 Powered By SHOWAPI
(C) 2015 www.showapi.com ALL Rights Reserved. 昆明秀派科技有限公司下次自动登录
现在的位置:
& 综合 & 正文
Android 百度地图POI检索之显示单次搜索的所有结果
转载请注明出处:
最近在研究百度地图API,通过POI搜索时发现每次只能显示10个覆盖物,强迫症不能忍啊有木有,官方demo并不能满足我的需求,研究了一段时间实现了显示所有覆盖物的功能。
来,看图(= =这回要犯密集恐惧症了)
下面来看看代码是如何实现的
map.xml 很简单,就一个MapView控件
&?xml version="1.0" encoding="utf-8"?&
&RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" &
&com.baidu.mapapi.map.MapView
android:id="@+id/mapView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true" /&
&/RelativeLayout&
* 演示poi搜索功能
public class PoiSearchDemo extends Activity {
/** 百度地图 */
private MapView mapV
/** 定义 BaiduMap 地图对象的操作方法与接口 */
private BaiduMap baiduM
private PoiSearch poiS
/** 搜索关键词 */
private final String keyword = "餐厅";
/** 每页容量50 */
private final int pageCapacity = 50;
/** 第一页 */
private final int pageNum = 0;
/** 搜索半径10km */
private final int radius = 10000;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.map);
initView();
initData();
private void initView() {
mapView = (MapView) findViewById(R.id.mapView);
// 是否显示自带缩放控件
mapView.showZoomControls(false);
private void initData() {
baiduMap = mapView.getMap();
// 初始化搜索模块
poiSearch = PoiSearch.newInstance();
// 注册搜索事件监听
.setOnGetPoiSearchResultListener(new PoiSearchResultListener());
// 搜索该坐标附近的餐厅
poiSearch.searchNearby(new PoiNearbySearchOption().keyword(keyword)
.location(new LatLng(39.6.327764))
.pageCapacity(pageCapacity).pageNum(pageNum).radius(radius));
protected void onPause() {
mapView.onPause();
super.onPause();
protected void onResume() {
mapView.onResume();
super.onResume();
protected void onDestroy() {
// 销毁搜索模块
poiSearch.destroy();
// 关闭定位图层
baiduMap.setMyLocationEnabled(false);
mapView.onDestroy();
super.onDestroy();
private class PoiSearchResultListener implements
OnGetPoiSearchResultListener {
public void onGetPoiDetailResult(PoiDetailResult result) {
if (result.error != SearchResult.ERRORNO.NO_ERROR) {
Toast.makeText(getApplicationContext(),
result.getName() + ": " + result.getAddress(), 0)
public void onGetPoiResult(PoiResult result) {
if ((result == null)
|| (result.error == SearchResult.ERRORNO.RESULT_NOT_FOUND)) {
if (result.error == SearchResult.ERRORNO.NO_ERROR) {
baiduMap.clear();
&span style="background-color: rgb(255, 255, 153);"&MyPoiOverlay overlay = new MyPoiOverlay(baiduMap);&/span&
baiduMap.setOnMarkerClickListener(overlay);
overlay.setData(result);
overlay.addToMap();
// 缩放地图,使所有Overlay都在合适的视野内
overlay.zoomToSpan();
if (result.error == SearchResult.ERRORNO.AMBIGUOUS_KEYWORD) {
&/pre&&pre name="code" class="java"&&span style="white-space:pre"& &/span&private class MyPoiOverlay extends OverlayManager {...}
这里与官方的demo很相似,不同的是MyPoiOverlay这个类
MyPoiOverlay
private class MyPoiOverlay extends OverlayManager {
private PoiResult poiResult =
public MyPoiOverlay(BaiduMap baiduMap) {
super(baiduMap);
public void setData(PoiResult poiResult) {
this.poiResult = poiR
public boolean onMarkerClick(Marker marker) {
if (marker.getExtraInfo() != null) {
int index = marker.getExtraInfo().getInt("index");
PoiInfo poi = poiResult.getAllPoi().get(index);
// 详情搜索
poiSearch.searchPoiDetail((new PoiDetailSearchOption())
.poiUid(poi.uid));
public List&OverlayOptions& getOverlayOptions() {
if ((this.poiResult == null)
|| (this.poiResult.getAllPoi() == null))
ArrayList&OverlayOptions& arrayList = new ArrayList&OverlayOptions&();
for (int i = 1; i & this.poiResult.getAllPoi().size(); i++) {
if (this.poiResult.getAllPoi().get(i).location == null)
// 给marker加上标签
Bundle bundle = new Bundle();
bundle.putInt("index", i);
arrayList.add(new MarkerOptions()
.icon(BitmapDescriptorFactory
.fromBitmap(setNumToIcon(i))).extraInfo(bundle)
.position(this.poiResult.getAllPoi().get(i).location));
return arrayL
* 往图片添加数字
private Bitmap setNumToIcon(int num) {
BitmapDrawable bd = (BitmapDrawable) getResources().getDrawable(
R.drawable.icon_gcoding);
Bitmap bitmap = bd.getBitmap().copy(Bitmap.Config.ARGB_8888, true);
Canvas canvas = new Canvas(bitmap);
Paint paint = new Paint();
paint.setColor(Color.WHITE);
paint.setAntiAlias(true);
int widthX;
int heightY = 0;
if (num & 10) {
paint.setTextSize(30);
widthX = 8;
heightY = 6;
paint.setTextSize(20);
widthX = 11;
canvas.drawText(String.valueOf(num),
((bitmap.getWidth() / 2) - widthX),
((bitmap.getHeight() / 2) + heightY), paint);
思路如下:
这里通过继承OverlayManager这个类,改写了getOverlayOptions()和onMarkerClick()这两个方法
通过官方demo中给出的icon_gconding,在代码中给图片加上数字,达到需要的效果
每次搜索最多只能设置50,另外Bitmap过多会导致OOM。
最后说下,第一次写博客(怎么装成经常写的样子?= =),有什么说的不对的地方请告诉我。
【上篇】【下篇】博客分类:
一:百度地图开发必须要到百度开发平台开发下载相应的库,已经申请百度地图开发,在这个博客里面有详细的说明和演示,(如果不懂得请看此文章)
二:新建项目baidumaplocation.设计main.xml文件这里注意的是MapView控件必须使用来自百度库封装好的com.baidu.mapapi.MapView 。设计代码如下:
&?xml version="1.0" encoding="utf-8"?&
&LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" &
&FrameLayout
android:id="@+id/map_layout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" &
&!-- 百度MapView控件 --&
&com.baidu.mapapi.MapView
android:id="@+id/map_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:apiKey="0Mg_koWoyZUiYLfZxmPfp4LKInB5LqTnagYueaw"
android:clickable="true"
android:enabled="true" /&
&LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="vertical"
android:paddingBottom="105dip" &
&!-- 地址信息显示TextView --&
android:id="@+id/map_bubbleText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/location_tips"
android:gravity="left|center"
android:maxEms="12"
android:paddingLeft="12dip"
android:paddingRight="10dip"
android:text="@string/load_tips"
android:textColor="#cfcfcf"
android:textSize="14sp" /&
&/LinearLayout&
&LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="vertical" &
&!-- 位置指标显示ImageView --&
&ImageView
android:id="@+id/point_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="30dip"
android:src="@drawable/point_start" /&
&/LinearLayout&
&/FrameLayout&
&/LinearLayout&
三:创建覆盖整个地图捕捉触控事件的MyMapOverlay继承Overlay
import android.view.MotionE
import com.baidu.mapapi.GeoP
import com.baidu.mapapi.MapV
import com.baidu.mapapi.O
//覆盖整个地图捕捉触控事件的OverLay
public abstract class MyMapOverlay extends Overlay{
private int point_X;
private int point_Y;
private GeoPoint newP
public MyMapOverlay(int x,int y){
boolean flagMove=
//这里实现根据地图移动时重新获取屏幕中心点的经纬度坐标
public boolean onTouchEvent(MotionEvent event, MapView mapView) {
System.out.println("X-&"+event.getX()+":"+point_X);
System.out.println("Y-&"+event.getY()+":"+point_Y);
if(event.getAction() == MotionEvent.ACTION_DOWN){
changePoint(newPoint,1);
}else if(event.getAction() == MotionEvent.ACTION_UP){
newPoint = mapView.getProjection().fromPixels(point_X,point_Y);
changePoint(newPoint,2);
public abstract void changePoint(GeoPoint newPoint,int type);
四:LocationActivity类继承百度库的MapActivity以及实现LocationListener接口,代码如下:
package com.location.
import java.io.IOE
import java.util.L
import java.util.L
import android.content.I
import android.location.A
import android.location.G
import android.location.L
import android.os.B
import android.os.H
import android.os.M
import android.view.V
import android.view.W
import android.widget.TextV
import com.android.map.MyMapO
import com.baidu.mapapi.BMapM
import com.baidu.mapapi.GeoP
import com.baidu.mapapi.LocationL
import com.baidu.mapapi.MKAddrI
import com.baidu.mapapi.MKBusLineR
import com.baidu.mapapi.MKDrivingRouteR
import com.baidu.mapapi.MKLocationM
import com.baidu.mapapi.MKPoiR
import com.baidu.mapapi.MKS
import com.baidu.mapapi.MKSearchL
import com.baidu.mapapi.MKSuggestionR
import com.baidu.mapapi.MKTransitRouteR
import com.baidu.mapapi.MKWalkingRouteR
import com.baidu.mapapi.MapA
import com.baidu.mapapi.MapC
import com.baidu.mapapi.MapV
import com.baidu.mapapi.O
public class LocationActivity extends MapActivity implements LocationListener {
private MapView mapV
private MapController mMapC
private List&Overlay& mapO
public GeoPoint locP
private MyMapOverlay mO
private TextView desT
private String lost_
private int point_X;
private int point_Y;
public final int MSG_VIEW_LONGPRESS = 10001;
public final int MSG_VIEW_ADDRESSNAME = 10002;
public final int MSG_GONE_ADDRESSNAME = 10003;
private Intent mI
private int mL
private int mL
private BMapManager mapM
private MKLocationManager mLocationManager =
private boolean isLoadAdrr =
private MKSearch mMKS
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);
initMap();
mIntent = getIntent();
mLatitude = mIntent.getIntExtra("latitude", 0);
mLongitude = mIntent.getIntExtra("longitude", 0);
name = mIntent.getStringExtra("name");
mapView = (MapView) findViewById(R.id.map_view);
desText = (TextView) this.findViewById(R.id.map_bubbleText);
lost_tips = getResources().getString(R.string.load_tips);
if (mLatitude != 0 && mLongitude != 0) {
locPoint = new GeoPoint((int) (mLatitude * 1E6),
(int) (mLongitude * 1E6));
desText.setText(name);
mapView.setBuiltInZoomControls(true);
mapView.setClickable(true);
mMapCtrl = mapView.getController();
point_X = this.getWindowManager().getDefaultDisplay().getWidth() / 2;
point_Y = this.getWindowManager().getDefaultDisplay().getHeight() / 2;
mOverlay = new MyMapOverlay(point_X, point_Y) {
public void changePoint(GeoPoint newPoint, int type) {
if (type == 1) {
mHandler.sendEmptyMessage(MSG_GONE_ADDRESSNAME);
locPoint = newP
mHandler.sendEmptyMessage(MSG_VIEW_LONGPRESS);
mapOverlays = mapView.getOverlays();
if (mapOverlays.size() & 0) {
mapOverlays.clear();
mapOverlays.add(mOverlay);
mMapCtrl.setZoom(20);
private void initMap() {
// 初始化MapActivity
mapManager = new BMapManager(getApplication());
// init方法的第一个参数需填入申请的API Key
mapManager.init("C66C759AAE38F5D540", null);
super.initMapActivity(mapManager);
// 实例化搜索地址类
mMKSearch = new MKSearch();
// 初始化搜索地址实例
mMKSearch.init(mapManager, new MySearchListener());
mLocationManager = mapManager.getLocationManager();
// 注册位置更新事件
mLocationManager.requestLocationUpdates(this);
// 使用GPS定位
mLocationManager
.enableProvider((int) MKLocationManager.MK_GPS_PROVIDER);
protected void onResume() {
if (mapManager != null) {
mapManager.start();
super.onResume();
protected void onPause() {
isLoadAdrr =
if (mapManager != null) {
mapManager.stop();
super.onPause();
protected boolean isRouteDisplayed() {
// TODO Auto-generated method stub
* 通过经纬度获取地址
* @param point
private String getLocationAddress(GeoPoint point) {
String add = "";
Geocoder geoCoder = new Geocoder(getBaseContext(), Locale.getDefault());
List&Address& addresses = geoCoder.getFromLocation(
point.getLatitudeE6() / 1E6, point.getLongitudeE6() / 1E6,
Address address = addresses.get(0);
int maxLine = address.getMaxAddressLineIndex();
if (maxLine &= 2) {
add = address.getAddressLine(1) + address.getAddressLine(2);
add = address.getAddressLine(1);
} catch (IOException e) {
e.printStackTrace();
private Handler mHandler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
case MSG_VIEW_LONGPRESS:// 处理长按时间返回位置信息
if (null == locPoint)
mMKSearch.reverseGeocode(locPoint);
desText.setVisibility(View.VISIBLE);
desText.setText(lost_tips);
mMapCtrl.animateTo(locPoint);
mapView.invalidate();
case MSG_VIEW_ADDRESSNAME:
desText.setText((String) msg.obj);
desText.setVisibility(View.VISIBLE);
case MSG_GONE_ADDRESSNAME:
desText.setVisibility(View.GONE);
// 关闭程序也关闭定位
protected void onDestroy() {
if (mapManager != null) {
mapManager.destroy();
mapManager =
super.onDestroy();
* 根据MyLocationOverlay配置的属性确定是否在地图上显示当前位置
protected boolean isLocationDisplayed() {
* 当位置发生变化时触发此方法
* @param location
public void onLocationChanged(Location location) {
if (location != null) {
locPoint = new GeoPoint((int) (location.getLatitude()* 1E6),
(int) (location.getLongitude()* 1E6));
mHandler.sendEmptyMessage(MSG_VIEW_LONGPRESS);
* 内部类实现MKSearchListener接口,用于实现异步搜索服务
* @author liufeng
public class MySearchListener implements MKSearchListener {
* 根据经纬度搜索地址信息结果
* @param result
* @param iError
错误号(0表示正确返回)
public void onGetAddrResult(MKAddrInfo result, int iError) {
if (result == null) {
Message msg = new Message();
msg.what = MSG_VIEW_ADDRESSNAME;
msg.obj = result.strA
mHandler.sendMessage(msg);
* 驾车路线搜索结果
* @param result
* @param iError
错误号(0表示正确返回)
public void onGetDrivingRouteResult(MKDrivingRouteResult result,
int iError) {
* POI搜索结果(范围检索、城市POI检索、周边检索)
* @param result
* @param type
返回结果类型(11,12,21:poi列表 7:城市列表)
* @param iError
错误号(0表示正确返回)
public void onGetPoiResult(MKPoiResult result, int type, int iError) {
* 公交换乘路线搜索结果
* @param result
* @param iError
错误号(0表示正确返回)
public void onGetTransitRouteResult(MKTransitRouteResult result,
int iError) {
* 步行路线搜索结果
* @param result
* @param iError
错误号(0表示正确返回)
public void onGetWalkingRouteResult(MKWalkingRouteResult result,
int iError) {
public void onGetBusDetailResult(MKBusLineResult arg0, int arg1) {
// TODO Auto-generated method stub
public void onGetSuggestionResult(MKSuggestionResult arg0, int arg1) {
// TODO Auto-generated method stub
五:在AndroidManifest.xml住添加相关的访问权限
&!-- 访问网络的权限 --&
&uses-permission android:name="android.permission.INTERNET" /&
&!-- 访问精确位置的权限 --&
&uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /&
&!-- 访问网络状态的权限 --&
&uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /&
&!-- 访问WIFI网络状态的权限 --&
&uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /&
&!-- 改变WIFI网络状态的权限 --&
&uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /&
&!-- 读写存储卡的权限 --&
&uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /&
&!-- 读取电话状态的权限 --&
&uses-permission android:name="android.permission.READ_PHONE_STATE" /&
六:运行结果如下图:
描述: 源码
下载次数: 3783
浏览 155460
4.2以上版本就不能用了 确实用不了了
您好!请问为什么将您代码放我电脑上运行时,报java.nio.bufferunderflowexception错误。请问这是什么原因?该怎么样去解决?
你这个getLocationAddress 方法没有用到,,,为什么点击绿色的之后能够显示位置呢?requestWindowFeature(Window.FEATURE_NO_TITLE);&& 这一句有什么作用getLocationAddress方法确实没有用到,但是这里用的是百度封装好的方法,从MKSearchListener 接口的onGetAddrResult方法获取到位置信息的requestWindowFeature(Window.FEATURE_NO_TITLE);这句是去掉标题栏的
怎样在地图上显示的是你当前所在的位置上面写得很清楚,你要是仔细看就懂了,首先获取到你当前的经纬度,然后根据经纬度来获取GeoPoint对象,得到这个对象后就可以使用百度api中的方法获取或者android中api的办法获取你当前的位置地址,你也可以通过别的办法获取,有时候获取到的位置并不准确这个跟你获取经纬度的方法有关
浏览: 1374200 次
来自: 深圳
google api key v2
新的不能使用
下载下来可以直接运行,也是我想要的
辛苦楼主了
等了一天.终于下载到了
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'}

我要回帖

更多关于 百度地图poi检索 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信