Thank you, Ben Wen
-----Original Message----- From: Ben Caradoc-Davies [mailto:[email protected]] Sent: Thursday, October 22, 2015 2:57 PM To: Yin, Wentao (IS) (Contr); [email protected] Subject: Re: EXT :Re: [Geoserver-users] How to map Multipolygon using geoserver/app-schema? Wen, app-schema does not support user defined geometry types such as aixm:SurfaceType. GeoServer implements (approximately) the OGC simple feature profile, with app-schema providing multiple cardinality of properties and user-defined non-spatial features (i.e. complex features): https://portal.opengeospatial.org/files/?artifact_id=42729 I think you should be able to encode a MULTIPOLYGON as a GML 3.2 gml:MultiSurface. If the substitution groups are incorrect to use this in the schema, you will need to use targetAttributeNode to coerce the type of the property. The supported geometry types in app-schema are the same as for core GeoServer. I have not used geometry aggregates and others here will have more experience with these geometry types. Kind regards, Ben. On 23/10/15 01:53, Yin, Wentao (IS) (Contr) wrote: > Ben, > > I'm trying to map polygon/multipolygon to aixm:Surface: > > <element name="Surface" type="aixm:SurfaceType" > substitutionGroup="gml:Surface"/> > <complexType name="SurfaceType"> > <complexContent> > <extension base="gml:SurfaceType"> > <sequence> > <group ref="aixm:SurfacePropertyGroup"/> > </sequence> > </extension> > </complexContent> > </complexType> > > Which is defined in > <schemaUri>http://www.aixm.aero/gallery/content/public/schema/5.1/AIXM > _Features.xsd</schemaUri> > > > Mapping file: > ... > </targetAttributeNode> > <targetAttribute> > <!--aixm:timeSlice/aixm:AirspaceTimeSlice/aixm:geometryComponent/aixm: > AirspaceGeometryComponent/aixm:theAirspaceVolume/aixm:AirspaceVolume/a > ixm:horizontalProjection/aixm:Surface/gml:patches/gml:PolygonPatch/gml > :exterior/gml:Ring/gml:curveMember--> > aixm:timeSlice/aixm:AirspaceTimeSlice/aixm:geometryComponent/aixm:Airs > paceGeometryComponent/aixm:theAirspaceVolume/aixm:AirspaceVolume/aixm: > horizontalProjection/aixm:Surface > > </targetAttribute> > <sourceExpression> > <OCQL>ROUTE_GEOMETRY</OCQL></sourceExpression> > </AttributeMapping> > > ... > > Wfs Output: > <aixm:Airspace gml:id="uuid.1"><aixm:timeSlice/></aixm:Airspace> nothing > returned for timeSlice and no error. > > Log: > > 22 Oct 08:50:48 DEBUG [org.geotools.xml] - building schema for schema: > http://www.aixm.aero/schema/5.1 > 22 Oct 08:50:48 DEBUG [org.geotools.util] - CRSConverterFactory can be > applied from Strings to CRS only. > 22 Oct 08:50:48 DEBUG [org.geotools.util] - InterpolationConverterFactory can > be applied from Strings to Interpolation only. > 22 Oct 08:50:48 DEBUG [org.geotools.util] - CRSConverterFactory can be > applied from Strings to CRS only. > 22 Oct 08:50:48 DEBUG [org.geotools.jdbc] - CREATE CONNECTION > 22 Oct 08:50:48 DEBUG [org.geotools.jdbc.JoiningJDBCFeatureSource] - > SELECT > LRS_ROUTES.ROUTE_ID,LRS_ROUTES.ROUTE_NAME,LRS_ROUTES.ROUTE_GEOMETRY as > ROUTE_GEOMETRY FROM LRS_ROUTES INNER JOIN (SELECT * FROM (SELECT > DISTINCT LRS_ROUTES.ROUTE_ID FROM LRS_ROUTES ORDER BY > LRS_ROUTES.ROUTE_ID ASC) WHERE ROWNUM <= 1) LRS_ROUTES_1 ON > (LRS_ROUTES.ROUTE_ID = LRS_ROUTES_1.ROUTE_ID ) ORDE R BY > LRS_ROUTES.ROUTE_ID ASC > 22 Oct 08:50:48 DEBUG [org.geotools.util] - CRSConverterFactory can be > applied from Strings to CRS only. > 22 Oct 08:50:48 DEBUG [org.geotools.util] - InterpolationConverterFactory can > be applied from Strings to Interpolation only. > 22 Oct 08:50:48 TRACE [org.geotools.data.complex.filter] - ENTRY > FeatureImpl:Airspace<AirspaceType id=uuid.1>=[] > aixm:timeSlice/aixm:AirspaceTimeSlice/aixm:geometryComponent/aixm:Airs > paceGe > ometryComponent/aixm:theAirspaceVolume/aixm:AirspaceVolume/aixm:horizontalProjection/aixm:Surface > MULTIPOLYGON (((50 105, 55 105, 60 110, 50 110, 50 105)), ((62 108, 65 108, > 65 112, 62 112, > 62 108))) null null > 22 Oct 08:50:48 DEBUG [org.geotools.util] - CRSConverterFactory can be > applied from Strings to CRS only. > 22 Oct 08:50:48 DEBUG [org.geotools.util] - InterpolationConverterFactory can > be applied from Strings to Interpolation only. > 22 Oct 08:50:48 DEBUG [org.geotools.xml] - AbstractFeature is abstract > 22 Oct 08:50:48 TRACE [org.geotools.data.complex] - no more features, > produced 1 > 22 Oct 08:50:48 DEBUG [org.geotools.jdbc] - CLOSE CONNECTION > 22 Oct 08:50:48 INFO [org.geoserver.filters] - 127.0.0.1 "GET > /geoserver/wfs?request=GetFeature&version=2.0.0&typeName=aixm:Airspace > &count=1" took 63ms > > > Thanks for help, > Wen > > > -----Original Message----- > From: Ben Caradoc-Davies [mailto:[email protected]] > Sent: Thursday, October 22, 2015 6:07 AM > To: Yin, Wentao (IS) (Contr); [email protected] > Subject: EXT :Re: [Geoserver-users] How to map Multipolygon using > geoserver/app-schema? > > Wen, > > MULTIPOLYGON geometry columns should be supported by GeoTools and thus > GeoServer and app-schema. What happens when you map an Oracle MULTIPOLYGON > geometry column in app-schema? I expect that in WFS responses these are > encoded as GML MultiPolygon. > > Kind regards, > Ben. > > On 22/10/15 04:40, Yin, Wentao (IS) (Contr) wrote: >> Is Multipolygon supported in geoserver/app-schema? How to map it from Oracle? >> >> Thanks, >> Wen >> >> >> >> >> --------------------------------------------------------------------- >> - >> -------- >> >> >> >> _______________________________________________ >> Geoserver-users mailing list >> [email protected] >> https://lists.sourceforge.net/lists/listinfo/geoserver-users >> > > -- > Ben Caradoc-Davies <[email protected]> > Director > Transient Software Limited <http://transient.nz/> New Zealand > -- Ben Caradoc-Davies <[email protected]> Director Transient Software Limited <http://transient.nz/> New Zealand ------------------------------------------------------------------------------ _______________________________________________ Geoserver-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/geoserver-users
