Your IP : 216.73.216.86


Current Path : /var/www/homesaver/www/bitrix/modules/location/lib/geometry/converter/
Upload File :
Current File : /var/www/homesaver/www/bitrix/modules/location/lib/geometry/converter/geojsonconverter.php

<?php

namespace Bitrix\Location\Geometry\Converter;

use Bitrix\Location\Geometry\Type\BaseGeometry;
use Bitrix\Main\Web\Json;
use Bitrix\Main\ArgumentException;

class GeoJsonConverter extends ArrayConverter
{
	/**
	 * @param $input
	 * @return BaseGeometry|null
	 */
	public function read($input): ?BaseGeometry
	{
		try
		{
			$input = Json::decode($input);
		}
		catch (ArgumentException $ex)
		{
			return null;
		}

		if (!is_array($input))
		{
			return null;
		}

		return parent::read($input);
	}

	/**
	 * @inheritDoc
	 */
	public function write(BaseGeometry $geometry)
	{
		return Json::encode(
			parent::write($geometry)
		);
	}
}