浏览器H5定位即navigator.geolocation,通过IP或者域名的形式,如:http://172.21.3.82:8080 和http://b.cunzhang.com进行访问时,调用navigator.geolocation.getCurrentPosition,打开控制台,你会发现有以下错误信息:

Only secure origins are allowed (see: https://goo.gl/Y0ZkNV).

“只有在安全来源的情况才才被允许”。错误信息里还包含了一个提示链接,我们不妨打开这个

链接https://goo.gl/Y0ZkNV)看看。原来,为了保障用户的安全,Chrome浏览器认为只有安全的

来源才能开启定位服务。那什么样才算是安全的来源呢?在打开链接的页面上有这么一段话:

“Secure origins” are origins that match at least one of the following (scheme, host, port) patterns:(https, *, *)

(wss, *, *)

(*, localhost, *)

(*, 127/8, *)

(*, ::1/128, *)

(file, *, —)

(chrome-extension, *, —)

This list may be incomplete, and may need to be changed. Please discuss!

大概意思是说只有包含上述列表中的scheme、host或者port才会被认为是安全的来源,现在这个列表还不够完整,后续可能还会有变动,有待讨论。

如果需要在域名访问的基础上实现地位位置的定位,那我们只能把http协议升级为https了。

html>

body, html, #allmap {

width: 100%;

height: 100%;

overflow: hidden;

margin: 0;

font-family: "微软雅黑";

}

地图展示

// 百度地图API功能

var map = new BMap.Map("allmap");    // 创建Map实例

var point = new BMap.Point(116.331398, 39.897445);

map.centerAndZoom(point, 30);

map.enableScrollWheelZoom(true);     //开启鼠标滚轮缩放

//添加地图类型控件

map.setCurrentCity("北京");

var geolocation = new BMap.Geolocation();

geolocation.getCurrentPosition(function (r) {

if (this.getStatus() == BMAP_STATUS_SUCCESS) {

var mk = new BMap.Marker(r.point);

map.addOverlay(mk);

map.panTo(r.point);

point = r.point;

console.log(r.point.lng + ',' + r.point.lat);

alert('您的位置:' + r.point.lng + ',' + r.point.lat);

getName(point);

}

else {

alert('failed' + this.getStatus());

}

}, { enableHighAccuracy: true })

function callback(data) {

console.log(data);

console.log('转化后:'+data.points[0].lng + ',' + data.points[0].lat);

alert('您的真实位置:' + data.points[0].lng + ',' + data.points[0].lat);

var newpoint = new BMap.Point(data.points[0].lng, data.points[0].lat);

var mk = new BMap.Marker(newpoint);

map.addOverlay(mk);

map.panTo(newpoint);

getName(newpoint);

}

function getName(point) {

var geoc = new BMap.Geocoder();

geoc.getLocation(point, function (rs) {

var addComp = rs.addressComponents;

console.log(addComp);

alert(addComp.province + ", " + addComp.city + ", " +

addComp.district + ", " + addComp.street + ", " + addComp.streetNumber);

});

}

//浏览器H5定位

if (navigator.geolocation) {

navigator.geolocation.getCurrentPosition(function (position) {

//得到html5定位结果

var x = position.coords.longitude;

var y = position.coords.latitude;

console.log(position.coords);

alert('您的位置:' + x + ',' + y);

//由于html5定位的结果是国际标准gps,所以需要转为百度坐标系,from=1,

to=5

var newpoint = new BMap.Point(x, y);

var convertor = new BMap.Convertor();

var pointArr = [];

pointArr.push(newpoint);

convertor.translate(pointArr, 1, 5, callback)

}, function (e) {

console.log(e);

alert(e.message);

})

} else {

alert("没有定位权限");

}

在https站点下,通过对比我们发现百度api获取的坐标和浏览器H5经过坐标转换获得的坐标是一致的。所以要想在浏览器中通过百度api获取精确的定位,最好把站点升级为https协议。

js百度地图android定位不准,百度地图js定位不准相关推荐

  1. android应用 百度地图,Android学习之百度地图API的应用(一)

    现在的地图API很多,我就从百度地图开始了,为了方面自己以后回顾,我会把所有学到的东西记录下来,下面是学习记录: 要使用百度地图首先得申请一个KEY,可以到这里申请(需要注册一个百度账号),申请完之后 ...

  2. 百度地图 android 圈区域,百度地图自定义选取区域(二)

    选取区域之后,jsAPI提供了一个GeoUtils类来进行判断. html> 行政区域工具 var map = new BMap.Map("container");// 创建 ...

  3. 简单Android手机APP地图,android最简单手机地图APP(只需5分钟)

    android最简单手机地图APP--只有三部分. 第一部分 首先建立一个MapActivity在setContentView(R.layout.activity_map);中创建一个代码如下. [h ...

  4. 百度输入法android+4.8,百度输入法Android v7.6来了 翻译功能上线助力跨国沟通

    本帖最后由 百度输入法小助手 于 2017-8-8 17:50 编辑 随着世界越来越小,各个领域的跨语言交流也愈渐频繁,为了让大家可以更好地与世界各地的人交流.对话,百度输入法Android v7.6 ...

  5. android 百度输入法,Android系统预置百度输入法

    文档说明 本文档以SC806-CN-00为例(msm8909平台,Android 5.1),说明如何预置百度输入法APK,且设置为系统默认输入法. 预置百度输入法APK 先去百度网站下载一个百度输入法 ...

  6. android应用控制百度地图,Android中应用百度地图API开发地图APP实例-显示百度地图...

    场景 效果 在使用百度地图API之前需要先在百度地图开放平台中申请API_KEY 申请API_KEY 登录百度开放平台后找到控制台下的应用管理-创建应用 依次输入应用名,应用类型选择Android S ...

  7. 百度地图android HD版,百度地图HD版

    应用介绍 在这里你无需担心自己会走丢,因为有它,百度地图HD版是款非常不错的导航地图,快速定位你的位置,探索周边美食娱乐. 不但可以找位置,还能帮你"到那去",公交.驾车.步行三种 ...

  8. 百度地图android绘图类,百度地图绘制点、图形

    目标: 1,指定经纬度,显示一个图片,点击图片能显示相应的介绍信息 2,当前屏幕把所有指定的坐标点都显示出来 预览效果:添加了四个点,红色定位图片表示出来 实现 准备条件: 配置百度地图,只要能fin ...

  9. 百度地图android HD版,百度地图hd版Android版

    百度地图hd版为用户提供一个专业的生活服务软件,专业智能的导航功能,简单方便的操作方法,以及功能多样的生活服务平台,给用户的生活带来无限的便利. 百度地图hd版特色: [最高清卫星图] 支持手势操作, ...

  10. 腾讯地图android,手机腾讯地图

    手机腾讯地图使用帮助 - 安装 1.安装手机腾讯地图软件需要占用多大的存储空间?最好安装在手机上还是安装在存储卡上? 程序安装包会占用大约3MB的存储空间:手机腾讯地图单个城市的数据包大小平均在3M左 ...

最新文章

  1. sdk没有登录什么意思_不需要接入SDK的第三方登录及分享
  2. WORD 排版十技巧
  3. WebX Qamp;A
  4. 打开word或者office程序报错:Microsoft Visual C++ Runtime Library. Runtime Error!
  5. php比较float大小,PHP中两个float(浮点数)比较实例分析
  6. Android listview 中嵌套 listview
  7. SRM 588 D2 L2:GUMIAndSongsDiv2,冷静思考,好的算法简洁明了
  8. C#属性的声明和使用演示源码片段
  9. 学python编程_程序员学Python编程或许不知的十大提升工具
  10. DaSiamRPN、SiamRPN++论文阅读
  11. 利用FILTER特性优化SQL
  12. A survey of network-based intrusion detection data sets翻译二(5-8)
  13. rand()用法总结及注意事项
  14. linux常用命令(2)关机重启 文本编辑器 系统管理 软件安装
  15. python plc fx5u_FX5U系列三菱PLC型号选型一览表
  16. android 设置iptv vlan tag的命令,IPTV+VLAN设置教程
  17. 聊新款Macbook pro
  18. 解决mac BigSur外接显示器发白、发黄、字体发虚 (OpenCore关闭SIP和Read-Only System)
  19. Java + Swing + MySQL实现图书管理系统
  20. 猿创征文|国产数据库[StarRocks]实战学习

热门文章

  1. 函数运行环境系统动态链接库版本太低?函数计算 fun 神助力分忧解难
  2. 赠书 | IoT 的真正目标是什么
  3. AI赋能红外测温助力精准防控疫情……
  4. 2020年进军 AI,想年薪 40 万,没这个能力不行
  5. 360深度实践:Flink与Storm协议级对比
  6. Gartner的预言:通向混合IT之旅
  7. 8 年后重登王座,Python 再度成为 TIOBE 年度编程语言
  8. AI 崛起,科学家的天下,程序员的谢幕
  9. file_get_contents请求失败处理_SpringCloud Gateway网关处理请求过程中遇到400Bad Request问题解决方案...
  10. python pandas csv getitem_Python调用pandas 读csv档时出现了错误