Exemplo n.º 1
0
 /**
  * Parse geometry data
  *
  * @return array
  * @throws UnexpectedValueException
  */
 private function readGeometry()
 {
     $this->srid = null;
     try {
         $this->byteOrder = $this->readByteOrder();
         $this->type = $this->readType();
         if ($this->hasFlag($this->type, self::WKB_FLAG_SRID)) {
             $this->srid = $this->readSrid();
         }
         $this->dimensions = $this->getDimensions($this->type);
         $this->pointSize = 2 + strlen($this->getDimensionType($this->dimensions));
         $typeName = $this->getTypeName($this->type);
         return array('type' => $typeName, 'srid' => $this->srid, 'value' => $this->{$typeName}(), 'dimension' => $this->getDimensionType($this->dimensions));
     } catch (ExceptionInterface $e) {
         throw new $e($e->getMessage() . ' at byte ' . $this->reader->getLastPosition(), $e->getCode(), $e->getPrevious());
     }
 }