W ramach możliwego rozwiązania tego pytania chcę utworzyć warstwę w GeoServer za pośrednictwem REST, która dostarcza instrukcję SQL wraz z identyfikatorem użytkownika.
Czytanie Myślę, że stworzyłbym typ funkcji i opublikowałbym go? Muszę to wszystko zrobić w usłudze REST. Czy ktoś ma jakieś przykłady kodu?
Odpowiedzi:
Jest wiele rzeczy, które możesz zrobić z GeoServer REST API, które nie są specjalnie udokumentowane i dla których nie ma przykładów kodu. Oto strategia radzenia sobie z nimi.
Najpierw zacznij od przykładów w dokumentacji . Upewnij się, że wiesz, jak utworzyć prostą nową warstwę lub przestrzeń roboczą za pomocą HTTP POST z XML lub JSON.
Następnie za pomocą interfejsu użytkownika GeoServer ręcznie utwórz potrzebny obiekt, dla którego nie ma dokumentacji (w tym przypadku typ elementu).
Na koniec ręcznie wyszukaj indeks REST GeoServer (
http://your-server/rest
lubhttp://your-server/geoserver/rest
). Przeglądaj indeks, aż znajdziesz właśnie utworzony typ funkcji. Dołącz „.xml” lub „.json” do adresu URL tego zasobu, a zobaczysz jego reprezentację XML lub JSON.Ta reprezentacja jest potrzebna do wykonania testu POST, aby utworzyć typ funkcji za pośrednictwem interfejsu API. Adres URL reprezentacji to adres URL, który byłby potrzebny do POST (na przykład
http://your-server/geoserver/rest/..../myFeatureTypeName.json
).Możesz użyć tej strategii, aby dowiedzieć się, jak programowo utworzyć lub skonfigurować dowolny zasób w GeoServer.
źródło
featuretypes
punktu końcowego sklepu, np.geoserver/rest/workspaces/<workspacename>/datastores/<storename>/featuretypes/
Wiem, że to stare pytanie, ale na wypadek, gdyby ktoś był zdezorientowany tak jak ja. Ważne jest to, że nie można utworzyć warstwę z http: // GeoServer / odpoczynek / warstwy końcowego.
Jeśli chcesz dodać warstwę wektorową, odbywa się to poprzez zasób typu elementu:
http://docs.geoserver.org/stable/en/user/rest/api/featuretypes.html
POST do:
gdzie jest obszar roboczy, w którym ma się znajdować typ elementu, a używane źródło danych utworzy nowy typ elementu wektorowego, tj. warstwę.
Jeśli zastanawiasz się, co możesz POST, @Rohan jest poprawny, najprostszym sposobem jest zapytanie o istniejący typ funkcji, IE lub http GET to
co zwróci istniejący typ funkcji jako json.
źródło
Najlepsze informacje znajdziesz w instrukcji obsługi. http://docs.geoserver.org/stable/en/user/rest/examples/index.html
źródło
Jeśli rozumiesz Javę, możesz rzucić okiem na ten prosty kod, który używa REST do wykonywania wszelkiego rodzaju operacji na GeoServer.
źródło
Aby dodać warstwę, należy zdefiniować magazyn danych i typ funkcji. Zakładając, że są one już zdefiniowane wraz ze stylem (zgodnie z opisem w przewodniku na stronie http://boundlessgeo.com/2012/10/10/adding-layers-to-geoserver-using-the-rest-api/, aby dodać warstwę PUT żądanie należy wysłać do geoserver na:
Z zawartością danych, taką jak:
źródło