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):实现上拉加载更多

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

使用DOM4J解析XML时非法字符Exception

最近在做简单的解析XML的工作&#xff0c;我使用的是DOM4J来解析&#xff0c;可以说很方便了&#xff0c;在加上使用XPATH来具体确定XML中特定元素下的位置&#xff0c;更加便捷了 可是在使用XML解析是却遇到了这样的问题&#xff1a; org.xml.sax.SAXParseException: An inval…

2019金球奖——梅西

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

定时任务 Scheduled quartz

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

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

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

Android 打开另一个APP,H5打开APP方法,打开淘宝、京东、天猫、拼多多。需求、商品详情或优惠券页面

1、在待打开的APP注册可被外APP调用的activity <activity android:name".TwoActivity"><intent-filter ><action android:name"android.intent.action.VIEW" /><category android:name"android.intent.category.DEFAULT"/…

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…

网络请求之优化参数添加工具类自定义Map类

导入依赖&#xff1a; implementation com.squareup.okhttp3:okhttp:3.4.1 调用方法&#xff1a; File file new File("");HttpParams params new HttpParams(); params.put("mobile", "22"); params.put("password", 33); params.…

android studio 导入依赖报错——Could not find com.xxx,(# fields: 66338 > 65536)

替换项目build.gradle即可 buildscript {repositories {maven{url https://maven.aliyun.com/repository/google}maven{url https://maven.aliyun.com/repository/jcenter} // maven{url https://maven.aliyun.com/nexus/content/groups/public}maven { url "http…

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 &…

java学习--基础知识阶段性总结--网络编程

网络编程&#xff1a; 端口&#xff1a; 物理端口&#xff1a; 逻辑端口&#xff1a;用于标识进程的逻辑地址&#xff0c;不同进程的标识&#xff1b;有效端口&#xff1a;0~65535&#xff0c;其中0~1024系统使用或保留端口。 java 中ip对象&#xff1a;InetAddress. import ja…

android 加载显示富文本——TextView显示富文本和WebView显示富文本,WebView显示图片适配屏幕宽度

"connectDeviceLedStatus_dcq":"请先确认设备指示灯为 <strong><font color\"#088A01\">绿灯闪烁</font></strong> 状态。", tv_dev_one_tip1.setText(Html.fromHtml(LangComm.getString("feeder_ble_bind_guide_t…

项目集成Spring Security

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