跳转到内容

Microsoft SQL Server/地理空间数据/WKT

来自维基教科书,开放的书籍,开放的世界

Well-known text (WKT) 是一种文本标记语言,用于表示地图上的矢量几何对象、空间对象的参考系统以及空间参考系统之间的转换。一个二进制等效物,称为 well-known binary (WKB) 用于在数据库(如 PostGIS)中传输和存储相同的信息。这些格式由开放地理空间联盟 (OGC) 规范,并描述在他们的简单要素访问和坐标转换服务规范中。

几何对象

[编辑 | 编辑源代码]

可以使用 WKT 表示的几何对象包括:点、线、多边形、TIN 和多面体。还可以使用多几何体在单个对象中表示多个相同维度的几何体,并且可以在几何体集合中存储不同维度的几何体。

几何体的坐标可以是 2D (x, y)、3D (x, y, z)、4D (x, y, z, m)(其中 m 值是线性参考系统的一部分)或 3D 带 m 值 (x, y, m)。三维几何体由几何体类型后的 Z 表示,具有线性参考系统的几何体在几何体类型后有 M。

WKT 几何体在整个 OGC 规范中使用,并且存在于实现这些规范的应用程序中。例如,PostGIS 包含可以将几何体转换为 WKT 表示形式(反之亦然)的函数,使它们可读。

以下是一些示例几何 WKT 字符串。

 POINT(6 10)
 LINESTRING(3 4,10 50,20 25)
 POLYGON((1 1,5 1,5 5,1 5,1 1),(2 2, 3 2, 3 3, 2 3,2 2))
 MULTIPOINT(3.5 5.6,4.8 10.5)
 MULTILINESTRING((3 4,10 50,20 25),(-5 -8,-10 -8,-15 -4))
 MULTIPOLYGON(((1 1,5 1,5 5,1 5,1 1),(2 2, 3 2, 3 3, 2 3,2 2)),((3 3,6 2,6 4,3 3)))
 GEOMETRYCOLLECTION(POINT(4 6),LINESTRING(4 6,7 10))
 POINT ZM (1 1 5 60)
 POINT M (1 1 80)

空间参考系统

[编辑 | 编辑源代码]

空间参考系统的 WKT 字符串描述了空间对象的基准面、大地水准面、坐标系和地图投影。

Well-known text 在许多 GIS 程序中被广泛使用。ESRI 在 shapefile 中使用 WKT*.prj文件。

以下是一个空间参考系统 WKT 字符串的示例。

COMPD_CS["OSGB36 / British National Grid + ODN",
    PROJCS["OSGB 1936 / British National Grid",
        GEOGCS["OSGB 1936",
            DATUM["OSGB_1936",
                SPHEROID["Airy 1830",6377563.396,299.3249646,AUTHORITY["EPSG","7001"]],
                TOWGS84[375,-111,431,0,0,0,0],
                AUTHORITY["EPSG","6277"]],
            PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],
            UNIT["DMSH",0.0174532925199433,AUTHORITY["EPSG","9108"]],
            AXIS["Lat",NORTH],
            AXIS["Long",EAST],
            AUTHORITY["EPSG","4277"]],
        PROJECTION["Transverse_Mercator"],
        PARAMETER["latitude_of_origin",49],
        PARAMETER["central_meridian",-2],
        PARAMETER["scale_factor",0.999601272],
        PARAMETER["false_easting",400000],
        PARAMETER["false_northing",-100000],
        UNIT["metre",1,AUTHORITY["EPSG","9001"]],
        AXIS["E",EAST],
        AXIS["N",NORTH],
        AUTHORITY["EPSG","27700"]],
    VERT_CS["Newlyn",
        VERT_DATUM["Ordnance Datum Newlyn",2005,AUTHORITY["EPSG","5101"]],
        UNIT["metre",1,AUTHORITY["EPSG","9001"]],
        AXIS["Up",UP],
        AUTHORITY["EPSG","5701"]],
    AUTHORITY["EPSG","7405"]]

WKT 格式用于描述用于在两个不同的空间参考系统之间转换坐标的转换方法和参数。

以下是两个 WKT 变换描述的示例。

PARAM_MT["Mercator_2SP", 
    PARAMETER["semi_major",6370997.0], 
    PARAMETER["semi_minor",6370997.0], 
    PARAMETER["central_meridian",180.0], 
    PARAMETER["false_easting",-500000.0], 
    PARAMETER["false_northing",-1000000.0], 
    PARAMETER["standard_parallel_1",60.0]]
PARAM_MT["Affine",
    PARAMETER["num_row",3],
    PARAMETER["num_col",3],
    PARAMETER["elt_0_1",1],
    PARAMETER["elt_0_2",2],
    PARAMETER["elt_1_2",3]]
华夏公益教科书