S57系列

也称为S57。IHO S-57格式是一种用于海图的矢量交换格式。它是由国际水文组织(IHO)开发的。有关IHO的更多信息,请参见:https://www.IHO.int/

文件列表

每个S57数据文件的扩展名为*.000。例如:

US1BS02M.000

数据访问/连接方法

  • MAPServer中的S57访问通过OGR进行,必须使用ConnectionType OGR。

  • 为连接指定从shapepath到.000文件的完整路径或相对路径

  • 使用数据参数指定S57图层名称

特别注释

在MapServer中读取S57数据时,底层的OGR代码需要GDAL/OGR安装中的两个文件:S57ObjectClasses.csv和S57Attributes.csv。这些文件可以在/gdal/data/folder(unix:/usr/local/share/gdal windows:/ms4w/gdal data)中找到。如果在MapServer中收到错误,例如:

msDrawMap(): Image handling error. Failed to draw layer named 's57'.
msOGRFileOpen(): OGR error. xxx failed for OGR connection

您可能需要使用 Mapfile 主部分中的config参数将mapserver指向这些文件:

CONFIG GDAL_DATA "C:\ms4w\gdaldata"

Ogrinfo示例

在S57文件上使用ogrinfo获取层名:

> ogrinfo us1bs02m.000
ERROR 4: S57 Driver doesn't support update.
Had to open data source read-only.
INFO: Open of `us1bs02m.000'
using driver `IHO S-57 (ENC)' successful.
1: ADMARE (Polygon)
2: CBLSUB (Line String)
3: CTNARE
4: COALNE (Line String)
5: DEPARE
6: DEPCNT (Line String)
7: LNDARE
8: LNDELV
9: LNDRGN
10: LNDMRK
11: LIGHTS (Point)
12: OBSTRN
13: RDOSTA (Point)
14: SEAARE
15: SBDARE
16: SLCONS
17: SOUNDG (Multi Point)
18: UWTROC (Point)
19: WATTUR
20: WRECKS
21: M_COVR (Polygon)
22: M_NPUB (Polygon)
23: M_NSYS (Polygon)
24: M_QUAL (Polygon)
25: C_ASSO (None)

使用ogrinfo检查S57层的结构:

    > ogrinfo us1bs02m.000 DEPARE -summary
    ERROR 4: S57 Driver doesn't support update.
    Had to open data source read-only.
    INFO: Open of `us1bs02m.000'
    using driver `IHO S-57 (ENC)' successful.

    Layer name: DEPARE
    Geometry: Unknown (any)
    Feature Count: 297
    Extent: (165.666667, 48.500000) - (180.000000, 60.750000)
    Layer SRS WKT:
    GEOGCS["WGS 84",
DATUM["WGS_1984",
    SPHEROID["WGS 84",6378137,298.257223563]],
PRIMEM["Greenwich",0],
UNIT["degree",0.0174532925199433]]
    GRUP: Integer (3.0)
    OBJL: Integer (5.0)
    RVER: Integer (3.0)
    AGEN: Integer (2.0)
    FIDN: Integer (10.0)
    FIDS: Integer (5.0)
    LNAM: String (16.0)
    LNAM_REFS: StringList (16.0)
    DRVAL1: Real (0.0)
    DRVAL2: Real (0.0)
    QUASOU: String (0.0)
    SOUACC: Real (0.0)
    VERDAT: Integer (0.0)
    INFORM: String (0.0)
    NINFOM: String (0.0)
    NTXTDS: String (0.0)
    SCAMAX: Integer (0.0)
    SCAMIN: Integer (0.0)
    TXTDSC: String (0.0)
    RECDAT: String (0.0)
    RECIND: String (0.0)
    ...

Mapfile 示例:

LAYER
  NAME s57
  TYPE POLYGON
  STATUS DEFAULT
  CONNECTIONTYPE OGR
  CONNECTION "./s57/us1bs02m.000"
  DATA "DEPARE"
  CLASS
   STYLE
     COLOR 247 237 219
     OUTLINECOLOR 120 120 120
   END
  END
END # Layer