/** * {@inheritdoc} */ public function asText() { if (!$this->proxyIsBinary) { return $this->proxyData; } if ($this->proxyGeometry === null) { $this->load(); } return $this->proxyGeometry->asText(); }
/** * @param Geometry $geometry * * @return \GEOSGeometry */ private function toGEOS(Geometry $geometry) { if ($geometry->isEmpty()) { $geosGeometry = $this->wktReader->read($geometry->asText()); $geosGeometry->setSRID($geometry->SRID()); return $geosGeometry; } if ($this->hasBinaryReadWrite) { return $this->wkbReader->read($this->ewkbWriter->write($geometry)); } return $this->wkbReader->readHEX(bin2hex($this->ewkbWriter->write($geometry))); }
/** * Asserts that two geometries are spatially equal. * * @param Geometry $expected * @param Geometry $actual */ protected final function assertGeometryEquals(Geometry $expected, Geometry $actual) { $expectedWKT = $expected->asText(); $actualWKT = $actual->asText(); if ($expectedWKT === $actualWKT) { // Some engines do not consider empty geometries to be equal, so we test for WKT equality first. $this->addToAssertionCount(1); return; } $this->assertTrue($actual->equals($expected), 'Failed asserting that two geometries are spatially equal.' . "\n---Expected" . "\n+++Actual" . "\n@@ @@" . "\n-" . $expectedWKT . "\n+" . $actualWKT); }