使用jQuery访问Google Maps PHP中的数据

问题描述 投票:0回答:2

我无法在Google Maps API php中正确访问数据。

下面是php中的数据示例:

{"destination_addresses":["Destination address"],"origin_addresses":["Origin address"],"rows":[{"elements":[{"distance":{"text":"3.3 km","value":3314},"duration":{"text":"6 mins","value":334},"status":"OK"}]}],"status":"OK"}

继承人我的.js:

$(function(){   
    $("#button").click(function(){
        var start = $("#start").val(); //gets start and end values from input fields, and passes them to .php which is not visible here.
        var end = $("#end").val();

        $.ajax({url: "googlemaps.php", 
            method: "GET", 
            data : { "start" : start, "end" : end },
            success: function(result) { 
            print(result);                      
        },
            error: function(xhr){
            alert("Error: " + xhr.status + " " + xhr.statusText);
            }               
        });

    });  
});

function print(result){
    var length = "";
    for(var i = 0;i < result.rows.length;i++){
    length += result.rows[i].text+ "<br/>";

        $("#div").html(length);
    }}

它应该计算两个地址之间的距离,并且它当前返回未识别的(这是可以的),因为

length += result.rows[i].text+ "<br/>";

是不正确的。我不知道如何访问值“text”:“3.3 km”,或者它在我的代码中是等价的。我知道它是“距离”内的一个对象,它是“元素”的数组项,它是“行”的数组项。

javascript jquery arrays
2个回答
1
投票

其结构如下:

rows[0].elements[0].distance.text

你可能不需要循环,但如果你要使用它,你会做类似的事情。

for (var i = 0;i < result.rows.length; i++) {
  for (var k = 0;k < result.rows[i].elements.length; k++) {
    length += result.rows[i].elements[k].distance.text + "<br/>";
  }
}

$("#div").html(length);

0
投票

如果你的数组是result,那么你可以使用这个来访问距离:

var distance = result['rows'][0]['elements'][0]['distance']['text'];
© www.soinside.com 2019 - 2024. All rights reserved.