当前位置: 首页 > news >正文

快递、外卖、网购自动定位及模糊检索收/发件地址功能实现

概述

目前快递、外卖、团购、网购等行业 :为了简化用户在收发件地址填写时的体验感,使用辅助定位及模糊地址检索来丰富用户的体验 本次demo分享给大家;让大家理解辅助定位及模糊地址检索的功能实现过程,以及开发出自己理想的作品

详细

概述:

    后台基于 SpringBoot+Fastjson+RestTemplate+BaiduMaP-Api

    前端基于 Html5+Jquery+Css+BaiduMap-SDK

    运行环境 Jdk1.8+Https

    Demo旨在帮助广大猿友们理解地址填写过程中辅助定位功能的实现

实现过程:

1、百度地图sdk 申请应用key(开发版本,免费)

    1.1、需要申请服务端和浏览器端两个key

image.png

    1.2、服务端key需要的权限

   

image.png

        1.3、浏览器端key需要权限

image.png

2、移动端构造地图Canvas 及调用定位sdk 获取经纬度

<script type="text/javascript"        src="//api.map.baidu.com/api?type=webgl&v=1.0&ak=你的key"></script>
<div id='allmap'></div>// 百度地图API功能 初始化
var map = new BMapGL.Map("allmap");
//初始化经纬度
var lng =114.311581;
var lat =30.598466;
var city = "北京";
map.centerAndZoom(new BMapGL.Point(lng, lat), 15); //地图级别1-21
map.enableScrollWheelZoom(true);
var geolocation = new BMapGL.Geolocation();
geolocation.enableSDKLocation();

3、调后台经纬度解析附近地址接口

var getLocationsByLngLat = function (lng, lat) {$.ajax({url: "/resolve/getLocationsByLngLat/" + lng + "/" + lat ,type: "get",dataType: "json",success: function (res) {console.log(res)debugger;if(res != null && res.results != null){city = res.results[0].city;}extracted(res);}});
}

4、调用后台地址检索接口

//地址检索
var getLocationsBySpace = function (space, city) {$.ajax({url: "/resolve/getLocationsByLngLat/" + lng + "/" + lat + "/" + space + "/" + city,type: "get",dataType: "json",success: function (res) {console.log(res)debugger;extracted(res);}});
}

5、样式实现css

ul {padding-left: 5px;border-bottom: 0.5px #CDC9C9 solid;padding-bottom: 3px;
}li {list-style: none;}ul span {display: inline-block;float: right;position: relative;right: 10px;bottom: 22px;
}

6、服务端常量配置

String = ;String = ;String = ;String = ;

7、RestTemplate get请求封装

JSON get(String uri,Map<String,Object> params){(params.isEmpty()){;}StringBuilder sb = StringBuilder();sb.append(uri);sb.append();(String key: params.keySet()){sb.append(key);sb.append();sb.append(params.get(key));sb.append();}.debug(,sb.toString());ResponseEntity<String> res = .getForEntity(sb.toString(),String.);JSON json = JSON.(res.getBody());json;}

8、两个点(经纬度)之间距离计算

String range(lon1, lat1, lon2, lat2) {distance = mathDistance(lon1, lat1, lon2, lat2); System..println(distance);range=;(distance > ) {range = () Math.(distance / ); }(range>&& range <){range+; }(range>=){()Math.(range / )+; }{+;}}

 

9、restfull 风格接口

 

()JSON getLocationsByLngLat(lng, lat) {Map<String, Object> params = generateLngLat(lng, lat);JSONObject res = ;{res = (JSONObject) .get(ParamsConstants., params);JSONArray results = res.getJSONArray();JSONArray results1 = JSONArray();(results.size() > ) {(i = ; i < results.size(); i++) {JSONObject result = generateResult(lng, lat, results, i);results1.add(result);}}res.put(,results1);} (Exception e) {.info(+ e.getMessage());}res;}

项目结构:

image.png

相关文章:

快递、外卖、网购自动定位及模糊检索收/发件地址功能实现

概述 目前快递、外卖、团购、网购等行业 &#xff1a;为了简化用户在收发件地址填写时的体验感&#xff0c;使用辅助定位及模糊地址检索来丰富用户的体验 本次demo分享给大家&#xff1b;让大家理解辅助定位及模糊地址检索的功能实现过程&#xff0c;以及开发出自己理想的作品…...

Springboot后端导入导出excel表

一、依赖添加 操作手册&#xff1a;Hutool — &#x1f36c;A set of tools that keep Java sweet. <!--hutool工具包--><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.7.20</versio…...

通过stream流实现分页、模糊搜索、按列过滤功能

通过stream实现分页、模糊搜索、按列过滤功能 背景逻辑展示示例代码 背景 在有一些数据通过数据库查询出来后&#xff0c;需要经过一定的逻辑处理才进行前端展示&#xff0c;这时候需要在程序中进行相应的分页、模糊搜索、按列过滤了。这些功能通过普通的逻辑处理可能较为繁琐…...

webpack:系统的了解webpack一些核心概念

文章目录 webpack 如何处理应用程序&#xff1f;何为webpack模块chunk&#xff1f;入口(entry)输出(output)loader开发loader 插件(plugin)简介流程插件开发&#xff1a;Tapable类监听(watching)compiler 钩子compilation 钩子compiler和compilation创建自定义 插件 loader和pl…...

Unreal Engine Loop 流程

引擎LOOP 虚幻引擎的启动是怎么一个过程。 之前在分析热更新和加载流程过程中&#xff0c;做了一个图。记录一下&#xff01;&#xff01; ![在这里插入图片描述](https://img-blog.csdnimg.cn/f11f7762f5dd42f9b4dd9b7455fa7a74.png#pic_center 只是记录&#xff0c;以备后用…...

FLASK中的鉴权的插件Flask-HTTPAuth

在 Web 应用中&#xff0c;我们经常需要保护我们的 api&#xff0c;以避免非法访问。比如&#xff0c;只允许登录成功的用户发表评论等。Flask-HTTPAuth 扩展可以很好地对 HTTP 的请求进行认证&#xff0c;不依赖于 Cookie 和 Session。本文主要介绍两种认证的方式&#xff1a;…...

linux万字图文学习进程信号

1. 信号概念 信号是进程之间事件异步通知的一种方式&#xff0c;属于软中断。 1.1 linux中我们常用Ctrlc来杀死一个前台进程 1. Ctrl-C 产生的信号只能发给前台进程。一个命令后面加个&可以放到后台运行,这样Shell不必等待进程结束就可以接受新的命令,启动新的进程。2. S…...

DataX实现Mysql与ElasticSearch(ES)数据同步

文章目录 一、Linux环境要求二、准备工作2.1 Linux安装jdk2.2 linux安装python2.3 下载DataX&#xff1a; 三、DataX压缩包导入&#xff0c;解压缩四、编写同步Job五、执行Job六、定时更新6.1 创建定时任务6.2 提交定时任务6.3 查看定时任务 七、增量更新思路 一、Linux环境要求…...

第二章 进程与线程 十、调度算法1(先来先服务、短作业优先、最高响应比优先)

目录 一、先来先服务算法 1、算法思想 2、算法规则 3、用于作业/进程调度 4、是否可抢占? 5、优缺点 优点&#xff1a; 缺点&#xff1a; 6、是否会导致饥饿 7、例子 二、短作业优先算法 1、算法思想 2、算法规则 3、用于作业/进程调度 4、是否可抢占? 5、优缺…...

windows平台 git bash使用

打开所在需要git管理的目录,鼠标右键open Git BASH here 这样就直接进来,不需要windows dos窗口下麻烦的切路径&#xff0c;windows和linux 路径方向不一致 (\ /) 然后git init 建立本地仓库,接下来就是git相关的操作了. 图形化界面查看 打开所在需要git管理的目录,鼠标右键…...

Linux系统之安装uptime-kuma服务器监控面板

Linux系统之安装uptime-kuma服务器监控面板 一、uptime-kuma介绍1.1 uptime-kuma简介1.2 uptime-kuma特点 二、本次实践环境介绍2.1 环境规划2.2 本次实践介绍2.3 环境要求 三、检查本地环境3.1 检查本地操作系统版本3.2 检查系统内核版本3.3 检查系统是否安装Node.js 四、部署…...

计算机组成原理——基础入门总结(一)

本帖更新一些关于计算机组成原理的重点内容。由于博主考研时并不会考这门课&#xff0c;但是考虑到操作系统中又很多重要晦涩的概念涉及很多诸如内存、存储器、磁盘、cpu乃至各种寄存器的知识&#xff0c;此处挑选一些核心的内容总结复盘一遍——实现声明&#xff1a;本帖的内容…...

批量获取CSDN文章对文章质量分进行检测,有助于优化文章质量

&#x1f4da;目录 ⚙️简介✨分析获取步骤⛳获取文章列表☘️前期准备✨ 接口解析⚡️ 获取文章的接口 ☄️文章质量分接口⭐接口分析 ⌛代码实现&#xff1a;⚓核心代码:⛵测试用例:⛴ 运行效果:☘️增加Excel导出 ✍️结束 ⚙️简介 有时候我们写文章是为了记录当下遇到的bu…...

从一到无穷大 #17 Db2 Event Store,A Purpose-Built IoT Database Engine

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。 本作品 (李兆龙 博文, 由 李兆龙 创作)&#xff0c;由 李兆龙 确认&#xff0c;转载请注明版权。 文章目录 引言Architectural overviewData format and meta-dataEnsuring fast ingestionMulti…...

9月16日,每日信息差

今天是2023年09月16日&#xff0c;以下是为您准备的15条信息差 第一、天猫超市首单“茅小凌”已由菜鸟送达&#xff0c;首单已由菜鸟供应链完成履约&#xff0c;18分钟送达消费者手中 第二、软银考虑对OpenAI进行投资。此外&#xff0c;软银还初步拟收购英国人工智能芯片制造…...

准备篇(二)Python 教程

Part 1 Python 基础语法区分输入与输出注释文本列表if 语句for 语句range() 函数走向编程的第一个例子Part 2 函数 和 数据结构函数数据结构del 语句列表详解元组集合字典循环的技巧Part 3 输入与输出读写文件打开文件 open()读文件写文件...

HTML+CSS画一个卡通中秋月饼

HTMLCSS画一个卡通中秋月饼&#x1f96e;&#x1f96e;&#x1f96e; 中秋活动水个文章 整个divcss实现个月饼&#xff0c;给前端初学者一个练手的demo 效果图 思路 HTMl 先来个轮廓画脸上的东西&#xff1a;眼睛、眉毛、腮红、嘴巴眼睛丰富下瞳孔画20个花瓣 CSS 轮廓是要外…...

echarts的折线图,在点击图例后,提示出现变化,不报错。tooltip的formatter怎么写

在点击图例的年后&#xff0c;提示框会相应的变化&#xff0c;多选和单选都会响应变化。tooptip的重度在formatter tooltip:{show:true,trigger:"axis",alwaysShowContent:true,triggerOn:"mousemove",textStyle:{color:"#fff"},backgroundColor…...

C++中的auto是一个关键字,用于在编译时自动推导变量的类型

C中的auto是一个关键字&#xff0c;用于在编译时自动推导变量的类型。通过使用auto关键字&#xff0c;编译器可以根据变量的初始化表达式来确定其类型&#xff0c;从而省略了显式地指定类型的步骤。 使用auto关键字声明的变量必须在定义时进行初始化&#xff0c;以便编译器可以…...

VUE build:gulp打包:测试、正式环境

目录 项目结构 Gulp VUE使用Gulp Vue安装Gulp Vue定义Gulp.js package.json build文件夹 config文件夹 static-config文件夹 项目结构 Gulp Gulp是一个自动化构建工具&#xff0c;可以帮助前端开发者通过自动化任务来管理工作流程。Gulp使用Node.js的代码编写&#xff…...

RViz实战:如何用C++在ROS中动态切换不同形状的物体(含避坑指南)

RViz实战&#xff1a;如何用C在ROS中动态切换不同形状的物体&#xff08;含避坑指南&#xff09; 在机器人开发过程中&#xff0c;RViz作为ROS生态中的三维可视化利器&#xff0c;其核心价值在于让抽象的数据变得直观可见。而Marker消息系统则是实现这种可视化的关键桥梁——它…...

李慕婉-仙逆-造相Z-Turbo在C语言项目中的集成方案

李慕婉-仙逆-造相Z-Turbo在C语言项目中的集成方案 将AI图像生成能力无缝集成到C语言项目中&#xff0c;为传统应用注入智能创作活力 1. 为什么要在C项目中集成图像生成能力 在当今的软件开发领域&#xff0c;C语言仍然是系统级编程、嵌入式设备和性能敏感应用的首选语言。虽然…...

开发效率翻倍:用快马智能推荐最佳排序算法,告别性能焦虑

今天想和大家分享一个提升开发效率的实用技巧——如何快速找到最适合当前场景的排序算法。作为开发者&#xff0c;我们经常需要处理各种排序需求&#xff0c;但面对不同规模、不同特征的数据集时&#xff0c;如何选择最优算法往往让人头疼。 数据准备阶段 在实际项目中&#xf…...

以太网MAC与PHY接口技术详解

以太网PHY、MAC及其通信接口技术解析1. 以太网接口架构概述1.1 基本组成结构以太网接口电路从硬件角度可分为两大核心组件&#xff1a;MAC控制器&#xff08;Media Access Control&#xff09;&#xff1a;负责数据链路层的媒体访问控制PHY芯片&#xff08;Physical Layer&…...

彻底解决电脑噪音烦恼:FanControl风扇控制软件完全指南

彻底解决电脑噪音烦恼&#xff1a;FanControl风扇控制软件完全指南 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending/f…...

s2-pro快速上手指南:3步完成文本转语音与音色迁移实操手册

s2-pro快速上手指南&#xff1a;3步完成文本转语音与音色迁移实操手册 1. 平台简介 s2-pro是Fish Audio开源的专业级语音合成模型镜像&#xff0c;它能够将文本内容转换为自然流畅的语音&#xff0c;并支持通过参考音频实现音色迁移功能。这意味着你可以上传一段参考音频&…...

AutoConnect:ESP32/ESP8266 运行时 Wi-Fi 配网与 OTA 一体化方案

1. AutoConnect 库深度技术解析&#xff1a;面向嵌入式工程师的 ESP32/ESP8266 运行时 Wi-Fi 配置系统AutoConnect 是一个专为 ESP32 和 ESP8266 平台设计的 Arduino 库&#xff0c;其核心目标是在设备运行时&#xff08;runtime&#xff09;通过 Web 界面完成 Wi-Fi 网络的动态…...

VSCode里藏着的绘图神器:Live Preview搭配Mermaid插件,边写代码边出图真香了

VSCode绘图革命&#xff1a;用Mermaid实现代码与图表无缝协同 在IDE里切换窗口查看流程图的日子该结束了。作为每天与代码打交道的开发者&#xff0c;我们早已厌倦了在Visio、ProcessOn和代码编辑器之间反复横跳的繁琐操作。Mermaid语法配合VSCode的实时预览功能&#xff0c;正…...

一文读懂大模型,彻底告别 AI 焦虑 | 零门槛

今天&#xff0c;不聊复杂代码、不晒专业论文&#xff0c;用最直白的语言&#xff0c;带非技术背景的你彻底读懂大模型&#xff1a;核心逻辑、实用场景、产品选型&#xff0c;以及普通人应对AI浪潮的正确姿势。全文干货密集&#xff0c;建议收藏转发&#xff0c;读完摆脱AI焦虑…...

终极指南:如何在.NET应用中快速集成VLC多媒体播放功能

终极指南&#xff1a;如何在.NET应用中快速集成VLC多媒体播放功能 【免费下载链接】Vlc.DotNet .NET control that hosts the audio/video capabilities of the VLC libraries 项目地址: https://gitcode.com/gh_mirrors/vl/Vlc.DotNet Vlc.DotNet是一个强大的.NET库&am…...