Maybe I should correct on this way - to save compatibility with geotif

Code :

integer
EPSG : [2000..32767] or [5999999..2147483647]
ESRI : [32999..200000]
GEOTIF PROJECTION: [1..28]*
CUSTOM : [29..1999] or [32769..32999] or [200000..6999999]
NOT DEFINED: [-1]
USER DEFINED: [0] or [32768]

not integer
IGNF:

* See http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/GeoTiff.html.
The geotif method in Proj Utils class, in the GeoKeyDirectoryTag, scans
geographic/geocentric  projection if no projected value is recognized

Peppe

2016-09-03 12:22 GMT+02:00 Giuseppe Aruta <giuseppe.ar...@gmail.com>:

> I understand. I don't do any work today. And wait for your commits
> Peppe
>
> 2016-09-03 12:01 GMT+02:00 Michaël Michaud <m.michael.mich...@orange.fr>:
>
>> Hi Peppe,
>>
>> If you're not changing ProjUtils class today, I'll make some refactoring.
>> Would be nice if you can double check after my commit.
>>
>> About test on srid integer, there is not much of a problem. Just a small
>> inconsistency betwwen comment and code on CUSTOM authority
>>
>> Comment :
>> CUSTOM : [200000..209199]
>>
>> Code :
>> EPSG : ]-∞..32768[ or ]5999999..2147483647]
>> ESRI : ]32999..200000[
>> CUSTOM : [32768..32999] or [200000..5999999]
>>
>> Michaël
>>
>> Le 02/09/2016 à 16:00, Giuseppe Aruta a écrit :
>>
>> Hi Michaël,
>> thanks for the suggestions.
>>
>> >srid.txt encoding
>> I upgraded SVN repository with a UTF-8 version.
>>
>> >I noticed that tests done on the srid integer value are not consistent
>> between the comments and the code.
>> Sorry. I am still  not familiar with some developing terminology (and the
>> usage of Java).
>> Does it means I should remove those comments from that position?
>>
>> >ProjUtils is a very big class and contains redundant code
>> Yes. During the long syage of thge class I added many extra code. Right
>> now I realized that readSRSFromAuxiliaryFile_1 method was not used (and I
>> removed from repository). I will use your suggestions and make it simpler
>> and smaller, following OJ philosophy.
>>
>> Thanks again
>>
>> Peppe
>>
>> 2016-09-02 0:05 GMT+02:00 Michaël Michaud <m.michael.mich...@orange.fr>:
>>
>>> Hi Peppe,
>>>
>>> Thanks for the work. Here are some suggestions.
>>>
>>> I noticed that tests done on the srid integer value are not consistent
>>> between the comments (and the referenced site
>>> http://help.arcgis.com/en/arcgisserver/10.0/apis/soap/whnjs.
>>> htm#SOAP_Geometry_FindSRByWKID.htm) and the code.
>>>
>>> Also I think there is a problem with srid.txt encoding (with the
>>> addition of IGNF registry which includes non ASCII characters). I suggest
>>> that we code the file  in UTF-8 (it is currently recognized as ISO 8859-1
>>> by my IDE) and read it as UTF-8 so that it behaves similarly on windows or
>>> linux (using *InputStreamReader
>>> <http://docs.oracle.com/javase/8/docs/api/java/io/InputStreamReader.html#InputStreamReader-java.io.InputStream-java.lang.String->*
>>> *(**InputStream
>>> <http://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html>*
>>> * in, **String
>>> <http://docs.oracle.com/javase/8/docs/api/java/lang/String.html>*
>>> * charset*Name))
>>>
>>> ProjUtils is a very big class and contains redundant code. Maybe a few
>>> helper methods would help
>>> - getSRSDef(int srid) // to get SRSDef from SRID (computed 3 times in
>>> the file)
>>> - normalizeSRSName(String srs) // to normalize SRSName writing
>>> (whitespaces, separators...)
>>> - getSRSDef(String prjName) // read from srid.txt
>>> ...
>>>
>>> In readSRSFromAuxiliaryFile_1 and readSRSFromAuxiliaryFile methods,
>>> tests could be organized this way
>>>
>>> projectSourceFilePrj
>>> projectSourceRFilePrj // not used in readSRSFromAuxiliaryFile_1
>>> projectSourceRFileAux
>>>
>>> // List<String> fileList : useless !
>>>
>>> if (projectSourceFilePrj.exists()) {/**/}
>>> else if (projectSourceRFilePrj .exists()) {/**/}
>>> else if (projectSourceRFileAux.exists()) {/**/}
>>> else
>>>
>>> // if (!prjname.isEmpty()) {/* */} : no more needed if you wrote a
>>> getSRSDef(String prjName) method
>>>
>>> Michaël
>>>
>>> Le 01/09/2016 à 07:23, Giuseppe Aruta a écrit :
>>>
>>> Hi all,
>>> sorry for the long time I took to answer.
>>> I understood the difficulties. My idea was limited to work on the
>>> measurement part of Coordinate systems (something that I started to do on
>>> my Measurement plugin). The reprojection part was put aside.
>>> After reading the opinions of all, I decided to abandon the idea to a
>>> add projection ID to the Task and to limit the work in small steps only at
>>> layer level, without core modifications.
>>> I added to projection detection of layers (LayerProperty and
>>> RasterLayerProperty plugins) the capability to show the relative  measure
>>> unit.
>>> It was easy as it required only some extra info on the SRID registry
>>> file (org.openjump.core.ccordsys.utils.srid.txt)
>>> In the future I will work on modified (measurement, zoom, scale) plugin
>>> that detect that measure unit , Measure Plugin will remain the main place
>>> for this work.
>>> Best regards
>>> Peppe
>>>
>>> @Michael I added on SRID registry file also IGNF and IGN Gèoportail
>>> codes, trying to set the most possible common "synonimous". But I didn't
>>> test it as I didn't find datas on that Authority. Could you give a quick
>>> look, please. I took the informaion ffor IGN Gèoportail form this page (
>>> http://www.wms.lautre.net/projgp.html - 2011)
>>>
>>> 2016-08-04 23:32 GMT+02:00 Michaël Michaud <m.michael.mich...@orange.fr>
>>> :
>>>
>>>> Hi Peppe,
>>>>
>>>> Your explanation is clear.
>>>>
>>>> I tend to be on the same opinion as Jukka on this topic because I
>>>> generally use OpenJUMP as a toolbox, and I generally know exactly what I
>>>> want to do with my data.
>>>>
>>>> But I admit that to visualize heterogeneous data, OpenJUMP has not much
>>>> to offer to the user to solve projection problems, and the beginner can
>>>> be bothered by the lack of assistance.
>>>>
>>>> Here are a few recommandation :
>>>>
>>>> 1 - Projection issues may be tricky. It is magic as long as the only
>>>> need is visualization, but if the user need to reproject his dataset, he
>>>> must be aware of the consequences (reversibility, topology
>>>> consistency...). Last time I have been screwed by a projection problem
>>>> is with FME. I imported shapefiles with a prj in a project using the
>>>> "same" projection. It was supposed to be a no-op (doing nothing), except
>>>> that FME did a transformation from projection A (defined by prj
>>>> parameters) to projection A (defined by internal FME parameters), which
>>>> resulted in an invisible switch of  a few micrometers difficult to see,
>>>> but which broke the consistency with another layer (which did not follow
>>>> the same process). Of course this can be avoided in FME, but this is
>>>> just an example to illustrate that without a great care, something
>>>> supposed to be magic may become dramatic.
>>>>
>>>> 2 - From my point of view, one of the most difficult problem is to be
>>>> able to recognize that two coordinate reference system with different
>>>> origins (different registries, different formats, different libraries,
>>>> different definitions) represent the same thing (see the above problem
>>>> with FME). I think you already worked on that problem.
>>>>
>>>> 3 - Your mail explains quite clearly what already exists and where you
>>>> want to go. I think that to anticipate difficulties, we can suppose that
>>>> a SRID is associated to the task and try to define OpenJUMP behaviour in
>>>> different situations :
>>>> - default behaviour when creating a new task : asking for a srid or not
>>>> ? it is a good thing if OJ can infer information from prj files or other
>>>> sources, but I don't like having to answer esoteric questions before I
>>>> can start working.
>>>> - task without srid : does it take the srid of the first layer imported
>>>> ? What if layers without srid are already imported ?
>>>> - can we change the srid of a task if layers with srid are already
>>>> imported ?
>>>> - importing a layer with a different srid : 1) the layer is just tagged
>>>> (layer srid mismatch task srid), 2) the layer is automatically
>>>> reprojected by the renderer ? 3) the user is invited to reproject the
>>>> layer ? 4) There are some options to define OpenJUMP behaviour
>>>> - how to deal with layers without projection : can we import them in a
>>>> task with a srid ? can we edit them ? Do we set the task projection to
>>>> the layer projection automatically ?
>>>> - if a reprojected layer is not editable, an interesting option would be
>>>> to set the task srid to the selected layer srid (-> makes the selected
>>>> layer editable, and reproject other layers)
>>>> - etc.
>>>>
>>>> 4- Implementation : no real opinion. Ede's advice will certainly make
>>>> the code more flexible, but also a bit more complex. And how to
>>>> represent the coordinate system property ? Another difficult question.
>>>> We already have SRID represented by an int at the geometry level (JTS)
>>>> and a CoordinateSystem at the FeatureSchema level. IMHO, the first is a
>>>> bit too lightweight (cannot handle non EPSG crs). The second is too
>>>> lightweight if we want to use it to effectively transform coordinates
>>>> (cannot handle much transformations) and too heavyweight if we just use
>>>> it as a reference to be used by CTS library (or any other).
>>>>
>>>>
>>>> My 3 cents
>>>>
>>>> Michael
>>>>
>>>>
>>>>
>>>> Le 03/08/2016 à 15:13, Gmail a écrit :
>>>> > LoopThis thread needs a larger explanation.
>>>> > I try to simplify it.
>>>> > other GIS like Kosmo or GVSig implemented Coordinate system framework
>>>> > following these steps:
>>>> > a) first step they add a projection object to the task (usually as
>>>> EPSG or
>>>> > ESRI code). In Kosmo user has to set that. QGIS also allows to set
>>>> Task
>>>> > projection loading that from the first loadedf file (with SRID).
>>>> > b) QGIS define the Unit of the task from SRID ( ex. 4326>degree,
>>>> > 32632>metre) while GvSig And Kosmo require to set it manually.
>>>> > c) a projection object is set to each loaded layer. This is done
>>>> reading
>>>> > layer metadata or manually
>>>> > d) if the task and the layer projection object are different a
>>>> > transformation should be set. Those software use ( for vector) proj4
>>>> > libraries. In this step Qgis and newer gvsig allows on fly
>>>> reprojection.
>>>> > e) this transformation is taken into account only by layer renderes
>>>> on the
>>>> > workbench. Which changes geometry before drawing it.
>>>> > This transformation is saved into project file and taken into account
>>>> > whenever the project file is loaded.
>>>> > f) Note that Kosmo (and probably Gvsig) doesn't allow any spatial
>>>> operation
>>>> > on reprojected layers. The only way to modify them is to save them
>>>> reprojected.
>>>> >
>>>> > Recently I did few modifications on shape file reading in order to
>>>> expand
>>>> > capability to set layer SRId  when reading file. Layer properties
>>>> plugins
>>>> > already have this capability for both raster and vector ( included
>>>> > geotif*). Together with database and wfs capability to record layer
>>>> srid we
>>>> > probably get almost point C of my list.
>>>> >
>>>> > My idea is to work on point A and B, integrating parts if my measure
>>>> plugin
>>>> > in to OJ core in order to have measurements\zoom when task projection
>>>> is
>>>> > geographic or possibility that oj display meter or feet unit on
>>>> > measurements \ scale bar.
>>>> > The other points can be faced in the future, including in fly
>>>> reprojection.
>>>> >
>>>> > My project:
>>>> > 1) Oj already as a srid registry embedded that I added when I defined
>>>> srid
>>>> > detection capability from auxiliary files. It is a simple list of
>>>> > projection, a series of lines with only srid number and a proj.
>>>> description
>>>> > ( ex <32632>;<WGS 84 UTM zone 32>), build using proj4 registries and
>>>> excel.
>>>> > I could expand each line with unit ( ex <32632>;<WGS 84 UTM zone
>>>> 32>;<metre>)
>>>> > 2) expand Task class with srid code and unit. User can define
>>>> manually .
>>>> > 3) modify measure /zoom plugins according units, meter, foot, degree
>>>> ( in
>>>> > this last case I would limit only to wgs84 ) using classes fro my
>>>> measure
>>>> > plugin.
>>>> >
>>>> > Peppe
>>>> >
>>>> >
>>>> >
>>>> >
>>>> >
>>>> > *
>>>> >
>>>> >
>>>> >
>>>> > Inviato con AquaMail per Android
>>>> > http://www.aqua-mail.com
>>>> >
>>>> >
>>>> > Il 03 agosto 2016 12:32:48 edgar.sol...@web.de ha scritto:
>>>> >
>>>> >> hey Peppe,
>>>> >>
>>>> >> On 03.08.2016 11 <03.08.2016%2011>:11, Giuseppe Aruta wrote:
>>>> >>> Hi all,
>>>> >>> The title explains what is my idea. In a possible future we can
>>>> extend OJ
>>>> >>> projection capabilities.  And the 1st step I would explore is to
>>>> add SRID
>>>> >>> code to a task (to centralize possible transformations)
>>>> >> can you elaborate?
>>>> >>
>>>> >>> and unit of measurements (retriving from SRID, which will affect
>>>> other
>>>> >>> plugins/tools like measure tools, measure area/length, display
>>>> scales etc,
>>>> >>> especially for Geographic coordinate systems).
>>>> >> same here.
>>>> >>
>>>> >>> I gave a look at Task class , should I implement (srid and unit) as
>>>> >>> properties into the associate xml file? Does it breaks
>>>> compatibility?
>>>> >> ..ede
>>>> >>
>>>> >> ------------------------------------------------------------
>>>> ------------------
>>>> >> _______________________________________________
>>>> >> Jump-pilot-devel mailing list
>>>> >> Jump-pilot-devel@lists.sourceforge.net
>>>> >> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>>>> >
>>>> >
>>>> > ------------------------------------------------------------
>>>> ------------------
>>>> > _______________________________________________
>>>> > Jump-pilot-devel mailing list
>>>> > Jump-pilot-devel@lists.sourceforge.net
>>>> > https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>>>> >
>>>>
>>>>
>>>> ------------------------------------------------------------
>>>> ------------------
>>>> _______________________________________________
>>>> Jump-pilot-devel mailing list
>>>> Jump-pilot-devel@lists.sourceforge.net
>>>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>>>>
>>>
>>>
>>>
>>> ------------------------------------------------------------------------------
>>>
>>> _______________________________________________
>>> Jump-pilot-devel mailing 
>>> listJump-pilot-devel@lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>>>
>>> ------------------------------------------------------------------------------
>>> _______________________________________________ Jump-pilot-devel
>>> mailing list Jump-pilot-devel@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>>
>> ------------------------------------------------------------------------------
>>
>> _______________________________________________
>> Jump-pilot-devel mailing 
>> listJump-pilot-devel@lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>>
>>
>> ------------------------------------------------------------
>> ------------------
>>
>> _______________________________________________
>> Jump-pilot-devel mailing list
>> Jump-pilot-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>>
>>
>
------------------------------------------------------------------------------
_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

Reply via email to