利用HTML5定位功能获取经纬度,在根据经纬度利用百度地图获取位置信息

来源:互联网 发布:看电影哪个软件最好 编辑:程序博客网 时间:2024/03/29 23:40

一、引入相关js

<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>


二、js代码

<span style="font-family:Microsoft YaHei;">// 单次位置请求执行的函数function getLocation(){navigator.geolocation.getCurrentPosition(mapIt,locationError);}// 检测浏览器是否支持HTML5function supportsGeoLocation(){return !!navigator.geolocation;}if (!supportsGeoLocation()) {alert("您的浏览器不支持定位,系统将自动推送最新的文章列表");}else{getLocation();// 定位}//定位成功时,执行的函数function mapIt(position){var longitude = position.coords.longitude;var latitude = position.coords.latitude;alert("您位置的经度是:"+longitude+" 纬度是:"+latitude);var map = new BMap.Map("allmap");var point = new BMap.Point(""+longitude+"",""+latitude+"");map.centerAndZoom(point,19);var gc = new BMap.Geocoder();translateCallback = function (point){var marker = new BMap.Marker(point);map.addOverlay(marker);map.setCenter(point);gc.getLocation(point, function(rs){var addComp = rs.addressComponents;alert(addComp.province + ", " + addComp.city + ", " + addComp.district + ", " + addComp.street + ", " + addComp.streetNumber)});}BMap.Convertor.translate(point,0,translateCallback);}// 定位失败时,执行的函数function locationError(error){switch(error.code){case error.PERMISSION_DENIED:alert("User denied the request for Geolocation.");break;case error.POSITION_UNAVAILABLE:alert("Location information is unavailable.");break;case error.TIMEOUT:alert("The request to get user location timed out.");break;case error.UNKNOWN_ERROR:alert("An unknown error occurred.");break;}}


0 0
原创粉丝点击