百度地图JavaScript API 学习之浏览器定位

您所在的位置:网站首页 为什么百度地图定位失败 百度地图JavaScript API 学习之浏览器定位

百度地图JavaScript API 学习之浏览器定位

2024-06-02 08:25:11| 来源: 网络整理| 查看: 265

浏览器定位示例

百度地图API官方的所有demo示例——请直戳这里 官方浏览器定位demo示例——请直戳这里

后来发现的问题,这里记录一下: 在使用百度地图JS API时,无意中发现谷歌浏览器的浏览器定位功能不准确,会出现误差,它会将你当前的地理位置定偏了许多。 也不知道是不是当前谷歌浏览器版本的问题,后来又测试了其他的浏览器,定位也出现了同样的问题。 唯独搜狗高速浏览器的定位结果很正常。(具体原因未知)

这个问题在后面的效果图展示中有提及到,注意察看。

代码示例 浏览器定位 html,body,#allmap{ height: 100%; width: 100%; overflow:hidden; margin:0; font-family: "微软雅黑"; } //百度地图API功能 /*命名空间:API使用BMap作为命名空间,所有类均在该命名空间之下。 比如:BMap.Map、BMap.Control、BMap.Overlay。 */ /*Map是地图API的核心类,用来实例化一个地图。 *构造函数:Map(container,opts) 在指定的容器内创建地图实例。 *之后需要调用Map.centerAndZoom()方法对地图进行初始化。未进行初始化的地图将不能进行任何操作。 */ /*centerAndZoom(center,zoom) 初始化地图 *注意: *1.如果center类型为Point时,zoom必须赋值,范围3-19级。 *2.如果center类型为字符串时,比如“北京”,zoom可以忽略,地图将自动根据center适配最佳zoom级别。 */ var map = new BMap.Map("allmap");//创建地图实例 map.centerAndZoom(new BMap.Point(116.404, 39.915),12);//初始化地图:设置中心点坐标和缩放级别 //Geolocation类:返回用户当前的位置。 //此方法利用浏览器的geolocation接口获取用户当前位置,不支持的浏览器将无法获取。 //构造函数:创建Geolocation对象实例 var geolocation = new BMap.Geolocation(); /*Geolocation()构造函数的方法: *getCurrentPosition():该方法会返回用户当前位置。 *getStatus():返回状态码。定位成功后返回的状态码为:BMAP_STATUS_SUCCESS。 * 如果为其他状态码表示不能获取您当前的位置。 */ /*当定位成功时,回调函数的参数为GeolocationResult对象,否则为null。 *GeolocationResult,该类作为Geolocation的getCurrentPosition方法的回调函数参数,不可实例化。 *GeolocationResult类所拥有的属性:point(返回定位成功后的结果,即当前位置的坐标点) **/ geolocation.getCurrentPosition(function(result){ if(this.getStatus() == BMAP_STATUS_SUCCESS){ /*Maker类表示地图上一个图像标注。 *构造函数:Maker(point: Point, opts: MarkerOptions) 创建一个图像标注实例。 *point参数指定了图像标注所在的地理位置;opts为可选参数。 */ var mk = new BMap.Marker(result.point); /*核心类Map的方法: *addOverlay——将覆盖物添加到地图中,一个覆盖物实例只能向地图中添加一次 *panTo——将地图的中心点更改为给定的点。 */ map.addOverlay(mk); map.panTo(result.point); /*Point类表示一个地理坐标点。 *构造函数:Point(lng,lat) 以指定的经度和纬度创建一个地理点坐标。 *该类有两个属性:lng 地理经度 lat 地理纬度 */ alert("您当前所在位置的经度是:" + result.point.lng + ",纬度是:" + result.point.lat); }else{ alert("定位失败!" + this.getStatus()); } }); 效果图展示:

页面初始化后:

这里写图片描述

点击确定按钮之后:

这里写图片描述

当前时间:(今天试了一下浏览器定位,发现竟然和之前测试的位置不一样,目前尚未找到原因) 这里写图片描述

同样是点击确定按钮之后,画面却变了:居然给我定位到了兰州拉面,这偏的有点远了,我也是无话可说了。

这里写图片描述

但是换其他浏览器没有问题,唯独谷歌浏览器出现了这种情况。

在这里记录一下当前所使用的谷歌浏览器的版本:

这里写图片描述

QQ浏览器浏览器定位效果图

这里写图片描述

这里写图片描述

火狐浏览器浏览器定位效果图

这里写图片描述

这里写图片描述

搜狗浏览器浏览器定位效果图

这里写图片描述

这里写图片描述

各大浏览器测试结果

谷歌浏览器、火狐浏览器、QQ浏览器的定位结果一致:您当前所在位置的经度是:121.48789949,纬度是:31.24916171

搜狗浏览器的定位结果不一致:您当前所在位置的经度是:121.18016268001,纬度是:31.166477087954

导致出现这种结果的具体原因未知,目前只能说唯独搜狗浏览器的定位结果是准确的,其他的浏览器都不知道定位到哪里去了。本来是在上海市青浦区,结果定位到了静安区。无语….

希望知道原因的朋友告知我一下,谢谢!

知识点解析 Geolocation类(点击查看) GeolocationResult类(点击查看) PositionOptions类(点击查看) StatusCode类(点击查看)

具体内容如下图所示:

图1: 这里写图片描述

图2: 这里写图片描述

图3:

这里写图片描述

结束语

对于不懂的知识点,我们应该及时去查阅官方的API文档,如果还看不懂,那是因为你没有仔细看过官方的类参考说明,没有好好的研究,实践。除此之外,还可以参考或者借鉴官方的示例DEMO中的写法,刚开始我们就模仿着来写,写得多了就能熟练掌握并且应用了,关键还是在于多尝试,多实践,多思考。如果再看不懂的话,我也无能为力了。

百度地图开放平台——JavaScript API v2.0类参考(不懂就来这里看,没有看不懂的代码,官方的解释已经很详细了)



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭