From c703730cbce66504353b4a69a3c00993fd425bd4 Mon Sep 17 00:00:00 2001 From: Jan Skrasek Date: Wed, 18 May 2016 17:12:01 +0200 Subject: [PATCH] MySQL Geometry Type: explicitly set SRID when storing a geometry --- lib/CrEOF/Spatial/DBAL/Platform/MySql.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/CrEOF/Spatial/DBAL/Platform/MySql.php b/lib/CrEOF/Spatial/DBAL/Platform/MySql.php index 4444fca4..1b80551f 100644 --- a/lib/CrEOF/Spatial/DBAL/Platform/MySql.php +++ b/lib/CrEOF/Spatial/DBAL/Platform/MySql.php @@ -24,6 +24,7 @@ namespace CrEOF\Spatial\DBAL\Platform; use CrEOF\Spatial\DBAL\Types\AbstractSpatialType; +use CrEOF\Spatial\DBAL\Types\GeographyType; use CrEOF\Spatial\PHP\Types\Geography\GeographyInterface; /** @@ -34,6 +35,8 @@ */ class MySql extends AbstractPlatform { + const DEFAULT_SRID = 4326; + /** * Gets the SQL declaration snippet for a field of this type. * @@ -69,6 +72,10 @@ public function convertToPHPValueSQL(AbstractSpatialType $type, $sqlExpr) */ public function convertToDatabaseValueSQL(AbstractSpatialType $type, $sqlExpr) { + if ($type instanceof GeographyType) { + return sprintf('GeomFromText(%s, %u)', $sqlExpr, self::DEFAULT_SRID); + } + return sprintf('GeomFromText(%s)', $sqlExpr); } }