使用 google 映射距离矩阵 api JSON 输出获取距离
get distance using google maps distance matrix api JSON output
我开发了以下代码以通过 2 个文本字段获取给定 2 个城市的距离,我想使用以下 URl 将它们发送到 google 地图距离矩阵 api .我发送了那些城市并获得了 JSON 输出文件。但我的问题是如何从 JSON 文件中获取特定属性(距离)并显示在另一个文本字段上。
function m() {
var x = document.getElementById("autocomplete").value;
var y = document.getElementById("autocomplete1").value;
var url = "https://maps.googleapis.com/maps/api/distancematrix/json?origins=" + x + "&destinations=" + y + "&key=AIzaSyD5KX6VRon6yQ0vu4s6GSnAVzazRWg8wrc";
window.location=url; // this will go to the above url and display the JSON output file on the browser. I dont want that to be shown. just some processing and should display only the distance form that file on a textfield!
}
JSON 输出文件 http://pastebin.ca/3318529
请帮助解决这个问题。我是 JSON 的新手。所以如果你有任何其他想法告诉我。非常感谢:)
如果您在浏览器中使用 Javascript,则需要使用 Google 地图 Api。
检查这个例子:
<script src="https://maps.google.com/maps/api/js?sensor=false"></script>
<script>
function init() {
var service = new google.maps.DistanceMatrixService;
service.getDistanceMatrix({
origins: ['Los Angeles'],
destinations: ['New York'],
travelMode: google.maps.TravelMode.DRIVING,
unitSystem: google.maps.UnitSystem.METRIC,
avoidHighways: false,
avoidTolls: false
}, function(response, status) {
if (status !== google.maps.DistanceMatrixStatus.OK) {
alert('Error was: ' + status);
} else {
alert(response.originAddresses[0] + ' --> ' + response.destinationAddresses[0] + ' ==> ' + response.rows[0].elements[0].distance.text);
}
});
}
</script>
<body onload="init()">
</body>
你可以看看这个代码
<?php
$addressFrom="Your from address";
$addressTo="your to address";
// Change address format
$formattedAddrFrom = str_replace(' ', '+', $addressFrom);
$formattedAddrTo = str_replace(' ', '+', $addressTo);
// Geocoding API request with start address
$distance_data = file_get_contents('https://maps.googleapis.com/maps/api/distancematrix/json?origins='.$formattedAddrFrom.'&destinations='.$formattedAddrTo.'&sensor=false&key=YOUR-API-KEY');
$output_data = json_decode($distance_data);
if(!empty($output_data->error_message)){
return $output_data->error_message;
}
//echo "<pre>";
//print_r($output_data) ;
$output_status = $output_data->status;
$output_km =$output_data->rows[0]->elements[0]->distance->text;
$output_meter =$output_data->rows[0]->elements[0]->distance->value;
?>
我开发了以下代码以通过 2 个文本字段获取给定 2 个城市的距离,我想使用以下 URl 将它们发送到 google 地图距离矩阵 api .我发送了那些城市并获得了 JSON 输出文件。但我的问题是如何从 JSON 文件中获取特定属性(距离)并显示在另一个文本字段上。
function m() {
var x = document.getElementById("autocomplete").value;
var y = document.getElementById("autocomplete1").value;
var url = "https://maps.googleapis.com/maps/api/distancematrix/json?origins=" + x + "&destinations=" + y + "&key=AIzaSyD5KX6VRon6yQ0vu4s6GSnAVzazRWg8wrc";
window.location=url; // this will go to the above url and display the JSON output file on the browser. I dont want that to be shown. just some processing and should display only the distance form that file on a textfield!
}
JSON 输出文件 http://pastebin.ca/3318529
请帮助解决这个问题。我是 JSON 的新手。所以如果你有任何其他想法告诉我。非常感谢:)
如果您在浏览器中使用 Javascript,则需要使用 Google 地图 Api。
检查这个例子:
<script src="https://maps.google.com/maps/api/js?sensor=false"></script>
<script>
function init() {
var service = new google.maps.DistanceMatrixService;
service.getDistanceMatrix({
origins: ['Los Angeles'],
destinations: ['New York'],
travelMode: google.maps.TravelMode.DRIVING,
unitSystem: google.maps.UnitSystem.METRIC,
avoidHighways: false,
avoidTolls: false
}, function(response, status) {
if (status !== google.maps.DistanceMatrixStatus.OK) {
alert('Error was: ' + status);
} else {
alert(response.originAddresses[0] + ' --> ' + response.destinationAddresses[0] + ' ==> ' + response.rows[0].elements[0].distance.text);
}
});
}
</script>
<body onload="init()">
</body>
你可以看看这个代码
<?php
$addressFrom="Your from address";
$addressTo="your to address";
// Change address format
$formattedAddrFrom = str_replace(' ', '+', $addressFrom);
$formattedAddrTo = str_replace(' ', '+', $addressTo);
// Geocoding API request with start address
$distance_data = file_get_contents('https://maps.googleapis.com/maps/api/distancematrix/json?origins='.$formattedAddrFrom.'&destinations='.$formattedAddrTo.'&sensor=false&key=YOUR-API-KEY');
$output_data = json_decode($distance_data);
if(!empty($output_data->error_message)){
return $output_data->error_message;
}
//echo "<pre>";
//print_r($output_data) ;
$output_status = $output_data->status;
$output_km =$output_data->rows[0]->elements[0]->distance->text;
$output_meter =$output_data->rows[0]->elements[0]->distance->value;
?>