Я недавно написал и открыл исходный код SDK для Google Geocoding API , который должен немного упростить работу с API.
Обратите внимание, что это для v3 API, тогда как в приведенном выше коде вы ссылаетесь на API v2 (который сейчас устарел)
Сам API будет автоматически исправлять опечатки во входных данных.Поэтому, если вы хотите убедиться, что пользователь ввел местоположение, которое на самом деле было адресом улицы, вы бы сделали это так (с моим SDK)
$service = new GoogleGeocodeServiceV3( new CurlCommunicator() );
$response = $service->geocode( '123 Any Street, USA' );
if ( $response->isValid() && $response->hasResults() )
{
// Is it a street-level result?
if ( $response->assertType( GoogleGeocodeResponseV3::ACT_STREET_ADDRESS ) )
{
// Street-level address found
} else {
// Not a street-level address
}
}
Если бы его опечатка была настолько вопиющей, что APIне нашел ничего, чем $response->hasResults()
вернул бы false
(или count( $response )
было бы 0
)