2016-12-20 6 views
1

На данный момент я могу отправить shsihsigsuygdjhgadjhg через свой API геокодирования Google, и он возвращает тип местоположения APPROXIMATE - хотя я только что сделал это!Ограничить геокодирование Google только действительными результатами страны

Я ограничил запрос только GB (Великобритания) в соответствии с документацией, но как я могу ограничить его только возвратом true?

Параметры:

$param = ['address' => 'shsihsigsuygdjhgadjhg','components' => 'country:GB']; 

Ответ:

$response = \Geocoder::geocode('json', $param); 
      $decoded_response = json_decode($response); 

Отклик:

+"results": array:1 [▼ 
    0 => {#314 ▼ 
     +"address_components": array:1 [▼ 
     0 => {#313 ▼ 
      +"long_name": "United Kingdom" 
      +"short_name": "GB" 
      +"types": array:2 [▼ 
      0 => "country" 
      1 => "political" 
      ] 
     } 
     ] 
     +"formatted_address": "United Kingdom" 
     +"geometry": {#320 ▼ 
     +"bounds": {#131 ▶} 
     +"location": {#321 ▶} 
     +"location_type": "APPROXIMATE" 
     +"viewport": {#323 ▶} 
     } 
     +"partial_match": true 
     +"place_id": "ChIJqZHHQhE7WgIReiWIMkOg-MQ" 
     +"types": array:2 [▼ 
     0 => "country" 
     1 => "political" 
     ] 
    } 
    ] 
    +"status": "OK" 
} 

Как я могу убедиться, что он возвращает ZERO_RESULTS приближенного местах?

+0

Просто предложение: не можем ли мы использовать частичное совпадение в ответе, и если это правда, мы не можем предположить, что это не точное соответствие тому, что вы ищете? Частичные совпадения касаются орфографических ошибок, но если вы хотите иметь дело с орфографической ошибкой, то мое предложение не покажет никакого значения. – Coder

+0

Я считаю, что я не мог принять 'partial_matches'. Я буду реализовывать это и ждать дополнительных ответов. Большое спасибо за помощь @Coder. – Ben

+0

Я использую google API на ежедневной основе, и их документация не упрощает. Я буду исследовать еще больше и опубликую, если что-нибудь придет полезно @Ben – Coder

ответ

1

Вместо добавления поля компонентов добавьте значение страны в поле адреса. Поле компонента пытается получить компонент в пределах указанных вами значений. Он не мог идентифицировать адрес, который вы проходите, но он распознает страну и, следовательно, вы получаете частичное соответствие для нее.

Вместо

$param = ['address' => 'shsihsigsuygdjhgadjhg','components' => 'country:GB']; 

Try,

$param = ['address' => 'shsihsigsuygdjhgadjhg, GB']; 

Я получаю Нулевые результаты второго осуществления.

+0

Работает отлично. Такой небольшой надзор! Большое спасибо @Coder. – Ben

+0

Рад, что я мог бы помочь! @Бен – Coder

 Смежные вопросы

  • Нет связанных вопросов^_^