right again,
and i even quoted the http://geojson.org/geojson-spec.html part to you wrt.
properties some mails ago ;(. obviously need more coffee still.
will patch the writer accordingly, even though OJ internally does not know null
geometries i implemented it just for completion.
i know i can create empty geoms with JTS, not sure those are supposed to be
written in GeoJSON, as eg. a point must hold coordinates afaiu it.
..ede
On 15.11.2016 11:40, Rahkonen Jukka (MML) wrote:
> Hi,
>
> According to this mail empty geometries in GeoJSON are {"geometry": null}
> http://lists.geojson.org/pipermail/geojson-geojson.org/2013-October/000839.html
>
> -Jukka-
>
>
> -----Alkuperäinen viesti-----
> Lähettäjä: [email protected] [mailto:[email protected]]
> Lähetetty: 15. marraskuuta 2016 12:35
> Vastaanottaja: jump devel <[email protected]>
> Aihe: Re: [JPP-Devel] SVN: [5185]
> core/trunk/src/com/vividsolutions/jump/workbench/ui/ LayerNameRenderer.java
>
> Jukka,
>
> nothing to worry, my mind was w/ GeoJSON still and the only possibility to
> add an empty geom there is to use GeometryCollection because of the
> constraints i described.
>
> my bad ..ede
>
> On 15.11.2016 11:16, Rahkonen Jukka (MML) wrote:
>> Hi,
>>
>> What do you mean? You did lot of work with empty geometries two years ago.
>> In December 1st, 2014 I answered you, probably after the final tests
>>
>> "Hi Ede,
>>
>> All this seems to work perfectly now:
>> - Different empty geometries are visualized with corresponding icons
>> - All kind of empty geometries can be saved into JUMP jml and FME GML and
>> returned as they were.
>> - Empty geometries in shapefiles are handled in a reasonable way:
>> - "Extract layers by geometry type" extracts empty points to a point
>> layer, empty linestrings to a linestring layer etc.
>> - Empty geometries which are read from a shapefile are marked to be
>> empty geometries of the same type as the not-empty geometries. A point
>> shapefile brings empty points, a line shapefile empty multilinestrings and a
>> polygon shape empty multipolygons. Because shapefiles do not make much
>> difference between simple and multivariants this is just right."
>>
>> -Jukka-
>>
>> -----Alkuperäinen viesti-----
>> Lähettäjä: [email protected] [mailto:[email protected]]
>> Lähetetty: 15. marraskuuta 2016 12:11
>> Vastaanottaja: Rahkonen Jukka (MML) <[email protected]>;
>> OpenJump develop and use <[email protected]>
>> Aihe: Re: [JPP-Devel] SVN: [5185]
>> core/trunk/src/com/vividsolutions/jump/workbench/ui/ LayerNameRenderer.java
>>
>> GeometryCollection is afaik the only possibility to have an empty geometry
>> as all other geom types require either coordinates or sub geoms per
>> definition.
>>
>> ..ede
>>
>> On 15.11.2016 11:06, Rahkonen Jukka (MML) wrote:
>>> Hi,
>>>
>>> DB Query plugin is attaching a fake GEOMETRYCOLLECTION EMPTY to all the
>>> lines without a real geometry. For my purposes it has been a good solution
>>> but I can’t say if it suits for other use cases.
>>>
>>> -Jukka Rahkonen-
>>>
>>> Stefan Steiniger wrote:
>>>
>>>
>>> Hi,
>>>
>>> i used empty geomcollection so far, to have something there... I am not
>>> sure how much work it would be to introduce a new table/data layer without
>>> a geometry - as i am not sure if OJ is designed for that. Simplest may be
>>> to copy and make the field invisible for now.
>>>
>>> Perhaps Michaël has a better idea about the possibility to throw out the
>>> geom.
>>>
>>>
>>>
>>> cheers,
>>>
>>> stefan
>>>
>>>
>>> ------ Originalnachricht ------
>>> Von:
>>> Datum: 14.11.2016 9:45
>>> An: OpenJump develop and use;
>>> Betreff:Re: [JPP-Devel] SVN: [5185]
>>> core/trunk/src/com/vividsolutions/jump/workbench/ui/ LayerNameRenderer.java
>>>
>>> i guess the cleanest solution would be a new layer class eg. DataLayer,
>>> that simply does not allow adding/editing geometries or does not even have
>>> a geometry attribute.
>>>
>>>
>>>
>>> in the 2nd case you would probably need a new featurecollection w/o a
>>> geometry column as well and the whole thing would throw some exceptions
>>> here and there, as OJ expects geometries in featurecollections, but apart
>>> from that it would be clean and the renderer would not need to monitor geom
>>> changes at all.
>>>
>>>
>>>
>>> ..ede
>>>
>>>
>>>
>>> On 14.11.2016 10:39, Giuseppe Aruta wrote:
>>>
>>>> Thanks Michael Ede
>>>
>>>> Indeed I came across (as a side relative problem ) working on Saxtante.
>>>
>>>> Sextante allows to work on Table files while Oj not. We can take advance of
>>>
>>>> the Sextante table algorithms allowing Sextante to decode the vector
>>>
>>>> layers, with all features with empty geometries (see for instance loading
>>>
>>>> .csv on auto mode) as tables (I already added added into Sextante binding a
>>>
>>>> Boolean method that allows to decode these files).
>>>
>>>> I wondered if users would also have benefit to visualize that a table is
>>>
>>>> loaded into OJ workbench, with a table icon.
>>>
>>>> I will check other solutions. Thanks for the hint.
>>>
>>>> Peppe
>>>
>>>>
>>>
>>>> Il 13/Nov/2016 23:21, "Michaël Michaud" ha
>>>
>>>> scritto:
>>>
>>>>
>>>
>>>>> Hi Peppe,
>>>
>>>>>
>>>
>>>>> Seel also my answer on 2016-10-29.
>>>
>>>>>
>>>
>>>>> TreeLayerNamePanel has a listener, but to avoid a featureCollection scan
>>>
>>>>> after each change
>>>
>>>>> you probably need to keep a cache in the Layer as suggested by Ede, and
>>>
>>>>> use the Layer's
>>>
>>>>> listener to update the cache every time a feature is added, removed or
>>>
>>>>> changed
>>>
>>>>>
>>>
>>>>> Michaël
>>>
>>>>>
>>>
>>>>>
>>>
>>>>> Le 13/11/2016 à 19:51, [email protected]<mailto:[email protected]> a
>>>>> écrit :
>>>
>>>>>> thanks.. how about implementing the caching/listener approach if you
>>>
>>>>> like to have icon? ..ede
>>>
>>>>>>
>>>
>>>>>> On 13.11.2016 18:57, Giuseppe Aruta wrote:
>>>
>>>>>>> Ok Ede, I didn't know it. I will revert the change.
>>>
>>>>>>> Thanks again
>>>
>>>>>>> Peppe
>>>
>>>>>>>
>>>
>>>>>>> Il 13/Nov/2016 18:48, ha scritto:
>>>
>>>>>>>
>>>
>>>>>>>> Peppe,
>>>
>>>>>>>>
>>>
>>>>>>>> NACK.. this is going to get very slow for huge datasets containing
>>>
>>>>> empty
>>>
>>>>>>>> geoms only, as it is run on every redraw of the layer tree. please
>>>
>>>>> cache
>>>
>>>>>>>> the state and use a layer change listener or else users will complain
>>>
>>>>> about
>>>
>>>>>>>> a frozen OJ some time in the future and we will have a hard time to
>>>
>>>>>>>> pinpoint the reason, again ;)
>>>
>>>>>>>>
>>>
>>>>>>>> ..ede
>>>
>>>>>>>>
>>>
>>>>>>>> On 13.11.2016 18:41,
>>>>>>>> [email protected]<mailto:[email protected]>
>>>>>>>> wrote:
>>>
>>>>>>>>> Revision: 5185
>>>
>>>>>>>>> http://sourceforge.net/p/jump-pilot/code/5185
>>>
>>>>>>>>> Author: ma15569
>>>
>>>>>>>>> Date: 2016-11-13 17:41:37 +0000 (Sun, 13 Nov 2016)
>>>
>>>>>>>>> Log Message:
>>>
>>>>>>>>> -----------
>>>
>>>>>>>>> The layer tree shows a table icon for layers that have features with
>>>
>>>>>>>> empty geometries
>>>
>>>>>>>>> Modified Paths:
>>>
>>>>>>>>> --------------
>>>
>>>>>>>>> core/trunk/src/com/vividsolutions/jump/workbench/
>>>
>>>>>>>> ui/LayerNameRenderer.java
>>>
>>>>>>>>> Modified: core/trunk/src/com/vividsolutions/jump/workbench/
>>>
>>>>>>>> ui/LayerNameRenderer.java
>>>
>>>>>>>>> ===================================================================
>>>
>>>>>>>>> --- core/trunk/src/com/vividsolutions/jump/workbench/
>>>
>>>>> ui/LayerNameRenderer.java
>>>
>>>>>>>> 2016-11-13 17:21:20 UTC (rev 5184)
>>>
>>>>>>>>> +++ core/trunk/src/com/vividsolutions/jump/workbench/
>>>
>>>>> ui/LayerNameRenderer.java
>>>
>>>>>>>> 2016-11-13 17:41:37 UTC (rev 5185)
>>>
>>>>>>>>> @@ -36,6 +36,7 @@
>>>
>>>>>>>>> import java.awt.Rectangle;
>>>
>>>>>>>>> import java.io.File;
>>>
>>>>>>>>> import java.util.Iterator;
>>>
>>>>>>>>> +import java.util.List;
>>>
>>>>>>>>>
>>>
>>>>>>>>> import javax.swing.DefaultListCellRenderer;
>>>
>>>>>>>>> import javax.swing.Icon;
>>>
>>>>>>>>> @@ -54,9 +55,11 @@
>>>
>>>>>>>>> import org.openjump.core.rasterimage.RasterImageLayer;
>>>
>>>>>>>>>
>>>
>>>>>>>>> import com.vividsolutions.jts.geom.Envelope;
>>>
>>>>>>>>> +import com.vividsolutions.jts.geom.Geometry;
>>>
>>>>>>>>> import com.vividsolutions.jump.I18N;
>>>
>>>>>>>>> import com.vividsolutions.jump.feature.Feature;
>>>
>>>>>>>>> import com.vividsolutions.jump.feature.FeatureCollection;
>>>
>>>>>>>>> +import com.vividsolutions.jump.feature.FeatureCollectionWrapper;
>>>
>>>>>>>>> import com.vividsolutions.jump.io.datasource.DataSourceQuery;
>>>
>>>>>>>>> import com.vividsolutions.jump.util.StringUtil;
>>>
>>>>>>>>> import com.vividsolutions.jump.workbench.JUMPWorkbench;
>>>
>>>>>>>>> @@ -118,6 +121,7 @@
>>>
>>>>>>>>> private ImageIcon rasterIcon = IconLoader.icon("map_13.png");
>>>
>>>>>>>>> private ImageIcon sextante_rasterIcon =
>>>
>>>>> IconLoader.icon("mapSv2_13.
>>>
>>>>>>>> png");
>>>
>>>>>>>>> private ImageIcon sextante_rasterIcon2 =
>>>
>>>>>>>> IconLoader.icon("mapSv2_13bw.png");
>>>
>>>>>>>>> + private ImageIcon table_Icon = IconLoader.icon("Table.gif");
>>>
>>>>>>>>> private final static String LAYER_NAME = I18N
>>>
>>>>>>>>> .get("org.openjump.core.ui.plugin.layer.
>>>
>>>>>>>> LayerPropertiesPlugIn.Layer-Name");
>>>
>>>>>>>>> private final static String FILE_NAME =
>>>
>>>>>>>> I18N.get("ui.MenuNames.FILE");
>>>
>>>>>>>>> @@ -379,6 +383,12 @@
>>>
>>>>>>>>> .getFeatureCollectionWrapper().size() > 1 ?
>>>
>>>>>>>> multiRasterIcon
>>>
>>>>>>>>> : rasterIcon);
>>>
>>>>>>>>> imageLabel.setVisible(true);
>>>
>>>>>>>>> + } else if (showColorPanel && layerable instanceof Layer
>>>
>>>>>>>>> + && isTable((Layer) layerable)) {
>>>
>>>>>>>>> + //Show a table icon if the Layer has features with empty
>>>
>>>>>>>> geometries
>>>
>>>>>>>>> + imageLabel.setIcon(table_Icon);
>>>
>>>>>>>>> + imageLabel.setVisible(true);
>>>
>>>>>>>>> +
>>>
>>>>>>>>> } else if (showColorPanel && layerable instanceof Layer) {
>>>
>>>>>>>>> colorPanel.init((Layer) layerable, isSelected,
>>>
>>>>>>>>> list.getBackground(),
>>>
>>>>> list.getSelectionBackground())
>>>
>>>>>>>> ;
>>>
>>>>>>>>> @@ -1022,4 +1032,27 @@
>>>
>>>>>>>>> && bgc.equals(p.getBackground()) && p.isOpaque();
>>>
>>>>>>>>> return !colorMatchOrOpaque && super.isOpaque();
>>>
>>>>>>>>> }
>>>
>>>>>>>>> +
>>>
>>>>>>>>> + /*
>>>
>>>>>>>>> + * [Giuseppe Aruta 11.2016] . True if all the layer geometries
>>>
>>>>> are
>>>
>>>>>>>> empty
>>>
>>>>>>>>> + * (Geometrycollection empty). Workaround to decode table files
>>>
>>>>>>>> (like .csv or .dbf)
>>>
>>>>>>>>> + * so that they are loaded in Sextante as table
>>>
>>>>>>>>> + */
>>>
>>>>>>>>> + public static boolean isTable(Layer layer) {
>>>
>>>>>>>>> + FeatureCollectionWrapper featureCollection = layer
>>>
>>>>>>>>> + .getFeatureCollectionWrapper();
>>>
>>>>>>>>> + List featureList = featureCollection.getFeatures();
>>>
>>>>>>>>> + Geometry nextGeo = null;
>>>
>>>>>>>>> + for (@SuppressWarnings("unchecked")
>>>
>>>>>>>>> + Iterator i =
>>>
>>>>> featureList.iterator();
>>>
>>>>>>>> i
>>>
>>>>>>>>> + .hasNext();) {
>>>
>>>>>>>>> + Feature feature = (Feature) i.next();
>>>
>>>>>>>>> + nextGeo = feature.getGeometry();
>>>
>>>>>>>>> + }
>>>
>>>>>>>>> + if (!featureCollection.isEmpty() && nextGeo.isEmpty()) {
>>>
>>>>>>>>> + return true;
>>>
>>>>>>>>> + } else {
>>>
>>>>>>>>> + return false;
>>>
>>>>>>>>> + }
>>>
>>>>>>>>> + }
>>>
>>>>>>>>> }
>>>
>>>>>>>>> \ No newline at end of file
>>>
>>>>>>>>>
>>>
>>>>>>>>>
>>>
>>>>>>>>> ------------------------------------------------------------
>>>
>>>>>>>> ------------------
>>>
>>>>>>>>> Developer Access Program for Intel Xeon Phi Processors
>>>
>>>>>>>>> Access to Intel Xeon Phi processor-based developer platforms.
>>>
>>>>>>>>> With one year of Intel Parallel Studio XE.
>>>
>>>>>>>>> Training and support from Colfax.
>>>
>>>>>>>>> Order your platform today. http://sdm.link/xeonphi
>>>
>>>>>>>>> _______________________________________________
>>>
>>>>>>>>> Jump-pilot-devel mailing list
>>>
>>>>>>>>> [email protected]<mailto:[email protected]>
>>>
>>>>>>>>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>>>
>>>>>>>>>
>>>
>>>>>>>> ------------------------------------------------------------
>>>
>>>>>>>> ------------------
>>>
>>>>>>>> Developer Access Program for Intel Xeon Phi Processors
>>>
>>>>>>>> Access to Intel Xeon Phi processor-based developer platforms.
>>>
>>>>>>>> With one year of Intel Parallel Studio XE.
>>>
>>>>>>>> Training and support from Colfax.
>>>
>>>>>>>> Order your platform today. http://sdm.link/xeonphi
>>>
>>>>>>>> _______________________________________________
>>>
>>>>>>>> Jump-pilot-devel mailing list
>>>
>>>>>>>> [email protected]<mailto:[email protected]>
>>>
>>>>>>>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>>>
>>>>>>>>
>>>
>>>>>>>
>>>
>>>>>>>
>>>
>>>>>>> ------------------------------------------------------------
>>>
>>>>> ------------------
>>>
>>>>>>> Developer Access Program for Intel Xeon Phi Processors
>>>
>>>>>>> Access to Intel Xeon Phi processor-based developer platforms.
>>>
>>>>>>> With one year of Intel Parallel Studio XE.
>>>
>>>>>>> Training and support from Colfax.
>>>
>>>>>>> Order your platform today. http://sdm.link/xeonphi
>>>
>>>>>>>
>>>
>>>>>>>
>>>
>>>>>>>
>>>
>>>>>>> _______________________________________________
>>>
>>>>>>> Jump-pilot-devel mailing list
>>>
>>>>>>> [email protected]<mailto:[email protected]>
>>>
>>>>>>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>>>
>>>>>>>
>>>
>>>>>> ------------------------------------------------------------
>>>
>>>>> ------------------
>>>
>>>>>> Developer Access Program for Intel Xeon Phi Processors
>>>
>>>>>> Access to Intel Xeon Phi processor-based developer platforms.
>>>
>>>>>> With one year of Intel Parallel Studio XE.
>>>
>>>>>> Training and support from Colfax.
>>>
>>>>>> Order your platform today. http://sdm.link/xeonphi
>>>
>>>>>> _______________________________________________
>>>
>>>>>> Jump-pilot-devel mailing list
>>>
>>>>>> [email protected]<mailto:[email protected]>
>>>
>>>>>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>>>
>>>>>>
>>>
>>>>>
>>>
>>>>>
>>>
>>>>> ------------------------------------------------------------
>>>
>>>>> ------------------
>>>
>>>>> Developer Access Program for Intel Xeon Phi Processors
>>>
>>>>> Access to Intel Xeon Phi processor-based developer platforms.
>>>
>>>>> With one year of Intel Parallel Studio XE.
>>>
>>>>> Training and support from Colfax.
>>>
>>>>> Order your platform today. http://sdm.link/xeonphi
>>>
>>>>> _______________________________________________
>>>
>>>>> Jump-pilot-devel mailing list
>>>
>>>>> [email protected]<mailto:[email protected]>
>>>
>>>>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>>>
>>>>>
>>>
>>>>
>>>
>>>>
>>>
>>>>
>>>
>>>> ------------------------------------------------------------------------------
>>>
>>>> Developer Access Program for Intel Xeon Phi Processors
>>>
>>>> Access to Intel Xeon Phi processor-based developer platforms.
>>>
>>>> With one year of Intel Parallel Studio XE.
>>>
>>>> Training and support from Colfax.
>>>
>>>> Order your platform today. http://sdm.link/xeonphi
>>>
>>>>
>>>
>>>>
>>>
>>>>
>>>
>>>> _______________________________________________
>>>
>>>> Jump-pilot-devel mailing list
>>>
>>>> [email protected]<mailto:[email protected]>
>>>
>>>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>>>
>>>>
>>>
>>>
>>>
>>> ------------------------------------------------------------------------------
>>>
>>> Developer Access Program for Intel Xeon Phi Processors
>>>
>>> Access to Intel Xeon Phi processor-based developer platforms.
>>>
>>> With one year of Intel Parallel Studio XE.
>>>
>>> Training and support from Colfax.
>>>
>>> Order your platform today. http://sdm.link/xeonphi
>>>
>>> _______________________________________________
>>>
>>> Jump-pilot-devel mailing list
>>>
>>> [email protected]<mailto:[email protected]>
>>>
>>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>>>
>
> ------------------------------------------------------------------------------
> _______________________________________________
> Jump-pilot-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
> ------------------------------------------------------------------------------
> _______________________________________________
> Jump-pilot-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>
------------------------------------------------------------------------------
_______________________________________________
Jump-pilot-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel