lowem / geoserver-php
Geoserver API 包装器
v1.4.1
2021-10-31 00:25 UTC
Requires
- ext-json: *
- lowem/easy-curl: ^5.0
Requires (Dev)
- phpunit/phpunit: ^9.5
README
Geoserver PHP
这是 Geoserver 的 PHP 包装器
📝 目录
🧐 关于
该项目创建的目的是帮助开发者轻松与 Geoserver API 交互。
🏁 入门
以下说明将帮助您安装并运行 Geoserver PHP。
先决条件
为了安装此软件包,您必须安装 composer,这可以通过根据您的系统遵循以下步骤完成 此处。
如果您还没有这样做,现在请在项目目录的根目录中运行 composer init,开始使用 composer。只需按照提示操作即可。
安装
在项目根目录中,运行以下命令安装 Geoserver PHP。
composer require lowem/geoserver-php
创建一个新 PHP 文件,并将以下代码添加到文件顶部以自动加载该软件包以及您可能已安装的其他软件包。使用 use 语句可以防止您输入完整的包命名空间。
require_once "vendor/autoload.php"; use Lowem\GeoserverPHP\Workspaces; use Lowem\GeoserverPHP\CoverageStores;
🎈 API 使用
工作空间 new Workspaces(baseURL)
getAll()- 返回一个 JSON 对象,包含所有可用工作空间的属性。- 示例
$workspace = new Workspaces("http://192.168.160.137:8080/geoserver"); $workspace->setBasicAuth("admin", "geoserver"); $result = ""; try { $result = $workspace->getAll(); } catch (HTTPRequestException $e) { echo $e->getCustomMessage(); } print_r($result);
- 示例
create(workspaceName)- 创建一个新的工作空间。- 示例
$workspace = new Workspaces("http://192.168.160.137:8080/geoserver"); $workspace->setBasicAuth("admin", "geoserver"); try { $workspace->create("Test1"); } catch (HTTPRequestException $e) { echo $e->getCustomMessage(); }
- 示例
get(workspaceName)- 返回特定工作空间的属性。- 示例
$workspace = new Workspaces("http://192.168.160.137:8080/geoserver"); $workspace->setBasicAuth("admin", "geoserver"); $result = ""; try { $result = $workspace->get("Test1"); } catch (HTTPRequestException $e) { echo $e->getCustomMessage(); } print_r($result);
- 示例
update(currentWorkspaceName, newWorkspaceName)- 重命名特定工作空间。- 示例
$workspace = new Workspaces("http://192.168.160.137:8080/geoserver"); $workspace->setBasicAuth("admin", "geoserver"); try { $workspace->update("Test1", "Test12"); } catch (HTTPRequestException $e) { echo $e->getCustomMessage(); }
- 示例
delete(workspaceName, recurse)- 删除特定工作空间,并具有布尔选项 (recurse) 以删除其中的所有存储。- 示例
$workspace = new Workspaces("http://192.168.160.137:8080"); $workspace->setBasicAuth("admin", "geoserver"); try { $workspace->delete("Test12", TRUE); } catch (HTTPRequestException $e) { echo $e->getCustomMessage(); }
- 示例
覆盖存储 new CoverageStores(baseUrl)
-
getAll(workspaceName)- 返回特定工作空间中所有存储的 JSON 对象。- 示例
$coverageStore = new CoverageStores("http://192.168.160.137:8080/geoserver"); $coverageStore->setBasicAuth("admin", "geoserver"); $result = ""; try { $result = $coverageStore->getAll("World_Claim"); } catch (HTTPRequestException $e) { echo $e->getCustomMessage(); } print_r($result);
- 示例
-
create(data)- 通过输入属性键值对数组创建新的覆盖存储。- 示例
$coverageStore = new CoverageStores("http://192.168.160.137:8080/geoserver"); $coverageStore->setBasicAuth("admin", "geoserver"); try { $coverageStore->create([ "name" => "TestCoverStore2", "description" => "This is a test store", "workspace" => "Test1", "enabled" => "true", "type" => "GeoTIFF" ]); } catch (HTTPRequestException $e) { echo $e->getCustomMessage(); }
- 示例
-
get(workspaceName, store)- 获取覆盖存储,同时使用 JSON 输出结果。- 示例
$coverageStore = new CoverageStores("http://192.168.160.137:8080/geoserver"); $coverageStore->setBasicAuth("admin", "geoserver"); $result = ""; try { $result = $coverageStore->get("Test1", "TestCoverStore2"); } catch (HTTPRequestException $e) { echo $e->getCustomMessage(); } print_r($result);
- 示例
-
update(workspaceName, store, data)- 通过输入属性键值对数组更新覆盖存储。注意:您只需提供要更新的字段。
- 示例
$coverageStore = new CoverageStores("http://192.168.160.137:8080/geoserver"); $coverageStore->setBasicAuth("admin", "geoserver"); try { $coverageStore->update("Test1", "TestCoverStore2", [ "name" => "TestCover" ]); } catch (HTTPRequestException $e) { echo $e->getCustomMessage(); }
- 示例
-
geoTiffUpload(workspaceName, store, absFilePath)- 将 geoTiff 文件添加到存储中。- 示例
$coverageStore = new CoverageStores("http://192.168.160.137:8080/geoserver"); $coverageStore->setBasicAuth("admin", "geoserver"); try { $coverageStore->geoTiffUpload("Test1", "test10", "C:\Users\LoweM\Downloads\wc2.1_2.5m_prec_2010-2018\wc2.1_2.5m_prec_2010-03.tif"); } catch (HTTPRequestException $e) { echo $e->getCustomMessage(); }
- 示例
数据存储 new DataStores(baseUrl)
shapeFileUpload($workspaceName, $store, $absFilePath)- 将 ShapeFile 上传到存储。- 示例
$dataStore = new DataStores($this->baseURL); $dataStore->setBasicAuth("admin", "geoserver"); try { $dataStore->shapeFileUpload("acme", "nyc_roads5", "/Users/LoweM/Downloads/nyc_roads.zip"); } catch (HTTPRequestException $e) { echo $e->getCustomMessage(); }
- 示例
✍️ 作者
- @Lowe-Man - 灵感和初始工作
请参阅参与此项目的 贡献者列表。