我正在尝试使用google api中的geometry
库创建一个函数,返回两个坐标(lat,lng)之间的距离。
下面的代码在查找距离方面起作用,但是在调用函数时我找不到返回结果的方法。结果始终为0
。
要检测当前位置,我正在使用cordova地理定位插件。
如何从函数外部提醒结果?
致电功能:
alert(getLocationServices(51.583065, -0.019934)); // always 0
主要功能:
function calculateDistanceCoords(myPosition, toPosition) {
var p1 = new google.maps.LatLng(myPosition[0], myPosition[1]);
var p2 = new google.maps.LatLng(toPosition[0], toPosition[1]);
var calcDistance = google.maps.geometry.spherical.computeDistanceBetween(p1, p2);
var metersToMiles = (calcDistance * 0.000621371192).toFixed(2);
return metersToMiles;
}
function getLocationServices(lat, lng) {
var result = 0;
var onSuccess = function (position) {
var myLat = position.coords.latitude;
var myLng = position.coords.longitude;
var myPosition = [myLat, myLng];
var toPosition = [lat, lng];
result = calculateDistanceCoords(myPosition, toPosition);
};
// onError Callback receives a PositionError object
//
function onError(error) {
alert('code: ' + error.code + '\n' +
'message: ' + error.message + '\n');
result = -1;
}
navigator.geolocation.getCurrentPosition(onSuccess, onError, {timeout: 3000});
return result; // always 0
}