当前位置: 首页 > 工具软件 > WKT > 使用案例 >

oracle输出wkt,WKT、WKB

子车才捷
2023-12-01

对于这两个概念的解释,首先了解一下SQL/MM。SQL/MM是ISO/IEC针对“文本、时空、静态图片和数据挖掘”的国际标准,SQL/MM为定义地理几何体而定义了WKT和WKB格式。很多第三方空间供应商都支持WKT、WKB这一空间数据标准格式。

1、WKT(Well Known

Text)熟知文本

Oracle spatial中的SDO_GEOMETRY地理格式,Arcgis

SDE中的SHAPE格式都可以转换成WKT形式描述。

举例说明:地理空间坐标系的描述

Well-Known Text (WKT) Representation of Spatial Reference

Systems:顾名思义用众所周知的文字形式来描述坐标参照系统,它与EPSG(2005年已经换名)的坐标文字表述模型一致。

基础知识:坐标参照系有三种最常见的子类:地心坐标系(geocentric cs、GEOCCS),地理坐标系(geographic

cs、GEOGCS),和投影坐标系(projected cs、PROJCS)以及相互之间的关系,可以参考《坐标参照系》。投影参数内容:Ellipsoid 、 Datum

;Projection,可以参考《地图投影为什么》。

坐标系的文字描述的扩展BN范式(EBNF)定义如下:

= | |

= PROJECTION[""]

= PARAMETER["", ]

=

= DATUM["", ]

= SPHEROID["", , ]

= NOTE: semi-major axis is measured in meters and must be >

0.

=

= PRIMEM["", ]

=

=

=

= UNIT["", ]

=

以下示例说明,参照上述参数,然后比瓢画葫芦即可自行用WKT创建坐标系。

地理坐标系的格式: = GEOGCS["", , ,

]

WGS1984的地理坐标系WKT形式:

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.0174532925199433, AUTHORITY["EPSG",

"9122"]],

AUTHORITY["EPSG", "4326"]]

投影坐标系的格式: = PROJCS["", , , {,}*

]

WGS1984地理坐标,统一横轴墨卡托(UTM)投影,中央经线117E的投影坐标系WKT形式:

PROJCS["WGS 84 / UTM zone 50N",

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.0174532925199433, AUTHORITY["EPSG", "9122"]],

AUTHORITY["EPSG", "4326"]],

PROJECTION["Transverse_Mercator"],

PARAMETER["latitude_of_origin", 0],

PARAMETER["central_meridian", 117],

PARAMETER["scale_factor", 0.9996],

PARAMETER["false_easting", 500000],

PARAMETER["false_northing", 0],

UNIT["metre", 1, AUTHORITY["EPSG", "9001"]],

AUTHORITY["EPSG", "32650"]]

地心坐标系格式相似于地理坐标系: = GEOCCS["", , ,

]

参数中出现AUTHORITY是EPSG的玩意,在自定义坐标系时可以忽略,我会在后面详细介绍EPSG相关内容。WKT更具体的可参考OGC相关文档:如SFA、《SF

for OLE/COM》等。

练习:给出下属投影坐标系参数,请用WKT方式表述。

投影参数:椭球体,Krasovsky_1940;基准面,北京1954;投影:兰勃特双标准纬线,25N,47N;中央经线,117E。

参考答案:

PROJCS["liongg",

GEOGCS["GCS_Beijing_1954",

DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],

PRIMEM["Greenwich",0.0],

UNIT["Degree",0.0174532925199433]],

PROJECTION["Lambert_Conformal_Conic"],

PARAMETER["False_Easting",20500000.0],

PARAMETER["False_Northing",0.0],

PARAMETER["Central_Meridian",0.0],

PARAMETER["Standard_Parallel_1",25.0],

PARAMETER["Standard_Parallel_2",47.0],

PARAMETER["Scale_Factor",1.0],

PARAMETER["Latitude_Of_Origin",0.0],

UNIT["Meter",1.0]]

有个偷懒的方法就是用商业软件譬如ArcGIS按照参数新建投影,然后在.prj文件中提取投影内容并修改。

2、WKB(Well Known

Byte)熟知二进制

对于地理大对象数据,用文本描述显得有些臃肿,这时候可以将大对象以BLOB形式存储,WKT也就是WKB了。

 类似资料: