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

Reply via email to