[mapserver-commits] r9822 -
branches/branch-5-6/docs/en/development/rfc
svn at osgeo.org
svn at osgeo.org
Sat Feb 20 15:33:41 EST 2010
Author: hobu
Date: 2010-02-20 15:33:41 -0500 (Sat, 20 Feb 2010)
New Revision: 9822
Modified:
branches/branch-5-6/docs/en/development/rfc/ms-rfc-37.txt
Log:
update to reflect the implementation of AUTO only
Modified: branches/branch-5-6/docs/en/development/rfc/ms-rfc-37.txt
===================================================================
--- branches/branch-5-6/docs/en/development/rfc/ms-rfc-37.txt 2010-02-20 20:30:34 UTC (rev 9821)
+++ branches/branch-5-6/docs/en/development/rfc/ms-rfc-37.txt 2010-02-20 20:33:41 UTC (rev 9822)
@@ -17,10 +17,10 @@
==============================================================================
To provide MapServer with the ability to set its PROJECTION information from
-a number of sources, including directly from the datasource itself, in an
+directly from the datasource itself, in an
attempt to lessen the burden related to dealing with coordinate system
information on users. These improvements will be optionally available and
-not interfere with previous PROJECTION defintion methods.
+not interfere with previous PROJECTION definition methods.
The History of Spatial References in MapServer
==============================================================================
@@ -33,10 +33,6 @@
MapServer's reprojection machinery keys off the fact that a LAYER's
PROJECTION is different than the MAP's. When this is the case, MapServer
reprojects the LAYER's data to the MAP's spatial reference during a map draw.
-OGC services also interact here, and when a spatial reference is specified as
-"available" using the METADATA mechanism, a client can request maps in a
-different spatial reference than is specified by default, which starts the
-reprojection machinery.
Definition
----------
@@ -65,12 +61,20 @@
"no_defs"
END
-A third, and rather unknown option is available exclusively to WMS -- the
-EPSG AUTO definition, where MapServer attempts to determine the spatial
-reference from the data itself. This method currently only works for
-OGR and GDAL data sources, and it is only available when GDAL/OGR is
-linked into MapServer.
+OGR datasources also support a form of AUTO projection type, but it is
+not widely advertised or regularized:
+::
+
+ LAYER
+ CONNECTIONTYPE OGR
+ PROJECTION
+ "AUTO"
+ END
+ END
+
+
+
Performance Observations
------------------------
@@ -112,32 +116,12 @@
Specification Features
==============================================================================
-MapServer will continue to behave as before,
-assuming the inputted projection is either an EPSG code or proj4 definition.
-The user will also have the ability to optionally add a TYPE enumeration that
-will hint the processing of the projection object.
+MapServer will continue to behave as before, and the user can opt-in for
+AUTO projection support by using the AUTO keyword in a projection object as
+so:
::
- PROJECTION
- TYPE TYPEENUM
- "A definition"
- END
-
-The following optional TYPE enumerations would be supported:
-
-* AUTO
-* PROJ4
-* EPSG
-* FILE
-* OGCWKT
-* ESRIWKT
-
-
-See below for some examples:
-
-::
-
# Use the what the layer defines as the projection definition.
# This may not be available for all data sources or layer types
# (shapefile, SDE, OGR, etc.).
@@ -145,58 +129,8 @@
AUTO
END
-::
-
- # Use a proj4 definition
- PROJECTION
- "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs"
- END
-::
- # Use an EPSG code
- PROJECTION
- "init=epsg:4326"
- END
-
-::
-
- # Read the definition from a file
- PROJECTION
- TYPE FILE
- VALUE "../myfile.prj"
- END
-
-::
-
- # Use an OGC WKT definition (escaping may be required)
- PROJECTION
- 'GEOGCS["WGS 84",
- DATUM["WGS_1984",
- SPHEROID["WGS 84",6378137,298.257223563,
- AUTHORITY["EPSG","7030"]],
- AUTHORITY["EPSG","6326"]],
- PRIMEM["Greenwich",0,
- AUTHORITY["EPSG","8901"]],
- UNIT["degree",0.01745329251994328,
- AUTHORITY["EPSG","9122"]],
- AUTHORITY["EPSG","4326"]]'
- END
-
-::
-
- # Use an ESRI WKT definition (escaping may be required)
- PROJECTION
- TYPE ESRIWKT
- 'GEOGCS["GCS_WGS_1984",
- DATUM["D_WGS_1984",
- SPHEROID["WGS_1984",6378137,298.257223563]],
- PRIMEM["Greenwich",0],
- UNIT["Degree",0.017453292519943295]]'
- END
-
-
-
Implementation Details
==============================================================================
@@ -205,42 +139,17 @@
would mean a lot of unnecessary mapfile churn. Second, continuing to define
spatial references in proj4 format as before will be the most performant.
-Implementation of this RFC will encompass four items:
+Implementation of this RFC will encompass two items:
-1) Additional spatial reference type enumerations will be added.
+1) Addition of a method to the LAYER virtual table .
-2) Addition of a method to the LAYER virtual table so layers can support
- returning the spatial reference in a variety of formats (OGCWKT, ESRIWKT,
- proj4, EPSG).
+2) Additional methods will be added for drivers to be able to convert
+ from their native projection description type (ESRI WKT, OGC WKT, proj.4, etc)
+ into proj.4 for setting on the projectionObj.
-3) Additional methods will be added to operate with the MapScript projectionObj
- to support setting the projectionObj of a TYPE with a definition.
-
+3) PROJECTION will support an explicit AUTO keyword
-TYPE Enumerations
------------------
-The following TYPE enumerations will be added to support SRS definition types:
-
-::
-
- enum MS_SRS_TYPE {MS_SRS_AUTO, MS_SRS_PROJ4, MS_SRS_EPSG, MS_SRS_FILE, MS_SRS_OGCWKT, MS_SRS_ESRIWKT}
-
-
-projectionObj
--------------
-
-Two methods will be added to set the projectionObj using various definition
-types and to return definitions in various flavors.
-
-::
-
- int msSetProjectionByType(projectionObj *p, int type, const char *value)
-
-::
-
- char* msGetProjectionByType(projectionObj *p, int type)
-
Virtual Table Method
--------------------
@@ -253,9 +162,20 @@
::
- int (*LayerGetAutoProjection)(layerObj *layer)
+ int (*LayerGetAutoProjection)(layerObj *layer, projectionObj *projection)
+Additional methods
+-----------------------
+
+The msOGCWKT2ProjectionObj method already exists, but a few more would be
+added to allow drivers that implement LayerGetAutoProjection to generate
+a projectionObj.
+
+* msESRIWKT2ProjectionObj
+* msOGCWKT2ProjectionObj
+
+
Driver-specific implementations
-------------------------------
@@ -268,18 +188,7 @@
* ArcSDE
* PostGIS
-MapScript
----------
-msSetProjectionByType and msGetProjectionByType will be exposed to MapScript
-via the projectionObj:
-
-::
-
- setByType(char* definition, int type)
- getByType(int type)
-
-
Files Affected
==============================================================================
More information about the mapserver-commits
mailing list