Más

Agregue una capa WFS externa al geoservidor usando la API REST

Agregue una capa WFS externa al geoservidor usando la API REST


Estoy tratando de agregar un WFS externo como fuente de datos a mi geoservidor a través de la API REST. Ya agregué un nuevo espacio de trabajo y una fuente de datos WFS.

Ahora quiero publicar una capa de ese WFS en geoserver. Lo mismo funciona para WMS, pero parece ser un poco diferente y estar mal documentado para los servicios WFS.

Traté de solicitar

PONER http://myhost.com/geoserver/rest/workspaces/my_workspace/datastores/my_datastore/layers

el siguiente contenido propuesto en esta publicación:

 my_layer VECTOR  punto  myFeature

Esto no me funciona, obtengo un 500: No se puede enviar org.geoserver.catalog.impl.LayerInfoImpl a org.geoserver.catalog.DataStoreInfo.

Ahora no estoy seguro, si es necesario crear un FeatureType para la capa de antemano. Agregué la capa manualmente a través de la interfaz de usuario del geoservidor, donde detecta automáticamente el tipo de característica de la capa WFS. Me gustaría el mismo comportamiento a través de la API REST.

¿Alguien puede guiarme hacia el enfoque correcto?

EDITAR:

Quizás eso funcione, una vez que haya creado el tipo de característica. Intenté obtener la descripción featureType de mi capa creada manualmente para adaptarla. Pero hay mucha información que tendría que poner en featuretype.xml manualmente solo desde el WFS original. Intenté insertar la salida DescribeFeatureType del WFS original en esta solicitud:

POST / geoserver / rest / workspaces / my_workspace / datastores / my_datastore / featuretypes

Pero se queja de la sintaxis porque las etiquetas xsd: schema

¿No está seguro, si esta es la sintaxis de FeatureType esperada?


Debe crear un FeatureType antes de poder crear una Capa (es decir, publicarla). Si ya ha creado una capa de prueba, busque el tipo de característica de esa (como http://geoserver.ianturton.com/rest/workspaces/topp/datastores/bgs/featuretypes/test_uk_625k_mapped_feature.xml) pero debería poder hacerlo elimine bastante de eso y déjelo para que GeoServer lo complete.

 test_uk_625k_mapped_feature test_uk_625k_mapped_feature  topp  uk_625k_mapped_feature [email protected] (valor: Solo para prueba, lang: )  uk_625k_mapped_feature características PROJCS ["OSGB 1936 / British National Grid", GEOGCS ["OSGB 1936", DATUM ["OSGB 1936", SPHEROID ["Airy 1830", 6377563.396, 299.3249646, AUTHORITY ["EPSG", "7001"]], TOWGS84 [ 446.448, -125.157, 542.06, 0.15, 0.247, 0.842, -20.489], AUTHORITY ["EPSG", "6277"]], PRIMEM ["Greenwich", 0.0, AUTHORITY ["EPSG", "8901"]], UNIT ["grado", 0.017453292519943295], AXIS ["Longitud geodésica", ESTE], AXIS ["Latitud geodésica", NORTE], AUTORIDAD ["EPSG", "4277"]], PROYECCIÓN ["Transverse_Mercator", AUTORIDAD ["EPSG "," 9807 "]], PARAMETER [" central_meridian ", -2.0], PARAMETER [" latitude_of_origin ", 49.0], PARAMETER [" scale_factor ", 0.9996012717], PARAMETER [" false_easting ", 400000.0], PARAMETER [" false_northing " , -100000.0], UNIDAD ["m", 1.0], EJE ["Este", ESTE], EJE ["Norte", NORTE], AUTORIDAD ["EPSG", "27700"]] EPSG: 27700  -132576.78915711527 743466.6249987332 -15669.960592884949 1248847.1762802668 EPSG: 27700  -11.801005644638966 4.349696858682689 49.5245056714837 61.11839723246307 GEOGCS ["WGS84 (DD)", DATUM ["WGS84", SPHEROID ["WGS84", 6378137.0, 298.257223563]], PRIMEM ["Greenwich", 0.0], UNIT ["grado", 0.017453292519943295], EJE ["Longitud geodésica ", ESTE], AXIS [" Latitud geodésica ", NORTE]] FORCE_DECLARED cierto  bgs  0 0 falso falso falso   uuid 1 1 cierto java.lang.String  Lex 1 1 cierto java.lang.String  rcs 1 1 cierto java.lang.String  lex_rcs 1 1 cierto java.lang.String  the_geom 0 1 cierto com.vividsolutions.jts.geom.Geometry

Experimente y, cuando funcione, actualice la documentación para la siguiente persona.


Finalmente, la respuesta de iant me llevó a la meta. Para completar, publico lo que he hecho:

Después de crear la fuente de datos, el geoservidor conoce la información principal de las capas WFS. Entonces solo tuve que hacer

POST / geoserver / rest / workspaces / my_workspace / datastores / my_datastore / featuretypes

con el nombre de la capa WFS, quería publicar

layer_name_from_remote_wfs

Toda la información adicional es creada por el propio geoservidor, incluso la capa correspondiente se crea automáticamente, por lo que hemos terminado en este punto.

Esto fue bastante confuso para mí, ya que la salida del geoservidor DescribeFeatureType de la nueva capa que se encuentra en

http: // host / geoserver / my_workspace / wfs? service = WFS & version = 1.1.0 & request = DescribeFeatureType & featureType

responde con un esquema xsd, que parece ser el resultado esperado. Pero también puedo solicitar

http: //host/geoserver/rest/workspaces/my_workspace/datastores/my_datastore/featuretypes/my_layername.xml

que devuelve la descripción del tipo de característica en formato xml que incluye información adicional sobre la fuente de datos.


Ver el vídeo: Install AdminLTE Template in CodeIgniter 4