2024-06-24 百度地图的使用及gps定位坐标获取

1.百度地图的使用教程

2. 定位功能的实现

第一种:通过h5自带定位获取当前gps坐标

        var options = {
          enableHighAccuracy: true,
          timeout: 5000,
          maximumAge: 0
        };
        
        function success(pos) {
          var crd = pos.coords;
          alert(crd.latitude+'---'+crd.longitude+'---'+crd.accuracy);
          console.log(`经度:${crd.latitude}`);
          console.log(`纬度:${crd.longitude}`);
          console.log(`误差:${crd.accuracy} 米`);
        }
        
        function error(err) {
          console.log(err);
          alert(err);
          console.warn(`ERROR(${err.code}): ${err.message}`);
        }
        
        navigator.geolocation.getCurrentPosition(success, error, options);

第二种:通过野生接口获取(不推荐)
因为如果平时用着玩没问题,一旦部署会引起跨域问题,需要后端或平台将接口添加白名单,另外的缺点是不稳定

    request({
      url: 'http://ipwho.is/', // 野生gps定位接口
      method: 'get',
    }).then(res => {
      this.CountryOptions.forEach((item, index) => {
        if (item.remark) {
          let remark = JSON.parse(item.remark);
          if (remark.en_code_short == res.country_code) {
            this.countryName = remark.cn_name_short;
          }
        }

      })
      this.locations.lat = res.latitude;
      this.locations.lng = res.longitude
    })

第三种:通过平台提供的位置定位api(需要鉴权)
本项目为移动端项目,发布到welink平台中进行测试,本次定位使用了平台提供的api,由于定位获取需要用户手动给权限,所以需要做鉴权处理,使用方式详见官方手册。
API:HWH5.getLocation - welink使用手册

//地图加载
    handler({
      BMap,
      map
    }) {
      this.BMap = BMap
      this.map = map
      this.center = ''
      this.zoom = 15;
      
      const formData = new FormData(); // formData 格式参数
      formData.append('url', window.location.href);

      JSAPI(formData).then(response =>{  // 请求后台接口 获取鉴权信息
      
        // 进行鉴权
        HWH5.config({
          appId: response.data.appId, // 应用的client_id
          timestamp: response.data.timestamp, // 与生成签名一致的时间戳,精确到秒十位
          noncestr: response.data.noncestr, // 服务端使用的随机串
          signature: response.data.signature, // 签名信息
          jsApiList: ['getLocation']
        })

        /* 如果鉴权成功,会执行ready方法,把需要在页面加载时调用的相关接口放在ready中确保执行。
        需要用户触发时才调用的接口,则直接调用,不需要放在ready函数中。*/
        HWH5.ready(() => {
          console.log('鉴权成功---');
          HWH5.getLocation({ type: 1 }).then(res => {
            console.log(res,'getLocationgetLocation');
	
			// 处理数据
            this.CountryOptions.forEach((item, index) => {
              if (item.remark != undefined) {
                if (JSON.parse(item.remark).cn_name_short == res.country) {
                  this.countryName = item.dictLabel;
                  this.countryCode = JSON.parse(item.remark).en_code_short
                }
              }
            })

            this.lat = res.latitude;
            this.lng = res.longitude;
            this.locations.lng = this.lng;
            this.locations.lat = this.lat;
			
			// 定点
            const BMapGL = this.BMap
            this.point = new BMapGL.Point(this.locations.lng, this.locations.lat)
            const marker = new BMapGL.Marker(this.point)
            map.addOverlay(marker)
            const geoc = new BMapGL.Geocoder()
            console.log(this.point, 300);
            geoc.getLocation(this.point, (rs) => {
              const addressComp = rs.addressComponents
              this.Address = addressComp.province + addressComp.city + addressComp.district +
                addressComp.street + addressComp.streetNumber;
              console.log(rs, 909);
            })

          }).catch(error => {
            console.log('获取位置信息异常', error);
          });
        });

        // 如果鉴权失败,则调用error方法
        HWH5.error(err => {
          console.log('鉴权失败---', err);
        });
      })
    },

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

eNSP中静态NAT和动态NAT的配置和使用

一、静态NAT 1.拓扑图 a.新建拓扑图 b.PC端配置 PC1: PC2&#xff1a; c.路由器配置 AR1: <Huawei>system-view [Huawei]sysname R1 [R1]interface GigabitEthernet 0/0/0 [R1-GigabitEthernet0/0/0]ip address 192.168.1.254 24 [R1-GigabitEthernet0/0/0]quit…

Arduino 旋转编码器

Arduino 旋转编码器 电位计 Arduino - Rotary Encoder In this tutorial, we are going to learn how to use the incremental encoder with Arduino. In detail, we will learn: 在本教程中&#xff0c;我们将学习如何将增量编码器与Arduino一起使用。详细来说&#xff0c;…

Maven笔记(更新中)

一、Maven简介 Maven是一款为Java项目构建,依赖管理的工具(软件),使用Maven可以自动化构建,测试,打包和发布项目,大大提高了开发效率和质量 Maven主要作用理解 依赖管理 Maven可以管理项目的依赖,包括自动下载所需依赖库,自动下载依赖所需的依赖并且保证版本没有冲突,依赖版…

Golang | Leetcode Golang题解之第173题二叉搜索树迭代器

题目&#xff1a; 题解&#xff1a; type BSTIterator struct {stack []*TreeNodecur *TreeNode }func Constructor(root *TreeNode) BSTIterator {return BSTIterator{cur: root} }func (it *BSTIterator) Next() int {for node : it.cur; node ! nil; node node.Left {it…

2024上海初中生古诗文大会倒计时4个月:单选题真题示例和独家解析

现在距离2024年初中生古诗文大会还有4个多月时间&#xff0c;我们继续来看10道选择题真题和详细解析&#xff0c;以下题目截取自我独家制作的在线真题集&#xff0c;都是来自于历届真题&#xff0c;去重、合并后&#xff0c;每道题都有参考答案和解析。 为帮助孩子自测和练习&…

全自动搭建定制化深度学习模型

EasyDL 服务自动化生成与部署 EasyDL 定制化训练和服务平台基于百度业界领先算法&#xff0c;旨在为用户量身定制业务专属 AI 模型。通过灵活的配置&#xff0c;用户可以将模型发布为公有云 API、设备端离线 SDK、本地服务器部署包、软硬一体方案等多种输出方式的 AI 服务。目…

SHAP中使用shap.summary_plot对多分类任务模型中特征重要性绘图

在文心一言中输入&#xff1a; 使用shap.summary_plot展示各个特征对模型输出类别的重要性 其输出的代码为&#xff08;不正确&#xff09;&#xff1a; from sklearn import datasets from sklearn.model_selection import train_test_split from sklearn import svm import …

Iot解决方案开发的体系结构模式和技术

前言 Foreword 计算机技术起源于20世纪40年代&#xff0c;最初专注于数学问题的基本原理&#xff1b;到了60年代和70年代&#xff0c;它以符号系统为中心&#xff0c;该领域首先开始面临复杂性问题&#xff1b;到80年代&#xff0c;随着个人计算的兴起和人机交互的问题&#x…

利用Java easyExcel库实现高效Excel数据处理

在Java应用程序中&#xff0c;处理Excel文件是一项常见任务&#xff0c;尤其是在需要读取、写入或分析大量数据时。easyExcel是一个基于Java的高性能Excel处理库&#xff0c;它提供了简洁的API和优化的性能&#xff0c;以简化Excel文件的处理。本文将指导您如何使用easyExcel库…

亚马逊卖家为何需要自养账号?揭秘背后的原因

亚马逊是一家极为重视用户体验的国际电商平台&#xff0c;因此用户的评论和星级评价对店铺排名影响深远。平台审核评论非常严格&#xff0c;这些评价直接影响商品在平台上的生存和发展。 在亚马逊上&#xff0c;用户的评分和评论对商品的成功至关重要。好评多的商品通常被认为优…

项目管理的六个核心内容

项目管理是一个系统性和综合性的过程&#xff0c;涉及多个核心内容的协同管理&#xff0c;以确保项目能够按时、按预算、高质量的完成&#xff0c;以下是项目管理的六个核心内容&#xff1a; 一、项目目标与范围 项目目标与范围是项目管理的起点和基础&#xff0c;在项目启动…

【鸿蒙】ArkTS语言

HarmonyOS 应⽤的主要开发语⾔是 ArkTS&#xff0c;它由 TypeScript&#xff08;简称TS&#xff09;扩展⽽来&#xff0c;在继承 TypeScript语法的基础上进⾏了⼀系列优化&#xff0c;使开发者能够以更简洁、更⾃然的⽅式开发应⽤。 值得注意的是&#xff0c;TypeScript 本身也…

SecureCRT使用方法(非常简单)!!!

一、简单了解 SecureCRT是一款功能强大的终端仿真软件&#xff0c;广泛用于远程访问和管理服务器。它提供了丰富的功能和安全性&#xff0c;使得远程连接更加简单、高效和可靠。 SecureFX 可以提供安全文件传输。主要用于Linux操作系统客户端文件传输程序&#xff0c;该客户端…

如果一个云服务提供商没有通过等保2.0认证,客户有哪些风险?

如果一个云服务提供商没有通过等保2.0&#xff08;信息安全等级保护2.0&#xff09;认证&#xff0c;其客户可能会面临以下几类风险&#xff1a; 1. 安全隐患增加&#xff1a;等保2.0是对信息系统安全保护的一种国家标准&#xff0c;未通过认证可能意味着云服务提供商在安全技…

基于PHP+MySQL组合开发的在线客服小程序源码系统 带完整的安装代码包以及搭建教程

系统概述 源码系统是专门为满足企业在线客服需求而设计的&#xff0c;它集成了多种功能&#xff0c;能够帮助企业实现与用户的实时沟通、问题解答、信息反馈等。通过该系统&#xff0c;企业可以更好地了解用户需求&#xff0c;提升用户体验&#xff0c;增强用户对企业的信任感…

ROS动态参数调节

一、原因 在ROS系统中,需要我们经常去修改参数的数值,传统的静态参数传递办法很难满足需求,需要我们进行动态参数调整。 二、步骤 新建ROS工作空间 mkdir turtle_traning/src -pcd src 在src在里面新建一个功能包parameter_set catkin_create_pkg parameter_set roscpp …

2024年6月上半月30篇大语言模型的论文推荐

大语言模型&#xff08;LLMs&#xff09;在近年来取得了快速发展。本文总结了2024年6月上半月发布的一些最重要的LLM论文&#xff0c;可以让你及时了解最新进展。 LLM进展与基准测试 1、WildBench: Benchmarking LLMs with Challenging Tasks from Real Users in the Wild Wi…

C#快速开发OPCUA服务器

为方便演示&#xff0c;此时创建一个控制台应用程序。第三方dll(C编写的库opcsrv.dll&#xff0c;他人实现)。 拷贝dll到运行目录下&#xff1a; 拷贝二次封装后的文件到项目目录下&#xff1a; 第一步&#xff1a;创建OpcUa服务器 //第一步&#xff1a;创建OpcUa服务器 OPCSr…

八、yolov8模型预测和模型导出(目标检测)

模型查看 模型预测 模型导出 模型训练完成后&#xff0c;找到训练文件生成文件夹&#xff0c;里面包含wights、过程图、曲线图。 模型预测 1、在以下文件夹中放入需要预测的图&#xff1b; 2、找到detect文件下的predict.py文件&#xff0c;修改以下内容。 3、右键点击…

外贸独立站应该如何做谷歌SEO外链?

通过高低搭配的外链组合来安全建设外链结构&#xff0c;实现外链建设效果最大化 所谓高低搭配的外链组合&#xff0c;就是GPB&#xff0c;GNB&#xff0c;GMB三种外链的搭配组合&#xff0c;GPB独立站外链&#xff0c;高低搭配组合的最高位外链&#xff0c;这种外链拥有相关的…