高德地图android 缓存,高德地图定位不刷新,感觉有缓存
/*** 仅获取定位(获取地址和经纬度)*/self.getAddr = function (callback) {//判断平台(安卓平台采用高德定位,ios平台采用系统定位)amapLBS 在ios下定位非常慢var os = app.device.os;if (os == 'ios') {//先调用系统定位获取经纬度api.getLocation(function (ret, err) {if
/**
* 仅获取定位(获取地址和经纬度)
*/
self.getAddr = function (callback) {
//判断平台(安卓平台采用高德定位,ios平台采用系统定位)amapLBS 在ios下定位非常慢
var os = app.device.os;
if (os == 'ios') {
//先调用系统定位获取经纬度
api.getLocation(function (ret, err) {
if (ret && ret.status) {
//再根据经纬度获取地址
geocode(ret.longitude, ret.latitude, callback);
} else {
callback(false);
}
});
} else if (os == 'android') {
common.aMapLBS(callback);
};
};
//ios 使用高德web服务,http://lbs.amap.com/api/webservice/guide/api/georegeo
function geocode(lon, lat, callback) {
var location = lon + ',' + lat;
var url = 'http://restapi.amap.com/v3/geocode/regeo?location=' + location + '&key=0c8be3011cbc3c0a39697e5220fb7529&radius=10';
api.ajax({
url: url,
method: 'get',
dataType: 'json',
cache: true
}, function (ret, err) {
if (ret && ret.status) {
var result = {};
result.attendanceAddr = ret.regeocode.formatted_address;
result.lon = lon;
result.lat = lat;
result.province = ret.regeocode.addressComponent.province;
result.city = ret.regeocode.addressComponent.city;
callback(result);
} else {
common.ajaxError(ret, err, null, '定位失败');
};
});
};
//目前仅用于安卓定位
self.aMapLBS = function (callback) {
//安卓平台也要返回经纬度和地址
var aMapLBS = api.require('aMapLBS');
aMapLBS.configManager({
accuracy: 'best',
filter: 1.0
}, function (ret, err) {
if (ret.status) {
// getLocation();
singleAddress()
} else {
console.log('请检查', '配置定位信息失败');
callback(false);
}
});
//地理定位
function getLocation(result) {
aMapLBS.startLocation(function (ret, err) {
if (ret && ret.status) {
//返回经纬度
result.lon = ret.lon;
result.lat = ret.lat;
callback(result)
} else {
callback(false);
}
aMapLBS.stopUpdatingLocation();
});
};
//逆地理定位
function singleAddress(locationResult) {
aMapLBS.singleAddress({
timeout: 10
}, function (ret, err) {
if (ret && ret.status) {
var result = ret.address;
//考勤地址(街道+地点)
result.attendanceAddr = result.street + result.AOIName + result.POIName;
//callback(result);
getLocation(result);
} else {
callback(false);
}
// aMapLBS.stopUpdatingLocation();
// aMapLBS = null;
});
};
};
更多推荐
所有评论(0)