예제 #1
0
파일: Geometry.php 프로젝트: kitbs/geoPHP
 public function geos()
 {
     // If it's already been set, just return it
     if ($this->geos && GeoPHP::geosInstalled()) {
         return $this->geos;
     }
     // It hasn't been set yet, generate it
     if (GeoPHP::geosInstalled()) {
         $reader = new GEOSWKBReader();
         $this->geos = $reader->readHEX($this->out('wkb', TRUE));
     } else {
         $this->geos = FALSE;
     }
     return $this->geos;
 }
예제 #2
0
파일: WKT.php 프로젝트: kitbs/geoPHP
 /**
  * Serialize geometries into a WKT string.
  *
  * @param Geometry $geometry
  *
  * @return string The WKT string representation of the input geometries
  */
 public function write(Geometry $geometry)
 {
     // If geos is installed, then we take a shortcut and let it write the WKT
     if (GeoPHP::geosInstalled()) {
         $writer = new GEOSWKTWriter();
         $writer->setTrim(TRUE);
         return $writer->write($geometry->geos());
     }
     if ($geometry->isEmpty()) {
         return strtoupper($geometry->geometryType()) . ' EMPTY';
     } else {
         if ($data = $this->extractData($geometry)) {
             return strtoupper($geometry->geometryType()) . ' (' . $data . ')';
         }
     }
 }
예제 #3
0
파일: GeoPHP.php 프로젝트: kitbs/geoPHP
 static function geosToGeometry($geos)
 {
     if (!GeoPHP::geosInstalled()) {
         return NULL;
     }
     $wkb_writer = new GEOSWKBWriter();
     $wkb = $wkb_writer->writeHEX($geos);
     $geometry = GeoPHP::load($wkb, 'wkb', TRUE);
     if ($geometry) {
         $geometry->setGeos($geos);
         return $geometry;
     }
 }