Google 地点 - 返回了意外的 50 个字符 place_id 值

Google Places - unexpected 50-char place_id values returned

我正在使用 Google 地理编码 API 检索 place_id(和其他)信息以与地点 API 一起使用。大多数地址 return 预期的 27 个字符 place_id 值,即:

ChIJUXJ61wrsFogR3jv6yBBFlQY

但是,一小部分地址 return 看似不错的数据(formatted_address 等)是 return 带有前缀 E 的 50 个字符的值] 喜欢:

EjA1Mjk1IFB1bGxleWJsYW5rIFN0LCBXaW5kc29yLCBPTiBOOU

这些 50 个字符的 place_id 会在 Google 的其他 API 上抛出错误(即使用 place_id 作为原点的距离矩阵 and/or目的地):

Invalid request. Invalid 'origins' parameter. 'EiU5MDAxIFJpbGV5IFN0LCBaZWVsYW5kLCBNSSA0OTQ2NCwgVV' 
is not a valid Place ID.

当我查看 Google 的回复时,我发现它们都分为三类:

  1. location_type=RANGE_INTERPOLATED,类型=street_address
  2. location_type=ROOFTOP, types=subpremise
  3. location_type=近似值,类型=交集

这三个都以某种方式用 "issues" 表示地址(伪造的街道号码、较大区域的分段、大概位置)。所以,我想我的问题是:

50 个字符的 place_id 值总是垃圾吗?

您正在截断这些 ID,因此 API 说它们无效。它们可以超过 50 个字符。

如果您保持整个 ID 不变,它们 E 前缀 ID 将与距离矩阵等一起使用。