HBuilderX 中开发vue,引入百度地图获取当前ip地址定位

实现功能:使用百度地图获取IP地址,定位到当前位置

参考文档地址:MapVGL | 快速入门

一、在有外网的情况下,常规引入百度地图的方法如下:

1、在index.html中引入

<script src="//api.map.baidu.com/api?v=1.0&type=webgl&ak=你的密钥"></script>

2、引入以后,不需要其它操作即可以直接使用全局BMapGL。然后可以获取ip定位

//获取当前ip经纬度地址(百度地图),并进行定位
        _getIPxy() {
            const self = this
            self.$nextTick(() => {
                var geolocation = new BMapGL.Geolocation();
                geolocation.getCurrentPosition(function (r) {
                    if (this.getStatus() == BMAP_STATUS_SUCCESS) {//注意:这里的tihs不是全局的this
                        //正式代码
                        let locationX = r.longitude
                        let locationY = r.latitude
                        console.log("ip位置", r)
                    } else {
                        console.info('获取当前定位失败' + this.getStatus());
                    }
                });
            })
        },

二、上面方法一引入后BMapGL获取不到可以试试这种,但是需要安装mapvgl

1、安装mapvgl: npm install mapvgl

2、新建一个bMap.js(文件名随意)文件,用来设置你的百度密钥

//ak是你的百度密钥
export function BMPGL(ak) {
    return new Promise(function(resolve, reject) {
      window.init = function() {
        // eslint-disable-next-line
        resolve(BMapGL)
      }
      const script = document.createElement('script')
      script.type = 'text/javascript'
      script.src = `https://api.map.baidu.com/api?v=1.0&type=webgl&ak=${ak}&callback=init`
      script.onerror = reject
      document.head.appendChild(script)
    })
  }

3、在vue中引入bMap.js,并设置ak,然后获取ip定位

import { BMPGL } from "./core/bMap.js";

BMapGL: null,

mapvglAK:"你的百度密钥",

设置百度地图密钥(可以放mounted中)

//初始化百度地图
            _initBMap(){
                const self = this
                BMPGL(self.mapvglAK).then(BMapGL =>{
                    self.BMapGL = BMapGL;
                })
            },

获取ip定位(注意:这里的self.BMapGL是data参数中自己定义的全局变量了,所以这里名称可以自己随意选取了,为了方便代码修改,最好是用BMapGL)

//获取当前ip经纬度地址(百度地图),并进行定位
			_getIPxy() {
				const self = this
				self.$nextTick(() => {
					var geolocation = new self.BMapGL.Geolocation();
					geolocation.getCurrentPosition(function(r) {
						if (this.getStatus() == BMAP_STATUS_SUCCESS) {
							//正式代码
							let locationX = r.longitude
							let locationY = r.latitude
							console.log("ip位置", r)
						} else {
							console.info('获取当前定位失败' + this.getStatus());
						}
					});
				})
			},
			

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

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

相关文章

element问题总结之el-table使用fixed固定列后滚动条滑动到底部或者最右侧的时候错位问题

el-table使用fixed固定列后滚动条滑动到底部或者最右侧的时候错位 效果图前言解决方案纵向滑动滚动条滑动到底部的错位解决横向滚动条滑动到最右侧的错位解决 效果图 前言 在使用el-table固定行的时候移动滚动条会发现移动到底部或者移动到最右侧的时候会出现表头和内容错位或…

在 Flutter App 中使用 GPS 定位

现代手机上&#xff0c;不论是苹果 iPhone 还是安卓 Android&#xff0c;都配备了强大的定位能力。 定位主要通过卫星和地面基站提供的信号&#xff0c;获得不同精度的定位信息。 通过手机的操作系统&#xff0c;可以获取这些定位信息。这是手机操作系统给应用层提供的能力。…

Udio——革命性的AI音乐生成软件

Udio是一款革命性的AI音乐生成软件&#xff0c;由前谷歌DeepMind的顶尖AI研究人员和工程师共同创立&#xff0c;得到著名风险投资公司a16z的支持。它旨在为音乐爱好者和专业人士提供一个全新的音乐创作和分享平台。用户可以通过文本提示来生成音乐&#xff0c;支持广泛的音乐风…

numpy学习笔记(5),其他实用函数

8. 更多函数 8.1 随机数 8.1.1 常用随机数 8.1.1.1 numpy.random.rand(d0, d1, …, dn) 返回[0.0, 1.0)随机浮点数&#xff0c;即大于等于0.0&#xff0c;小于1.0。d0, d1, …, dn&#xff1a;返回的数组形状 # 使用numpy.random.rand函数 import numpy as np np.random.r…

百元内的运动蓝牙耳机哪个牌子好?五大高分品牌实测推荐

在追求健康生活的当下&#xff0c;运动已成为许多人日常生活的一部分&#xff0c;而音乐更是运动时的最佳伴侣&#xff0c;对于预算有限的学生党或普通消费者来说&#xff0c;如何在百元内挑选到一款性能优越、品质可靠的运动蓝牙耳机&#xff0c;确实是个不小的挑战&#xff0…

(六)C++自制植物大战僵尸游戏关卡数据讲解

植物大战僵尸游戏开发教程专栏地址http://t.csdnimg.cn/xjvbb 游戏关卡数据文件定义了游戏中每一个关卡的数据&#xff0c;包括游戏类型、关卡通关奖励的金币数量、僵尸出现的波数、每一波出现僵尸数量、每一波僵尸出现的类型等。根据不同的游戏类型&#xff0c;定义了不同的通…

ATA-214高压放大器用在哪些实验中使用的

高压放大器在科学实验和工程应用中扮演着关键角色。它是一种能够将低电压信号放大到高电压水平的设备。这种放大器通常用于需要处理高电压信号的实验和应用中。以下是高压放大器在各种实验中的应用范围。 粒子物理实验&#xff1a;在粒子物理实验中&#xff0c;科学家使用高压放…

【分享】3种方法取消Word文档的“打开密码”

我们知道&#xff0c;Word文档可以设置“打开密码”&#xff0c;防止文档被随意打开&#xff0c;那后续不需要密码保护了&#xff0c;要怎么取消呢&#xff1f;不小心把密码忘记了还可以取消吗&#xff1f;不清楚的小伙伴一起来看看吧&#xff01; 如果是Word文档不再需要密码…

Python Flask-Security- 构建安全而强大的Web应用

Flask-Security是一个基于Flask的安全扩展&#xff0c;为开发者提供了构建安全且强大的Web应用的工具。本文将深入探讨Flask- Security的核心功能、基本用法以及在实际应用中的一些高级特性&#xff0c;通过丰富的示例代码&#xff0c;助您更全面地了解和应用这一用于Web应用安…

windows的jar包开机自启动【搬代码】

感觉最方便的就是放到启动项目里操作步骤 winR 输入&#xff1a;shell:startup回车或点击确定 3.将自己jar包右键创建快捷方式 4.然后放进去 5.重启电脑&#xff0c;浏览器输入网址&#xff0c;就可以看到重启成功了 另外一个就是放入.exe文件的快捷方式 首先&#xff0c;…

docker安装nessus服务及使用

Nessus 是目前全世界最多人使用的系统漏洞扫描与分析软件&#xff0c;现在软件服务越来越多&#xff0c;越来越复杂&#xff0c;涉及的数据也更多&#xff1b;因此系统完成后对于系统漏洞的检测并对其进行修改十分有必要&#xff0c;本文介绍通过docker安装nessus服务及简单的使…

15 Python进阶: random和pyecharts

Python random 模块主要用于生成随机数。 random 模块实现了各种分布的伪随机数生成器。 要使用 random 函数必须先导入&#xff1a; import randompython random 模块的一般用法 Python中的random模块提供了生成伪随机数的功能&#xff0c;可以用于模拟、游戏开发、密码学…

关于centos8自带的apache2.4开启https后,XP系统的IE8无法显示网页的问题

经检验&#xff0c;是因为系统的apache和openssl版本太高导致的。 禁用系统默认的apache2.4&#xff0c;自己重新源码编译安装一套openssl-1.0.1fapache2.2.23php7.1.2即可。跟update-crypto-policies没有关系&#xff0c;可保持默认的DEFAULT状态。 关于centos8自带的apache2…

多无人机集群协同避障

matlab2020a正常运行 场景1规划结果 场景2规划结果 场景3规划结果 代码地址&#xff1a; 多无人机集群协同避障效果&#xff08;5架&#xff09;资源-CSDN文库

解锁生成式 AI 的力量:a16z 提供的 16 个企业指南

企业构建和采购生成式AI方面的16项改变 生成式 AI 领域趋势洞察&#xff1a;企业构建和采购生成式 AI 的方式正在发生重大转变&#xff0c;具体表现在&#xff1a;* 专注于可信度和安全性&#xff1a;75% 的企业将信任和安全性视为关键因素。* 优先考虑可扩展性和灵活性&#x…

unity shader学习练笔日记(三)

1、单张纹理 Shader "Unity Shaders Study/Day Three/SingleTexture" {Properties{_Color("Colot Tint", Color) (1, 1, 1, 1)//2D是纹理属性的声明方式。以一个字符串后跟一个花括号作为它的初始值&#xff0c;"white"是内置纹理的名字&#…

内网渗透-域环境的搭建

域环境的搭建 文章目录 域环境的搭建前言一、什么是域环境 什么是域内网基础知识点 二、域环境的搭建 1. 部署域结构2.如何加入域3.SRV出错及解决办法4.SRV记录注册不成功的可能原因 禁用域中的账户将计算机退出域添加域用户总结 前言 一、什么是域环境 什么是域 域是一种管…

5.Pytest自动化测试框架(1)

1.Pytest框架 Pytest框架是Python的一种单元测试框架&#xff0c;与Python自带的unittest框架类似&#xff0c;但比unittest框架更简洁&#xff0c;效率更高 2.设置 3.Pytest命名规范 &#xff08;1&#xff09;Pytest测试文件必须以test_开头&#xff0c;或以_test结尾 &am…

普乐蛙VR神州飞船设备VR太空舱体验馆VR博物馆

中国航天式浪漫知多少&#xff1f;千百年来古人对浩瀚宇宙有着无尽的浪漫想象&#xff0c;而在一代又一代中国航天事业奋斗者的努力中&#xff0c;远古神话不再是幻想&#xff0c;它终被照进现实——中国载人飞船“神舟”、中国载人空间站“天宫”、中国绕月人造卫星“嫦娥一号…

经验分享,京东平台如何实现一键下载商品图片

在京东平台&#xff0c;产品图片制作至关重要。精良的图片能瞬间抓住消费者眼球&#xff0c;激发购买兴趣&#xff0c;它是消费者无法触摸实物情况下对商品的第一感知源&#xff0c;高质量的图片配合适当的图文排版&#xff0c;既有利于提升店铺形象&#xff0c;又能通过视觉传…