[ 
https://issues.apache.org/jira/browse/SIS-187?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15044750#comment-15044750
 ] 

M. Le Bihan commented on SIS-187:
---------------------------------

I understand.
The best would be then to be able to name these axis from the content of the 
.PRJ file accompanying the shapefile.

Calling :
{code}envelope.getLower("lattitude");{code}
is nicer than calling :
{code}envelope.getLower(0);{code}

But .PRJ files have not always the Axis tag, and sometimes shapefiles are not 
coming with a .PRJ file

> Reduce visibility of Shapefile fields
> -------------------------------------
>
>                 Key: SIS-187
>                 URL: https://issues.apache.org/jira/browse/SIS-187
>             Project: Spatial Information Systems
>          Issue Type: Sub-task
>          Components: Shapefile
>            Reporter: Martin Desruisseaux
>            Assignee: M. Le Bihan
>              Labels: JDBC, Shapefile
>             Fix For: 0.7
>
>
> The {{Shapefile}} implementation contains many fields, and all of them are 
> currently public. Probably many of them could be private. Below is a list of 
> fields with a guess of whether users are likely to want this information, and 
> how he could obtain it.
> h3. Fields that could be considered internal mechanic
> * {{FileCode}}: currently used only in {{Shapefile.toString()}} 
> implementation without explanation.
> * {{FileLength}}: currently used only in {{Shapefile.toString()}} 
> implementation. Potentially useful to the {{Shapefile}} reader itself, but 
> unlikely to be useful to external user since getting a useful meaning from a 
> file length require knowledge of the file format structure.
> * {{Version}}: currently used only in {{Shapefile.toString()}} 
> implementation. Not clear if it is the file format version or the dataset 
> version. In the former case, this is an important information for the 
> {{Shapefile}} reader but less for other users. In the later case, it could be 
> an ISO metadata property.
> * {{dbf}}: a pointer to the underlying {{Database}} object. May be a 
> dangerous things to expose. If nevertheless we really want to give direct 
> access to the DBF database, maybe we should return a JDBC {{Connection}} 
> instead.
> h3. Information to be made accessible through a public API
> * {{xmin}}, {{ymin}}, {{xmax}}, {{ymax}}: the spatial extent of the data. 
> Could be made accessible through the ISO 19115 {{GeographicBoundingBox}} 
> element. However it is unclear if those elements are always expressed in a 
> geographic CRS or if they can be in a projected CRS.
> * {{zmin}}, {{zmax}}: the vertical extent of the data. Could be made 
> accessible through the ISO 19115 {{VerticalExtent}} element. However the 
> {{VerticalCRS}} of that extent is currently unknown.
> * {{main}}, {{mmax}}: the javadoc does not said what those values are.
> * {{FeatureMap}}: the set of {{Feature}} is indeed important, but maybe we 
> should return them through some kind of iterator (or a JDK8 {{Stream}} ?) for 
> fetching data on-demand (in a later implementation, not necessarily now) 
> rather than loading all of them at {{Shapefile}} construction time.
> h3. Open questions
> * {{ShapeType}}: currently used only in {{Shapefile.toString()}} 
> implementation. Tells whether the geometries are points, polygons, etc.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to