浏览器定位示例

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

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

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

代码示例

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="initial-scale=1.0,user-scalable=no"><title>浏览器定位</title><style>html,body,#allmap{height: 100%;width: 100%;overflow:hidden;margin:0;font-family: "微软雅黑";}</style><script src="http://api.map.baidu.com/api?v=2.0&ak=3ecea51f560650b1ed8a4b99808f52e8"></script>
</head>
<body><div id="allmap"></div><script>//百度地图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());}});</script>
</body>
</html>

效果图展示:

页面初始化后:

点击确定按钮之后:

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

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

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

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

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

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

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

各大浏览器测试结果

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

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

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

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

知识点解析

Geolocation类(点击查看)

GeolocationResult类(点击查看)

PositionOptions类(点击查看)

StatusCode类(点击查看)

具体内容如下图所示:

图1:

图2:

图3:

结束语

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

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

百度地图JavaScript API 学习之浏览器定位相关推荐

  1. 百度地图JavaScript API 学习之根据IP定位

    IP定位示例 官方浏览器定位demo示例--请直戳这里 代码示例 <!DOCTYPE html> <html lang="en"> <head> ...

  2. 百度地图JavaScript API 学习之地址解析

    获取地图数据之地址解析 首先我们需要知道如何进行地址解析以及有哪些地址解析的方式. 其实,百度地图API给我们提供了2种解析方式:地址解析和逆地址解析. 下面我们来认识一下它们.[官方的介绍地址请点这 ...

  3. 百度地图JavaScript API 学习之添加控件

    创建地图之添加控件 官方demo示例和讲解--直戳这里 这个案例就比较简单了,只需要在地图展示的基础上,添加一些与地图控件相关的代码就行了. 说明: 1.可以使用Map.addControl()方法向 ...

  4. 百度地图JavaScript API 学习之自定义标注图标(一)

    地图绘制之添加自定义标注图标(一) 通过Icon类可实现自定义标注的图标.附上Icon的类参考链接,自行查看 官方提供了两种方法: 通过参数MarkerOptions的icon属性进行设置 使用Mar ...

  5. html5 百度地图api文档,开发指南--百度地图JavaScript API大众版.doc

    开发指南--百度地图JavaScriptAPI大众版开发指南--百度地图JavaScriptAPI大众版 简介 JavaScript API大众版 JavaScript API功能介绍 百度地图Jav ...

  6. 百度地图 JavaScript API

    文章目录 1.账号申请 2.创建应用 3.使用地图 介绍 示例 4.具体使用 控件 个性地图 带高度的点(标记地点.覆盖物) 点击事件 参考资料: 入门百度地图 JavaScript API | 8月 ...

  7. 百度地图JavaScript API GL

    介绍 百度地图JavaScript API GL v1.0是一套由JavaScript语言编写的应用程序接口. 下面通过一个简单的示例,来学习一下快速创建一张"我的地图", 百度地 ...

  8. 百度地图JavaScript API GL 实现车辆轨迹功能

    百度地图JavaScript API GL是百度地图提供的一种基于WebGL技术的地图展示方式.它可以在现代浏览器中以更高效的方式呈现3D地图场景,同时支持自定义图层和动画效果,可以应用于各种地图应用 ...

  9. 百度地图JavaScript API覆盖物旋转时出现偏移

    在项目中,调用百度地图JavaScript API,做覆盖物的旋转再添加到地图上,结果出现偏移了. 调试过程中的效果图: 发现图片的旋转并不是按车子的中心来的,而是之外的一个点.最后发现犯了一个很细节 ...

最新文章

  1. 采集/自动登录啊都可以用这两个方法实现 asp.net
  2. R语言ggplot2可视化绘制线图(line plot)、使用gghighlight包突出高亮满足条件的线图、并保留其它线图的色彩(而不是灰色)自定义非高亮线图的透明度
  3. Hadoop “Unable to load native-hadoop library for y
  4. python 数据库表结构转为类_Python数据科学实践 | 数据库1
  5. String.split()方法你可能不知道的一面
  6. mysql+yes数据类型,怎样修改mysql列的数据类型?
  7. Node.js 应用故障排查手册 —— 雪崩型内存泄漏问题
  8. SQL server中的SELECT查询语句执行顺序
  9. localhost,127.0.0.1,本机IP,三者的区别
  10. 【C++】为什么INT_MIN不是直接写成-2147483648(转载)
  11. Python学习【第二篇】 : Python入门
  12. R 梯度提升算法①
  13. 栈溢出脚本_污点分析挖掘漏洞演示——如何在8小时内从零发现cve20120158(word溢出漏洞)...
  14. 运动轨迹 php,两种JS实现小球抛物线轨迹运动的方法
  15. Android studio最新版2021安装教程超详细。
  16. 基于Vue JS, Webpack 以及Material Design的渐进式web应用 [Part 1]
  17. React Native version mismatch
  18. 手机壁纸网站源码 带全自动采集 响应式手机电脑端模板
  19. 建立个人的腾讯云服务器
  20. 没有参加职工养保不要紧,城乡居民基本养老保险了解一下~

热门文章

  1. 大学计算机专业课程主体知识层,《计算机程序设计基础》论文,关于《计算机程序设计基础》课程中深层学习教学策略的实践相关参考文献资料-免费论文范文...
  2. STM32——GPIO
  3. 用windbg寻找设备树根节点
  4. 如何运用项目管理思维制定工作计划?
  5. 课程项目——个人总结
  6. 读小王子系列2《风沙星辰》有感
  7. 如何快速高效的训练ResNet,各种奇技淫巧(二):Mini-batch
  8. android自定义设置界面,Android开发之精仿QQ设置界面(自定义PreferenceActivity)
  9. 火焰焰心matlab,[转载]酒精灯火焰的温度真的是外焰最高吗?
  10. Android 时间城市——选择器