1
我希望你能提供帮助。其实我试图阻止Google Maps-Api-错误“OVER_QUERY_LIMIT”。我想用PHP来解决它,而不是使用Javascript和与超时玩耍等等。为此,我已经取代了这一行:没有OVER_QUERY_LIMIT错误的Google地图的地理编码 - 尝试使用PHP解决方案
geocoder.geocode({'address': address}, function(results, status) {
在我的剧本有这样一条:
var url_addr = encodeURIComponent(address);
$.getJSON('geocode.php?addr='+url_addr, function(data) {
var results = data.results,
status = data.status;
此外,我有一个PHP脚本用于获取地理编码坐标:
$params = "address=" . urlencode($_GET{'addr'});
$url = 'http://maps.googleapis.com/maps/api/geocode/json?sensor=false&' . $params;
$json = file_get_contents($url);
$status = json_decode($json)->status;
// check for over_query_limit status
while ($status=="OVER_QUERY_LIMIT") {
sleep(0.2); // seconds
$json = file_get_contents($url);
$status = json_decode($json)->status;
}
header('application/json');
echo $json;
运行此之后,我可以看到在调试器控制台称为PHP脚本上的URL L上的附着地理编码坐标ike /geocode.php?addr=432345 ...
接下来在我的JS脚本中,我想检查google.maps.GeocoderStatus是否正常。所以我打电话:
if (status == google.maps.GeocoderStatus.OK) {
if (results[1]) {
console.log("Everything OK");
}
else {
console.log("Geocode is not OK");
}
但没有任何反应。看来,这种状态不会到达if-else。我玩了一下,试图找出与“萤火虫”的东西,但我没有找到答案。
你有什么想法吗?
谢谢和问候, 斯特凡
为什么你会得到'OVER_QUERY_LIMIT'?为什么服务器端地理编码解决了这个问题?也许这可能是一个有趣的阅读:https://developers.google.com/maps/articles/geocodestrat – MrUpsidown 2014-10-28 17:46:43
我不知道为什么我会得到这个错误。我阅读了很多关于这个问题的文章,并注意到提到服务器端地理编码的很多解决方法可以避免使用js进行处理。我不知道这是否真的如此,但我想证明,尝试和学习:-) – 2014-10-28 18:05:12
好吧,我读了这篇文章。它不会使服务器端地理编码产生意义......谢谢你,斯蒂芬 – 2014-10-28 18:44:24