原文连接:

https://blog.csdn.net/michael_ouyang/article/details/54378338

--------------------------------------------------------------------

在上一篇文章,解决ios 10不能定位的问题,把navigator.geolocation.getCurrentPosition 改成使用第三方api进行定位

http://blog.csdn.net/michael_ouyang/article/details/54137709

本文继续讲述原生webkit内核的navigator.geolocation.getCurrentPosition获取到的坐标信息,并且如何解密。为什么要解密,原因下面会进行讲解!

首先讲解一下navigator.geolocation.getCurrentPosition的使用方法:

 
  1. /**

  2. * @param geolocationSuccess 定位成功的回调函数

  3. * @param geolocationError 定位失败的回调函数

  4. * @param [geolocationOptions]设置对象

  5. */

  6. navigator.geolocation.getCurrentPosition(geolocationSuccess, geolocationError, [geolocationOptions]);

简单的使用示例:

 
  1. // 定位成功的回调函数

  2. var onSuccess = function(position) {

  3. alert('Latitude: ' + position.coords.latitude + '\n' +

  4. 'Longitude: ' + position.coords.longitude + '\n' +

  5. 'Altitude: ' + position.coords.altitude + '\n' +

  6. 'Accuracy: ' + position.coords.accuracy + '\n' +

  7. 'Altitude Accuracy: ' + position.coords.altitudeAccuracy + '\n' +

  8. 'Heading: ' + position.coords.heading + '\n' +

  9. 'Speed: ' + position.coords.speed + '\n' +

  10. 'Timestamp: ' + position.timestamp + '\n');

  11. };

  12. // 定位失败的回调函数

  13. function onError(error) {

  14. alert('code: ' + error.code + '\n' + 'message: ' + error.message + '\n');

  15. }

  16. navigator.geolocation.getCurrentPosition(onSuccess, onError);

为什么获取到了坐标了还需要解密?

百度api对此进行了解释,链接:http://lbsyun.baidu.com/index.php?title=open/question

那么说明了一点:坐标都是经过加密处理的

如果直接使用navigator.geolocation.getCurrentPosition获取到的坐标信息,是加密的坐标信息,直接使用的话,会明显出现偏差,偏差范围大概在几公里左右!!!那么跟没定位有什么区别╮(╯_╰)╭

这里使用百度的api进行解密:

 
  1. /**

  2. * 真实经纬度转成百度坐标

  3. * @param gpsPoint 传入百度BMap对象

  4. * @param 0 0:代表GPS

  5. * @param translateCallback 真实坐标转换成百度坐标的回调函数

  6. */

  7. BMap.Convertor.translate(gpsPoint,0, translateCallback);

完整示例:

●注意:使用百度地图api,首要需要到百度api官网申请百度地图密钥

附申请方法:http://jingyan.baidu.com/article/363872eccda8286e4aa16f4e.html

1、在页面引入js

HTML:

 
  1. <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=6yAoynmTPNlTBa8z1X4LfwGE"></script>

  2. <script type="text/javascript" src="http://developer.baidu.com/map/jsdemo/demo/convertor.js"></script>

2、这里已经已经封装好成函数,使用可以直接复制

js:

 
  1. function getlocation() {

  2. if (window.navigator.geolocation) {

  3. //设置参数

  4. var options = {

  5. enableHighAccuracy: true,

  6. timeout: 10000,

  7. };

  8. window.navigator.geolocation.getCurrentPosition(handleSuccess, handleError, options);

  9. } else {

  10. //alert("无法获取地理位置信息");

  11. }

  12. }

  13. /**

  14. * 执行window.navigator.geolocation.getCurrentPosition()函数后成功的回调

  15. * @param position 返回一个真实坐标对象position

  16. */

  17. function handleSuccess(position){

  18. var lng = position.coords.longitude; //经度

  19. var lat = position.coords.latitude; //纬度

  20. //通过百度地图api对象封装真实的经纬度

  21. var gpsPoint = new BMap.Point(lng,lat);

  22. / **

  23. * 真实坐标转换成百度坐标的回调函数

  24. * 通过百度坐标得到地址描述

  25. * @param point 回调百度坐标对象point

  26. */

  27. translateCallback = function (point){

  28. var myGeo = new BMap.Geocoder();

  29. // 根据百度坐标得到地址描述

  30. myGeo.getLocation(new BMap.Point(point.lng,point.lat), function(result){

  31. if (result){

  32. // PS:改成你需要执行的函数

  33. alert(result.address);

  34. }

  35. else{

  36. // PS:改成你需要执行的函数

  37. alert("定位失败,请重新定位");

  38. }

  39. });

  40. }

  41. setTimeout(function(){

  42. /**

  43. * 真实经纬度转成百度坐标

  44. * @param gpsPoint 传入百度BMap对象

  45. * @param 0 0:代表GPS,也可以是2:google坐标

  46. * @param translateCallback 真实坐标转换成百度坐标的回调函数

  47. */

  48. BMap.Convertor.translate(gpsPoint,0, translateCallback);

  49. }, 2000);

  50. }

  51. /* 失败的回调 */

  52. function handleError(error){

  53. // PS:改成你需要执行的函数

  54. alert("获取位置信息失败,请重新定位");

  55. }

ios如何获取gps坐标(定位第二节)相关推荐

  1. Android获取GPS网络定位经纬度信息

    定位一般分为是:GPS定位,WIFI定位,基站定位 和 AGPS定位 GPS定位 GPS定位需要手机GPS模块硬件支持.GPS走的是卫星通信的通道,在没有网络连接的情况下也能使用,并且通过GPS方式准 ...

  2. html5获取gps坐标,html5获取手机GPS信息的示例代码

    html5获取手机GPS信息的示例代码function getLocation() { if (navigator.geolocation) { navigator.geolocation.getCu ...

  3. Android 高德地图key获取、坐标定位

    前期准备 点击进入高德平台获取key **步骤一:**登录注册进入控制台 步骤二: **步骤三:**获取sha1值,以及其包名. **步骤四:**获取sha1值 步骤五:复制获取到key值 到这前期工 ...

  4. 移动端web实现定位(获取GPS)

    获取GPS坐标 <script type="text/javascript">function getLocation(){var options={enableHig ...

  5. Vue+OpenLayers学习系列(九)Vue+OpenLayers小案例(长度测量、面积测量、坐标定位、坐标获取)

    很早之前做的一个例子,最近想复习下Vue+OpenLayers的使用案例,所以发出来供大家下载 vue-ol-demo-master 本Demo的功能包括:地图展示.地图放大缩小.添加鹰眼.长度测量. ...

  6. 手持gps坐标设置_学术 | 许其凤院士:GPS移动定位与移动网络定位精度的分析

    ↑ 点击上方「中国测绘学会」 可快速关注我们 摘要: 随着移动终端的性价比逐渐提高,以及无线网络技术的快速发展,移动位置服务技术水平近几年也有了快速的提高,应用也越来越广泛.同样,移动用户对移动定位的 ...

  7. wpf获取gps数据在地图上显示定位

    1.gps数据换算成正常经纬度值, 换算公式:GPS获取数据为 3958.472727,N,11619.957711,E 换算结果为N:39+58.472727/60 E:116+19.957711/ ...

  8. 使用带GPS模块的LTE Cat.4模组获取GPS定位信息

    上海域格miniPCIe LTE模组 CLM920 NC5 mdgv为Cat.4模组,且带有GPS模块可支持获取GPS定位信息: 将CLM920 NC5 MGC模组连接到PC上,安装驱动后,可以在设备 ...

  9. python模拟gps定位_python解析nmea0183协议获取GPS定位信息

    python解析nmea0183协议获取GPS定位信息 nmea0183协议里面定位数据主要在GPRMC报文里面,下面是报文的大体形式: b'$GPRMC,111025.00,A,2517.03374 ...

最新文章

  1. 自定义布局RelativeLayout 画网格线
  2. ASP.NET学习6 XML文档的操作
  3. CSS3笔记之基础篇(一)边框
  4. Highlighting System
  5. [Python教程] 一只乌龟其实也很酷 (1、动起来)
  6. 百度搜索关键词纠错机制研究
  7. Java 跑酷游戏 rush,翻转跑酷游戏安卓下载|翻转跑酷最新版(Flip Rush)下载v1.0.5-乐游网安卓下载...
  8. 斗地主发牌游戏编程java,自己做的斗地主游戏发牌C#程序
  9. Netatalk CVE-2018-1160的发现与利用
  10. 推荐两个在线代理服务器
  11. mac日历显示国家节假日及补班日期
  12. 动态背景下的运动目标检测
  13. 一曲罢已,愁若梨花,乱红释怀,浮躁尽然。。。。。。
  14. 再读《架构即未来》有感
  15. 超好看的导航页面(静态页面)
  16. 机械臂正运动学-DH参数-Python快速实现
  17. eclipse各种常用插件在线安装.txt
  18. GD32F103C8T6点灯
  19. C语言string库strcpy、strcmp、strcat函数详解
  20. 【arm cpu架构体系】【armV8】【armv7】【A系列的CPU】

热门文章

  1. mysql 5.6 生产my.cnf_一个生产可用的mysql参数文件my.cnf
  2. 采用Kruskal算法生成最小生成树,并采用并查集的合并优化和查询优化。
  3. C语言(CED)C语言中双引号和单引号的区别
  4. C语言(CED)递归实现汉诺塔问题
  5. python数独游戏源代码100行_python实现自动解数独小程序
  6. base cap 分布式_干货分享:基于本地消息表的分布式事务解决方案总结
  7. android wifi设备连接通信,通过wifi与设备进行通信(Android)
  8. mysql error 1449_MySql错误:ERROR 1449 (HY000)
  9. orange pi java_[中文]Orange Pi家族各大成员一览表
  10. Python二级笔记(18,19合集知识点篇)