百度地图搜索返回地址中经纬度为null

本文介绍了一种解决百度地图SDK在搜索地址时点击结果导致应用崩溃的问题。通过检查搜索结果中的经纬度是否为空来避免崩溃,并给出了具体的实现代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近开发遇见bug,在搜索框中输入相应的关键词,在搜索框下面会自动联想相应的地址,然后点击某一项进行导航。但在测试时点击相应的结果,应用崩溃,查找日志发现点击的地址经纬度为null。

一般百度地图提供地址搜索相应的api,其流程如下:

1初始化搜索

SuggestionSearchmSuggestionSearch = SuggestionSearch.newInstance();

2.注册搜索监听

mSuggestionSearch.setOnGetSuggestionResultListener(this);

 @Override

   public void onGetSuggestionResult(SuggestionResult res) {

        if (res == null || res.getAllSuggestions() == null) {

            return;

        }

        if(!TextUtils.isEmpty(mSearchEdit.getText().toString().trim())){

              mSearchInfo = res.getAllSuggestions();

              mSearchAdapter.updateSearchResults(mSearchInfo);

              mSearchAdapter.notifyDataSetChanged();

        }

    }

3.搜索对应地址

mSuggestionSearch.requestSuggestion(newSuggestionSearchOption().keyword(newText).city(mCity));

注意:搜索过程中必须要有相应的城市

解决方法:

返回的结果中判断地址结果中是否有经纬度,没有则不添加到搜索列表中去

 @Override

 public void onGetSuggestionResult(SuggestionResult res) {

        if (res == null || res.getAllSuggestions() == null) {

            return;

        }

        if(!TextUtils.isEmpty(mSearchEdit.getText().toString().trim())){

            for(SuggestionInfo info :res.getAllSuggestions()) {

              if(info.pt!=null) {

                  mSearchInfo.add(info);

              }

          }

          mSearchAdapter.updateSearchResults(mSearchInfo);

          mSearchAdapter.notifyDataSetChanged();

        }

    }

注意:此时的mSearchInfo一定要进行初始化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值