Hi Larry, Nice to hear you already tested GeometryCollection solution. > to work, except Tools-->Statistics-->Layer Attribute Statistics, which > threw the following NPE: > > java.lang.NullPointerException > at > org.openjump.core.apitools.FeatureCollectionTools.getMeanOrModeForAttributes(FeatureCollectionTools.java:254) > at > org.openjump.core.ui.plugin.tools.statistics.StatisticOverViewTableModel.setupTable(StatisticOverViewTableModel.java:75) > at > org.openjump.core.ui.plugin.tools.statistics.StatisticOverViewTableModel.<init>(StatisticOverViewTableModel.java:55) > at > org.openjump.core.ui.plugin.tools.statistics.StatisticOverViewDialog.<init>(StatisticOverViewDialog.java:61) > at > org.openjump.core.ui.plugin.tools.statistics.StatisticOverViewPlugIn.execute(StatisticOverViewPlugIn.java:102) > at > com.vividsolutions.jump.workbench.plugin.AbstractPlugIn$1.actionPerformed(AbstractPlugIn.java:130) > at > com.vividsolutions.jump.workbench.ui.plugin.FeatureInstaller$4$1.run(FeatureInstaller.java:574) > at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:226) > at java.awt.EventQueue.dispatchEvent(EventQueue.java:602) > Not too bad. Could you fill a bug report so that we remember there is a fix to do on this plugin. > I also had a problem saving the 6 empty geometry features + 1 polygon > feature as a shapefile because the geometry types were mixed, which > shapefile doesn't support. I guess in a regular instance where this > happens the user would manually find and delete one or the other type > of geometry, but I think there might be some usability problems > finding and deleting empty GeometryCollections from a layer. Perhaps > the shapefile export could do this automatically for the user? > Did you already use the "Edit>Extract>Extract by geometry type" PlugIn ? It is perfectly suited to handle shapefile with heterogeneous geometries. I'd prefer this solution from deleting empty geometries without letting the user know. Maybe we can through a more explicit message to the user trying to export a heterogeneous shapefile to make him know about this tool.
Michaël > -lreeder > > 2010/1/28 Michaël Michaud <michael.mich...@free.fr>: > >> Martin Davis a écrit : >> >>> I think in the past I"ve used the convention that null geometry is >>> represented as GEOMETRYCOLLECTION EMPTY. That way most or all of the >>> JUMP functions should still work, but the user doesn't have to try and >>> distinguish between a real geometry and one which is just a placeholder >>> for null. >>> >>> >> Seems the best approach. I already saw this behaviour in OJ. Must check >> how postgis driver manage this case. >> >>> Ideally JUMP would be able to handle null geometries in the GEOMETRY >>> column as well - this should be fairly easy to add in, since it mostly >>> just means checking and returning before doing anything. >>> >>> >> Do you mean returning a GEOMETRYCOLLECTION EMPTY instead of null in >> some base classes like BasicFeature.getGeometry() ? >> Should be interesting to try... >> >> Michaël >> >>> Rahkonen Jukka wrote: >>> >>> >>>> Hi, >>>> >>>> It would be a correct behaviour to get nulls instead of zeros, I hope you >>>> can fix it. But check what happens if some attribute in a table or in the >>>> result set of a query contains only NULLs. The attribute field should >>>> still appear to OpenJUMP layer schema, and it should be of a correct data >>>> type. >>>> >>>> More fundamental question is what to do if geometry field is NULL. It is >>>> not so uncommon situation with databases, and the aim of many GIS projects >>>> is just to add spatial data for existing objects with already known >>>> attribute data by locating them on map. >>>> >>>> At present if the result of a PostGIS query contains only NULL geometries >>>> OpenJUMP throws a Null Pointer Exception. If there are both real >>>> geometries and NULL geometries in the result se, the lines which are >>>> missing geometry are skipped. >>>> >>>> A DB Query Plugin by Larry Reeder is using a workaroud that has been very >>>> usable for me: if geometry is missing the plugin creates a default >>>> geometry as a little rectangle polygon at the origo. By that way user gets >>>> the schema and attributes to OpenJUMP even if the geometry is empty. What >>>> is missing is a clever tool for digitizing the real geometry and inserting >>>> it in place of the default geometry. >>>> >>>> So what do developers think about what to do with features which do not >>>> have geometry? I am remembering that JUMP itself does not necessarily >>>> need geometry and I am rather sure that I have even seen such things in >>>> OpenJUMP. I quess I got them to OpenJUMP through opening some shapefile. >>>> >>>> -Jukka Rahkonen- >>>> >>>> >>>> >>>> Michaël Michaud wrote: >>>> >>>> >>>> >>>> >>>>> Hi, >>>>> >>>>> I've got a question for database experts. >>>>> In DatabaseQueryPlugIn, the following JDBC methods are used to get >>>>> numeric attributes from database features >>>>> - ResultSet.getInt() >>>>> - ResultSet.getDouble() >>>>> those methods return an int and a double, even if the >>>>> database contains >>>>> NULL >>>>> NULL : getInt() --> 0 >>>>> NULL : getDouble() --> 0.0 >>>>> I think that OpenJUMP should get a null value each time the database >>>>> contains a NULL value. >>>>> >>>>> If this there is no special reason to use those methods, I'll >>>>> change the >>>>> code to get null instead of 0 in this special cases. >>>>> >>>>> Thanks for any suggestion >>>>> >>>>> Michaël >>>>> >>>>> NB : I noticed another problem with null handling in >>>>> SimpleQueryPlugIn. >>>>> I fixed it in the svn that way : >>>>> select features from layer1 where name = (empty combo box) >>>>> now returns >>>>> empty strings AND nulls (empty strings and null are very similar from >>>>> the end-user point of view) >>>>> I added "is null" as a function to be able to differentiate null from >>>>> empty string cases >>>>> There maybe some corner cases which are still not perfectly handled >>>>> (when there are null in the dataset and the operator is not >>>>> "equal" for >>>>> example) >>>>> >>>>> > > ------------------------------------------------------------------------------ > The Planet: dedicated and managed hosting, cloud storage, colocation > Stay online with enterprise data centers and the best network in the business > Choose flexible plans and management services without long-term contracts > Personal 24x7 support from experience hosting pros just a phone call away. > http://p.sf.net/sfu/theplanet-com > _______________________________________________ > Jump-pilot-devel mailing list > Jump-pilot-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel > > > ------------------------------------------------------------------------------ The Planet: dedicated and managed hosting, cloud storage, colocation Stay online with enterprise data centers and the best network in the business Choose flexible plans and management services without long-term contracts Personal 24x7 support from experience hosting pros just a phone call away. http://p.sf.net/sfu/theplanet-com _______________________________________________ Jump-pilot-devel mailing list Jump-pilot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel