1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- <?php
- declare(strict_types=1);
- /*
- * This file is part of the Geocoder package.
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- *
- * @license MIT License
- */
- namespace Geocoder\Dumper;
- use Geocoder\Location;
- /**
- * @author Tomas Norkūnas <norkunas.tom@gmail.com>
- */
- abstract class AbstractArrayDumper
- {
- /**
- * @param Location $location
- *
- * @return array
- */
- protected function getArray(Location $location): array
- {
- $properties = array_filter($location->toArray(), function ($value) {
- return !empty($value);
- });
- unset(
- $properties['latitude'],
- $properties['longitude'],
- $properties['bounds']
- );
- if ([] === $properties) {
- $properties = null;
- }
- $lat = 0;
- $lon = 0;
- if (null !== $coordinates = $location->getCoordinates()) {
- $lat = $coordinates->getLatitude();
- $lon = $coordinates->getLongitude();
- }
- $array = [
- 'type' => 'Feature',
- 'geometry' => [
- 'type' => 'Point',
- 'coordinates' => [$lon, $lat],
- ],
- 'properties' => $properties,
- ];
- if (null !== $bounds = $location->getBounds()) {
- $array['bounds'] = $bounds->toArray();
- }
- return $array;
- }
- }
|