百度地图JS定位

之前做百度地图定位时写的调用方法,在这里记录下。
PS:此处引入的是v1.2版本的API,非最新版本。

一、获取地理位置方法

var getLocation = function() {
    var options = {
        enableHighAccuracy: true,
        maximumAge: 1000
    }
    if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(onSuccess, onError, options);
    } else {
        alert("您的浏览器不支持定位");
    }
}

二、成功回调方法

function onSuccess(position) {
    var longitude = position.coords.longitude; // 经度      
    var latitude = position.coords.latitude; // 纬度 
    // 生成坐标点   
    var point = new BMap.Point(longitude, latitude);
    new BMap.Geocoder().getLocation(point, function(rs) {
        var addComp = rs.addressComponents;
        alert('定位成功:' + addComp.city);
    })
}

三、失败回调方法

function onError(error) {
    switch (error.code) {
        case 1:
        case 2:
        case 3:
        case 4:
            alert('定位失败');
            break;
    }
}

顺便封装一下:

var baiduGetLocation = {
    init: function() {
        var options = {
                enableHighAccuracy: true,
                maximumAge: 1000
            },
            _this = this;
        if (navigator.geolocation) {
            navigator.geolocation.getCurrentPosition(_this.onSuccess, _this.onError, options);
        } else {
            alert("您的浏览器不支持定位");
        }
    },
    onSuccess: function() {
        var longitude = position.coords.longitude; // 经度      
        var latitude = position.coords.latitude; // 纬度 
        // 生成坐标点   
        var point = new BMap.Point(longitude, latitude);
        new BMap.Geocoder().getLocation(point, function(rs) {
            var addComp = rs.addressComponents;
            alert('定位成功:' + addComp.city);
        });
    },  
    onError: function() {   
        switch (error.code) {
            case 1:
            case 2:
            case 3:
            case 4:
                alert('定位失败');
                break;
        }
    }
}

你可能感兴趣的:(前端)