C#调用谷歌地图javascript函数,该函数返回null

时间:2015-12-10 14:56:01

标签: javascript c# maps

在下面的代码中,我们从c#调用JavaScript函数来计算使用谷歌地图路由服务从A点到达B点的时间。 (calculateTripTime)这个函数应该返回一个数组,其持续时间从A点到B点(目前只填充1个持续时间)但它返回' null'。为什么它会返回' null'如何从JavaScript到C#获得所需的回报?

当我调用以下函数时,它会像它应该的那样返回0。所以代码应该'工作

returnNumber()
{
    return 0
}

C#代码:

public void DoStuff()
{
    if (webBrowser.InvokeRequired)
    {
        webBrowser.Invoke((MethodInvoker)delegate
        {
            object o = webBrowser.Document.InvokeScript("calculateTripTime", new object[] { "Amsterdam", "Zwolle" });
            MessageBox.Show(o.ToString());
        });
    }
    else
    {
        object o = webBrowser.Document.InvokeScript("calculateTripTime", new object[] { "Amsterdam", "Zwolle" });
        MessageBox.Show(o.ToString());
    }
}

Javascript:

function calculateTripTime(start, end) 
{
    var service = new google.maps.DistanceMatrixService;

    service.getDistanceMatrix(
    {
        origins: [start],
        destinations: [end],
        travelMode: google.maps.TravelMode.DRIVING,
        unitSystem: google.maps.UnitSystem.METRIC,
        avoidHighways: false,
        avoidTolls: false
    }, 
    function (response, status) 
    {
        alert('duration filled');

        var originList = response.originAddresses;
        var destinationList = response.destinationAddresses;
        var results = response.rows[0].elements[0];

        return results.duration.value
    });
}

0 个答案:

没有答案