Android 地图搜索商家,检索关键字(高德地图,百度地图),地址搜索

1、高德地图

 

实现效果                                               打印数据

           

 

实现步骤:

1、首先去高德开放平台注册应用


高德开放平台:https://lbs.amap.com/

 

2、点击  我的应用 ——>设置


注:SHA1获取方法:https://blog.csdn.net/meixi_android/article/details/72547966

 

 3、下载SDK:https://lbs.amap.com/api/android-location-sdk/download/


4、添加配置文件


在工程的“ AndroidManifest.xml ”文件添加key和Service

<meta-data android:name="com.amap.api.v2.apikey"
android:value="afe02836f46f2c42f772ea621027e932" />
<service android:name="com.amap.api.location.APSService"></service>

 

5、搜索关键字代码

    /*** 开始进行poi搜索*/protected void doSearchQuery(String key,boolean ifmore) {if (marker!=null&&!ifmore){
//            marker.remove();aMap.clear(true);}if (ifmore){currentPage ++;}else {currentPage=1;}//不输入城市名称有些地方搜索不到// 第一个参数表示搜索字符串,第二个参数表示poi搜索类型,第三个参数表示poi搜索区域(空字符串代表全国)query = new PoiSearch.Query(key, "", "");
//        query = new PoiSearch.Query(key, key, "");// 设置每页最多返回多少条poiitemquery.setPageSize(5);// 设置查询页码query.setPageNum(currentPage);//构造 PoiSearch 对象,并设置监听poiSearch = new PoiSearch(this, query);poiSearch.setOnPoiSearchListener(this);//调用 PoiSearch 的 searchPOIAsyn() 方法发送请求。poiSearch.searchPOIAsyn();}

实现demo:https://download.csdn.net/download/meixi_android/12003113

 

2、百度地图

1、申请AK key

http://lbsyun.baidu.com/

2、配置AK key和service

jniLibs文件配置

sourceSets {main {jniLibs.srcDirs = ['libs']}
}

 

 

3、调用检索关键字方法

private SuggestionSearch mSuggestionSearch;
editText.addTextChangedListener(new TextWatcher() {@Overridepublic void beforeTextChanged(CharSequence s, int start, int count, int after) {}@Overridepublic void onTextChanged(CharSequence s, int start, int before, int count) {}@Overridepublic void afterTextChanged(Editable s) {mSuggestionSearch.requestSuggestion((new SuggestionSearchOption()).keyword(s.toString()).city("东莞市"));}
});

结果:

 

 

实现demo:https://download.csdn.net/download/meixi_android/12076534

 

 

搜索地址 

 

1、实现接口

implements Inputtips.InputtipsListener

2、开始搜索

InputtipsQuery inputquery = new InputtipsQuery(keyWorld, "");
Inputtips inputTips = new Inputtips(SelectAddressActivity.this, inputquery);
inputTips.setInputtipsListener(SelectAddressActivity.this);
inputTips.requestInputtipsAsyn();

3、搜索回调

public static final int REQUEST_SUC = 1000;
@Override
public void onGetInputtips(List<Tip> list, int rCode) {List<SelectAddressBean> data = new ArrayList<>();// 正确返回if (rCode == REQUEST_SUC) {for (int i = 0;i<list.size();i++){SelectAddressBean bean = new SelectAddressBean();LgqLog.e("搜索内容====  "+list.get(i).toString());String allshengshi = list.get(i).getDistrict();String shengs = "";String shis = "";String ares = "";if (allshengshi.contains("黑龙江")) {shengs = "黑龙江省";} else if (allshengshi.contains("内蒙古")) {shengs = "内蒙古自治区";}else if (allshengshi.contains("新疆维吾尔自治区")){shengs ="新疆维吾尔自治区";}else if (allshengshi.contains("西藏自治区")){shengs ="西藏自治区";}else if (allshengshi.contains("广西壮族自治区")){shengs ="广西壮族自治区";} else{if (!TextUtils.isEmpty(allshengshi)) {shengs = allshengshi.substring(0, 3);}}if (!TextUtils.isEmpty(allshengshi)) {String ends = allshengshi.substring(allshengshi.length() - 1, allshengshi.length());if (ends.equals("市")) {shis = getvalue(allshengshi, shengs);} else {if (allshengshi.contains("自治州")) {shis = getvalue(allshengshi, shengs, "州");} else {if (allshengshi.length() > shengs.length()) {if (ends.equals("区")) {shis = getvalue(allshengshi, shengs, "区");if (shis.contains("市")){shis = getvalue(shis,"","市");}} else if (ends.equals("县")) {shis = getvalue(allshengshi, shengs, "县");if (shis.contains("市")){shis = getvalue(shis,"","市");}} else {shis = getvalue(allshengshi, shengs, "市");}}}ares = getvalue(allshengshi, shis);}String namess = list.get(i).getName();String nameendss = namess.substring(namess.length() - 1, namess.length());if (TextUtils.isEmpty(ares)) {if (nameendss.equals("镇") || nameendss.equals("区")) {ares = namess;}}}bean.address = list.get(i).getAddress();bean.province = shengs;bean.city = shis;bean.areas = ares;if (list.get(i).getPoint() != null) {bean.latitude = list.get(i).getPoint().getLatitude();bean.longitude = list.get(i).getPoint().getLongitude();}bean.title = list.get(i).getName();data.add(bean);}mRecyclerView.removeAllViews();mAdapter.setNewData(data);LgqLog.e("搜索内容==33333rrfr==  ");if (mAdapter.getData().size()>0){ShareUtil.sharedPint("youss",1);}else {ShareUtil.sharedPint("youss",0);}} else {Toast.makeText(this, "错误码 :" + rCode, Toast.LENGTH_SHORT).show();}}

4、工具方法

 

    public String getvalue(String alls, String tou, String ends) {String value = "";int startCity = alls.indexOf(tou) + tou.length();int endCity = alls.indexOf(ends, startCity) + 1;
//        int endCity = alls.length();value = alls.substring(startCity, endCity);//获取市return value;}public String getvalue(String alls, String tou) {String value = "";int startCity = alls.indexOf(tou) + tou.length();
//        int endCity = alls.indexOf("ends", startCity);int endCity = alls.length();value = alls.substring(startCity, endCity);//获取市return value;}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/414443.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

全局异常捕获处理-@ControllerAdvice+@HandleException

涂涂影院管理系统这个demo中有个异常管理的标签&#xff0c;用于捕获 涂涂影院APP用户异常信息 &#xff0c;有小伙伴好奇&#xff0c;排除APP&#xff0c;后台端的是如何处理全局异常的&#xff0c;故项目中的实际应用已记之。 关于目前的异常处理 在使用全局异常处理之前&am…

前端学习(2791):实现上拉加载更多

判断页面是否有十条数据 没有 则消失

2019金球奖——梅西

在公元2019年12月3日&#xff0c;梅西加冕金球奖六冠王&#xff0c;今天我是梅西&#xff0c;今天属于梅西&#xff0c;祝贺梅西&#xff01; 王者气质 十全十美 实至名归 六金闪耀 蓦然回首&#xff0c;已是十年信仰

定时任务 Scheduled quartz

在项目应用中往往会用到任务定时器的功能&#xff0c;比如某某时间&#xff0c;或者多少多少秒然后执行某个骚操作等。 spring 支持多种定时任务的实现&#xff0c;其中不乏自身提供的定时器。 接下来介绍一下使用 spring 的定时器和使用 quartz 定时器。 前言 spring 自身提供…

前端学习(2792):下拉刷新

开启下拉刷新 延迟下拉刷新 解决下拉刷新 传递callback有就刷新 无就不刷新

Android 获取短信验证码,自动填充

1、申请权限 <uses-permission android:name"android.permission.RECEIVE_SMS" /> <uses-permission android:name"android.permission.READ_SMS" /> API>23动态申请权限 private static final String[] authBaseArr {//申请类型Manife…

spring-boot-starter-parent

一、你的项目 pom.xml 中有这段代码吗 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.5.RELEASE</version><relativePath/> </parent>idea &…

项目集成Spring Security

前言 之前写的 涂涂影院管理系统 这个 demo 是基于 shiro 来鉴权的&#xff0c;项目前后端分离后&#xff0c;显然集成 Spring Security 更加方便一些&#xff0c;毕竟&#xff0c;都用 Spring 了&#xff0c;权限管理当然 Spring Security. 花了半天时间整理的笔记&#xff0…

android 使用AIDL实现进程间通讯

一、创建服务端 1、首先创建AIDL文件 2、创建service&#xff0c;绑定AIDL接口 3、配置service <service android:name".AidlService"android:enabled"true"android:exported"true"><intent-filter android:priority"1000"&…

大数据入门第二十天——scala入门(二)scala基础02

一、 类、对象、继承、特质 1.类 Scala的类与Java、C的类比起来更简洁 定义&#xff1a; package com.jiangbei //在Scala中&#xff0c;类并不用声明为public。 //Scala源文件中可以包含多个类&#xff0c;所有这些类都具有公有可见性。 class Person {// 定义一个不可变的val…

SpringSecurity 整合 JWT

项目集成Spring Security&#xff08;一&#xff09; 在上一篇基础上继续集成 JWT &#xff0c;实现用户身份验证。 前言 前后端分离项目中&#xff0c;如果直接把 API 接口对外开放&#xff0c;我们知道这样风险是很大的&#xff0c;所以在上一篇中我们引入了 Spring Securit…

Spring Security 认证执行流程

本文基于 Spring Security 5.x 推荐阅读&#xff1a; 项目集成Spring Security SpringSecurity 整合 JWT 一、外层-正常登陆调用 项目启动后会自动寻找 UserDetailsService 实现类&#xff1b; 执行 UserDetailsService 的唯一方法 loadUserByName(String username) 并返回…