This library is deprecated, use geobase/countries instead.
Smart Geo is databases from Open Data providers compiled into easy to use PHP objects.
- Multiple languages (Currently only supports English, French and German).
- Country Database
- Region Database (Currently only for Canada and the United States).
- IP Geolocation (With MaxMind)
Smart Geo does not require a database, but instead, uses JSON files.
This library uses PHP 5.6+.
You need to install the Smart Geo library through composer. To do so, add the following lines to your composer.json file.
{
"require": {
"smart/geo": "dev-master"
}
}
To download or update the current data, use the following command.
php vendor/bin/geo data:update
Database of all countries in the world.
Properties
- Names
- Short Code (Alpha-2 code)
- Code (Alpha-3 code)
- Latitude
- Longitude
- Bounding Box
- Currency
- Continent
- Population
- Area
- Capital
- Timezone
Examples
Get a list of all countries.
$countryCollection = (new Geo)->getCountryRepository()->findAll();
Get country name in english.
foreach ($countryCollection as $country) {
echo $country->getNames()->get('en');
}
Order by country name in english.
$countryCollection->orderByName();
Database of all States, Federal Districts and Territories in the United States, Provinces and Territories in Canada.
Properties
- Name
- Code (Alpha-2 code)
- Country
- Type
- Latitude
- Longitude
- Bounding Box
Examples
Get a list of all regions in the US.
$geo = new Geo;
$country = $geo->getCountryRepository()->findByCode('US');
$regionCollection = (new Geo)->getRegionRepository()->findByCountry($country);
Get region name and type in english.
foreach ($regionCollection as $region) {
echo $region->getNames()->get('en') . " is a " .
$region->getType()::class . " of the " .
$country->getNames()->get('en);
}