小程序 --- 收货地址 --- 定位功能

news2024/12/22 19:04:46

一、整体功能如下图

二、功能点

  • 定位选择自己的位置

  • 手动选择省市县后输入详细地址关键词搜索地址,然后进行选择

三、如何实现

  • 定位

  • 采用小程序API wx.chooseLocation 调出地图选择位置 API wx.chooseLocation 详细说明

  • 根据地址解析出省市县以及详细地址及经纬度

  • 代码实现

chooseLocation(){
        const that = this;
        wx.chooseLocation({
            success:function(res) {
               const address = res.address;
               let regex =  /.+?(省|市|自治区|自治州|县|区)/g;
               const arr = address.match(regex);
               const provinces = arr[0]; //省
               const citys = arr[1]; //市
               const districts = arr[2]; //县
               //除了省市县剩下的地址
               const remain = address.replace(`${provinces}${citys}${districts}`,'');
               //addressData为对象,已在data定义,用于存储省市县及详细地址
               that.addressData.province = provinces; //用于页面展示的省
               that.addressData.city = citys; //用于页面展示的市
               that.addressData.district = districts;//用于页面展示的县
               that.addressData.detail = `${remain}${res.name}`; //用于页面展示的详细地址
               that.latitude = res.latitude;  // 维度
               that.longitude = res.longitude;  //经度
            },
            fail:function(res) {
                console.log(res);
            },
            complete:function(ree) {
                console.log(ree);
                
            }
        })
        
    }
  • 根据输入关键词查询并选择地理位置

  • 使用腾讯位置服务功能 使用参考地址

  • 步骤如下

  • 申请开发者密钥(key):申请密钥

  • 开通webserviceAPI服务:控制台 ->应用管理 -> 我的应用 ->添加key-> 勾选WebServiceAPI -> 保存

  • 下载微信小程序JavaScriptSDK,微信小程序JavaScriptSDK v1.1 JavaScriptSDK v1.2

  • 安全域名设置,在小程序管理后台 -> 开发 -> 开发管理 -> 开发设置 -> “服务器域名” 中设置request合法域名,添加https://apis.map.qq.com

  • 按照步骤操作后具体代码实现如下

    var QQMapWX = require('../../static/qqmap-wx-jssdk.js'); //引入SDK文件
    onLoad() {
        this.qqmapsdk = new QQMapWX({  key: '****你申请得key*****'});
    }
  // isShowDetailAddress 是否展示下拉地址选择框
  // showClearIcon 是否展示清空按钮
  // searchAddressDatas 查询到得地址数组
  // addressData 存储当前页面展示的省市县详细地址
    searchAddress(val) {
        const that = this;
        if(!val.detail.value) {
            that.isShowDetailAddress = false //
            this.showClearIcon  = false;
            that.searchAddressDatas = [];d
            return;
        }
        this.showClearIcon = true;
        //将省市县详细地址进行拼接作为关键词进行地址查询
        const value = `${this.addressData.province}${this.addressData.city}${this.addressData.district}${val.detail.value}` ;
        this.qqmapsdk.search({
           keyword: value,
           success: function (res) {
               that.isShowDetailAddress = res.data.length >0;
               that.searchAddressDatas = res.data;
           },
           fail: function (res) {
               console.log(res);
           },
           complete: function (res) {
               console.log(res);
           },
           });
},
  • 根据关键词搜索地址API search 具体使用方法地址

欢迎各位大佬的建议和纠正

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

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

相关文章

【Linux】-- 进程概念

目录 一、进程概念 二、PCB 1.什么是PCB 2.什么是task_struct 3.task_struct包含内容 三、task_struct内容详解 1.查看进程 (1)通过系统目录查看 (2)通过ps命令查看 (3)通过top命令查看 &…

Mysql自定义变量在递归遍历中的妙用

借着在解决一个递归查询父目录的问题,学习了一下mysql变量的用法,在某些场景下这种解法还是比较有特效的,下面具体来聊一下场景,同时也会详细分析下mysql自定义变量的用法 场景: 获取从树的根节点到叶子节点的全路径&…

图解基于UDS的Flash BootLoader

图解基于UDS的Flash BootLoader一、为什么要搞Bootloader?为什么要基于UDS搞Bootloader二、Bootloader应支持的UDS服务三、Bootloader——三段式(1) 预编程阶段(2) 主编程阶段(3)后编程状态四、BootLoader的启动顺序与转换流程五、问题点疑问点 Q:图中的烧写顺序是…

点云 3D 目标检测 - RangeDet(ICCV 2021)

点云 3D 目标检测 - RangeDet(ICCV 2021)摘要1. 引言2. 相关工作3. 距离视图表示的回顾4. 方法4.1 距离条件金字塔4.2 元核卷积4.3 加权非最大抑制4.4 距离视图中的数据增强4.5 体系结构5. 实验5.1 元核卷积的研究5.2 距离条件金字塔的研究5.3 加权非最大…

基于android的有声听书系统

需求信息: 1:注册登录:未注册用户首先进行账号注册,注册成功后进行登录,已注册用户直接输入账号密码进行登录,登录成功后进入主页面。 2:主页面:通过左右滑动可以实现对推荐界面、订…

Activity7工作流介绍_和BPM语言介绍---工作流工作笔记003

只说经典,重要的部分,节省学习时间,用最快的速度学习掌握 看一个简单审批流程,要知道工作流是基于状态驱动的,就是比如,状态有: 0 已创建 1 已提交 2 已部门经理审核 3 已总经理审核 4 审核通过 5 审核拒绝 根据这些状态来做驱动. 这里需要用到流程引擎,常见的比如有Drools规…

不看后悔,一文入门Go云原生微服务

文章目录打好基础微服务框架对比简单横评各个框架微服务概念软件架构演进史简单理解微服务的好处go-micro概述构成组件Go MicroAPISidecarWebCLIBot总结Go Micro组件架构Registry注册中心Selector负载均衡Broker事件驱动:发布订阅Transport消息传输总结快速入门准备…

使用Java8优化模板方法模式

目录 前言 以前的模板方法 Java 8 的函数式编程 Java 8以后的模板方法 总结 前言 我们在日常开发中,经常会遇到类似的场景:当要做一件事儿的时候,这件事儿的步骤是固定好的,但是每一个步骤的具体实现方式是不一定的。 通…

网络 随笔 2-linux的三种网络模式

0. 前面的科普对操作系统网络的理解还有帮助的 简单点,linux三种网络模式 linux中的三种网络模式 1. bridge 物理网卡使用虚拟网桥作为虚拟交换机的输入物理机以及虚拟网卡接入这个虚拟交换机虚拟网卡与物理网卡处于一个网段下(网关与DNS 一致) 2. NAT 虚拟的N…

删除的文件怎么恢复?误删文件恢复,就使用这些方法!

电脑里面保存着很多文件,为了让电脑更整洁,我们一般都会定期清理不必要的数据。在清理过程中,出现文件被误删,我们该怎么办?误删文件恢复,方法就看下面三个:注册表恢复、回收站恢复、软件恢复。…

一场晚会直播背后的安全攻防

多姿多彩的数字世界中,“直播”扮演了不可或缺的角色。刚刚结束的央视春晚,腾讯和中央广播电视总台一起打造了“竖屏春晚HDR及菁彩声”技术方案,并在“央视频”客户端上线。让广大用户“听”得更沉浸,“看”得更清晰。总台首次使用…

无刷电机驱动器

0.0参考: FOC?看这篇文章就够了 志辉君——【自制FOC驱动器】深入浅出讲解FOC算法与SVPWM技术 SPWM基本原理详解(图文并茂公式推导C程序实现) 1、开源的FOC方案 1、SmipleFOC是比较常见的无刷驱动方案,因为其便宜的制造成本…

高级Spring之Scope 详解

在当前版本的 Spring 和 Spring Boot 程序中,支持五种 Scope singleton,容器启动时创建(未设置延迟),容器关闭时销毁 prototype,每次使用时创建,不会自动销毁,需要调用 DefaultList…

使用Plotly和Python进行交互式数据可视化

使用Plotly和Python进行交互式数据可视化 Python是数据探索和数据分析的好帮手,这都要归功于numpy、pandas、matplotlib等神奇库的支持。在我们的数据探索和数据分析阶段,理解我们正在处理的数据是非常重要的,为此,数据的可视化表…

Swin-Transformer算法解析

本文参考: SwinTransformer:使用shifted window的层级Transformer(ICCV2021)_tzc_fly的博客-CSDN博客 https://zhuanlan.zhihu.com/p/430047908 目录 1 为什么在视觉中使用Transformer 2 Swin-Transformer算法总体架构 3 Swin-Transformer Block详述…

C# 源码 等值线(等高线)云图绘制 ,图上含等高线数值

C# 源码 数据格式为XYZ数据,XY为坐标,Z为对应的值 X Y Z -0.671053 -0.850000 83.330742 -0.671053 -0.850000 85.469604 -0.671053 -0.760526 89.225899 -0.671053 -0.760526 86.994576 -0.671053 -0.760526 86.994576 -0.671053 -0.760526 89.225899 -…

【解读】《云事件响应框架》:云服务用户响应和管理事件首选指南

微信搜索”国际云安全联盟“,回复关键词“云事件”下载本报告 当今互联时代,全面的事件响应策略对于需要管理与降低风险的组织必不可少。然而,在基于云的基础设施和系统的事件响应策略方面,部分由于云的责任共担特性,…

sql的四种连接——左外连接、右外连接、内连接、全连接

一、内连接 满足条件的记录才会出现在结果集中。 二、 左外连接(left outer join,outer可省略) 左表全部出现在结果集中,若右表无对应记录,则相应字段为NULL 举例说明: 客户表: 订单表&#x…

2023年2月系统集成项目管理工程师认证【报名入口】

系统集成项目管理工程师是全国计算机技术与软件专业技术资格(水平)考试(简称软考)项目之一,是由国家人力资源和社会保障部、工业和信息化部共同组织的国家级考试,既属于国家职业资格考试,又是职…

Qt 根据参数 自动生成vs 工程

一,需求 给算法部门提供一套代码框架,让其写算法dll。为了使dll能融入主工程,其框架对格式有一定要求,为了增加算法部门的快发效率,因此开发一个小工具,用于自动生成这套框架。 运行后,只需要…