예제 #1
0
파일: GeometryProxy.php 프로젝트: brick/geo
 /**
  * {@inheritdoc}
  */
 public function asText()
 {
     if (!$this->proxyIsBinary) {
         return $this->proxyData;
     }
     if ($this->proxyGeometry === null) {
         $this->load();
     }
     return $this->proxyGeometry->asText();
 }
예제 #2
0
파일: GEOSEngine.php 프로젝트: brick/geo
 /**
  * @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)));
 }
예제 #3
0
 /**
  * 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);
 }