AGF文本

AGF文本与二进制AGF格式类似,只不过它使用的是文本格式而已,它是OGC WKT格式的一个超集,AGF文本的语法如下所示。

<FGF Text> ::= POINT <Dimensionality> <PointEntity>

| LINESTRING <Dimensionality> <LineString>

| POLYGON <Dimensionality> <Polygon>

| CURVESTRING <Dimensionality> <CurveString>

| CURVEPOLYGON <Dimensionality> <CurvePolygon>

| MULTIPOINT <Dimensionality> <MultiPoint>

| MULTILINESTRING <Dimensionality> <MultiLineString>

| MULTIPOLYGON <Dimensionality> <MultiPolygon>

| MULTICURVESTRING <Dimensionality> <MultiCurveString>

| MULTICURVEPOLYGON <Dimensionality> <MultiCurvePolygon>

| GEOMETRYCOLLECTION <GeometryCollection>

<PointEntity> ::= '(' <Point> ')'

<LineString> ::= '(' <PointCollection> ')'

<Polygon> ::= '(' <LineStringCollection> ')'

<MultiPoint> ::= '(' <PointCollection> ')'

<MultiLineString> ::= '(' <LineStringCollection> ')'

<MultiPolygon> ::= '(' <PolygonCollection> ')'

<GeometryCollection : '(' <FGF Collection Text> ')'

<CurveString> ::= '(' <Point> '(' <CurveSegmentCollection> ')' ')'

<CurvePolygon> ::= '(' <CurveStringCollection> ')'

<MultiCurveString> ::= '(' <CurveStringCollection> ')'

<MultiCurvePolygon> ::= '(' <CurvePolygonCollection> ')'

<Dimensionality> ::= // default to XY

| XY

| XYZ

| XYM

| XYZM

<Point> ::= DOUBLE DOUBLE

| DOUBLE DOUBLE DOUBLE

| DOUBLE DOUBLE DOUBLE DOUBLE

<PointCollection> ::= <Point>

| <PointCollection ',' <Point>

<LineStringCollection> ::= <LineString>

| <LineStringCollection> ',' <LineString>

<PolygonCollection> ::= <Polygon>

| <PolygonCollection> ',' <Polygon>

<FGF Collection Text> ::= <FGF Text>

| <FGF Collection Text> ',' <FGF Text>

<CurveSegment> ::= CIRCULARARCSEGMENT '(' <Point> ',' <Point> ')'

| LINESTRINGSEGMENT '(' <PointCollection> ')'

<CurveSegmentCollection> ::= <CurveSegment>

| <CurveSegmentCollection> ',' <CurveSegment>

<CurveStringCollection> ::= <CurveString>

| <CurveStringCollection> ',' <CurveString>

<CurvePolygonCollection> ::= <CurvePolygon>

| <CurvePolygonCollection> ',' <CurvePolygon>

下面例子中展示了使用AGF文本格式描述的不同类型的几何物体。

POINT XY (10 11) // equivalent to POINT (10 11)

POINT XYZ (10 11 12)

POINT XYM (10 11 1.2)

POINT XYZM (10 11 12 1.2)

GEOMETRYCOLLECTION (POINT xyz (10 11 12),POINT XYM (30 20 1.8),

LINESTRING XYZM(1 2 3 4, 3 5 15, 3 20 20))

CURVESTRING (0 0 (LINESTRINGSEGMENT (10 10, 20 20, 30 40))))

CURVESTRING (0 0 (CIRCULARARCSEGMENT (11 11, 12 12),

LINESTRINGSEGMENT (10 10, 20 20, 30 40)))

CURVESTRING (0 0 (ARC (11 11, 12 12), LINESTRINGSEGMENT (10 10, 20

20, 30 40)))

CURVESTRING XYZ (0 0 0 (LINESTRINGSEGMENT (10 10 1, 20 20 1, 30 40

1)))

MULTICURVESTRING ((0 0 (LINESTRINGSEGMENT (10 10, 20 20, 30 40))),(0

0 (ARC (11 11, 12 12), LINESTRINGSEGMENT (10 10, 20 20, 30 40))))

CURVEPOLYGON ((0 0 (LINESTRINGSEGMENT (10 10, 10 20, 20 20), ARC

(20 15, 10 10))), (0 0 (ARC (11 11, 12 12), LINESTRINGSEGMENT (10 10, 20

20, 40 40, 90 90))))

MULTICURVEPOLYGON (((0 0 (LINESTRINGSEGMENT (10 10, 10 20, 20 20),

ARC (20 15, 10 10))), (0 0 (ARC (11 11, 12 12), LINESTRINGSEGMENT (10 10,

20 20, 40 40, 90 90)))),((0 0 (LINESTRINGSEGMENT (10 10, 10 20, 20 20),

ARC (20 15, 10 10))), (0 0 (ARC (11 11, 12 12), LINESTRINGSEGMENT (10 10,

20 20, 40 40, 90 90)))))

你可能感兴趣的:(AGF文本)