提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
-
-
- [一、OGC WKT(Well-Known Text)](#一、OGC WKT(Well-Known Text))
- [二、OGC WKT2](#二、OGC WKT2)
- [三、ESRI WKT](#三、ESRI WKT)
- 四、Proj.4格式
- 五、Proj4js格式
- 六、JSON格式
- 七、GeoServer格式
- 八、MapServer格式
- 九、Mapnik格式
- 十、PostGIS格式
- 总结:格式对比与选择建议
-
以下是对EPSG官网中提到的坐标系统格式的详细介绍,涵盖定义、特点、应用场景及示例,帮助你全面理解不同格式的差异与用途:
一、OGC WKT(Well-Known Text)
定义
- 由开放地理空间联盟(OGC) 制定的标准文本表示法,用于描述空间参考系统(SRS)、坐标系统、投影等地理信息。
- 基于ASCII文本,结构清晰,便于人类阅读和程序解析。
结构特点
-
使用括号嵌套表示层级关系,例如:
wktGEOGCS["WGS 84", DATUM["WGS_1984", SPHEROID["WGS 84", 6378137, 298.257223563]], PRIMEM["Greenwich", 0], UNIT["degree", 0.0174532925199433]] -
包含地理坐标系(GEOGCS)、投影坐标系(PROJCS)、基准面(DATUM)等核心要素。
应用场景
- 广泛用于GIS软件(如QGIS、ArcGIS)、空间数据库(如PostGIS)及OGC标准协议(WMS、WFS)。
- 是坐标系统交换的基础格式,支持二维坐标表示。
局限性
- 不支持三维坐标(Z轴)和时间维度(M轴)。
- 对复杂投影的描述能力有限。
二、OGC WKT2
定义
- OGC WKT的升级版,在OGC 12-063r5标准中发布,增强了对复杂空间参考系统的描述能力。
结构特点
-
新增对三维坐标(Z)、时间维度(M)、复合坐标系(COMPCS) 的支持,例如:
wkt2COMPCS["ETRS89 / UTM zone 33N + height", PROJCS["ETRS89 / UTM zone 33N", GEOGCS["ETRS89", ...], PROJECTION["Transverse_Mercator"], PARAMETER["latitude_of_origin", 0], ...], VERTCS["ETRS89 Height", DATUM["ETRS89"], UNIT["metre", 1]]] -
支持投影参数的详细定义(如PROJECTION、PARAMETER),兼容更多投影类型。
应用场景
- 适用于需要三维空间数据(如地形建模、BIM)或时间序列数据的场景。
- 新GIS标准(如OGC API)优先推荐使用WKT2。
优势
- 更完整的坐标系描述,减少歧义,便于跨平台数据交换。
三、ESRI WKT
定义
- 由Esri公司定制的WKT格式,用于ArcGIS系列产品(如ArcMap、ArcGIS Pro),与OGC WKT不完全兼容。
结构特点
-
语法类似OGC WKT,但包含Esri特有的扩展字段,例如:
esriwktGEOGCS["GCS_WGS_1984", DATUM["D_WGS_1984", SPHEROID["WGS_1984", 6378137.0, 298.257223563]], PRIMEM["Greenwich", 0.0], UNIT["Degree", 0.0174532925199433]] -
部分参数命名不同(如OGC的"UNIT"在Esri中可能为"UNIT",但投影参数可能有差异)。
应用场景
- 仅在Esri生态系统内使用,如ArcGIS软件、FileGDB数据库。
- 与OGC WKT转换时需注意字段映射(如Esri的"PROJCS"可能对应OGC的"PROJECTED_CS")。
局限性
- 非开源标准,跨平台兼容性较差。
四、Proj.4格式
定义
- 由Proj.4库 (现整合为PROJ库)使用的坐标系统参数表示法,以键值对(+key=value) 形式描述投影参数。
结构特点
-
简洁的参数化格式,例如WGS 84 UTM Zone 33N:
proj4+proj=utm +zone=33 +ellps=WGS84 +datum=WGS84 +units=m +no_defs -
核心参数包括:
+proj:投影类型(如utm、mercator)+zone:UTM分区+ellps:椭球体+datum:基准面
应用场景
- 广泛用于GIS开发(如GDAL、QGIS)、命令行工具(如proj)。
- 是坐标转换的底层参数标准,支持高效计算。
优势
- 格式紧凑,便于编程接口调用(如Python的pyproj库)。
五、Proj4js格式
定义
- Proj.4的JavaScript版本,用于Web端坐标转换,适配浏览器环境。
结构特点
-
与Proj.4参数基本一致,但语法适配JavaScript对象,例如:
javascriptvar wgs84 = { proj: 'longlat', ellps: 'WGS84', datum: 'WGS84', units: 'degrees', no_defs: true }; -
支持通过
proj4库的API进行坐标转换:javascriptproj4(utmZone33, wgs84, [500000, 6000000]); // 从UTM转换到WGS84
应用场景
- WebGIS开发(如OpenLayers、Leaflet),用于前端投影转换。
- 解决浏览器中坐标计算的性能需求。
六、JSON格式
定义
- 以JSON对象表示坐标系统信息,结构灵活,便于Web应用解析。
结构特点
-
分层级的键值对,例如:
json{ "name": "WGS 84 / UTM zone 33N", "type": "projected", "baseGeographic": { "name": "WGS 84", "ellipsoid": { "name": "WGS84", "semiMajor": 6378137, "inverseFlattening": 298.257223563 } }, "projection": { "name": "Transverse Mercator", "parameters": { "centralMeridian": 15, "latitudeOfOrigin": 0, "scaleFactor": 0.9996, "falseEasting": 500000, "falseNorthing": 0 } } } -
可自定义字段,适配不同框架需求。
应用场景
- WebGIS服务接口(如GeoServer的REST API)、前端配置文件。
- 适合与JSON兼容的数据库(如MongoDB)存储坐标系统元数据。
七、GeoServer格式
定义
- GeoServer开源服务器使用的坐标系统配置格式,基于OGC标准并支持扩展。
结构特点
-
兼容OGC WKT/WKT2,同时支持通过XML配置文件(如
layers.xml)或Web界面管理坐标系统:xml<坐标系> <name>EPSG:32633</name> <wkt>PROJCS["WGS 84 / UTM zone 33N", ...]</wkt> <axisOrder>enu</axisOrder> </坐标系> -
支持动态加载EPSG坐标系统定义(通过EPSG数据库插件)。
应用场景
- GeoServer服务发布时的坐标系配置,如WMS图层的投影设置。
- 与其他开源工具(如QGIS、uDig)无缝对接。
八、MapServer格式
定义
- MapServer开源服务器 使用的坐标系统描述方式,通过配置文件(
.map)定义。
结构特点
-
在
.map文件中使用PROJECTION区块定义投影参数,例如:mapPROJECTION "init=epsg:32633" "proj=utm" "zone=33" "ellps=WGS84" END -
支持直接引用EPSG代码(
init=epsg:XXXX)或Proj.4参数。
应用场景
- MapServer地图服务的投影配置,适用于服务器端渲染地图瓦片。
- 与WebGIS框架(如MapServer + Leaflet)结合使用。
九、Mapnik格式
定义
- Mapnik地图渲染库使用的坐标系统配置格式,用于定义地图投影和坐标转换。
结构特点
-
在Mapnik XML配置文件(
.xml)中通过Projection标签定义,例如:xml<Map srs="+proj=merc +ellps=WGS84 +datum=WGS84 +units=m +no_defs"> <!-- 图层定义 --> <Layer name="roads"> <StyleName>road-style</StyleName> </Layer> </Map> -
直接使用Proj.4参数字符串(
srs属性)描述投影。
应用场景
- 地图瓦片渲染(如OpenStreetMap的瓦片生成),定义地图的输出投影。
- 与Python、C++等语言集成,用于自定义地图样式。
十、PostGIS格式
定义
- PostGIS空间数据库扩展使用的坐标系统格式,基于OGC标准并支持扩展。
结构特点
- 主要通过以下方式表示坐标系统:
-
WKT/EWKT :扩展WKT支持三维(EWKT),例如:
sqlSELECT ST_SRID(ST_GeomFromEWKT('SRID=32633;POINT(500000 6000000 10)')); -
EPSG代码 :通过
spatial_ref_sys表关联EPSG定义,例如:sqlSELECT * FROM spatial_ref_sys WHERE srid = 32633; -
Proj.4参数 :在函数中直接使用,如
ST_Transform:sqlSELECT ST_Transform(geom, '+proj=utm +zone=33 +ellps=WGS84');
-
应用场景
- 空间数据存储与查询,支持PostgreSQL数据库中的坐标转换和投影计算。
- 与GIS服务器(如GeoServer)对接时的坐标系适配。
总结:格式对比与选择建议
| 格式类型 | 核心特点 | 适用场景 | 兼容性 |
|---|---|---|---|
| OGC WKT | 二维标准文本,OGC基础格式 | 通用GIS交换、简单应用 | 跨平台高,不支持三维 |
| OGC WKT2 | 三维+时间维度,OGC新标准 | 三维GIS、复杂投影 | 新工具支持,旧系统需适配 |
| ESRI WKT | Esri定制格式 | ArcGIS生态系统 | 仅限Esri产品 |
| Proj.4 | 参数化键值对,高效计算 | 编程接口、坐标转换 | 跨平台高,适合开发 |
| Proj4js | Proj.4的JS版本 | Web前端坐标转换 | 浏览器环境 |
| JSON | 灵活结构化数据 | Web服务、配置文件 | 前端友好,自定义性强 |
| GeoServer/MapServer | 服务器配置格式 | 开源GIS服务器部署 | 对应服务器生态 |
| Mapnik | 地图渲染投影定义 | 瓦片生成、样式配置 | 与Mapnik渲染流程绑定 |
| PostGIS | 数据库空间格式 | 空间数据存储与查询 | 与PostgreSQL深度集成 |
选择建议:
- 通用交换:优先使用OGC WKT2(支持三维)或Proj.4(参数简洁)。
- Web开发:JSON(配置)+ Proj4js(前端计算)。
- Esri生态:使用ESRI WKT或EPSG代码。
- 数据库存储:PostGIS推荐结合EPSG代码与EWKT。
- 服务器配置:根据使用的平台(GeoServer/MapServer)选择对应格式。