欢迎光临杨雨的个人博客站!

杨雨个人网站-杨雨个人博客-杨照佳

杨雨个人博客网站

关注互联网和搜索引擎的个人博客网站

首页 > WEB开发 > html5案例分享 >

Html5定位并在百度舆图上表现的示例

发布时间:2016-12-05  编辑:杨雨个人博客网站   点击:   

在开拓移动端 web 可能webapp时,行使百度舆图 API 的进程中,常常必要通过手机定位获取当前位置并在舆图上居中表现出来,这就必要用到Html5的地理定位成果。



代码如下:
navigator.geolocation.getCurrentPosition(callback);

在获取坐标乐成之后会执行回调函数 callback; callback 要领的参数就是获取到的坐标点;然后可以初始化舆图,配置控件、中心点、缩放品级,然后给舆图添加point的overlay:



代码如下:
var map = new BMap.Map("mapDiv");//mapDiv为放舆图的 div 的 id
map.addControl(new BMap.NavigationControl());
map.addControl(new BMap.ScaleControl());
map.addControl(new BMap.OverviewMapControl());
map.centerAndZoom(point, 15);//point为坐标点,15为舆图缩放级别,最大级别是 18
var pointMarker = new BMap.Marker(point);
map.addOverlay(pointMarker);

然而究竟上这样还不足,表现出来的功效并禁绝,这是由于 getCurrentPosition 获取到的坐标是 GPS 经纬度坐标,而百度舆图的坐标是颠末非凡转换的,以是,在获取定位坐标和初始化舆图之间必要举办一步坐标转换事变,该转换要领百度API内里已经提供了,转换一个点可能批量装换的要领均有提供:单个点转换需引用 http://developer.baidu.com/map/jsdemo/demo/convertor.js,批量转换需引用 http://developer.baidu.com/map/jsdemo/demo/changeMore.js,这里只必要前者即可:



代码如下:
BMap.Convertor.translate(gpsPoint, 0, callback);
//gpsPoint:转换前坐标,第二个参数为转换要领,0暗示gps坐标转换成百度坐标,callback回调函数,参数为新坐标点

例子的具体代码如下:(引用中的ak是申请的key)



代码如下:
<!DOCTYPE Html>
<Html lang="zh-cn">
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<meta http-equiv="Content-Type" content="text/Html; charset=utf-8" />
<title></title>
<style type="text/Css">
*{
height: 100%; //配置高度,否则会表现不出来
}
</style>

<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=··············"></script>
<script type="text/javascript" src="http://developer.baidu.com/map/jsdemo/demo/convertor.js"></script>
<script>
$(function(){
navigator.geolocation.getCurrentPosition(translatePoint); //定位
});
function translatePoint(position){
var currentLat = position.coords.latitude;
var currentLon = position.coords.longitude;
var gpsPoint = new BMap.Point(currentLon, currentLat);
BMap.Convertor.translate(gpsPoint, 0, initMap); //转换坐标
}
function initMap(point){
//初始化舆图
map = new BMap.Map("map");
map.addControl(new BMap.NavigationControl());
map.addControl(new BMap.ScaleControl());
map.addControl(new BMap.OverviewMapControl());
map.centerAndZoom(point, 15);
map.addOverlay(new BMap.Marker(point))
}
</script>
</head>
<body>
<div id="map"></div>
</body>
</Html>

本人开拓进程中认为电脑的定位速率有点慢,常常无法获取坐标导致舆图无法表现,提议用手机测试,定位较快。

虽然了,假如仅是开拓移动端的网页,就不必要行使jQuery,框架太大,可以换用其他轻量级的移动端的 js 框架。

本文地址:http://itbyc.com/web/html5/14839.html
转载请注明出处。
分享是一种快乐,也是一种美德:
博客首页 | WEB开发 | 网站运营 | CMS使用教程 滇ICP备14002061号-1