子前提的 PlaceId
PlaceId for subpremise
为什么我得到的响应是另一个 place_id,然后是我在我的位置详情 API 查询中使用的那个?
{
"html_attributions" : [],
"result" : {
"address_components" : [
{
"long_name" : "50",
"short_name" : "50",
"types" : [ "street_number" ]
},
{
"long_name" : "Market Street",
"short_name" : "Market St",
"types" : [ "route" ]
},
{
"long_name" : "Melbourne",
"short_name" : "Melbourne",
"types" : [ "locality", "political" ]
},
{
"long_name" : "Melbourne City",
"short_name" : "Melbourne",
"types" : [ "administrative_area_level_2", "political" ]
},
{
"long_name" : "Victoria",
"short_name" : "VIC",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "Australia",
"short_name" : "AU",
"types" : [ "country", "political" ]
},
{
"long_name" : "3000",
"short_name" : "3000",
"types" : [ "postal_code" ]
}
],
"formatted_address" : "50 Market St, Melbourne VIC 3000, Australia",
"place_id" : "Eis1MCBNYXJrZXQgU3QsIE1lbGJvdXJuZSBWSUMgMzAwMCwgQXVzdHJhbGlhIjASLgoUChIJHdPO1kxd1moRERexnPHkJEAQMioUChIJdS9W0Exd1moRz0JzpAXPMys",
"types" : [ "street_address" ]
},
"status" : "OK"
}
我还注意到 returned 地址不同。
我查询中的 placeid 是我收到的自动完成服务响应。
{
"description" : "9/50 Market Street, Melbourne VIC, Australia",
"id" : "06f000a321dc5f1347b79dcbe4d611390f750f36",
"matched_substrings" : [
{
"length" : 18,
"offset" : 0
}
],
"place_id" : "Eiw5LzUwIE1hcmtldCBTdHJlZXQsIE1lbGJvdXJuZSBWSUMsIEF1c3RyYWxpYSIwEi4KFAoSCR3TztZMXdZqEREXsZzx5CRAEDIqFAoSCXUvVtBMXdZqEc9Cc6QFzzMr",
"reference" : "Eiw5LzUwIE1hcmtldCBTdHJlZXQsIE1lbGJvdXJuZSBWSUMsIEF1c3RyYWxpYSIwEi4KFAoSCR3TztZMXdZqEREXsZzx5CRAEDIqFAoSCXUvVtBMXdZqEc9Cc6QFzzMr",
"structured_formatting" : {
"main_text" : "9/50 Market Street",
"main_text_matched_substrings" : [
{
"length" : 18,
"offset" : 0
}
],
"secondary_text" : "Melbourne VIC, Australia"
},
"terms" : [
{
"offset" : 0,
"value" : "9/50 Market Street"
},
{
"offset" : 20,
"value" : "Melbourne"
},
{
"offset" : 30,
"value" : "VIC"
},
{
"offset" : 35,
"value" : "Australia"
}
],
"types" : [ "route", "geocode" ]
}
似乎出于某种原因,google 地图在使用地点详细信息 API 和 returning street_address 时正在删除次权限信息。
有什么方法可以强制 google 将 API 映射到 return 子前提的详细信息?
在您的示例中,像 Eis1MCBNYXJrZXQgU3QsIE1lbGJvdXJuZSBWSUMgMzAwMCwgQXVzdHJhbGlhIjASLgoUChIJHdPO1kxd1moRERexnPHkJEAQMioUChIJdS9W0Exd1moRz0JzpAXPMys
这样的长地点 ID 意味着您在 Google 的数据库中没有确切的街道地址供您搜索。这是一个近似值。当您搜索数据库中存在的地址时,您将获得较短的地点 ID(例如 ChIJrTLr-GyuEmsRBfy61i59si0
)。
如果 Google 数据库中不存在地址,您可以从自动完成服务获取一个长地点 ID,并从地点详细信息端点获取另一个长地点 ID。这些端点可以使用不同的算法进行近似,从而为数据库中未找到的地址生成不同的地点 ID。
文档中提到了两种类型的地点 ID
https://developers.google.com/places/place-id#id-overview
解决该问题的最直接方法是向 Google 数据团队报告丢失的地址,如中所述
https://support.google.com/maps/answer/6320846.
一旦添加到 Google 数据库中,您的问题就会消失,您将在自动完成和详细信息中获得一个简短的地点 ID。
此外,您的问题可能与 Google 问题跟踪器中报告的错误有关,该错误涉及对 subpremises in place autocomplete 服务的有限支持。看看
https://issuetracker.google.com/issues/35830389
希望这能解决您的疑问。
为什么我得到的响应是另一个 place_id,然后是我在我的位置详情 API 查询中使用的那个?
{
"html_attributions" : [],
"result" : {
"address_components" : [
{
"long_name" : "50",
"short_name" : "50",
"types" : [ "street_number" ]
},
{
"long_name" : "Market Street",
"short_name" : "Market St",
"types" : [ "route" ]
},
{
"long_name" : "Melbourne",
"short_name" : "Melbourne",
"types" : [ "locality", "political" ]
},
{
"long_name" : "Melbourne City",
"short_name" : "Melbourne",
"types" : [ "administrative_area_level_2", "political" ]
},
{
"long_name" : "Victoria",
"short_name" : "VIC",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "Australia",
"short_name" : "AU",
"types" : [ "country", "political" ]
},
{
"long_name" : "3000",
"short_name" : "3000",
"types" : [ "postal_code" ]
}
],
"formatted_address" : "50 Market St, Melbourne VIC 3000, Australia",
"place_id" : "Eis1MCBNYXJrZXQgU3QsIE1lbGJvdXJuZSBWSUMgMzAwMCwgQXVzdHJhbGlhIjASLgoUChIJHdPO1kxd1moRERexnPHkJEAQMioUChIJdS9W0Exd1moRz0JzpAXPMys",
"types" : [ "street_address" ]
},
"status" : "OK"
}
我还注意到 returned 地址不同。
我查询中的 placeid 是我收到的自动完成服务响应。
{
"description" : "9/50 Market Street, Melbourne VIC, Australia",
"id" : "06f000a321dc5f1347b79dcbe4d611390f750f36",
"matched_substrings" : [
{
"length" : 18,
"offset" : 0
}
],
"place_id" : "Eiw5LzUwIE1hcmtldCBTdHJlZXQsIE1lbGJvdXJuZSBWSUMsIEF1c3RyYWxpYSIwEi4KFAoSCR3TztZMXdZqEREXsZzx5CRAEDIqFAoSCXUvVtBMXdZqEc9Cc6QFzzMr",
"reference" : "Eiw5LzUwIE1hcmtldCBTdHJlZXQsIE1lbGJvdXJuZSBWSUMsIEF1c3RyYWxpYSIwEi4KFAoSCR3TztZMXdZqEREXsZzx5CRAEDIqFAoSCXUvVtBMXdZqEc9Cc6QFzzMr",
"structured_formatting" : {
"main_text" : "9/50 Market Street",
"main_text_matched_substrings" : [
{
"length" : 18,
"offset" : 0
}
],
"secondary_text" : "Melbourne VIC, Australia"
},
"terms" : [
{
"offset" : 0,
"value" : "9/50 Market Street"
},
{
"offset" : 20,
"value" : "Melbourne"
},
{
"offset" : 30,
"value" : "VIC"
},
{
"offset" : 35,
"value" : "Australia"
}
],
"types" : [ "route", "geocode" ]
}
似乎出于某种原因,google 地图在使用地点详细信息 API 和 returning street_address 时正在删除次权限信息。
有什么方法可以强制 google 将 API 映射到 return 子前提的详细信息?
在您的示例中,像 Eis1MCBNYXJrZXQgU3QsIE1lbGJvdXJuZSBWSUMgMzAwMCwgQXVzdHJhbGlhIjASLgoUChIJHdPO1kxd1moRERexnPHkJEAQMioUChIJdS9W0Exd1moRz0JzpAXPMys
这样的长地点 ID 意味着您在 Google 的数据库中没有确切的街道地址供您搜索。这是一个近似值。当您搜索数据库中存在的地址时,您将获得较短的地点 ID(例如 ChIJrTLr-GyuEmsRBfy61i59si0
)。
如果 Google 数据库中不存在地址,您可以从自动完成服务获取一个长地点 ID,并从地点详细信息端点获取另一个长地点 ID。这些端点可以使用不同的算法进行近似,从而为数据库中未找到的地址生成不同的地点 ID。
文档中提到了两种类型的地点 ID https://developers.google.com/places/place-id#id-overview
解决该问题的最直接方法是向 Google 数据团队报告丢失的地址,如中所述 https://support.google.com/maps/answer/6320846.
一旦添加到 Google 数据库中,您的问题就会消失,您将在自动完成和详细信息中获得一个简短的地点 ID。
此外,您的问题可能与 Google 问题跟踪器中报告的错误有关,该错误涉及对 subpremises in place autocomplete 服务的有限支持。看看
https://issuetracker.google.com/issues/35830389
希望这能解决您的疑问。