serviceContainer = $serviceContainer; if($this->serviceContainer->getParameter("geoserver_service")) { $this->user = $this->serviceContainer->getParameter("geoserver_user"); $this->pass = $this->serviceContainer->getParameter("geoserver_pass"); $this->host = $this->serviceContainer->getParameter("geoserver_host"); $this->port = $this->serviceContainer->getParameter("geoserver_port"); $this->pathShapes = $this->serviceContainer->getParameter("geoserver_path_shapes"); $this->url = "http://{$this->host}:{$this->port}/geoserver"; } } // curl -v -u admin:geoserver -XPOST -H "Content-type: text/xml" -d "workspaceName" http://127.0.0.1:8081/geoserver/rest/workspaces public function createWorkspace($workspace) { $ch = curl_init(); $url = "{$this->getUrlRest()}/workspaces"; curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, "{$workspace}"); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_USERPWD, "{$this->user}:{$this->pass}"); $headers = array(); $headers[] = "Content-Type: text/xml"; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $result = curl_exec($ch); if (curl_errno($ch)) {echo 'Error:' . curl_error($ch);} curl_close($ch); } // curl -v -u admin:geoserver -XPUT -H "Content-type: text/plain" -d "file:/home/maxi/Escritorio/aux/" "http://localhost:8080/geoserver/rest/workspaces/workspaceName/datastores/shapefiles/external.shp?configure=all" public function updateShape($workspace, $shapeName = null) { $ch = curl_init(); $path = $this->pathShapes.DIRECTORY_SEPARATOR.$workspace.DIRECTORY_SEPARATOR; $url = "{$this->getUrlRest()}/workspace/{$workspace}/datastores/shapefiles/external.shp?configure=all"; curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, "file:{$path}"); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT"); curl_setopt($ch, CURLOPT_USERPWD, "{$this->user}:{$this->pass}"); $headers = array(); $headers[] = "Content-type: text/plain"; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $result = curl_exec($ch); if (curl_errno($ch)) {echo 'Error:' . curl_error($ch);} curl_close ($ch); } /* public function getLayers($workspace) { $nameWorkspace = "{$workspace}"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://{$this->host}:{$this->port}/geoserver/rest/workspaces/{$nameWorkspace}/datastores/shapefiles/featuretypes.json"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_USERPWD, "{$this->user}" . ":" . "{$this->pass}"); $headers = array(); $headers[] = "Accept: application/json"; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $result = curl_exec($ch); if (curl_errno($ch)) {echo 'Error:' . curl_error($ch);} curl_close($ch); $data = json_decode($result,true); if(is_array($data)) return $data; return array(); } */ // ELIMINAMOS EL SHAPE - curl -v -u admin:geoserver -XDELETE "http://localhost:8080/geoserver/rest/layers/workspaceName:shapeName.json" // ELIMINAMOS EL REGISTRO EN DATASTORE - curl -v -u admin:geoserver -XDELETE "http://localhost:8080/geoserver/rest/workspaces/workspaceName/datastores/shapefiles/featuretypes/shapeName.json" public function deleteShape($workspace, $shape) { $ch = curl_init(); $urlLayer = "{$this->getUrlRest()}/layers/{$workspace}:{$shape}.json"; $urlWorkspace = "{$this->getUrlRest()}/workspaces/{$workspace}/datastores/shapefiles/featuretypes/{$shape}.json"; curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE"); curl_setopt($ch, CURLOPT_USERPWD, "{$this->user}:{$this->pass}"); curl_setopt($ch, CURLOPT_URL, $urlLayer); $result = curl_exec($ch); if (curl_errno($ch)) {echo 'Error:' . curl_error($ch);} curl_setopt($ch, CURLOPT_URL, $urlWorkspace); $result = curl_exec($ch); if (curl_errno($ch)) {echo 'Error:' . curl_error($ch);} curl_close ($ch); } /* public function createUser($user) { $nameUser = "user{$user->getId()}"; $passUser = $user->getGeoPass(); $ch = curl_init(); $url = "http://{$this->host}:{$this->port}/geoserver/rest/security/usergroup/default/users"; curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, "{$nameUser}{$passUser}true"); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_USERPWD, "{$this->user}" . ":" . "{$this->pass}"); $headers = array(); $headers[] = "Content-Type: text/xml"; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $result = curl_exec($ch); if (curl_errno($ch)) {echo 'Error:' . curl_error($ch);} $file = fopen(LOG_FILE,"a+"); fwrite($file,"CREATE USER: ".$url.PHP_EOL); fwrite($file,"return - CREATE USER: ".$result.PHP_EOL); fclose($file); curl_close($ch); } */ public function putShape($rest, $data) { $ch = curl_init(); $url = "{$this->getUrlRest()}/{$rest}"; curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT"); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_USERPWD, "{$this->user}:{$this->pass}"); $headers = array(); $headers[] = "Content-Type: text/xml"; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $result = curl_exec($ch); if (curl_errno($ch)) {echo 'Error:' . curl_error($ch);} curl_close($ch); } public function getUrlRest() { $url = "{$this->url}/rest"; return $url; } public function getUrlWms($workspace) { $url = "{$this->url}/{$workspace}/wms"; return $url; } /* public function existResource($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_USERPWD, "{$this->user}" . ":" . "{$this->pass}"); $headers = array(); $headers[] = "Accept: application/json"; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $result = curl_exec($ch); if (curl_errno($ch)) {echo 'Error:' . curl_error($ch);} curl_close($ch); $data = json_decode($result,true); if(is_array($data)) return $data; return array(); } public function getLayerData($workspace, $shape) { $nameWorkspace = "{$workspace}"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://{$this->host}:{$this->port}/geoserver/rest/workspaces/{$nameWorkspace}/datastores/shapefiles/featuretypes/{$shape}.json"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_USERPWD, "{$this->user}" . ":" . "{$this->pass}"); $headers = array(); $headers[] = "Accept: application/json"; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $result = curl_exec($ch); if (curl_errno($ch)) {echo 'Error:' . curl_error($ch);} curl_close($ch); $data = json_decode($result,true); if(is_array($data)) return $data; return array(); } public function getFeature($workspace, $params) { $ch = curl_init(); $url = "http://{$this->host}:{$this->port}/geoserver/{$workspace}/wms?".http_build_query($params); $file = fopen(LOG_FILE,"a+"); fwrite($file,"GET FEATURE: ".$url.PHP_EOL); fclose($file); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_USERPWD, "{$this->user}" . ":" . "{$this->pass}"); $headers = array(); $headers[] = "Accept: application/json"; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $result = curl_exec($ch); if (curl_errno($ch)) {echo 'Error:' . curl_error($ch);} curl_close($ch); print_r($result); die; return $result; } public function getImage($workspace, $params) { $ch = curl_init(); $url = "http://{$this->host}:{$this->port}/geoserver/{$workspace}/wms?".http_build_query($params); $file = fopen(LOG_FILE,"a+"); fwrite($file,"GET IMAGE: ".$url.PHP_EOL); fclose($file); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_USERPWD, "{$this->user}" . ":" . "{$this->pass}"); $headers = array(); //$headers[] = "Accept: application/json"; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $result = curl_exec($ch); if (curl_errno($ch)) {echo 'Error:' . curl_error($ch);} curl_close($ch); return $result; } */ }