我无法在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”,或者它在我的代码中是等价的。我知道它是“距离”内的一个对象,它是“元素”的数组项,它是“行”的数组项。
其结构如下:
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);
如果你的数组是result
,那么你可以使用这个来访问距离:
var distance = result['rows'][0]['elements'][0]['distance']['text'];