在新的API标准中,可以通过navigator.geolocation来获取设备的当前地理坐标位置。
通过回调方法,返回一个位置对象,用户可以从这个对象中得到一些经纬度。
得到经纬度就可以根据地理位置展开各种功能开发了。
将该功能获得封装成函数之后是这样的,可以拿来直接调用,作为工具类。
function getCurrentPosition (callback){
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(callback, function(err) {
// 错误的回调
console.log(‘获得坐标错误’);
}, {
enableHighAccuracy : true, // 是否获取高精度结果
timeout : 5000, //超时,毫秒
maximumAge : 0
});
} else {
console.log(‘浏览器无法使用地位功能’);
}
}/**
* caculate the great circle distance
* @param {Object} lat1
* @param {Object} lng1
* @param {Object} lat2
* @param {Object} lng2
*/
function getGreatCircleDistance(lat1, lng1, lat2, lng2) {
var EARTH_RADIUS = 6378137.0; //单位M
var PI = Math.PI;
var radLat1 = lat1* PI / 180.0;
var radLat2 = lat2* PI / 180.0;var a = radLat1 – radLat2;
var b = lng1* PI / 180.0 – lng2* PI / 180.0;var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2)
+ Math.cos(radLat1) * Math.cos(radLat2)
* Math.pow(Math.sin(b / 2), 2)));
s = s * EARTH_RADIUS;
s = Math.round(s * 10000) / 10000.0;return s;
}
转载请注明:三只源码 » 网页如何获取坐标位置