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)))))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值