⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ogr_srs_esri.cpp

📁 用于读取TAB、MIF、SHP文件的类
💻 CPP
📖 第 1 页 / 共 4 页
字号:
/****************************************************************************** * $Id: ogr_srs_esri.cpp,v 1.49 2006/07/11 18:37:54 fwarmerdam Exp $ * * Project:  OpenGIS Simple Features Reference Implementation * Purpose:  OGRSpatialReference translation to/from ESRI .prj definitions. * Author:   Frank Warmerdam, warmerdam@pobox.com * ****************************************************************************** * Copyright (c) 2000, Frank Warmerdam * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. ****************************************************************************** * * $Log: ogr_srs_esri.cpp,v $ * Revision 1.49  2006/07/11 18:37:54  fwarmerdam * fixed up equidistant conic transformation per files from Delorme * * Revision 1.48  2006/06/26 19:42:21  fwarmerdam * added proper polar stereographic translation * * Revision 1.47  2006/04/24 23:21:07  fwarmerdam * fixup some common ellipsoid names (from pgao) * * Revision 1.46  2006/03/31 17:44:20  fwarmerdam * header updates * * Revision 1.45  2006/01/16 15:19:03  fwarmerdam * Fixed datum.csv error message. * * Revision 1.44  2005/12/20 21:49:57  fwarmerdam * trim log * * Revision 1.43  2005/12/20 21:48:38  fwarmerdam * Fixed last fix which seriously hosted morphToESRI(). * * Revision 1.42  2005/12/20 02:09:49  fwarmerdam * ESRI requires linear units.  Ensure morphToESRI() produces them. * * Revision 1.41  2005/10/27 23:12:16  fwarmerdam * morphToESRI() now maps a PROJCS of Unknown to the PROJECTION value * * Revision 1.40  2005/08/03 16:11:18  fwarmerdam * Added additional morphToESRI() rules to: *  o Change NAD27/NAD83/WGS84 GEOGCSes to GCS_ names used by ESRI. *  o Change the word Unnamed to Unknown in names. *  o Set exact ESRI names for UTM PROJCSes (for WGS84, NAD27 and NAD83). * * Revision 1.39  2005/05/04 14:29:20  fwarmerdam * convert Standard_Parallel_1 in ESRI Mercator to Latitude_Of_Origin. * * Revision 1.38  2005/02/18 21:52:44  fwarmerdam * Fixed support for .prj files with blank lines between the parameters. * * Revision 1.37  2005/01/13 16:32:27  fwarmerdam * added support for fipszone for stateplane * * Revision 1.36  2005/01/13 15:18:05  fwarmerdam * use SetLinearUnitsAndUpdateParameters() * * Revision 1.35  2004/09/23 16:20:40  fwarmerdam * added clode to cleanup datum mapping table: bug 613 * * Revision 1.34  2004/09/10 21:03:55  fwarmerdam * Lots of changes to map Hotine_Oblique_Mercator_Azimuth_Center in ESRI format * to Hotine_Oblique_Mercator with a rectified_grid_angle of 90 (and back). * This is a special case for the swiss oblique mercator. * See http://bugzilla.remotesensing.org/show_bug.cgi?id=423 * * Revision 1.33  2004/07/29 19:12:05  warmerda * support multiline ESRI .prj files in WKT format * * Revision 1.32  2004/05/04 13:11:49  warmerda * Added support for KRASOVSKY spheroid * * Revision 1.31  2004/04/24 15:45:04  warmerda * Added GRS80 spheroid support. * * Revision 1.30  2004/04/19 19:32:25  warmerda * added INTERNATIONAL1909 * * Revision 1.29  2004/02/25 21:14:35  warmerda * added morph of spheroid names to ESRI * * Revision 1.28  2003/11/03 21:37:34  warmerda * fixed southern hemisphere UTM support * * Revision 1.27  2003/08/14 14:36:24  warmerda * some ESRI .prj files use Central_Parallel instead of latitude_of_origin * * Revision 1.26  2003/08/03 01:30:34  warmerda * Added mapping for EUR datum as per: * http://bugzilla.remotesensing.org/show_bug.cgi?id=371 * * Revision 1.25  2003/06/23 14:49:17  warmerda * added InitDatumMappingTable, and use of gdal_datum.csv file * * Revision 1.24  2003/06/17 14:39:00  warmerda * Translate Equirectangular to/from Equidistant_Cylindrical * * Revision 1.23  2003/05/21 02:59:41  warmerda * morphToEsri() now sets specific units constants for Foot_US and Degree. * morphToEsri() converts albers parameters to match expected ESRI values. * * Revision 1.22  2003/05/08 21:52:55  warmerda * fixed C morphToESRI func, added ESRI unit remapping * * Revision 1.21  2003/02/25 04:53:16  warmerda * Added support for the LAMBERT projection.  Added support for defining a * GEOGCS from the SPHEROID if there is no known DATUM.   Fixed bug with * GREATBRITIAN_GRID. * * Revision 1.20  2003/02/14 22:15:04  warmerda * expand tabs * * Revision 1.19  2003/01/24 20:15:34  warmerda * added polar stereographic support */#include "ogr_spatialref.h"#include "ogr_p.h"#include "cpl_csv.h"CPL_CVSID("$Id: ogr_srs_esri.cpp,v 1.49 2006/07/11 18:37:54 fwarmerdam Exp $");static char *apszProjMapping[] = {    "Albers", SRS_PT_ALBERS_CONIC_EQUAL_AREA,    "Cassini", SRS_PT_CASSINI_SOLDNER,    "Hotine_Oblique_Mercator_Azimuth_Natural_Origin",                                         SRS_PT_HOTINE_OBLIQUE_MERCATOR,    "Hotine_Oblique_Mercator_Azimuth_Center",                                         SRS_PT_HOTINE_OBLIQUE_MERCATOR,    "Lambert_Conformal_Conic", SRS_PT_LAMBERT_CONFORMAL_CONIC_2SP,    "Lambert_Conformal_Conic", SRS_PT_LAMBERT_CONFORMAL_CONIC_1SP,    "Van_der_Grinten_I", SRS_PT_VANDERGRINTEN,    SRS_PT_TRANSVERSE_MERCATOR, SRS_PT_TRANSVERSE_MERCATOR,    "Gauss_Kruger", SRS_PT_TRANSVERSE_MERCATOR,    "Mercator", SRS_PT_MERCATOR_1SP,    "Equidistant_Cylindrical", SRS_PT_EQUIRECTANGULAR,    NULL, NULL };  static char *apszAlbersMapping[] = {    SRS_PP_CENTRAL_MERIDIAN, SRS_PP_LONGITUDE_OF_CENTER,     SRS_PP_LATITUDE_OF_ORIGIN, SRS_PP_LATITUDE_OF_CENTER,    "Central_Parallel", SRS_PP_LATITUDE_OF_CENTER,    NULL, NULL };static char *apszECMapping[] = {    SRS_PP_CENTRAL_MERIDIAN, SRS_PP_LONGITUDE_OF_CENTER,     SRS_PP_LATITUDE_OF_ORIGIN, SRS_PP_LATITUDE_OF_CENTER,     NULL, NULL };static char *apszMercatorMapping[] = {    SRS_PP_STANDARD_PARALLEL_1, SRS_PP_LATITUDE_OF_ORIGIN,    NULL, NULL };static char *apszPolarStereographicMapping[] = {    SRS_PP_STANDARD_PARALLEL_1, SRS_PP_LATITUDE_OF_ORIGIN,    NULL, NULL };static char **papszDatumMapping = NULL; static char *apszDefaultDatumMapping[] = {    "6267", "North_American_1927", SRS_DN_NAD27,    "6269", "North_American_1983", SRS_DN_NAD83,    NULL, NULL, NULL }; static char *apszUnitMapping[] = {    "Meter", "meter",    "Meter", "metre",    "Foot", "foot",    "Foot", "feet",    "Foot_US", SRS_UL_US_FOOT,    "Degree", "degree",    "Degree", "degrees",    "Degree", SRS_UA_DEGREE,    "Radian", SRS_UA_RADIAN,    NULL, NULL };  /* -------------------------------------------------------------------- *//*      Table relating USGS and ESRI state plane zones.                 *//* -------------------------------------------------------------------- */static int anUsgsEsriZones[] ={  101, 3101,  102, 3126,  201, 3151,  202, 3176,  203, 3201,  301, 3226,  302, 3251,  401, 3276,  402, 3301,  403, 3326,  404, 3351,  405, 3376,  406, 3401,  407, 3426,  501, 3451,  502, 3476,  503, 3501,  600, 3526,  700, 3551,  901, 3601,  902, 3626,  903, 3576, 1001, 3651, 1002, 3676, 1101, 3701, 1102, 3726, 1103, 3751, 1201, 3776, 1202, 3801, 1301, 3826, 1302, 3851, 1401, 3876, 1402, 3901, 1501, 3926, 1502, 3951, 1601, 3976, 1602, 4001, 1701, 4026, 1702, 4051, 1703, 6426, 1801, 4076, 1802, 4101, 1900, 4126, 2001, 4151, 2002, 4176, 2101, 4201, 2102, 4226, 2103, 4251, 2111, 6351, 2112, 6376, 2113, 6401, 2201, 4276, 2202, 4301, 2203, 4326, 2301, 4351, 2302, 4376, 2401, 4401, 2402, 4426, 2403, 4451, 2500,    0, 2501, 4476, 2502, 4501, 2503, 4526, 2600,    0, 2601, 4551, 2602, 4576, 2701, 4601, 2702, 4626, 2703, 4651, 2800, 4676, 2900, 4701, 3001, 4726, 3002, 4751, 3003, 4776, 3101, 4801, 3102, 4826, 3103, 4851, 3104, 4876, 3200, 4901, 3301, 4926, 3302, 4951, 3401, 4976, 3402, 5001, 3501, 5026, 3502, 5051, 3601, 5076, 3602, 5101, 3701, 5126, 3702, 5151, 3800, 5176, 3900,    0, 3901, 5201, 3902, 5226, 4001, 5251, 4002, 5276, 4100, 5301, 4201, 5326, 4202, 5351, 4203, 5376, 4204, 5401, 4205, 5426, 4301, 5451, 4302, 5476, 4303, 5501, 4400, 5526, 4501, 5551, 4502, 5576, 4601, 5601, 4602, 5626, 4701, 5651, 4702, 5676, 4801, 5701, 4802, 5726, 4803, 5751, 4901, 5776, 4902, 5801, 4903, 5826, 4904, 5851, 5001, 6101, 5002, 6126, 5003, 6151, 5004, 6176, 5005, 6201, 5006, 6226, 5007, 6251, 5008, 6276, 5009, 6301, 5010, 6326, 5101, 5876, 5102, 5901, 5103, 5926, 5104, 5951, 5105, 5976, 5201, 6001, 5200, 6026, 5200, 6076, 5201, 6051, 5202, 6051, 5300,    0,  5400,    0};void OGREPSGDatumNameMassage( char ** ppszDatum );/************************************************************************//*                           RemapSpheroidName()                        *//*                                                                      *//*      Convert Spheroid name to ESRI style name                        *//************************************************************************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -