详解HTML5地理定位与第三方工具百度地图的应用


本文摘自PHP中文网,作者黄舟,侵删。

这篇文章主要为大家详细介绍了HTML5地理定位与第三方工具百度地图的应用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

前言:
看到了很多技术大牛和相关博客,很少关于HTML5的地理定位的描述,不知道他们是不愿意提及还是使用的少的原因,我个人按一点点经验总结了两方面原因:
第一、服务商方面的原因,因为HTML5的定位是由google提供的,由于google将大陆封杀的原因,定位功能也不在支持,这是主要原因
第二、HTML5自带的地理定位,性能较差,相对于第三方工具---类似百度地图等,不是在一个层次上,在真正项目开发的时候,很少使用原生HTML5自带的地理定位,这是次要原因!

一、HTML5的新特性--地理定位
既然地理定位是HTML5的新特性,那么我们也是要学习和掌握相关的API和学会如何去使用地理定位的
先了解一下常识

一个新名词Geolocation:

用于获得当前浏览器所在的地理坐标,从而提供LBS(Location Based Service),如饿了吗送餐、滴滴打车、高德导航等软件都是使用LBS,包括如下数据:
经度: longitude
纬度: latitude
海拔高度: altitude
速度: speed

使用平台分为移动端和PC端:
(1)手机浏览器:
首先尝试使用内置GPS数据――精度以米为单位
再则使用手机基站编号反向推导出对应的地理位置――定位精度以公里为单位
(2)PC浏览器:
通过电脑的IP地址反向查询――精度以公里为单位

正题:
那么我们到底怎么样从HTML5中获取定位信息呢?
首先,我们在浏览器中按F12打开console,输入window.navigator.geolocation看看定位信息!

我们看到定位信息上有主要三个方法,含义分别是:


1

2

3

getCurrentPosition:fn(succ,err) //获取当前定位数据,其中包含成功获取和获取失败的回调函数

watchPosition: fn   //监视定位数据

clearWatch: fn   //清除定位监视

既然这样我们就知道如何在HTML5文件中使用地理定位了,我们利用开发工具创建一个HTML文件,并创建一个按钮,当点击按钮的时候,后台显示定位信息!


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

<!DOCTYPE html> 

<html

<head lang="en"

    <meta charset="UTF-8"

    <title></title

</head

<body

<button id="btn">获得我的定位数据</button

<script

    btn.onclick=function(){   //点击按钮时触发 

        navigator.geolocation.getCurrentPosition(succCB,errCB); 

   

        function succCB(pos){  //成功的获取回调函数!! 

            console.log('成功获取到定位数据'); 

            console.log('纬度:'+pos.coords.longitude); 

            console.log('经度:'+pos.coords.latitude); 

            console.log('高度:'+pos.coords.altitude); 

            console.log('速度:'+pos.coords.speed); 

   

        

        function errCB(err){  //获取失败的回调函数!! 

            console.log('获取到定位数据失败'); 

            console.log(err.message);  //输出失败的信息或原因! 

        

    

</script

</body

</html>

如图所示,当点击按钮时,成功获取到了定位数据,但是高度和速度由于PC端原因所以为Null,所以我们只要记住一个方法就可以在HTML5中获取到地理定位!


1

2

3

4

5

6

7

8

9

10

navigator.geolocation.getCurrentPosotion(

function(pos){

console.log('定位数据获取成功');

//pos.coords.longtitude ....

},

function(err){

console.log('定位数据获取失败');

//err.code   err.message

}

)

二、使用第三方工具--百度地图

正如我在前言中提到,在项目和许多手机应用中都是使用百度地图提供给用户来选择定位信息,那么我们怎么样在自己项目中使用百度地图呢?

首先我们得知道,百度地图的源代码是不会提供给大家下载的,这涉及公司利益,懂得人不必多说,但是百度还是个很有良心的公司,可以让我们注册开发者账号来进行开发使用!

使用步骤:

首先打开官网http://lbsyun.baidu.com/,然后拉到最下面:

可以看到,百度地图可以用来进行web开发,Android开发,ios开发,这里我们使用web开发,点击JavaScript API
网址:http://lbsyun.baidu.com/index.php?title=jspopular

我们可以到API中的许多案例和功能展示,要使用百度地图,必须首先获取密钥!

稍后会解释什么是密钥,先点击进入页面,如果弹出登陆界面的话,则登陆,登陆点击注册开发者账号(由于我已近注册了,所以这里无法给大家演示,需要大家自己操作),输入相关的手机,邮箱,然后到邮箱里面验证,验证成功后,,点击创建应用,会出现如下界面:

应用名称随意填写一个
应用类型选择---浏览器端
Referer白名单:指的是谁可以访问你的应用,通过什么方式访问你的应用,这里填写一个星号' * ',意思是全部人都可以访问,因为只是做测试可以这样做,到以后项目如果使用到,会有相关的加密方式等等!!然后点击提交完成创建!!
完成应用的创建后,出现如下界面:

这里会显示刚才创建的应用编号,应用名称,以及最重要的访问应用码,就是前面提到的密钥!

然后得到密钥之后,我们回到主页http://lbsyun.baidu.com/index.php?title=jspopular

点击左侧的开发指南,可以看到相关API的用法以及案例!!,这个API是小编看到的所以API中最良心的,没有一句废话,
写的很详细,通俗易懂,因为实在太多了,就在这里介绍几个主要的用法!!!

阅读剩余部分

相关阅读 >>

利用HTML5实现简单的拖动功能

HTML5怎么使音乐停止

几个很好用的HTML5移动开发框架

HTML5 main标签是什么意思?HTML5 main标签作用的详细介绍

如何自定义video播放器样式?

分享用HTML5来实现一个3d逼真的圣诞树

(server-sent events)浅谈h5 中的服务器推送事件

HTML5的web界面中meta实列详解

HTML5学习笔记(一)-认识HTML5

详解HTML5网络拓扑图整合openlayers实现gis地图应用(图)

更多相关阅读请进入《HTML5》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...