Thêm một Coveragestore mới trong một không gian làm việc nhất định bằng REST


9

Vì vậy, điều đơn giản như nó có vẻ nhưng tôi dường như không thể làm cho nó hoạt động! Tôi đang cố gắng thêm tệp dữ liệu raster (GeoTIFF) vào máy chủ địa lý thông qua API REST, sử dụng curl trên linux. API REST đang hoạt động, vì tôi đã tạo một không gian làm việc mới bằng cách sử dụng nó:

curl -u admin:geoserver -v -XPOST -H 'Content-type: text/xml' \
 -d '<workspace><name>restProba</name></workspace>' \
 http://localhost:8080/geoserver/rest/workspaces

Nó được tạo chính xác như được hiển thị bởi quản trị viên của Geoserver, nhưng khi tôi cố gắng thêm một trang bìa vào không gian làm việc đó bằng cách thực thi

curl -u admin:geoserver -v -XPOST -H 'Content-type: text/xml' -d
'<coverageStore><name>int_dec</name><enabled>true</enabled>
<type>GeoTIFF</type> <url>$home/int_dec.tif</url></coverageStore>'     
"http://localhost:8080/geoserver/rest/workspaces/restProba/coveragestores?configure=all"

mặc dù nó được tải một cách chính xác, nó đi thẳng vào không gian làm việc mặc định, đây không phải là nơi tôi muốn. Có cách nào để xác định không gian làm việc nào tôi muốn không? Tôi nghĩ rằng nó đã đủ bằng cách đề cập đến nó trong URL nơi tôi trỏ đến URI không gian làm việc của restProba nhưng dường như nó đang bỏ qua nó.

Cảm ơn bạn đã giúp đỡ :-)

pd: newbie với geoserver, tôi đã thử tìm kiếm cái này nhưng tôi không sử dụng đúng tiêu chí tìm kiếm, tôi là một kẻ ngốc hoặc nó quá đơn giản để bất cứ ai hỏi rằng tôi thậm chí còn ngốc hơn khi hỏi nó: p

Câu trả lời:


5

Có lẽ bạn có thể thử điều này sau khi tạo không gian làm việc:

curl -u admin:geoserver -v -XPOST -H 'Content-Type: application/xml' \
     -d '<coverageStore><name>int_dec</name><workspace>restProba</workspace>  
         <enabled>true</enabled></coverageStore>' \
         http://localhost:8080/geoserver/rest/workspaces/restProba/coveragestores

Nó sẽ tạo ra một coveragestore được gọi int_dectrong restProbakhông gian làm việc ::

Sau đó, bạn có thể tham chiếu tệp GeoTIFF:

curl -u admin:geoserver -v -XPUT -H 'Content-type: text/plain' \
     -d 'file:/$home/int_dec.tif' \
      http://localhost:8080/geoserver/rest/workspaces/restProba/coveragestores/int_dec/external.geotiff?configure=first\&coverageName=int_dec

Tôi nghĩ vấn đề của bạn là thiếu '

Yêu cầu của bạn là:

curl -u admin:geoserver -v -XPOST -H 'Content-type: text/xml' -d
<coverageStore><name>int_dec</name><enabled>true</enabled>
<type>GeoTIFF</type> <url>$home/int_dec.tif</url></coverageStore>'     
"http://localhost:8080/geoserver/rest/workspaces/restProba/coveragestores?configure=all"

Nó nên là:

curl -u admin:geoserver -v -XPOST -H 'Content-type: text/xml' -d
'<coverageStore><name>int_dec</name><enabled>true</enabled>
<type>GeoTIFF</type> <url>$home/int_dec.tif</url></coverageStore>'     
"http://localhost:8080/geoserver/rest/workspaces/restProba/coveragestores?configure=all"


Kiểm tra nó và không, tôi đã làm đúng yêu cầu. Bắt tốt, tôi sẽ sửa câu hỏi :) (tôi cảm thấy nhẹ nhõm không phải vậy, tôi sẽ bị bẽ mặt!)
Mikel G. Gainza

1
Ít nhất vấn đề của bạn sẽ được giải quyết ;-) Cập nhật câu trả lời của tôi. Tôi hy vọng nó sẽ làm việc bây giờ.
RK

1

Để thêm một cửa hàng GeoTIFF và một lớp cùng tên trong một bước bạn có thể thực hiện:

$ curl -v -u admin:geoserver -XPUT -H "Content-type: text/plain"
       -d "file:///path_to_directory/int_dec.tif"
       http://localhost:8080/geoserver/rest/workspaces/restProba/coveragestores/int_dec/external.geotiff

Thêm chi tiết trong "ví dụ cấu hình REST: Thêm một shapefile hiện có" .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.