在页面中引入百度地图API的步骤以及Geolocation简单的使用

在页面中想要展示的页面中使用百度地图的API十分的简单而且是十分有用的。下面先介绍一些HTML5中地理位置的一些知识。
地理位置(Geolocation)是HTML5中重要的特性之一。提供了确定用户位置的功能,借助这个特性能够开发基于位置信息的应用,使得开发人员不用借助其他软件就能轻松实现位置查找,地图应用,导航等功能。

Geolocation的基本原理

1. GPS

GPS基本原理是测量出已知位置的卫星到用户接收机之间的距离,然后综合多颗卫星的数据就可知道接收机的具体位置。适用于具备GPS功能的设备
优点:在空旷地区比较准确,覆盖面比较广
缺点:需要比较长时间定位,比较耗电池,在室内不太好,需要
GPS设备支持

2. WIFI

地理定位服务提供者会在全世界范围内去收集WIFI热点的位置信息,然后用户的设备只要能支持WIFI就能获取到周围WIFI热点的位置和信号强弱信息,然 后把这些信息发给提供者,就能得到自己的位置.
优点:比较准确,适用于室内环境,相应速度快
缺点:在wifi热点少的地方不适用

3. IP定位

原理很简单,就是通过你设备的物理地址所备案的地址信息来定位,但这种方式精确度不高,特别是用代理来
上网的情况下。一般作为GPS和WIFI都不支持的情况下大致模糊匹配,比如各大团购网站检测用户所在城市

4. 手机基站

和WIFI原理类似,Apple的设备就是把WIFI和基站信息结合起来进行定位。

实现

1. 核心对象

Geolocationwindow.navigator下面的一个对象,该对象提供了实现地理位置定位的接口。
②要用该功能首先判断浏览器是否支持navigator.geolocation该对象。

2. Geolocation对象详解

getCurrentPosition(success,error,options)该方法是实现地理定位的核心方法,该方法能够对获取到的信息作出处理以及设置。
A.success(position) 获取信息成功的回调函数
B.error(errorcode)获取信息失败的回调函数
C.options获取信息前可以按照你的需求来设置一些参数

success(positon) 获取信息成功的回调函数

当成功获得信息的时候,会自动调用success函数,而这个函数会自动生成一个包含返回地理信息的position对象,如下:
A.coords.latitude(纬度)
B.coords.longitude(经度)
C.coords.altitude(海拔)
D.coords.accuracy(位置精确度)
E.coords.altitudeAccuracy(海拔精确度)
F.coords.heading(朝向)
G.coords.speed (速度)
H.timestamp(响应的日期/时间)

error(errorCode)获取对象失败的回调函数

A. 地理

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现百度地图定位和导航功能需要以下步骤: 1. 在jsp页面引入百度地图API的JavaScript文件和CSS文件。 ```html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>百度地图定位和导航功能</title> <link rel="stylesheet" href="http://api.map.baidu.com/api?v=2.0&ak=您的密钥"> <style type="text/css"> #map { height: 500px; width: 100%; } </style> </head> <body> <div id="map"></div> <script src="http://api.map.baidu.com/api?v=2.0&ak=您的密钥"></script> <script src="http://api.map.baidu.com/library/GeoUtils/1.2/src/GeoUtils.min.js"></script> </body> </html> ``` 2. 创建地图容器和地图对象,并设置地图心点和缩放级别。 ```javascript var map = new BMap.Map("map"); // 创建地图实例 var point = new BMap.Point(116.404, 39.915); // 创建点坐标 map.centerAndZoom(point, 15); // 初始化地图,设置心点和缩放级别 ``` 3. 添加定位控件和导航控件。 ```javascript // 添加定位控件 var geolocationControl = new BMap.GeolocationControl({ anchor: BMAP_ANCHOR_BOTTOM_RIGHT, enableAutoLocation: true, locationIcon: new BMap.Icon("http://api.map.baidu.com/img/markers.png", new BMap.Size(23, 25), { imageOffset: new BMap.Size(-23, -25) }) }); map.addControl(geolocationControl); // 添加导航控件 var navigationControl = new BMap.NavigationControl({ anchor: BMAP_ANCHOR_TOP_LEFT, type: BMAP_NAVIGATION_CONTROL_ZOOM }); map.addControl(navigationControl); ``` 4. 获取当前位置信息,并在地图上显示。 ```javascript // 获取当前位置信息 var geolocation = new BMap.Geolocation(); geolocation.getCurrentPosition(function (position) { if (this.getStatus() === BMAP_STATUS_SUCCESS) { var point = new BMap.Point(position.longitude, position.latitude); var marker = new BMap.Marker(point); // 创建标注 map.addOverlay(marker); // 将标注添加到地图 map.panTo(point); // 将地图心点移动到当前位置 } }); ``` 5. 实现导航功能,获取起点和终点坐标,并调用百度地图导航API。 ```javascript // 实现导航功能 var start = new BMap.Point(116.404, 39.915); // 起点坐标 var end = new BMap.Point(116.368, 39.913); // 终点坐标 var driving = new BMap.DrivingRoute(map, { renderOptions: { map: map, autoViewport: true } }); driving.search(start, end); ``` 完整的示例代码如下: ```html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>百度地图定位和导航功能</title> <link rel="stylesheet" href="http://api.map.baidu.com/api?v=2.0&ak=您的密钥"> <style type="text/css"> #map { height: 500px; width: 100%; } </style> </head> <body> <div id="map"></div> <script src="http://api.map.baidu.com/api?v=2.0&ak=您的密钥"></script> <script src="http://api.map.baidu.com/library/GeoUtils/1.2/src/GeoUtils.min.js"></script> <script type="text/javascript"> var map = new BMap.Map("map"); // 创建地图实例 var point = new BMap.Point(116.404, 39.915); // 创建点坐标 map.centerAndZoom(point, 15); // 初始化地图,设置心点和缩放级别 // 添加定位控件 var geolocationControl = new BMap.GeolocationControl({ anchor: BMAP_ANCHOR_BOTTOM_RIGHT, enableAutoLocation: true, locationIcon: new BMap.Icon("http://api.map.baidu.com/img/markers.png", new BMap.Size(23, 25), { imageOffset: new BMap.Size(-23, -25) }) }); map.addControl(geolocationControl); // 添加导航控件 var navigationControl = new BMap.NavigationControl({ anchor: BMAP_ANCHOR_TOP_LEFT, type: BMAP_NAVIGATION_CONTROL_ZOOM }); map.addControl(navigationControl); // 获取当前位置信息 var geolocation = new BMap.Geolocation(); geolocation.getCurrentPosition(function (position) { if (this.getStatus() === BMAP_STATUS_SUCCESS) { var point = new BMap.Point(position.longitude, position.latitude); var marker = new BMap.Marker(point); // 创建标注 map.addOverlay(marker); // 将标注添加到地图 map.panTo(point); // 将地图心点移动到当前位置 } }); // 实现导航功能 var start = new BMap.Point(116.404, 39.915); // 起点坐标 var end = new BMap.Point(116.368, 39.913); // 终点坐标 var driving = new BMap.DrivingRoute(map, { renderOptions: { map: map, autoViewport: true } }); driving.search(start, end); </script> </body> </html> ``` 注意:在使用百度地图API时,需要先申请密钥并引入相应的JavaScript文件和CSS文件。示例代码的密钥需要替换为自己的密钥。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值