예제 #1
0
파일: GeometryProxy.php 프로젝트: brick/geo
 /**
  * {@inheritdoc}
  */
 public function geometryTypeBinary()
 {
     if ($this->proxyGeometry === null) {
         $this->load();
     }
     return $this->proxyGeometry->geometryTypeBinary();
 }
예제 #2
0
파일: WKBWriter.php 프로젝트: brick/geo
 /**
  * {@inheritdoc}
  */
 protected function packHeader(Geometry $geometry, $outer)
 {
     $geometryType = $geometry->geometryTypeBinary();
     $cs = $geometry->coordinateSystem();
     if ($cs->hasZ()) {
         $geometryType += 1000;
     }
     if ($cs->hasM()) {
         $geometryType += 2000;
     }
     return $this->packUnsignedInteger($geometryType);
 }
예제 #3
0
파일: EWKBWriter.php 프로젝트: brick/geo
 /**
  * {@inheritdoc}
  */
 protected function packHeader(Geometry $geometry, $outer)
 {
     $geometryType = $geometry->geometryTypeBinary();
     $cs = $geometry->coordinateSystem();
     if ($cs->hasZ()) {
         $geometryType |= EWKBTools::Z;
     }
     if ($cs->hasM()) {
         $geometryType |= EWKBTools::M;
     }
     $srid = $cs->SRID();
     if ($srid !== 0 && $outer) {
         $geometryType |= EWKBTools::S;
     }
     $header = $this->packUnsignedInteger($geometryType);
     if ($srid !== 0 && $outer) {
         $header .= $this->packUnsignedInteger($srid);
     }
     return $header;
 }