A mini library to fetch place information out of Google Places API via a text search or a find place request
$service = new PlaceService(new GuzzleAdapter());
$service->setApiKey('YOUR_KEY_HERE');
$results = $service->textSearch('Van Andel Arena');
The concept of formatters are baked in to allow you to easily manipulate
the data returned by Google. Simply pass a callable as the second argument
to textSearch()
or findPlace()
.
For instance, if you only wanted the address of the first result:
$service = new PlaceService(new GuzzleAdapter());
$service->setApiKey('YOUR_KEY_HERE');
$results = $service->textSearch('Van Andel Arena', function (results) {
if (count($results)) {
return $results[0]['formatted_address'];
}
return null;
});
The library also ships with some standard formatters:
CountryStripperFormatter
: Removes the country from theformatted_address
LatLngFormatter
: Formats the results as an array of lat, lng, and address.SingleResultFormatter
: Grabs the first result and returns itCompositeFormatter
: Allows for running multiple formatters
Example:
$service = new PlaceService(new GuzzleAdapter());
$service->setApiKey('YOUR_KEY_HERE');
$result = $service->textSearch('Van Andel Arena', new CompositeFormatter([
new SingleResultFormatter(),
new CountryStripperFormatter(true),
new LatLngFormatter(true)
]));
Which will yield something like:
Array
(
[address] => 130 Fulton West, Grand Rapids, MI 49503
[lat] => 42.962433
[lng] => -85.671566
)