1

Я использую API геокодирования Google для извлечения информации place_id (и другой) для использования с API-интерфейсом Places. Большинство адреса возвращают ожидаемое значение place_id 27 символов, то есть:Google Places - неожиданные 50-значные значения place_id

ChIJUXJ61wrsFogR3jv6yBBFlQY 

Однако небольшой процент адресов, которые в противном случае вернуть, казалось бы, хорошие данные (formatted_address и т.д.) возвращается значение 50-символов с префиксом E как :

EjA1Mjk1IFB1bGxleWJsYW5rIFN0LCBXaW5kc29yLCBPTiBOOU 

Эти 50-символьные place_ids бросать ошибки на других API, Google (т.е. Distance Matrix с использованием place_id как происхождения и/или назначения):

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

Когда я смотрю на ответы Google, я вижу, все они делятся на три категории:

  1. LOCATION_TYPE = RANGE_INTERPOLATED, типы = street_address
  2. LOCATION_TYPE = ROOFTOP, типы = subpremise
  3. LOCATION_TYPE = ПРИБЛИЖЕННАЯ, типы = пересечение

Все три указывают адреса с «проблемами» в некотором роде (номер поддельной улицы, подраздел большей площади, приблизительное местоположение). Итак, я думаю, мой вопрос:

Являются ли значения из 50 символов place_id всегда мусором?

ответ

2

Вы обрезаете эти идентификаторы, поэтому API говорит, что они недействительны. Они могут быть более 50 символов.

Если вы держите весь ID неповрежденные они E идентификаторы префиксов будет работать с Distance Matrix и т.д.

+1

Не навязывайте свои собственные ограничения на размер Место идентификаторами, они могут быть сколь угодно долго. – miguev

+0

Итак, теперь это кажется плохим вопросом - очевидно, простая ошибка с моей стороны. Должен ли я просто удалить этот вопрос? –

+0

Нет, это хороший вопрос, потому что https://developers.google.com/places/place-id похоже, что идентификаторы места, как ожидается, всегда будут 27-символьными строками. – miguev