Esempio n. 1
0
 /**
  * Loads DBF file if supported
  *
  * @return boolean
  */
 private function _openDBFFile()
 {
     if (!ShapeFile::supports_dbase()) {
         $this->DBFFile = null;
         return true;
     }
     $dbf_name = $this->_getFilename('.dbf');
     if (is_readable($dbf_name)) {
         $this->DBFFile = @dbase_open($dbf_name, 0);
         if (!$this->DBFFile) {
             $this->setError(sprintf('It wasn\'t possible to open the DBase file "%s"', $dbf_name));
             return false;
         }
     } else {
         $this->setError(sprintf('It wasn\'t possible to find the DBase file "%s"', $dbf_name));
         return false;
     }
     return true;
 }
Esempio n. 2
0
 /**
  * Saves record to files
  *
  * @param file    &$SHPFile     Opened SHP file
  * @param file    &$DBFFile     Opened DBF file
  * @param integer $recordNumber Record number
  *
  * @return void
  */
 public function saveToFile(&$SHPFile, &$DBFFile, $recordNumber)
 {
     $this->SHPFile = $SHPFile;
     $this->DBFFile = $DBFFile;
     $this->recordNumber = $recordNumber;
     $this->_saveHeaders();
     switch ($this->shapeType) {
         case 0:
             // Nothing to save
             break;
         case 1:
             $this->_savePointRecord();
             break;
         case 21:
             $this->_savePointMRecord();
             break;
         case 11:
             $this->_savePointZRecord();
             break;
         case 3:
             $this->_savePolyLineRecord();
             break;
         case 23:
             $this->_savePolyLineMRecord();
             break;
         case 13:
             $this->_savePolyLineZRecord();
             break;
         case 5:
             $this->_savePolygonRecord();
             break;
         case 25:
             $this->_savePolygonMRecord();
             break;
         case 15:
             $this->_savePolygonZRecord();
             break;
         case 8:
             $this->_saveMultiPointRecord();
             break;
         case 28:
             $this->_saveMultiPointMRecord();
             break;
         case 18:
             $this->_saveMultiPointZRecord();
             break;
         default:
             $this->setError(sprintf('The Shape Type "%s" is not supported.', $this->shapeType));
             break;
     }
     if (ShapeFile::supports_dbase() && !is_null($this->DBFFile)) {
         $this->_saveDBFData();
     }
 }