JS - 从函数返回值(map google api)

时间:2016-09-26 11:15:20

标签: javascript cordova google-maps

我正在尝试使用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
}

0 个答案:

没有答案