我已经使用Google Places API添加了一些地方,然后搜索了它们,但我没有收到回复。 Google Places API文档声明您自己添加的任何地点都可以立即供您自己的应用使用。
用于添加地点的代码:
$content = '{
"location": {
"lat": 55.9924222,
"lng": -4.5767703
},
"accuracy": 50,
"name": "MYPLACE",
"types": ["other"],
"website": "http://example.com",
"language": "en-GB"
}';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://maps.googleapis.com/maps/api/place/add/json?key=MYKEY');
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER,
array("Content-type: application/json"));
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $content);
$json_response = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ( $status != 201 ) {
die("response $json_response");
};
curl_close($curl);
$response = json_decode($json_response);
JSON回复:
{
"id":"f9f16c68e531d8fc583e9d6b321f91d3f4aee41b",
"place_id":"qgYvCi0wMDAwMDA2NTdhZjZiZTc5OjQ4ODg1MzIzOTc1OmZmOTA3OTI1MWEwOTdlYjI",
"reference":"CkQxAAAAXR8NXJss0Mkw79jPrfLSDfDV8v9n94HmuZsN5pPdvSp5D8gLlBlVvXdTHqJlAq6larv-asoMF22gc6vonSVM8xIQtYSx9WMivS9eI6MsrQuiMhoUtlAGv0nDCEAF-5lphcVBbO4CI-U",
"scope":"APP",
"status":"OK"
}
然后我使用:
进行搜索https://maps.googleapis.com/maps/api/place/radarsearch/json?location=55.9859890,-4.5723500&radius=5000&type=other&keyword=getfed&key=MYKEY
和回复:
{
"html_attributions": [],
"results": [],
"status": "ZERO_RESULTS"
}
有人能告诉我这里出了什么问题吗?
答案 0 :(得分:1)
ZERO_RESULTS
表示搜索成功但未返回任何结果。如果搜索在远程位置传递了latlng,则可能会发生这种情况。
您可以在此page中看到为什么您无法看到已添加的地点的可能原因。您正在寻找的地方可能尚未归类。所有地点都归类为通用类型establishment
,直到Google有足够的数据来将其归类为supported place types之一。
您可以查看此参考:
My Places API returns 'ZERO_RESULTS'
此行为的原因很可能是Google尚未将实际类别添加到其数据库中的所有位置。
基于此documentation的另一个可能原因。
当您添加地点时,新地点可立即在您的应用程序启动的“附近搜索”中使用。新地点还会进入审核队列,以便考虑使用Google地图。 新添加的地点不会出现在文本搜索或雷达搜索结果中,也不会出现在其他应用程序中,直到审核过程批准为止。