h5地理定位

这篇具有很好参考价值的文章主要介绍了h5地理定位。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在项目开发中,总免不了做一些定位的功能。特别是在电商的项目中,做地理定位再正常不过了。当然, 说到定位,大家第一反应就是腾讯地图、百度地图、高德地图。不错,其实,我也是用这些。
其实,不管哪个厂家的地图,无外乎都是先拿到当前的经纬度,然后再跟据经纬度做地址解析。当然,最最最最重要的。就是你的协义必须必须是https,记住,是https,https。当然,你也可以不用https,只用http,不过,这样定位是不准确的。(如果用http协议,腾讯地图会定位到当前县/区的中心,而百度地图会定位到当前市市中心)

方法一:腾讯地图定位

最简单而且最粗爆的方法就是在html里面直接引入iframe

<div class="modal-content" style="width:100%; height: 500px">
    <iframe id="mapPage" style="height: 100%; width: 100%" frameborder=0 src="https://apis.map.qq.com/tools/locpicker?search=1&type=1&key=你的key&referer=key的名字"></iframe>
<!--key 和 key的名字在腾讯地图的控制台里有-->
</div>

然后,在页面上就会出来一个地图

h5定位,前端,前端,javascript,html

之后,在js中,写入以下函数

//注意,如果是用jQ写的话,这一段必须被外面一层的$(function(){})里面
//也就是说,下面的那一段函数必须写在$(function(){])里面
//而下面那一串函数的意思就是点击地图上下方的地址列表,它就会相应的定位到那儿
//而同时,也会拿到你当前所点击的地址中相应的一些地理信息
window.addEventListener('message', function (event) {
    // 接收位置信息,用户选择确认位置点后选点组件会触发该事件,回传用户的位置信息
    var loc = event.data;
    if (loc && loc.module == 'locationPicker') {//防止其他应用也会向该页面post信息,需判断module是否为'locationPicker'
        console.log(loc) //这儿拿到的就是经纬度还有一些详细的地址什么的,大家可以打印出来看看就明白了。
        let poiaddress = loc.poiaddress;
        let poiname = loc.poiname;
        //console.log(poiaddress + ' ' + poiname)
        $('#BaoXiuShenQing_XiangXiWeiZhi').val(poiaddress)
        $('#BaoXiuShenQing_XiangXiWeiZhi').css({
            fontSize:'12px'
        })
    }
}, false)

方法二:h5地理定位

然而,在h5中,也提供了一个地理定位的方法。该方法在菜鸟教程那儿也能很容易找到。

该方法的名字是 navigator.geolocation.getCurrentPosition(success,error);里面的参数有两个,一个是定位成功后的返回,另一个是定位失败的返回。

h5Position() {
    return new Promise((resolve, reject) => {
        //resolve({ bol: true, longitude: 116.104904, latitude: 24.277311 })
        if (navigator.geolocation) {
            let params = {
                enableHighAccuracy: true, //表示是否允许使用高精度
                geocode: true //是否解析地址信息。解析的地址信息保存到Position对象的address、addresses属性中
                //详细的参数可以参考 https://blog.csdn.net/weixin_30408739/article/details/99012875
            }
            navigator.geolocation.getCurrentPosition((position) => {
                let longitude = position.coords.longitude //经度
                let latitude = position.coords.latitude //纬度
                resolve({ bol: true, longitude: longitude, latitude: latitude })
            }, (error) => {
                reject({ bol: false, msg: '获取经纬度失败' })
            });
        } else {
            reject({ bol: false, msg: '您的设备不支持卫星定位,请手动选择' })
        }
    })
},
QQMap(longitude, latitude) { //腾讯地图里的经纬度解析实际地址:如 广东省广州市XXX....
    return new Promise((resolve, reject) => {
        let xy = latitude + ',' + longitude
        $.ajax({
            url: 'https://apis.map.qq.com/ws/geocoder/v1/?location=' + xy + '&key=你的key&get_poi=1',
            data: {
                output: 'jsonp' //这个必须得这么写
            },
            dataType: 'jsonp', //这个也一样,必须得这么写
        })
        .done(res => {
            let obj = {
                longitude: longitude,
                latitude: latitude,
                address: res.result.address,
            }
            resolve({ bol: true, xyAddress: obj, all: res })
        })
        .fail(err => {
            reject({ bol: false, msg: '获取地址失败,请手动选择' })
        })
    })
},

那么,这两串代码结合起来的话,就是长这么的样子文章来源地址https://www.toymoban.com/news/detail-613520.html

getAddress(){
    this.h5Position()
    .then(res=>{
        let longitude = res.longitude;
        let latitude = res.latitude;
        return this.QQMap(longitude , latitude)
    })
    .then(res=>{
        //这儿得到的就是腾讯地图中用经纬度解析到的详细地址
        //里面是一个大对象,包含了当前定位的推荐地址和粗操地址
        //同时,也包含了当前定位中的周边地址,类似你打开微信定位里,有周边推荐的门店什么的
        console.log(res);
    })
}

到了这里,关于h5地理定位的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 百度地图采集经纬度坐标数据定位的javascript实战开发(地理坐标拾取系统、地址定位点选插件、实时定位、数据导入、地理编码、位置纠偏)

    在百度地图的标注开发中,最为关键的操作就是经纬度坐标信息的拾取。在不同的应用场景,坐标的拾取方式不同。现就常见的地理坐标拾取系统、地址定位点选插件、手机端GPS实时定位、数据导入、地理编码、位置纠偏等做全面的介绍。 传送门:http://api.map.baidu.com/lbsapi/

    2024年02月01日
    浏览(45)
  • html5学习笔记17-拖放、地理定位、视频、音频......

    拖放 https://www.runoob.com/html/html5-draganddrop.html 地理定位 https://www.runoob.com/html/html5-geolocation.html 视频 https://www.runoob.com/html/html5-video.html 音频 https://www.runoob.com/html/html5-audio.html Input 类型 https://www.runoob.com/html/html5-form-input-types.html 通过input节点的type属性控制交互类型。 type=\\\"text\\\"为文

    2024年02月11日
    浏览(42)
  • 【温故而知新】HTML5拖放/地理定位/浏览器支持

    HTML5是HTML的最新版本,它引入了许多新的元素和功能,以适应现代网页开发的需求。以下是HTML5的一些主要特点: 新增语义元素 :HTML5引入了许多新的语义元素,如 header、footer、article、section 等,这些元素有助于提高网页的结构化和可访问性。 媒体支持 :HTML5引入了 audio 和

    2024年01月17日
    浏览(57)
  • h5(html5)+css3前端笔记二

    一、表格标签 表格的主要作用: 表格主要用于 显示、展示数据 ,因为它可以让数据显示的非常的规整,可读性非常好。特别是后台展示数据的时候,能够熟练运用表格就显得很重要。一个清爽简约的表格能够把繁杂的数据表现得很有条理。 1. table/table 用来定义表格的标签

    2024年02月14日
    浏览(60)
  • 前端全集Ⅰ---- HTML/CSS/JavaScript

    Web:全球广域网,也称万维网,能够通过浏览器访问的网站 Web网站的工作流程:(前后端分离模式) 网页有哪些组成? 文字、图片、视频、音频、超链接 前端代码通过浏览器的解析和渲染变成用户看到的页面,对网页进行解析渲染的部分就是浏览器的内核 Web标准 不同的浏

    2024年02月15日
    浏览(72)
  • 前端 JavaScript 与 HTML 怎么实现交互?

    前端的交互性是通过JavaScript与HTML结合实现的。JavaScript作为一种脚本语言,可以嵌入HTML中,通过对DOM(文档对象模型)的操作,实现与用户的交互。以下将详细介绍前端JavaScript与HTML如何实现交互,包括事件处理、DOM操作、表单交互等方面的内容。 事件是指用户在页面上的动

    2024年01月22日
    浏览(50)
  • 前端三剑客 HTML+CSS+JavaScript ② HTML相关概念

    他们这样形容我 是暴雨浇不灭的火                                                       —— 24.4.18 学习目标         理解                 HTML的概念                 HTML的分类                 HTML的关系                 HTML的语义化         应用

    2024年04月23日
    浏览(55)
  • 前端= 结构(HTML)+ 样式(CSS)+ 行为(JavaScript)

    前端开发确实涵盖了行为(JavaScript)、样式(CSS)和结构(HTML)这三个主要方面。这三个方面在前端开发中密切协作,共同构建用户界面和用户体验。 结构(Structure):HTML 是用于定义页面结构的标记语言。通过使用 HTML 标签,可以创建网页的基本骨架,包括标题、段落、

    2024年02月13日
    浏览(59)
  • 前端基础自学整理|HTML + JavaScript + DOM事件

    目录 一、HTML 1、Html标签 2、Html元素 3、基本的HTML标签 二、CSS 样式 层叠样式表 三、JavaScript 使用示例 四、HTML DOM  通过可编程的对象模型,javaScript可以: window document 1、查找HTML元素 2、操作HTML元素 获取元素的属性 四、HTML DOM事件 ⚠️是DOM提供的API Html是用来描述网页的一

    2024年02月22日
    浏览(47)
  • 前端随笔:HTML/CSS/JavaScript和Vue

    最近因为工作需要,需要接触一些前端的东西。之前虽然大体上了解过 HTML 、 CSS 和 JavaScript ,也知道 HTML 定义了内容、 CSS 定义了样式、 JavaScript 定义了行为,但是却没有详细的学习过前端三件套的细节。而最近的工作中需要使用 Vue ,并且想到未来的工作中使用 Vue 能够更

    2024年02月16日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包