我使用Google Places API添加了一些地方,然后搜索了它们,但我没有得到任何回应。Google 地方信息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"
}
谁能告诉我这里出了什么问题?
ZERO_RESULTS
表示搜索成功,但未返回任何结果。如果搜索是在远程位置传递的,则可能会发生这种情况。
您可以在此页面中看到看不到已添加地点的可能原因。您要查找的地方可能尚未分类。所有地点都会被归类为通用类型establishment
直到 Google 获得有关某个地点的足够数据,可以将其归类为受支持的地点类型之一。
您可以查看此参考:
-
"我的地方"API 返回"ZERO_RESULTS">
这种行为的原因很可能是谷歌尚未将实际类别添加到其数据库中的所有位置。
基于此文档的另一个可能原因。
添加地点后,新地点将立即显示在应用程序启动的"附近搜索"中。新地点还进入了审核队列,以考虑用于 Google 地图。新添加的位置在获得审核过程的批准之前不会显示在文本搜索或雷达搜索结果或其他应用程序中。