Google商家信息 - 返回了意外的50-char place_id值

时间:2016-09-14 13:14:13

标签: google-places-api google-geocoding-api google-distancematrix-api

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

ChIJUXJ61wrsFogR3jv6yBBFlQY

然而,一小部分地址本来会返回看似好的数据(formatted_address等),返回50个字符的值,前缀为E,如:

EjA1Mjk1IFB1bGxleWJsYW5rIFN0LCBXaW5kc29yLCBPTiBOOU

这些50-char place_ids会在Google的其他API(即使用place_id作为原点和/或目的地的距离矩阵)上抛出错误:

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

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

  1. location_type = RANGE_INTERPOLATED,types = street_address
  2. location_type = ROOFTOP,types = subpremise
  3. location_type = APPROXIMATE,types = intersection
  4. 所有三个都表示地址为"问题"在某种程度上(假街道号码,较大区域的分区,大致位置)。所以,我想我的问题是:

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

1 个答案:

答案 0 :(得分:2)

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

如果您保持整个ID完整,那么E前缀ID将适用于距离矩阵等。