Hi all, I know most you guys are busy with the release of the new version of Geotools, but I was wondering if someone can have a quick look at my issue?
Thank you for your time, Regards, Derrick -----Original Message----- From: derrick.w...@csiro.au [mailto:derrick.w...@csiro.au] Sent: Monday, 17 May 2010 6:13 PM To: geotools-devel@lists.sourceforge.net Subject: [ExternalEmail] [Geotools-devel] Query - org.geotools.referencing.factory.AbstractAuthorityFactory Hi all, I have been investigating the Axis Order for Bounding Box specified in a WFS spatial query for complex features and now I have managed to resolve some of the issues I was having previously (previous emails). Looking at the class org.geoserver.feature.ReprojectingFilterVistor class line 77 onwards: public Object visit(BBOX filter, Object extraData) { // if no srs is specified we can't transform anyways String srs = filter.getSRS(); if (srs == null || "".equals(srs.trim())) return super.visit(filter, extraData); I was investigating why filter.getSRS() was returning null, and I have managed to trace it back all the way to when the geoserver first starts and datastore is being initialised. Looking at org.geotools.jdbc.JDBCFeatureSrouce (line 297): srid = dialect.getGeometrySRID(databaseSchema, tableName, name, cx); The class attempts to obtain the srid from the database, and in a particular instance, the srid returned was "8311". Stepping through the code, the following exception is thrown: org.opengis.referencing.NoSuchAuthorityCodeException: No code "EPSG:8311" from authority "European Petroleum Survey Group" found for object of type "IdentifiedObject". Digging deeper, we get OracleDialect (line 491) The StringBuffer builds the query to be made to the database, which on debugging reveals: SELECT SRID FROM MDSYS.USER_SDO_GEOM_METADATA WHERE TABLE_NAME='GSML_MAPPEDFEATURE' AND COLUMN_NAME='SHAPE' I had a look at the following view MDSYS.USER_SDO_GEOM_METADATA and there were rows with valid EPSG codes, and others (like 8311) which were just plain srids obtained from Geodetic Points. I wasn't familiar with the SRID 8311, so I ran the following query "select sdo_cs.map_oracle_srid_to_epsg (8311) from dual;". 8311 was just a srid to EPSG 4326. The data belongs to the client, and I only have read access. This leads to my question, should there be another check if we get the following "NoSuchAuthorityCodeException", to see if the SRID can be converted to a valid EPSG code? Thank you for your time. Regards, Derrick From: Wong, Derrick (CESRE, Kensington) Sent: Wednesday, 5 May 2010 11:07 AM To: 'Jody Garnett' Cc: geotools-devel@lists.sourceforge.net Subject: RE: [Geotools-devel] Geotool query - Differences in SimpleFeaturePropertyAccessor and FeaturePropertyAccessorFactory Hi Jody, Thanks for your reply. I had a further look into some other classes, and spotted a similar trend (e.g. org.geotools.filter.expression.FeaturePropertyAccessorFactory). Comparing them with similar classes written for Simple Features, I have made a few changes and, the axis ordering of the bbox in a WFS spatial query now behaves the same for Complex Features. Once I am done testing and reviewing the changes, I will get Ben/Rini to have a look at it. Thank you once again. Regards, Derrick From: Jody Garnett [mailto:jody.garn...@gmail.com] Sent: Monday, 3 May 2010 3:36 PM To: Wong, Derrick (CESRE, Kensington) Cc: geotools-devel@lists.sourceforge.net Subject: Re: [Geotools-devel] Geotool query - Differences in SimpleFeaturePropertyAccessor and FeaturePropertyAccessorFactory Hi Derrick! Welcome to GeoTools development; one of the big tips is to jump on the IRC channel for "watercooler" style conversation; since you are hitting some deep issues it would be good to explore the problem with you. The check of target == Geometry.class looks very ill advised (should use Geometry.class.isAssignableFrom( target ) for one). I see no trouble removing the target test in the manner you described; the process is to submit a JIRA bug report (with a patch + test case if you want it acted on promptly). Chances are you know someone in your organisation who can apply the patch :-D However we are into an interesting question: when no geometry is specified what is to be done? - we would really really like to know the Geometry type so we can optimimze the rendering... - so in the case of SimpleFeature we actually make that assumption.. However for the general case of "Feature" the cite tests were asking us to draw any and all geometries defined for the feature! That is about all I remember of the discussion; other then that look for aaime or jdeolive for the details (and IRC if you want to be efficient). Jody On 03/05/2010, at 1:24 PM, <derrick.w...@csiro.au> <derrick.w...@csiro.au> wrote: Hi all, I am a Software Engineer working on the Spatial Information Services Stack (SISS) project, focusing on some key issues we (CSIRO) are having with Geoserver within our use cases. I work closely with Ben Caradoc-Davies and Rini Angreani on a daily basis and will be looking forward to working you all. I have been having a look at the Axis Order for Bounding Box specified in a WFS spatial query, and while writing some test cases, I have encountered the following problem which I am hoping someone can share some insight: I have written a test class which extends org.geoserver.test.AbstractAppSchemaWfsTestSuport, when trying to obtain a org.w3c.dom.Document object by calling the method getAsDom(String path), if I specified the param "BBOX" in my WFS request, my Unit Test would fail (Exception attached) This only happens on complex features, which led me to the following 2 classes in particular. org.geotools.filter.expression.SimpleFeaturePropertyAccessor line 67-68: //if ("".equals(xpath) && target == Geometry.class) if ("".equals(xpath)) return DEFAULT_GEOMETRY_ACCESS; I had a look into the repository and this change was made in geotools-trunk revision 26186. (jdeolive 10/07/2007 10:18:59 AM GEOT-1372, feature model api changes in preparation for geoapi feature model implementation) Comparing this with org.geotools.filter.expression.FeaturePropertyAccessorFactory line 113-114: if ("".equals(xpath) && target == Geometry.class) return DEFAULT_GEOMETRY_ACCESS; The method createPropertyAccessor for both classes are now different. If I removed the check "target == Geometry.class", my unit test works, and I can see features in my Document object. I am wondering if there will be any issues if I made both "if" statements similar. Could someone kindly assist? Thank you for your time. Kind Regards, Derrick Wong ------------------------------------------------------------------------------ _______________________________________________ Geotools-devel mailing list Geotools-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/geotools-devel ------------------------------------------------------------------------------ _______________________________________________ Geotools-devel mailing list Geotools-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/geotools-devel ------------------------------------------------------------------------------ _______________________________________________ Geotools-devel mailing list Geotools-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/geotools-devel