????JFIF??x?x????'
Server IP : 79.136.114.73 / Your IP : 3.140.198.85 Web Server : Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.29 OpenSSL/1.0.1f System : Linux b8009 3.13.0-170-generic #220-Ubuntu SMP Thu May 9 12:40:49 UTC 2019 x86_64 User : www-data ( 33) PHP Version : 5.5.9-1ubuntu4.29 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/share/phpmyadmin/libraries/plugins/import/ |
Upload File : |
<?php /* vim: set expandtab sw=4 ts=4 sts=4: */ /** * This class extends ShapeRecord class to cater the following phpMyAdmin * specific requirements. * * @package PhpMyAdmin-Import * @subpackage ESRI_Shape */ if (! defined('PHPMYADMIN')) { exit; } /** * 1) To load data from .dbf file only when the dBase extension is available. * 2) To use PMA_importGetNextChunk() functionality to read data, rather than * reading directly from a file. Using ImportShp::readFromBuffer() in place * of fread(). This makes it possible to use compressions. * * @package PhpMyAdmin-Import * @subpackage ESRI_Shape */ class PMA_ShapeRecord extends ShapeRecord { /** * Loads a geometry data record from the file * * @param object &$SHPFile .shp file * @param object &$DBFFile .dbf file * * @return void * @see ShapeRecord::loadFromFile() */ function loadFromFile(&$SHPFile, &$DBFFile) { $this->DBFFile = $DBFFile; $this->_loadHeaders(); switch ($this->shapeType) { case 0: $this->_loadNullRecord(); break; case 1: $this->_loadPointRecord(); break; case 3: $this->_loadPolyLineRecord(); break; case 5: $this->_loadPolygonRecord(); break; case 8: $this->_loadMultiPointRecord(); break; default: $this->setError( sprintf( __("Geometry type '%s' is not supported by MySQL."), $this->shapeType ) ); break; } if (extension_loaded('dbase') && isset($this->DBFFile)) { $this->_loadDBFData(); } } /** * Loads metadata from the ESRI shape record header * * @return void * @see ShapeRecord::_loadHeaders() */ function _loadHeaders() { $this->recordNumber = loadData("N", ImportShp::readFromBuffer(4)); ImportShp::readFromBuffer(4); $this->shapeType = loadData("V", ImportShp::readFromBuffer(4)); } /** * Loads data from a point record * * @return void * @see ShapeRecord::_loadPoint() */ function _loadPoint() { $data = array(); $data["x"] = loadData("d", ImportShp::readFromBuffer(8)); $data["y"] = loadData("d", ImportShp::readFromBuffer(8)); return $data; } /** * Loads data from a multipoint record * * @return void * @see ShapeRecord::_loadMultiPointRecord() */ function _loadMultiPointRecord() { $this->SHPData = array(); $this->SHPData["xmin"] = loadData("d", ImportShp::readFromBuffer(8)); $this->SHPData["ymin"] = loadData("d", ImportShp::readFromBuffer(8)); $this->SHPData["xmax"] = loadData("d", ImportShp::readFromBuffer(8)); $this->SHPData["ymax"] = loadData("d", ImportShp::readFromBuffer(8)); $this->SHPData["numpoints"] = loadData("V", ImportShp::readFromBuffer(4)); for ($i = 0; $i <= $this->SHPData["numpoints"]; $i++) { $this->SHPData["points"][] = $this->_loadPoint(); } } /** * Loads data from a polyline record * * @return void * @see ShapeRecord::_loadPolyLineRecord() */ function _loadPolyLineRecord() { $this->SHPData = array(); $this->SHPData["xmin"] = loadData("d", ImportShp::readFromBuffer(8)); $this->SHPData["ymin"] = loadData("d", ImportShp::readFromBuffer(8)); $this->SHPData["xmax"] = loadData("d", ImportShp::readFromBuffer(8)); $this->SHPData["ymax"] = loadData("d", ImportShp::readFromBuffer(8)); $this->SHPData["numparts"] = loadData("V", ImportShp::readFromBuffer(4)); $this->SHPData["numpoints"] = loadData("V", ImportShp::readFromBuffer(4)); for ($i = 0; $i < $this->SHPData["numparts"]; $i++) { $this->SHPData["parts"][$i] = loadData( "V", ImportShp::readFromBuffer(4) ); } $readPoints = 0; reset($this->SHPData["parts"]); while (list($partIndex, $partData) = each($this->SHPData["parts"])) { if (! isset($this->SHPData["parts"][$partIndex]["points"]) || !is_array($this->SHPData["parts"][$partIndex]["points"]) ) { $this->SHPData["parts"][$partIndex] = array(); $this->SHPData["parts"][$partIndex]["points"] = array(); } while (! in_array($readPoints, $this->SHPData["parts"]) && ($readPoints < ($this->SHPData["numpoints"])) ) { $this->SHPData["parts"][$partIndex]["points"][] = $this->_loadPoint(); $readPoints++; } } } } ?>