Я успешно создал рабочее пространство, используя GeoServer REST API. Но у меня проблема с загрузкой файла формы.
Я последовал за этот руководство.
curl -u admin:geoserver -XPUT -H 'Content-type: application/zip' --data-binary "@D:/trash.zip" http://localhost:9090/geoserver/rest/workspaces/string/datastores/trash/file.shp
PHP — эквивалент
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://localhost:9090/geoserver/rest/workspaces/string/datastores/trash/file.shp");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$post = array(
"file" => "@" .realpath("D:/trash.zip")
);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($ch, CURLOPT_USERPWD, "admin" . ":" . "geoserver");
$headers = array();
$headers[] = "Content-Type: application/zip";
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
echo $result;
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
Когда я запускаю его, я получаю:
java.lang.RuntimeException: java.io.IOException: неправильный магический номер,
ожидается 9994, получил 757935405
Понятия не имею, как загрузить шейп-файл на геосервер.
Спасибо!
Задача ещё не решена.
Других решений пока нет …