手机端GPS定位结合百度地图实现定位

来源:互联网 发布:首份网络主播黑名单 编辑:程序博客网 时间:2024/04/30 13:33
<!DOCTYPE html><html><head>    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />    <style type="text/css">        body, html, #allmap {            width: 100%;            height: 100%;            overflow: hidden;            margin: 0;            font-family: "微软雅黑";        }    </style>    <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=密钥"></script>    <title></title></head><body>    <div id="allmap"></div>    <script type="text/javascript">        var x = "";        var y = "";        var dizhi = "";        function getLocation(){            if (navigator.geolocation) {        navigator.geolocation.getCurrentPosition(showPosition,showError);        }else{        alert("浏览器不支持地理定位。");        }        }        function showPosition(position){                   y = position.coords.latitude;//纬度            x = position.coords.longitude;//经度                    // 百度地图API功能            //GPS坐标            var x = 116.32715863448607;            var y = 39.990912172420714;            var ggPoint = new BMap.Point(x, y);                        //地图初始化            var bm = new BMap.Map("allmap");            bm.centerAndZoom(ggPoint, 15);            bm.addControl(new BMap.NavigationControl());            bm.enableScrollWheelZoom();   //启用滚轮放大缩小,默认禁用            bm.enableContinuousZoom();    //启用地图惯性拖拽,默认禁用            bm.addEventListener("tilesloaded", function () { });//地图加载完成            var gc = new BMap.Geocoder();            bm.addEventListener("click", function (e) {                                ggPoint = new BMap.Point(e.point.lng, e.point.lat);                gc.getLocation(ggPoint, function (rs) {                                       var addComp = rs.addressComponents;                    var mapAddress = addComp.province + addComp.city + addComp.district                    + addComp.street + addComp.streetNumber;                    dizhi = mapAddress;                    if (confirm(dizhi)) {                        window.location.href = "succes.html"                    }                    var marker = new BMap.Marker(ggPoint); // 创建点                    bm.addOverlay(marker);                    var label = new BMap.Label("您选择的位置为"+dizhi, { offset: new BMap.Size(20, -10) });                    marker.setLabel(label); //添加百度label                    bm.setCenter(ggPoint);                });            });                                                  bm.addControl(new BMap.NavigationControl());            //坐标转换完之后的回调函数            translateCallback = function (data) {                if (data.status === 0) {                    var marker = new BMap.Marker(data.points[0]);                    bm.addOverlay(marker);                    marker.setAnimation(BMAP_ANIMATION_BOUNCE); //跳动的动画                    //marker.enableDragging();//可拖拽                    //var label = new BMap.Label("您所在的位置", { offset: new BMap.Size(20, -10) });                    //marker.setLabel(label); //添加百度label                    //bm.setCenter(data.points[0]);                                       //var a=BMap.Convertor(ggPoint, 0);                    gc.getLocation(data.points[0], function (rs) {                        //alert(rs.sematic_description);                        var addComp = rs.addressComponents;                        var mapAddress = addComp.province + addComp.city + addComp.district                        + addComp.street + addComp.streetNumber;                        dizhi = mapAddress;                        confirm(dizhi);                        if (confirm(dizhi)) {                            window.location.href = "succes.html"                        }                        var label = new BMap.Label("定位您所在的位置为"+dizhi, { offset: new BMap.Size(20, -10) });                        marker.setLabel(label); //添加百度label                        bm.setCenter(data.points[0]);                    });                                                       }            }            setTimeout(function () {                var convertor = new BMap.Convertor();                var pointArr = []                pointArr.push(ggPoint);                convertor.translate(pointArr, 1, 5, translateCallback)            }, 1000);        }        function showError(error){        switch(error.code) {        case error.PERMISSION_DENIED:        alert("定位失败,用户拒绝请求地理定位");        break;        case error.POSITION_UNAVAILABLE:        alert("定位失败,位置信息是不可用");        break;        case error.TIMEOUT:        alert("定位失败,请求获取用户位置超时");        break;        case error.UNKNOWN_ERROR:        alert("定位失败,定位系统失效");        break;            }        }        getLocation();    </script></body></html>

0 0