html5定位并在百度地图上显⽰的⽰例
在开发移动端 web 或者webapp时,使⽤百度地图 API 的过程中,经常需要通过⼿机定位获取当前位置并在地图上居中显⽰出来,这就需要⽤到html5的地理定位功能。
复制代码
代码如下:
在获取坐标成功之后会执⾏回调函数 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());
var pointMarker = new BMap.Marker(point);
map.addOverlay(pointMarker);
复制代码
代码如下:
anslate(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="code.jquery/jquery-1.11.0.min.js"></script>
<script type="text/javascript" src="api.map.baidu/api?v=2.0&ak=··············"></script>
<script type="text/javascript" src="developer.baidu/map/jsdemo/demo/convertor.js"></script>
<script>
$(function(){
});
function translatePoint(position){
var currentLat = ds.latitude;
var currentLon = ds.longitude;
var gpsPoint = new BMap.Point(currentLon, currentLat);
anslate(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());
jquery ajax例子map.addOverlay(new BMap.Marker(point))
}
</script>
</head>
<body>
<div id="map"></div>
</body>
</html>
本⼈开发过程中觉得电脑的定位速度有点慢,经常⽆法获取坐标导致地图⽆法显⽰,建议⽤⼿机测试,定位较快。当然了,如果仅是开发移动端的⽹页,就不需要使⽤jQuery,框架太⼤,可以换⽤其他轻量级的移动端的 js 框架。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。