gpt4 book ai didi

php - 使用 json 和 php 进行谷歌地理编码

转载 作者:行者123 更新时间:2023-12-04 06:37:29 25 4
gpt4 key购买 nike

我的php文件:

<?php

if (isset($_POST['query'])) {
$query = $_POST['query'];

$url='http://maps.googleapis.com/maps/api/geocode/json?address=';
$callback="&callback=?";
$sensor='&sensor=false';
$result= $url.$query.$sensor.$callback;
curl_init ($result);

}
?>

我的 html 文件:
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){


// when the user clicks the button
$("button").click(function(){


$.getJSON("geo.php",function(json){

$('#results').append('<p>Latitude : ' + json.results[9].geometry.location.lat+ '</p>');
$('#results').append('<p>Longitude: ' + json.results[9].geometry.location.lng+ '</p>');

});

// get the json file
});
});


</script>

</head>
<body>

<input type="text" id="query" /><button>Get Coordinates</button>
<div id="results"></div>

</body>
</html>

使用 firbug 时出现此错误:
json is null
$('#results').append('<p>...s[9].geometry.location.lat+ '</p>');

谷歌的 json 响应:
{
"status": "OK",
"results": [ {
"types": [ "street_address" ],
"formatted_address": "1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA",
"address_components": [ {
"long_name": "1600",
"short_name": "1600",
"types": [ "street_number" ]
}, {
"long_name": "Amphitheatre Pkwy",
"short_name": "Amphitheatre Pkwy",
"types": [ "route" ]
}, {
"long_name": "Mountain View",
"short_name": "Mountain View",
"types": [ "locality", "political" ]
}, {
"long_name": "California",
"short_name": "CA",
"types": [ "administrative_area_level_1", "political" ]
}, {
"long_name": "United States",
"short_name": "US",
"types": [ "country", "political" ]
}, {
"long_name": "94043",
"short_name": "94043",
"types": [ "postal_code" ]
} ],
"geometry": {
"location": {
"lat": 37.4219720,
"lng": -122.0841430
},
"location_type": "ROOFTOP",
"viewport": {
"southwest": {
"lat": 37.4188244,
"lng": -122.0872906
},
"northeast": {
"lat": 37.4251196,
"lng": -122.0809954
}
}
}
} ]
}

编辑:
<?php
if (isset($_POST['query'])) {
$query = $_POST['query'];
$url='http://maps.googleapis.com/maps/api/geocode/json?address=';
$callback="&callback=?";
$sensor='&sensor=false';
$result= $url.$query.$sensor.$callback;
$resp = file_get_contents($result);
header('Cache-Control: no-cache, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Content-type: application/json');
echo $resp;
}

最佳答案

您确定要捕获结果吗?

我假设这个:
您的 PHP 代码是通过 Ajax 从 html 调用的。
所以基本上你正在构建查询的 URL 并使用 CURL 来获取 json 结果。
看来您实际上并未捕获或将结果返回给 ajax 调用
你可能想要这样做:


$process = curl_init($url);
//init curl connection
curl_setopt($process, CURLOPT_HEADER, 0);

curl_setopt($process, CURLOPT_POST, 1);

curl_setopt($process, CURLOPT_RETURNTRANSFER,1);

curl_setopt($process,CURLOPT_CONNECTTIMEOUT,1);

$resp = curl_exec($process);
//your content
curl_close($process);
//$resp contains your response
header('Cache-Control: no-cache, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Content-type: application/json');
echo $resp;

关于php - 使用 json 和 php 进行谷歌地理编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4690050/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com