博主最近進行一款APP開發,須要用到定位功能,通過一番折騰,終於搞定,不廢話,代碼以下javascript
mui.plusReady(function() { var longitude, latitude; //var map = new BMap.Map("container"); // navigator.geolocation.getCurrentPosition(function(position) { // longitude = position.coords.longitude; // latitude = position.coords.latitude; // // console.log("longitude:" + longitude + "==latitude:" + latitude); // var point = new BMap.Point(longitude, latitude); // map.centerAndZoom(point, 20); // 初始化地圖,設置中心點座標和地圖級別 // var marker = new BMap.Marker(point); // 建立標註 // map.addOverlay(marker); // 將標註添加到地圖中 // map.panTo(point); // }); plus.geolocation.getCurrentPosition(translatePoint, function(e) { mui.toast("異常:" + e.message); }); function translatePoint(position) { var currentLon = position.coords.longitude; var currentLat = position.coords.latitude; var gpsPoint = new BMap.Point(currentLon, currentLat); BMap.Convertor.translate(gpsPoint, 2, initMap); //座標轉換 } function initMap(point) { map = new BMap.Map("container"); //建立地圖 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)); } // setTimeout(function() { // var gpsPoint = new BMap.Point(longitude, latitude); // BMap.Convertor.translate(gpsPoint, 0, function(point) { // var geoc = new BMap.Geocoder(); // geoc.getLocation(point, function(rs) { // var addComp = rs.addressComponents; // mui.alert(addComp.province + ", " + addComp.city + ", " + addComp.district + ", " + addComp.street + ", " + addComp.streetNumber); // }); // }); // }, 3000); });
注意,在使用過程當中,須要引入百度地圖的JSphp
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=開發者key"></script>
<script type="text/javascript" src="http://developer.baidu.com/map/jsdemo/demo/convertor.js"></script>
其中,開發者key須要本身去百度地圖開發者平臺申請,此處教程上連接http://lbsyun.baidu.com/index.php?title=androidsdk/guide/keyjava