ios如何获取gps坐标(定位第二节)
原文连接:
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的使用方法:
/**
* @param geolocationSuccess 定位成功的回调函数
* @param geolocationError 定位失败的回调函数
* @param [geolocationOptions]设置对象
*/
navigator.geolocation.getCurrentPosition(geolocationSuccess, geolocationError, [geolocationOptions]);
简单的使用示例:
// 定位成功的回调函数
var onSuccess = function(position) {
alert('Latitude: ' + position.coords.latitude + '\n' +
'Longitude: ' + position.coords.longitude + '\n' +
'Altitude: ' + position.coords.altitude + '\n' +
'Accuracy: ' + position.coords.accuracy + '\n' +
'Altitude Accuracy: ' + position.coords.altitudeAccuracy + '\n' +
'Heading: ' + position.coords.heading + '\n' +
'Speed: ' + position.coords.speed + '\n' +
'Timestamp: ' + position.timestamp + '\n');
};
// 定位失败的回调函数
function onError(error) {
alert('code: ' + error.code + '\n' + 'message: ' + error.message + '\n');
}
navigator.geolocation.getCurrentPosition(onSuccess, onError);
为什么获取到了坐标了还需要解密?
百度api对此进行了解释,链接:http://lbsyun.baidu.com/index.php?title=open/question
那么说明了一点:坐标都是经过加密处理的
如果直接使用navigator.geolocation.getCurrentPosition获取到的坐标信息,是加密的坐标信息,直接使用的话,会明显出现偏差,偏差范围大概在几公里左右!!!那么跟没定位有什么区别╮(╯_╰)╭
这里使用百度的api进行解密:
/**
* 真实经纬度转成百度坐标
* @param gpsPoint 传入百度BMap对象
* @param 0 0:代表GPS
* @param translateCallback 真实坐标转换成百度坐标的回调函数
*/
BMap.Convertor.translate(gpsPoint,0, translateCallback);
完整示例:
●注意:使用百度地图api,首要需要到百度api官网申请百度地图密钥
附申请方法:http://jingyan.baidu.com/article/363872eccda8286e4aa16f4e.html
1、在页面引入js
HTML:
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=6yAoynmTPNlTBa8z1X4LfwGE"></script>
<script type="text/javascript" src="http://developer.baidu.com/map/jsdemo/demo/convertor.js"></script>
2、这里已经已经封装好成函数,使用可以直接复制
js:
function getlocation() {
if (window.navigator.geolocation) {
//设置参数
var options = {
enableHighAccuracy: true,
timeout: 10000,
};
window.navigator.geolocation.getCurrentPosition(handleSuccess, handleError, options);
} else {
//alert("无法获取地理位置信息");
}
}
/**
* 执行window.navigator.geolocation.getCurrentPosition()函数后成功的回调
* @param position 返回一个真实坐标对象position
*/
function handleSuccess(position){
var lng = position.coords.longitude; //经度
var lat = position.coords.latitude; //纬度
//通过百度地图api对象封装真实的经纬度
var gpsPoint = new BMap.Point(lng,lat);
/ **
* 真实坐标转换成百度坐标的回调函数
* 通过百度坐标得到地址描述
* @param point 回调百度坐标对象point
*/
translateCallback = function (point){
var myGeo = new BMap.Geocoder();
// 根据百度坐标得到地址描述
myGeo.getLocation(new BMap.Point(point.lng,point.lat), function(result){
if (result){
// PS:改成你需要执行的函数
alert(result.address);
}
else{
// PS:改成你需要执行的函数
alert("定位失败,请重新定位");
}
});
}
setTimeout(function(){
/**
* 真实经纬度转成百度坐标
* @param gpsPoint 传入百度BMap对象
* @param 0 0:代表GPS,也可以是2:google坐标
* @param translateCallback 真实坐标转换成百度坐标的回调函数
*/
BMap.Convertor.translate(gpsPoint,0, translateCallback);
}, 2000);
}
/* 失败的回调 */
function handleError(error){
// PS:改成你需要执行的函数
alert("获取位置信息失败,请重新定位");
}
ios如何获取gps坐标(定位第二节)相关推荐
- Android获取GPS网络定位经纬度信息
定位一般分为是:GPS定位,WIFI定位,基站定位 和 AGPS定位 GPS定位 GPS定位需要手机GPS模块硬件支持.GPS走的是卫星通信的通道,在没有网络连接的情况下也能使用,并且通过GPS方式准 ...
- html5获取gps坐标,html5获取手机GPS信息的示例代码
html5获取手机GPS信息的示例代码function getLocation() { if (navigator.geolocation) { navigator.geolocation.getCu ...
- Android 高德地图key获取、坐标定位
前期准备 点击进入高德平台获取key **步骤一:**登录注册进入控制台 步骤二: **步骤三:**获取sha1值,以及其包名. **步骤四:**获取sha1值 步骤五:复制获取到key值 到这前期工 ...
- 移动端web实现定位(获取GPS)
获取GPS坐标 <script type="text/javascript">function getLocation(){var options={enableHig ...
- Vue+OpenLayers学习系列(九)Vue+OpenLayers小案例(长度测量、面积测量、坐标定位、坐标获取)
很早之前做的一个例子,最近想复习下Vue+OpenLayers的使用案例,所以发出来供大家下载 vue-ol-demo-master 本Demo的功能包括:地图展示.地图放大缩小.添加鹰眼.长度测量. ...
- 手持gps坐标设置_学术 | 许其凤院士:GPS移动定位与移动网络定位精度的分析
↑ 点击上方「中国测绘学会」 可快速关注我们 摘要: 随着移动终端的性价比逐渐提高,以及无线网络技术的快速发展,移动位置服务技术水平近几年也有了快速的提高,应用也越来越广泛.同样,移动用户对移动定位的 ...
- wpf获取gps数据在地图上显示定位
1.gps数据换算成正常经纬度值, 换算公式:GPS获取数据为 3958.472727,N,11619.957711,E 换算结果为N:39+58.472727/60 E:116+19.957711/ ...
- 使用带GPS模块的LTE Cat.4模组获取GPS定位信息
上海域格miniPCIe LTE模组 CLM920 NC5 mdgv为Cat.4模组,且带有GPS模块可支持获取GPS定位信息: 将CLM920 NC5 MGC模组连接到PC上,安装驱动后,可以在设备 ...
- python模拟gps定位_python解析nmea0183协议获取GPS定位信息
python解析nmea0183协议获取GPS定位信息 nmea0183协议里面定位数据主要在GPRMC报文里面,下面是报文的大体形式: b'$GPRMC,111025.00,A,2517.03374 ...
最新文章
- 自定义布局RelativeLayout 画网格线
- ASP.NET学习6 XML文档的操作
- CSS3笔记之基础篇(一)边框
- Highlighting System
- [Python教程] 一只乌龟其实也很酷 (1、动起来)
- 百度搜索关键词纠错机制研究
- Java 跑酷游戏 rush,翻转跑酷游戏安卓下载|翻转跑酷最新版(Flip Rush)下载v1.0.5-乐游网安卓下载...
- 斗地主发牌游戏编程java,自己做的斗地主游戏发牌C#程序
- Netatalk CVE-2018-1160的发现与利用
- 推荐两个在线代理服务器
- mac日历显示国家节假日及补班日期
- 动态背景下的运动目标检测
- 一曲罢已,愁若梨花,乱红释怀,浮躁尽然。。。。。。
- 再读《架构即未来》有感
- 超好看的导航页面(静态页面)
- 机械臂正运动学-DH参数-Python快速实现
- eclipse各种常用插件在线安装.txt
- GD32F103C8T6点灯
- C语言string库strcpy、strcmp、strcat函数详解
- 【arm cpu架构体系】【armV8】【armv7】【A系列的CPU】
热门文章
- mysql 5.6 生产my.cnf_一个生产可用的mysql参数文件my.cnf
- 采用Kruskal算法生成最小生成树,并采用并查集的合并优化和查询优化。
- C语言(CED)C语言中双引号和单引号的区别
- C语言(CED)递归实现汉诺塔问题
- python数独游戏源代码100行_python实现自动解数独小程序
- base cap 分布式_干货分享:基于本地消息表的分布式事务解决方案总结
- android wifi设备连接通信,通过wifi与设备进行通信(Android)
- mysql error 1449_MySql错误:ERROR 1449 (HY000)
- orange pi java_[中文]Orange Pi家族各大成员一览表
- Python二级笔记(18,19合集知识点篇)