mirror of
				https://github.com/django/django.git
				synced 2025-10-31 01:25:32 +00:00 
			
		
		
		
	Renamed PROJ.4 to PROJ.
This commit is contained in:
		
				
					committed by
					
						 Mariusz Felisiak
						Mariusz Felisiak
					
				
			
			
				
	
			
			
			
						parent
						
							fbdb032de2
						
					
				
				
					commit
					d4c5ef3ebb
				
			| @@ -314,7 +314,7 @@ class PostGISOperations(BaseSpatialOperations, DatabaseOperations): | ||||
|         return self._get_postgis_func('postgis_lib_version') | ||||
|  | ||||
|     def postgis_proj_version(self): | ||||
|         "Return the version of the PROJ.4 library used with PostGIS." | ||||
|         """Return the version of the PROJ library used with PostGIS.""" | ||||
|         return self._get_postgis_func('postgis_proj_version') | ||||
|  | ||||
|     def postgis_version(self): | ||||
| @@ -335,7 +335,7 @@ class PostGISOperations(BaseSpatialOperations, DatabaseOperations): | ||||
|  | ||||
|     def proj_version_tuple(self): | ||||
|         """ | ||||
|         Return the version of PROJ.4 used by PostGIS as a tuple of the | ||||
|         Return the version of PROJ used by PostGIS as a tuple of the | ||||
|         major, minor, and subminor release numbers. | ||||
|         """ | ||||
|         proj_regex = re.compile(r'(\d+)\.(\d+)\.(\d+)') | ||||
| @@ -344,7 +344,7 @@ class PostGISOperations(BaseSpatialOperations, DatabaseOperations): | ||||
|         if m: | ||||
|             return tuple(map(int, m.groups())) | ||||
|         else: | ||||
|             raise Exception('Could not determine PROJ.4 version from PostGIS.') | ||||
|             raise Exception('Could not determine PROJ version from PostGIS.') | ||||
|  | ||||
|     def spatial_aggregate_name(self, agg_name): | ||||
|         if agg_name == 'Extent3D': | ||||
|   | ||||
| @@ -159,8 +159,8 @@ class SpatiaLiteOperations(BaseSpatialOperations, DatabaseOperations): | ||||
|         "Return the version of GEOS used by SpatiaLite as a string." | ||||
|         return self._get_spatialite_func('geos_version()') | ||||
|  | ||||
|     def proj4_version(self): | ||||
|         "Return the version of the PROJ.4 library used by SpatiaLite." | ||||
|     def proj_version(self): | ||||
|         """Return the version of the PROJ library used by SpatiaLite.""" | ||||
|         return self._get_spatialite_func('proj4_version()') | ||||
|  | ||||
|     def lwgeom_version(self): | ||||
|   | ||||
| @@ -383,7 +383,7 @@ class OGRGeometry(GDALBase): | ||||
|         """ | ||||
|         Transform this geometry to a different spatial reference system. | ||||
|         May take a CoordTransform object, a SpatialReference object, string | ||||
|         WKT or PROJ.4, and/or an integer SRID.  By default, return nothing | ||||
|         WKT or PROJ, and/or an integer SRID.  By default, return nothing | ||||
|         and transform the geometry in-place. However, if the `clone` keyword is | ||||
|         set, return a transformed clone of this geometry. | ||||
|         """ | ||||
|   | ||||
| @@ -57,7 +57,7 @@ identify_epsg = void_output(lgdal.OSRAutoIdentifyEPSG, [c_void_p]) | ||||
| linear_units = units_func(lgdal.OSRGetLinearUnits) | ||||
| angular_units = units_func(lgdal.OSRGetAngularUnits) | ||||
|  | ||||
| # For exporting to WKT, PROJ.4, "Pretty" WKT, and XML. | ||||
| # For exporting to WKT, PROJ, "Pretty" WKT, and XML. | ||||
| to_wkt = string_output(std_call('OSRExportToWkt'), [c_void_p, POINTER(c_char_p)], decoding='utf-8') | ||||
| to_proj = string_output(std_call('OSRExportToProj4'), [c_void_p, POINTER(c_char_p)], decoding='ascii') | ||||
| to_pretty_wkt = string_output( | ||||
|   | ||||
| @@ -53,7 +53,7 @@ class SpatialReference(GDALBase): | ||||
|         """ | ||||
|         Create a GDAL OSR Spatial Reference object from the given input. | ||||
|         The input may be string of OGC Well Known Text (WKT), an integer | ||||
|         EPSG code, a PROJ.4 string, and/or a projection "well known" shorthand | ||||
|         EPSG code, a PROJ string, and/or a projection "well known" shorthand | ||||
|         string (one of 'WGS84', 'WGS72', 'NAD27', 'NAD83'). | ||||
|         """ | ||||
|         if not isinstance(axis_order, (type(None), AxisOrder)): | ||||
| @@ -296,7 +296,7 @@ class SpatialReference(GDALBase): | ||||
|         capi.from_epsg(self.ptr, epsg) | ||||
|  | ||||
|     def import_proj(self, proj): | ||||
|         "Import the Spatial Reference from a PROJ.4 string." | ||||
|         """Import the Spatial Reference from a PROJ string.""" | ||||
|         capi.from_proj(self.ptr, proj) | ||||
|  | ||||
|     def import_user_input(self, user_input): | ||||
| @@ -324,7 +324,7 @@ class SpatialReference(GDALBase): | ||||
|  | ||||
|     @property | ||||
|     def proj(self): | ||||
|         "Return the PROJ.4 representation for this Spatial Reference." | ||||
|         """Return the PROJ representation for this Spatial Reference.""" | ||||
|         return capi.to_proj(self.ptr, byref(c_char_p())) | ||||
|  | ||||
|     @property | ||||
|   | ||||
| @@ -447,7 +447,7 @@ class GEOSGeometryBase(GEOSBase): | ||||
|         """ | ||||
|         Requires GDAL. Transform the geometry according to the given | ||||
|         transformation object, which may be an integer SRID, and WKT or | ||||
|         PROJ.4 string. By default, transform the geometry in-place and return | ||||
|         PROJ string. By default, transform the geometry in-place and return | ||||
|         nothing. However if the `clone` keyword is set, don't modify the | ||||
|         geometry and return a transformed clone instead. | ||||
|         """ | ||||
|   | ||||
| @@ -628,7 +628,7 @@ coordinate transformation:: | ||||
|     Transforms this geometry to a different spatial reference system. May take | ||||
|     a :class:`CoordTransform` object, a :class:`SpatialReference` object, or | ||||
|     any other input accepted by :class:`SpatialReference` (including spatial | ||||
|     reference WKT and PROJ.4 strings, or an integer SRID). | ||||
|     reference WKT and PROJ strings, or an integer SRID). | ||||
|  | ||||
|     By default nothing is returned and the geometry is transformed in-place. | ||||
|     However, if the ``clone`` keyword is set to ``True`` then a transformed | ||||
| @@ -881,7 +881,7 @@ Coordinate System Objects | ||||
|  | ||||
|     * OGC Well Known Text (WKT) (a string) | ||||
|     * EPSG code (integer or string) | ||||
|     * PROJ.4 string | ||||
|     * PROJ string | ||||
|     * A shorthand string for well-known standards (``'WGS84'``, ``'WGS72'``, | ||||
|       ``'NAD27'``, ``'NAD83'``) | ||||
|  | ||||
| @@ -890,8 +890,8 @@ Coordinate System Objects | ||||
|         >>> wgs84 = SpatialReference('WGS84') # shorthand string | ||||
|         >>> wgs84 = SpatialReference(4326) # EPSG code | ||||
|         >>> wgs84 = SpatialReference('EPSG:4326') # EPSG string | ||||
|         >>> proj4 = '+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs ' | ||||
|         >>> wgs84 = SpatialReference(proj4) # PROJ.4 string | ||||
|         >>> proj = '+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs ' | ||||
|         >>> wgs84 = SpatialReference(proj) # PROJ string | ||||
|         >>> wgs84 = SpatialReference("""GEOGCS["WGS 84", | ||||
|         DATUM["WGS_1984", | ||||
|              SPHEROID["WGS 84",6378137,298.257223563, | ||||
| @@ -967,7 +967,7 @@ Coordinate System Objects | ||||
|  | ||||
|     .. method:: import_proj(proj) | ||||
|  | ||||
|     Import spatial reference from PROJ.4 string. | ||||
|     Import spatial reference from PROJ string. | ||||
|  | ||||
|     .. method:: import_user_input(user_input) | ||||
|  | ||||
| @@ -1050,7 +1050,7 @@ Coordinate System Objects | ||||
|  | ||||
|     .. attribute:: proj | ||||
|  | ||||
|     Returns the PROJ.4 representation for this spatial reference. | ||||
|     Returns the PROJ representation for this spatial reference. | ||||
|  | ||||
|     .. attribute:: proj4 | ||||
|  | ||||
|   | ||||
| @@ -642,12 +642,11 @@ Other Properties & Methods | ||||
|  | ||||
|     Transforms the geometry according to the given coordinate transformation | ||||
|     parameter (``ct``), which may be an integer SRID, spatial reference WKT | ||||
|     string, a PROJ.4 string, a | ||||
|     :class:`~django.contrib.gis.gdal.SpatialReference` object, or a | ||||
|     :class:`~django.contrib.gis.gdal.CoordTransform` object. By default, the | ||||
|     geometry is transformed in-place and nothing is returned. However if the | ||||
|     ``clone`` keyword is set, then the geometry is not modified and a | ||||
|     transformed clone of the geometry is returned instead. | ||||
|     string, a PROJ string, a :class:`~django.contrib.gis.gdal.SpatialReference` | ||||
|     object, or a :class:`~django.contrib.gis.gdal.CoordTransform` object. By | ||||
|     default, the geometry is transformed in-place and nothing is returned. | ||||
|     However if the ``clone`` keyword is set, then the geometry is not modified | ||||
|     and a transformed clone of the geometry is returned instead. | ||||
|  | ||||
|     .. note:: | ||||
|  | ||||
|   | ||||
| @@ -9,7 +9,7 @@ geospatial libraries: | ||||
| Program                   Description                           Required                          Supported Versions | ||||
| ========================  ====================================  ================================  =================================== | ||||
| :doc:`GEOS <../geos>`     Geometry Engine Open Source           Yes                               3.8, 3.7, 3.6, 3.5 | ||||
| `PROJ.4`_                 Cartographic Projections library      Yes (PostgreSQL and SQLite only)  6.3, 6.2, 6.1, 6.0, 5.x, 4.x | ||||
| `PROJ`_                   Cartographic Projections library      Yes (PostgreSQL and SQLite only)  6.x, 5.x, 4.x | ||||
| :doc:`GDAL <../gdal>`     Geospatial Data Abstraction Library   Yes                               3.1, 3.0, 2.4, 2.3, 2.2, 2.1, 2.0 | ||||
| :doc:`GeoIP <../geoip2>`  IP-based geolocation library          No                                2 | ||||
| `PostGIS`__               Spatial extensions for PostgreSQL     Yes (PostgreSQL only)             3.0, 2.5, 2.4, 2.3, 2.2 | ||||
| @@ -45,7 +45,7 @@ totally fine with GeoDjango. Your mileage may vary. | ||||
|     independently of Django.  In other words, no database or settings file | ||||
|     required -- import them as normal from :mod:`django.contrib.gis`. | ||||
|  | ||||
| .. _PROJ.4: https://github.com/OSGeo/proj.4/wiki/ | ||||
| .. _PROJ: https://proj.org/ | ||||
| __ https://postgis.net/ | ||||
| __ https://www.gaia-gis.it/gaia-sins/ | ||||
|  | ||||
| @@ -146,13 +146,13 @@ See also :ref:`My logs are filled with GEOS-related errors <geos-exceptions-in-l | ||||
|  | ||||
| .. _proj4: | ||||
|  | ||||
| PROJ.4 | ||||
| ------ | ||||
| PROJ | ||||
| ---- | ||||
|  | ||||
| `PROJ.4`_ is a library for converting geospatial data to different coordinate | ||||
| `PROJ`_ is a library for converting geospatial data to different coordinate | ||||
| reference systems. | ||||
|  | ||||
| First, download the PROJ.4 source code and datum shifting files [#]_:: | ||||
| First, download the PROJ source code and datum shifting files [#]_:: | ||||
|  | ||||
|     $ wget https://download.osgeo.org/proj/proj-X.Y.Z.tar.gz | ||||
|     $ wget https://download.osgeo.org/proj/proj-datumgrid-X.Y.tar.gz | ||||
| @@ -165,7 +165,7 @@ Next, untar the source code archive, and extract the datum shifting files in the | ||||
|     $ tar xzf ../../proj-datumgrid-X.Y.tar.gz | ||||
|     $ cd .. | ||||
|  | ||||
| Finally, configure, make and install PROJ.4:: | ||||
| Finally, configure, make and install PROJ:: | ||||
|  | ||||
|     $ ./configure | ||||
|     $ make | ||||
| @@ -234,7 +234,7 @@ the GDAL library.  For example:: | ||||
| .. rubric:: Footnotes | ||||
| .. [#] The datum shifting files are needed for converting data to and from | ||||
|        certain projections. | ||||
|        For example, the PROJ.4 string for the `Google projection (900913 or 3857) | ||||
|        For example, the PROJ string for the `Google projection (900913 or 3857) | ||||
|        <https://spatialreference.org/ref/sr-org/6864/prj/>`_ requires the | ||||
|        ``null`` grid file only included in the extra datum shifting files. | ||||
|        It is easier to install the shifting files now, then to have debug a | ||||
|   | ||||
| @@ -58,10 +58,10 @@ supported versions, and any notes for each of the supported database backends: | ||||
| ==================  ==============================  ==================  ========================================= | ||||
| Database            Library Requirements            Supported Versions  Notes | ||||
| ==================  ==============================  ==================  ========================================= | ||||
| PostgreSQL          GEOS, GDAL, PROJ.4, PostGIS     9.5+                Requires PostGIS. | ||||
| PostgreSQL          GEOS, GDAL, PROJ, PostGIS       9.5+                Requires PostGIS. | ||||
| MySQL               GEOS, GDAL                      5.6.1+              :ref:`Limited functionality <mysql-spatial-limitations>`. | ||||
| Oracle              GEOS, GDAL                      12.2+               XE not supported. | ||||
| SQLite              GEOS, GDAL, PROJ.4, SpatiaLite  3.8.3+              Requires SpatiaLite 4.3+ | ||||
| SQLite              GEOS, GDAL, PROJ, SpatiaLite    3.8.3+              Requires SpatiaLite 4.3+ | ||||
| ==================  ==============================  ==================  ========================================= | ||||
|  | ||||
| See also `this comparison matrix`__ on the OSGeo Wiki for | ||||
| @@ -446,7 +446,7 @@ __ http://www.stickpeople.com/projects/python/win-psycopg/ | ||||
| OSGeo4W | ||||
| ~~~~~~~ | ||||
|  | ||||
| The `OSGeo4W installer`_ helps to install the PROJ.4, GDAL, and GEOS libraries | ||||
| The `OSGeo4W installer`_ helps to install the PROJ, GDAL, and GEOS libraries | ||||
| required by GeoDjango. First, download the `OSGeo4W installer`_, and run it. | ||||
| Select :menuselection:`Express Web-GIS Install` and click next.  In the 'Select | ||||
| Packages' list, ensure that GDAL is selected; MapServer and Apache are also | ||||
|   | ||||
| @@ -26,7 +26,7 @@ __ https://www.gaia-gis.it/gaia-sins/ | ||||
| Installing from source | ||||
| ====================== | ||||
|  | ||||
| :doc:`GEOS and PROJ.4</ref/contrib/gis/install/geolibs>` should be installed | ||||
| :doc:`GEOS and PROJ</ref/contrib/gis/install/geolibs>` should be installed | ||||
| prior to building SpatiaLite. | ||||
|  | ||||
| SQLite | ||||
|   | ||||
| @@ -114,7 +114,7 @@ Keyword Arguments | ||||
|  | ||||
| ``source_srs``         Use this to specify the source SRS manually (for | ||||
|                        example, some shapefiles don't come with a ``'.prj'`` | ||||
|                        file).  An integer SRID, WKT or PROJ.4 strings, and | ||||
|                        file).  An integer SRID, WKT or PROJ strings, and | ||||
|                        :class:`django.contrib.gis.gdal.SpatialReference` | ||||
|                        objects are accepted. | ||||
|  | ||||
|   | ||||
| @@ -372,7 +372,7 @@ system associated with it.  If it does, the ``srs`` attribute will return a | ||||
|             SPHEROID["WGS_1984",6378137.0,298.257223563]], | ||||
|         PRIMEM["Greenwich",0.0], | ||||
|         UNIT["Degree",0.0174532925199433]] | ||||
|     >>> srs.proj4 # PROJ.4 representation | ||||
|     >>> srs.proj # PROJ representation | ||||
|     '+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs ' | ||||
|  | ||||
| This shapefile is in the popular WGS84 spatial reference | ||||
| @@ -751,7 +751,7 @@ This provides more context (including street and thoroughfare details) than | ||||
| available with the :class:`~django.contrib.gis.admin.GeoModelAdmin` | ||||
| (which uses the `Vector Map Level 0`_ WMS dataset hosted at `OSGeo`_). | ||||
|  | ||||
| The PROJ.4 datum shifting files must be installed (see the :ref:`PROJ.4 | ||||
| The PROJ datum shifting files must be installed (see the :ref:`PROJ | ||||
| installation instructions <proj4>` for more details). | ||||
|  | ||||
| If you meet this requirement, then substitute the ``OSMGeoAdmin`` option class | ||||
|   | ||||
| @@ -227,7 +227,8 @@ backends. | ||||
| Miscellaneous | ||||
| ------------- | ||||
|  | ||||
| * ... | ||||
| * The undocumented ``SpatiaLiteOperations.proj4_version()`` method is renamed | ||||
|   to ``proj_version()``. | ||||
|  | ||||
| .. _deprecated-features-3.2: | ||||
|  | ||||
|   | ||||
| @@ -181,7 +181,7 @@ class SpatialRefTest(SimpleTestCase): | ||||
|             ) | ||||
|  | ||||
|     def test04_proj(self): | ||||
|         "Test PROJ.4 import and export." | ||||
|         """PROJ import and export.""" | ||||
|         proj_parts = [ | ||||
|             '+proj=longlat', '+ellps=WGS84', '+towgs84=0,0,0,0,0,0,0', '+datum=WGS84', '+no_defs' | ||||
|         ] | ||||
|   | ||||
| @@ -11,7 +11,7 @@ test_srs = ({ | ||||
|     # Only the beginning, because there are differences depending on installed libs | ||||
|     'srtext': 'GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84"', | ||||
|     # +ellps=WGS84 has been removed in the 4326 proj string in proj-4.8 | ||||
|     'proj4_re': r'\+proj=longlat (\+ellps=WGS84 )?(\+datum=WGS84 |\+towgs84=0,0,0,0,0,0,0 )\+no_defs ?', | ||||
|     'proj_re': r'\+proj=longlat (\+ellps=WGS84 )?(\+datum=WGS84 |\+towgs84=0,0,0,0,0,0,0 )\+no_defs ?', | ||||
|     'spheroid': 'WGS 84', 'name': 'WGS 84', | ||||
|     'geographic': True, 'projected': False, 'spatialite': True, | ||||
|     # From proj's "cs2cs -le" and Wikipedia (semi-minor only) | ||||
| @@ -37,9 +37,9 @@ test_srs = ({ | ||||
|         'PROJCS["NAD83 / Texas South Central",GEOGCS["NAD83",' | ||||
|         'DATUM["North_American_Datum_1983",SPHEROID["GRS 1980"' | ||||
|     ), | ||||
|     'proj4_re': r'\+proj=lcc (\+lat_1=30.28333333333333? |\+lat_2=28.38333333333333? |\+lat_0=27.83333333333333? |' | ||||
|                 r'\+lon_0=-99 ){4}\+x_0=600000 \+y_0=4000000 (\+ellps=GRS80 )?' | ||||
|                 r'(\+datum=NAD83 |\+towgs84=0,0,0,0,0,0,0 )?\+units=m \+no_defs ?', | ||||
|     'proj_re': r'\+proj=lcc (\+lat_1=30.28333333333333? |\+lat_2=28.38333333333333? |\+lat_0=27.83333333333333? |' | ||||
|                r'\+lon_0=-99 ){4}\+x_0=600000 \+y_0=4000000 (\+ellps=GRS80 )?' | ||||
|                r'(\+datum=NAD83 |\+towgs84=0,0,0,0,0,0,0 )?\+units=m \+no_defs ?', | ||||
|     'spheroid': 'GRS 1980', 'name': 'NAD83 / Texas South Central', | ||||
|     'geographic': False, 'projected': True, 'spatialite': False, | ||||
|     # From proj's "cs2cs -le" and Wikipedia (semi-minor only) | ||||
| @@ -74,10 +74,10 @@ class SpatialRefSysTest(TestCase): | ||||
|  | ||||
|             self.assertEqual(sd['auth_srid'], srs.auth_srid) | ||||
|  | ||||
|             # No proj.4 and different srtext on oracle backends :( | ||||
|             # No PROJ and different srtext on oracle backends :( | ||||
|             if postgis: | ||||
|                 self.assertTrue(srs.wkt.startswith(sd['srtext'])) | ||||
|                 self.assertRegex(srs.proj4text, sd['proj4_re']) | ||||
|                 self.assertRegex(srs.proj4text, sd['proj_re']) | ||||
|  | ||||
|     def test_osr(self): | ||||
|         """ | ||||
| @@ -90,14 +90,14 @@ class SpatialRefSysTest(TestCase): | ||||
|             self.assertEqual(sd['projected'], sr.projected) | ||||
|  | ||||
|             if not (spatialite and not sd['spatialite']): | ||||
|                 # Can't get 'NAD83 / Texas South Central' from PROJ.4 string | ||||
|                 # Can't get 'NAD83 / Texas South Central' from PROJ string | ||||
|                 # on SpatiaLite | ||||
|                 self.assertTrue(sr.name.startswith(sd['name'])) | ||||
|  | ||||
|             # Testing the SpatialReference object directly. | ||||
|             if postgis or spatialite: | ||||
|                 srs = sr.srs | ||||
|                 self.assertRegex(srs.proj4, sd['proj4_re']) | ||||
|                 self.assertRegex(srs.proj, sd['proj_re']) | ||||
|                 self.assertTrue(srs.wkt.startswith(sd['srtext'])) | ||||
|  | ||||
|     def test_ellipsoid(self): | ||||
|   | ||||
		Reference in New Issue
	
	Block a user