利用百度地图显示搜索的结果小图标和文字信息

如图所示,这个界面的效果图是:

其实就是搜索框输入要搜索的内容,然后返回相应的位置信息,然后作为marker标记在地图上就好了,下面详细介绍实现的代码:

搜索的实现代码:

private void search() {
        if (TextUtils.isEmpty(serchEt.getText())){
            ToastUtils.showToast(context,"请输入要搜索的地址");
            return;
        }
//        mPoiSearch.searchInCity((new PoiCitySearchOption()).city(city).keyword(serchEt.getText().toString()).pageCapacity(50));
        mPoiSearch.searchNearby((new PoiNearbySearchOption()).location(position).keyword(serchEt.getText().toString()).radius(20000).pageCapacity(50));
    }

    OnGetPoiSearchResultListener poiListener = new OnGetPoiSearchResultListener(){

        public void onGetPoiResult(PoiResult result){
            //获取POI检索结果
            poiList = result.getAllPoi();
            if (poiList==null){
                ToastUtils.showToast("未找到相关地址");
                return;
            }
            Log.e(TAG," result size==>" +poiList.size());
            if (poiList!=null && poiList.size()>0) {
               //TODO
                addMark();
            } else {
               ToastUtils.showToast("没有搜索到有用的结果");
            }
        }

        @Override
        public void onGetPoiDetailResult(PoiDetailResult poiDetailResult) {

        }

        @Override
        public void onGetPoiDetailResult(PoiDetailSearchResult poiDetailSearchResult) {

        }

        @Override
        public void onGetPoiIndoorResult(PoiIndoorResult poiIndoorResult) {

        }
    };

实现在地图页画点的方法如下:

private void addMark() {
        for (int i = 0; i < poiList.size(); i++) {
            //定义Maker坐标点
            LatLng point = poiList.get(i).getLocation();
//构建Marker图标
            BitmapDescriptor bitmap = BitmapDescriptorFactory
                    .fromResource(R.mipmap.map_shop_ic);
//构建MarkerOption,用于在地图上添加Marker
            OverlayOptions option = new MarkerOptions()
                    .position(point)
                    .icon(bitmap);
//在地图上添加Marker,并显示
            mBaiduMap.addOverlay(option);

                //在地图上添加该文字对象并显示
                OverlayOptions textOption = new TextOptions()
                        .bgColor(0xFFFFFFFF)
                        .fontSize(28)
                        .fontColor(0xFF828282)
                        .text(poiList.get(i).getName())
                        .rotate(0)
                        .position(point);
                mBaiduMap.addOverlay(textOption);

        }
    }

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值