考虑以下两个查询。
https://maps.googleapis.com/maps/api/place/autocomplete/json?input=newyork&types=(cities)&language=en&sensor=true&key=<YOUR-API-KEY>
以下是 JSON 响应的前几行。如您所见,id
结果中有一个可用的(reference
值已编辑):
{
"predictions" : [
{
"description" : "New York, NY, United States",
"id" : "7eae6a016a9c6f58e2044573fb8f14227b6e1f96",
"matched_substrings" : [
{
"length" : 8,
"offset" : 0
}
],
"reference" : "CkQzAAAAs[...]g5OK5Y",
...
现在查询俄语:
https://maps.googleapis.com/maps/api/place/autocomplete/json?input=Нью-Йорк&types=(cities)&language=ru&sensor=true&key=<YOUR-API-KEY>
此查询返回更多预测(在密苏里州、内布拉斯加州等地具有相同名称的城市),但您仍然可以使用以下命令从俄语结果中找到纽约市id
:
{
"predictions" : [
{
"description" : "Нью-Йорк, Соединенные Штаты Америки",
"id" : "7eae6a016a9c6f58e2044573fb8f14227b6e1f96",
"matched_substrings" : [
{
"length" : 8,
"offset" : 0
}
],
"reference" : "CmRZAAAA[...]s10LLA",
...
{
"description" : "Нью Йорк, Миссури, Соединенные Штаты Америки",
"id" : "211cae70217210a77581fd2a2dca45bc4286e064",
...
"reference" : "CnRpAAAA[...]FUydA",
...
{
"description" : "Нью Йорк, Небраска, Соединенные Штаты Америки",
"id" : "10a97689b3441120410e18c71d7f1b9ed70ac2e7",
...
"reference" : "CnRrAAAA[...]XrkzYY",
...
{
"description" : "Нью-Йорк Милс, Нью-Йорк, Соединенные Штаты Америки",
"id" : "2902d4dc0e1ecfe52aef4da6d5eb06e4c9fab4d9",
...
"reference" : "CoQBcwAAA[...]g3G1Jw",
...
您可以使用以下方法查询Place Details APIreference
(对于上面的每个预测结果都不同):
https://maps.googleapis.com/maps/api/place/details/json?reference=CkRAAAAA[...]cLKfOc_4mvY&language=ru&sensor=true&key=<YOUR-API-KEY>
并用于id
验证您正在搜索的地方的身份。引用地点详细信息 API 文档:
id
包含一个唯一的稳定标识符来表示这个地方。此标识符可能不用于检索有关此地点的信息,但可用于合并有关此地点的数据,并在单独的搜索中验证地点的身份。由于ids
偶尔会发生变化,建议将存储id
的位置与稍后在同一位置的详细信息请求中返回的值进行比较id
,并在必要时进行更新。
传递id
给这个查询仍然是可能的,但reference
它是一个必填字段:
https://maps.googleapis.com/maps/api/place/details/json?id=7eae6a016a9c6f58e2044573fb8f14227b6e1f96&language=ru&reference=CkRAAAAA[...]cLKfOc_4mvY&sensor=true&key=<YOUR-API-KEY>