From 2983510dc42f06873a2ca928bed0372ad4330d86 Mon Sep 17 00:00:00 2001 From: Robert Taglang Date: Thu, 25 Aug 2016 16:59:34 -0400 Subject: [PATCH 1/9] Saving progress --- TileFormats/VectorData/README.md | 63 ++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/TileFormats/VectorData/README.md b/TileFormats/VectorData/README.md index c703e8021..4519a6de9 100644 --- a/TileFormats/VectorData/README.md +++ b/TileFormats/VectorData/README.md @@ -18,3 +18,66 @@ Could also name this a `Geometry` tile. **Implementation work-in-progress** * Polygons: https://github.com/AnalyticalGraphicsInc/cesium/pull/4186 * Polylines: https://github.com/AnalyticalGraphicsInc/cesium/pull/4208 + +# Vector Data + +## Contributors + +* Dan Bagnell, [@bagnell](https://github.com/bagnell) +* Rob Taglang, [@lasalvavida](https://github.com/lasalvavida) +* Patrick Cozzi, [@pjcozzi](https://twitter.com/pjcozzi) + +## Overview + +The _Vector_ tile format allows streaming of vector graphics data like polygons and polylines. + +Each vector graphics element is a _feature_ in the core 3D Tiles spec language. + +## Layout + +A tile is composed of a header section immediately followed by a body section. + +**Figure 1**: Vector layout (dashes indicate optional fields). + +![header layout](figures/header-layout.png) + +## Header + +The -byte header contains the following fields: + +| Field name | Data type | Description | +| --- | --- | --- | +| `magic` | 4-byte ANSI string | `"vctr"`. This can be used to identify the arraybuffer as a Vector tile. | +| `version` | `uint32` | The version of the Instanced 3D Model format. It is currently `1`. | +| `byteLength` | `uint32` | The length of the entire tile, including the header, in bytes. | +| `featureTableJSONByteLength` | `uint32` | The length of the feature table JSON section in bytes. | +| `featureTableBinaryByteLength` | `uint32` | The length of the feature table binary section in bytes. If `featureTableJSONByteLength` is zero, this will also be zero. | +| `batchTableJSONByteLength` | `uint32` | The length of the batch table JSON section in bytes. Zero indicates that there is no batch table. | +| `batchTableBinaryByteLength` | `uint32` | The length of the batch table binary section in bytes. If `batchTableJSONByteLength` is zero, this will also be zero. | + +## Feature Table + +Contains values for `vctr` semantics used to create vector elements. +More information is available in the [Feature Table specification](../FeatureTable). + +The `vctr` Feature Table JSON schema is defined in [vctr.featureTable.schema.json](../../schema/vctr.featureTable.schema.json). + +### Semantics + +#### Vector Semantics + +| Semantic | Data Type | Description | Required | +| --- | --- | --- | --- | +| `POLYGON_INDICES` | `uint32` | An index into the `POLYGON_POSITION` array. | :red_circle: No. | +| `POLYGON_POSITION` | `float32[3]` | A 3-component array of numbers containing `x`, `y`, and `z` Cartesian coordinates for the polygon positions. If `POLYGON_INDICES` is not defined, these values are used to create the polygon in order. | :white_check_mark: Yes, unless `POLYGON_POSITION_QUANTIZED` is defined. | +| `POLYGON_POSITION_QUANTIZED` | `uint16[3]` | A 3-component array of numbers containing `x`, `y`, and `z` in quantized Cartesian coordinates for the polygon positions. If `POLYGON_INDICES` is not defined, these values are used to create the polygon in order. | :white_check_mark: Yes, unless `POLYGON_POSITION` is defined. | + + +#### Global Semantics + +The semantics define global properties for all vector elements. + +| Semantic | Data Type | Description | Required | +| --- | --- | --- | --- | +| `POLYGONS_LENGTH` | `uint32` | The number of polygons to generate. The length of each array value for a `POLYGON` semantic should be equal to this. | :white_check_mark: Yes, unless `POLYLINES_LENGTH` is defined. | +| `POLYLINES_LENGTH` | `uint32` | The number of polylines to generate. The length of each array value for a `POLYLINE` semantic should be equal to this. | :white_check_mark: Yes, unless `POLYGONS_LENGTH` is defined. | From 1886325f722fdda6e3997e04e0891a85603ae3b6 Mon Sep 17 00:00:00 2001 From: Robert Taglang Date: Fri, 26 Aug 2016 14:53:51 -0400 Subject: [PATCH 2/9] Fixed error in quantized formula --- TileFormats/Instanced3DModel/README.md | 2 +- TileFormats/PointCloud/README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/TileFormats/Instanced3DModel/README.md b/TileFormats/Instanced3DModel/README.md index 519ccbde2..6f2ea7220 100644 --- a/TileFormats/Instanced3DModel/README.md +++ b/TileFormats/Instanced3DModel/README.md @@ -137,7 +137,7 @@ If those global semantics are not defined, `POSITION_QUANTIZED` cannot be used. Quantized positions can be mapped to model space using the formula: -`POSITION = POSITION_QUANTIZED * QUANTIZED_VOLUME_SCALE + QUANTIZED_VOLUME_OFFSET` +`POSITION = POSITION_QUANTIZED * QUANTIZED_VOLUME_SCALE / 65535.0 + QUANTIZED_VOLUME_OFFSET` ### Instance Scaling diff --git a/TileFormats/PointCloud/README.md b/TileFormats/PointCloud/README.md index d566a4ef5..3e64b9f78 100644 --- a/TileFormats/PointCloud/README.md +++ b/TileFormats/PointCloud/README.md @@ -100,7 +100,7 @@ If those global semantics are not defined, `POSITION_QUANTIZED` cannot be used. Quantized positions can be mapped to model space using the formula: -`POSITION = POSITION_QUANTIZED * QUANTIZED_VOLUME_SCALE + QUANTIZED_VOLUME_OFFSET` +`POSITION = POSITION_QUANTIZED * QUANTIZED_VOLUME_SCALE / 65535.0 + QUANTIZED_VOLUME_OFFSET` ### Point Colors From b8f93348e00aaf12b9d2c02ba4d765d158ffee5c Mon Sep 17 00:00:00 2001 From: Robert Taglang Date: Fri, 26 Aug 2016 14:54:25 -0400 Subject: [PATCH 3/9] First draft of Vector tiles spec --- TileFormats/VectorData/README.md | 177 +++++++++++++++--- .../VectorData/figures/header-layout.png | Bin 0 -> 15594 bytes .../VectorData/figures/header-layout.pptx | Bin 0 -> 36528 bytes .../figures/vector-polyline-diagram.png | Bin 0 -> 50582 bytes .../figures/vector-polyline-example.pptx | Bin 0 -> 40339 bytes .../figures/vector-polyline-plot.png | Bin 0 -> 9864 bytes 6 files changed, 151 insertions(+), 26 deletions(-) create mode 100644 TileFormats/VectorData/figures/header-layout.png create mode 100644 TileFormats/VectorData/figures/header-layout.pptx create mode 100644 TileFormats/VectorData/figures/vector-polyline-diagram.png create mode 100644 TileFormats/VectorData/figures/vector-polyline-example.pptx create mode 100644 TileFormats/VectorData/figures/vector-polyline-plot.png diff --git a/TileFormats/VectorData/README.md b/TileFormats/VectorData/README.md index 4519a6de9..ba2d97ae7 100644 --- a/TileFormats/VectorData/README.md +++ b/TileFormats/VectorData/README.md @@ -1,26 +1,5 @@ # Vector Data -## Notes - -**Use cases**: Traditional geospatial features: points, polylines, and polygons. Replacing KML. - -**Format** -* Combination of binary (for positions, normals, etc.) and JSON (for labels, other metadata, etc.). -* Concise representations for Cesium's [set of geometries](http://cesiumjs.org/2013/11/04/Geometry-and-Appearances/), including extrusions, and billboards and labels. - * Need to carefully select the representation for the best trade-off between conciseness and runtime processing. For example, polygons will likely be pre-triangulated since it only adds indices to the payload, but will be subdivided at runtime since subdivision is fast and increases the vertex payload significantly. - * RTC positions for high precision-rendering. - * Context-aware compression. - * Bounding volume may need to be adjusted at runtime for terrain clamping. -* Metadata for cracking, morphing, and perhaps label declutter. - -Could also name this a `Geometry` tile. - -**Implementation work-in-progress** -* Polygons: https://github.com/AnalyticalGraphicsInc/cesium/pull/4186 -* Polylines: https://github.com/AnalyticalGraphicsInc/cesium/pull/4208 - -# Vector Data - ## Contributors * Dan Bagnell, [@bagnell](https://github.com/bagnell) @@ -43,7 +22,7 @@ A tile is composed of a header section immediately followed by a body section. ## Header -The -byte header contains the following fields: +The 28-byte header contains the following fields: | Field name | Data type | Description | | --- | --- | --- | @@ -55,6 +34,14 @@ The -byte header contains the following fields: | `batchTableJSONByteLength` | `uint32` | The length of the batch table JSON section in bytes. Zero indicates that there is no batch table. | | `batchTableBinaryByteLength` | `uint32` | The length of the batch table binary section in bytes. If `batchTableJSONByteLength` is zero, this will also be zero. | +If `featureTableJSONByteLength` equals zero, the tile does not need to be rendered. + +The body section immediately follows the header section, and is composed of two fields: `Feature Table` and `Batch Table`. + +Code for reading the header can be found in +[Vector3DModelTileContent](https://github.com/AnalyticalGraphicsInc/cesium/blob/3d-tiles/Source/Scene/Instanced3DModel3DTileContent.js) +in the Cesium implementation of 3D Tiles. + ## Feature Table Contains values for `vctr` semantics used to create vector elements. @@ -62,16 +49,31 @@ More information is available in the [Feature Table specification](../FeatureTab The `vctr` Feature Table JSON schema is defined in [vctr.featureTable.schema.json](../../schema/vctr.featureTable.schema.json). +TODO: Write schema after this gets looked over a bit. + ### Semantics +If a semantic has a dependency on another semantic, that semantic must be defined. +If both `POSITION` and `POSITION_QUANTIZED` are defined, the higher precision `POSITION` will be used. +Per-feature semantics specific to a vector geometry type are prefixed with the name of the geometry type. e.g. `POLYGON` for polygons and `POLYLINE` for polylines. + +At least one global `LENGTH` semantic must be defined. +If `POLYGONS_LENGTH` is not defined, or zero, no polygons will be rendered. +If `POLYLINES_LENGTH` is not defined, or zero, no polylines will be rendered. +Multiple geometry types may be defined in a single Vector tile using multiple `LENGTH` semantics, and in that case, all specified geometry types will be rendered. + #### Vector Semantics | Semantic | Data Type | Description | Required | | --- | --- | --- | --- | -| `POLYGON_INDICES` | `uint32` | An index into the `POLYGON_POSITION` array. | :red_circle: No. | -| `POLYGON_POSITION` | `float32[3]` | A 3-component array of numbers containing `x`, `y`, and `z` Cartesian coordinates for the polygon positions. If `POLYGON_INDICES` is not defined, these values are used to create the polygon in order. | :white_check_mark: Yes, unless `POLYGON_POSITION_QUANTIZED` is defined. | -| `POLYGON_POSITION_QUANTIZED` | `uint16[3]` | A 3-component array of numbers containing `x`, `y`, and `z` in quantized Cartesian coordinates for the polygon positions. If `POLYGON_INDICES` is not defined, these values are used to create the polygon in order. | :white_check_mark: Yes, unless `POLYGON_POSITION` is defined. | - +| `POLYGON_COUNT` | `uint32` | The number of points that belong to each polygon. This refers to `POLYGON_INDICES` if it is defined, otherwise it refers to `POSITION`. | :white_check_mark: Yes, unless `POLYGONS_LENGTH` is not defined. | +| `POLYGON_INDICES` | `uint32` | An index into the `POSITION` or `POSITION_QUANTIZED` array. | :red_circle: No. | +| `POLYGON_BATCH_ID` | `uint16` | The `batchId` of the polygon that can be used to retrieve metadata from the `Batch Table`. | :red_circle: No. | +| `POLYLINE_COUNT` | `uint32` | The number of points that belong to each polyline. This refers to `POLYLINE_INDICES` if it is defined, otherwise it refers to `POLYGON_POSITION`. | :white_check_mark: Yes, unless `POLYLINES_LENGTH` is not defined. | +| `POLYLINE_INDICES` | `uint32` | An index into the `POSITION` or `POSITION_QUANTIZED` array. | :red_circle: No. | +| `POLYLINE_BATCH_ID` | `uint16` | The `batchId` of the polyline that can be used to retrieve metadata from the `Batch Table`. | :red_circle: No. | +| `POSITION` | `float32[3]` | A 3-component array of numbers containing `x`, `y`, and `z` Cartesian coordinates for positions. If an `INDICES` semantic is not defined, these values are used to create the geometry in order. | :white_check_mark: Yes, unles `POSITION_QUANTIZED` is defined. | +| `POSITION_QUANTIZED` | `uint16[3]` | A 3-component array of numbers containing `x`, `y` and `z` in quantized Cartesian coordinates for positions. If an `INDICES` semantic is not defined, these values are used to create the geometry in order. | :white_check_mark: Yes, unless `POSITION` is defined. | #### Global Semantics @@ -81,3 +83,126 @@ The semantics define global properties for all vector elements. | --- | --- | --- | --- | | `POLYGONS_LENGTH` | `uint32` | The number of polygons to generate. The length of each array value for a `POLYGON` semantic should be equal to this. | :white_check_mark: Yes, unless `POLYLINES_LENGTH` is defined. | | `POLYLINES_LENGTH` | `uint32` | The number of polylines to generate. The length of each array value for a `POLYLINE` semantic should be equal to this. | :white_check_mark: Yes, unless `POLYGONS_LENGTH` is defined. | +| `RTC_CENTER` | `float32[3]` | A 3-component array of numbers defining the center position when point positions are defined relative-to-center. | :red_circle: No. | +| `QUANTIZED_VOLUME_OFFSET` | `float32[3]` | A 3-component array of numbers defining the offset for the quantized volume. | :red_circle: No, unless `POSITION_QUANTIZED` is defined. | +| `QUANTIZED_VOLUME_SCALE` | `float32[3]` | A 3-component array of numbers defining the scale for the quantized volume. | :red_circle: No, unless `POSITION_QUANTIZED` is defined. | +| `CLAMP_TO_GROUND` | `bool` | A boolean flag declaring that the vector geometry should be projected onto an application-specific surface. `false` by default. | :red_circle: No. | +| `MINIMUM_HEIGHT` | `float32` | The minimum height to allow when projecting the vector geometry onto a surface. | :red_circle: No. | +| `MAXIMUM_HEIGHT` | `float32` | The maximum height to allow when projecting the vector geometry onto a surface. | :red_circle: No. | + +Examples using these semantics can be found in the [examples section](#examples). + +### Positions + +Vector geometry is generated using the same procedure for both polygons and polylines. + +Vector geometry is generated as features using the data included in the Feature Table. +The `POLYGONS_LENGTH` semantic defines the length of the `POLYGON_COUNT` array. +The `POLYLINES_LENGTH` semantic defines the length of the `POLYLINE_COUNT` array. +`COUNT` defines how many points to sequentially read and add to a geometry before creating a new one. +Points are read using `INDICES` to retrieve positions by index, if it is defined. + +`POSITION` may be defined relative to a center point using the global semantic `RTC_CENTER` for high-precision rendering [4]. + +#### Quantized Positions + +`POSITION_QUANTIZED` may be defined instead of `POSITION` which defines points relative to the quantized volume. +Either `POSITION` or `POSITION_QUANTIZED` must be defined. + +A quantized volume is defined by `offset` and `scale` to map quantized positions into model space. + +![quantized volume](figures/quantized-volume.png) + +`offset` is stored in the global semantic `QUANTIZED_VOLUME_OFFSET`, and `scale` is stored in the global semantic `QUANTIZED_VOLUME_SCALE`. +If those global semantics are not defined, `POSITION_QUANTIZED` cannot be used. + +Quantized positions can be mapped to model space using the formula: + +`POSITION = POSITION_QUANTIZED * QUANTIZED_VOLUME_SCALE / 65535.0 + QUANTIZED_VOLUME_OFFSET` + +### Clamping to Ground + +The `CLAMP_TO_GROUND` semantic is a flag declaring that the geometry in the vector tile should be projected onto a surface. +This is usually the WGS84 ellipsoid, but could also be custom terrain data. +With this flag enabled, the Cartesian x, y, and z coordinates should be mapped to the longitude and latitude of the surface. + +The `MINIMUM_HEIGHT` and `MAXIMUM_HEIGHT` semantics place bounds on the height from the surface for the projection. +For example, `MINIMUM_HEIGHT` could be set to `10.0` to have the rendered vector graphics float uniformly `10.0` units off of a flat surface. + +This behavior is disabled by default, but is useful for rendering things like roads and borders onto a globe. + +### Examples + +This example will define positions for polylines, but the same procedure is applied for polygons as well. +The only difference is that polygons automatically connect the last point to the start point to create a closed shape, whereas with polylines, that relationship needs to be defined explicitly to achieve the same result. + +In this example, four features are defined, a line, two triangles connected to each line endpoint, and a single point on the XY-Plane as shown in Figure 2. + +**Figure 2**: Example polyline plot. + +![vector polyline plot](figure/vector-polyline-plot.png) + +A data layout using indices is shown in Figure 3. This is typically the best approach since duplicate points do not need to have their data repeated. + +**Figure 3**: Example polyline data layout. + +![vector polyline diagram](figure/vector-polyline-diagram.png) + +A feature table can also be easily generated for this example. + +```javascript +var featureTableJSON = { + POLYLINES_LENGTH : 4, + POLYLINE_COUNT : { + byteOffset : 0 + }, + POLYLINE_INDICES : { + byteOffset : 16 + }, + POSITION : { + byteOffset : 60 + } +}; + +var polylineCountBinary = new Buffer(new Uint16Array([2, 4, 1, 4]).buffer); + +var polylineIndicesBinary = new Buffer(new Uint16Array([ + 1, 0, + 1, 2, 3, 1, + 5, + 0, 4, 6, 0 +]).buffer); + +var positionBinary = new Buffer(new Float32Array([ + 4.0, 4.0, 0.0, + 3.0, 2.0, 0.0, + 1.0, 2.0, 0.0, + 2.0, 1.0, 0.0, + 1.0, 4.0, 0.0, + 5.0, 5.0, 0.0, + 3.0, 5.0, 0.0 +]).buffer); + +var featureTableBinary = Buffer.concat([polylineCountBinary, polylineIndicesBinary, positionBinary]); +``` + +## Batch Table + +Contains metadata organized by `batchId` that can be used for declarative styling. + +See the [Batch Table](..//Batched3DModel#batch-table) reference for more information. +[//]: # "TODO: Change this link to the batch table specification URL" + +## File Extension + +`.vctr` + +## MIME Type + +_TODO, [#60](https://github.com/AnalyticalGraphicsInc/3d-tiles/issues/60)_ + +`application/octet-stream` + +## Resources +1. [*Mesh Geometry Compression for Mobile Graphics* by Jongseok Lee et al.](http://cg.postech.ac.kr/research/mesh_comp_mobile/mesh_comp_mobile_conference.pdf) +2. [Precisions, Precisions](http://blogs.agi.com/insight3d/index.php/2008/09/03/precisions-precisions/) diff --git a/TileFormats/VectorData/figures/header-layout.png b/TileFormats/VectorData/figures/header-layout.png new file mode 100644 index 0000000000000000000000000000000000000000..ba7bb2dc050dc89cb7a809c15c522055ee43c5fd GIT binary patch literal 15594 zcmd732UJse`zIdD$g6{*;Qp4JFTz&<_H39@d1H0CI4d^@Xp$s4?h6EHibA^{R$%V9h?LH*b2LJ z?Ggx7k@BO&YvaT1_piE!fIx@hH@-J{yx#i|1Tw=||90s{q$hV0_0$9IslMj_Vt>41 zQlLs_kCwsv3Jq1mG1maN-ov4IyRgBW?efqudlk#ZqrZm#S(yVJcx|R~dh_33`EsPPUpMaIL!|e;#nm;7I=l&L z!OeNnWMl-N63U+9%W_#}4wI}1T*!iXt*HU9+RvRR`nO*|px9$44{rg1zCDgr1c6>^ zY}Nzb!u_KYI3nukzw?7zrVeJyA3u*)c=z5H@n-u6M|^H)VZQwJsDF^&9aR@JsdCL# zdxYTOKd|~WQ75@bi_w*?p}^|PQ%yS5oJ%I~uj8i)W?d3OWyKEP3`Q_cztl;TWE!zx z(4n-XyXV;^{}V}ltEAQDxXH;$->cI#K~GsIl>(^j@m>w)t~&(xdc6x6nZz$ZKJX_g zdUe5Xe#yNl^1*!pd#Hc3f0RyF&NT_UXAoW;td^bvqv8%-tJg_dUq1-*!`J0f6e;(g z@l8u4%=da_J&SJigg+jjo3-}UN?MXw& z5gN_=hJ$9a@|@)vK5bNs0)3;37Z`R&C3Y`A7w8WrvBJm3#~m6tBCcAtaNU?B6c!hf zS7bhoClGq`#Sig;gDgEg?sA8^`o#MO`T9Er7ULcJPM}U3r4P8Q-pMl#@tw%mr;75R zH$}a*?3d9YAyvl1metfRURZ`+bLoiTY59{}+Wh{{uPS~lZ|}o{!BMN(do}FmnG8t0 z*G0o@6MRxql5ca45yEiV)YPk&F`-D_V@Q+U74fhSI{eC z@<>ld=CW#}Jtefv>0Uj{%(4+`WL^T7s}z?oGW&ozg2XRJsq?!@jl2g3o*B;JPR>Ow z)U&R5M_;prL^sa_ir0$r7?x1Cnt5U$W4^dq4o_~7)KW1nvapQBaN{kvU{Rg1H8%)@ zN~(Y6pI$9A@)|vLkik12usb<=%WD!3q7)F38y=-TxvJAAPiUO?B**9#1e&~#cuL=9m0rzFU4GVtI9k!;bE-e zEz|nR({*KqmnMICHgw5GC0n5F0vLVzPMMlboB>g=?lJJf;j%t2dl~7|XpI<=DP685 zS5)-ZOM_z^EJQx(2x!zFBS$F*!RQzRVH9luQj58@%R4$f89Mx67xzbD5dBz?Ah)fNFSY}AP1EGTKNVHDtj_!lHyC!A+8;Q|vcU+i`?w*Q z8aw-6ujn2BM3FTJuMa!}oiqQTP~ixr7O!gZXXWJGF=2Yqirw=V&5oNhw=5)Ilosi} zD)WLhvpFh{wi$;sU;mb$A0gH+O9&WfS~)em>3XKejHFMmL{gM+degO3C`|BrC@mR^ zWe{NeC*d;7Zg;o2tSynJ6y%7XJQ51#hBXTF;FcpY{hk~WyyIq%2|2yT4b3qa>@cL9dCoxc5I7iU({NXXL|Jxu z>*w8ttUIIk^Tymhv=r<=A!>XId#@Ib%4Dp3-npgnQIrg%<`d+)^}=s(JLW!unaj#U zrIkB>(tH+RSc9_SEFpKUD%mUR0s19|4tUUMMlfXsn#1p=-7c5&ma z^esR5h$i$+^ij8o zW799Cro{M^*VLSUA0=R~?OzA3xE{I(ls1*5j+|Vv#X+fxA|;;|C8&U3XflLxvUn?}2Zuf6b8hNTpR5tR|4{GwAh%7Tl1IwRG+^@6n*v)3%G2U6f zDxq{Z*}_HdudN`EnoU^KK<&Hb?g_A>xi*L*hASum2GXk9T;aU4{q90+>A~N`=f_%9 zfQNqlt#>M6wPXTW{Yg6!aGQg;`sj_seZl?ToyCI#BK%fJv@CttHXX8r=La~&=a#Vb zmAMw~c%7BEG)MW_A=B^xUGF^?9J^<}q~S~2M6pBpo_|HT)|hZJE&n%ajsQz{QcS&a z@`avyxk@*j3fCo0Zxw!%Pg6<%i0=_0kM-L<&BE{jVq&8@a)rpW^ zaqenbUE=drB(`idY&Tc$(^OFM^!L;{x#2d3aIH!Sy$WXKy^5vQYl|2bBV6h1Ee@AD z{gM?i$??&;tuxfs#q_B4h+u{t2z%|oUb#0s2c=y$yhQlN@g3k0rk(!tKbuf(FHz@T zaqiioW>>m1G@~IlcWI;NLg}lp((4vB0}&> z!TP<(K9}}HWM4!xI=+%yxlm|}HDRe|%v^7lJMQB&Y0_-6(^H^m_Vv6DK?cEbvHO|C z?PE3H2q7Edj0nPTD;?!WYGJZUs>6VAZ8}9MXyX03DHv*k#yeglRmutLIpIKw91cWy z-^|O(BzcwVP2J2(X;qqT(e;B*IoM)SQG=A{JXg~PUq61HYL3pY80qOIBL~N?Sxk^n zjYxbTtaJHiW9C6O55kmqYL!HA3CxaY=6Lk_=Y@yyYDDarRu>K1yg%1pjKgz^?fOhe zaFJVabBVqEYx`BV;*^i4baVWYEr)Ls?(dWzF-VOh{Cr&Jr;3q&WYNg=7{Z?!$m=Pv z`ha}S6Ka9xC2mPE{bp@HDm*pX7sS;tZpS^JyPhMDzRIyjA37SZsItQzEVr0kp|9lyIpD_EKD*n z4?`nN^qOF}5`TOGlFg}J!E&(%)pg($%RZ}A{}0+uQqgC3>@ zyL*KB-dukYP?bk`ks*5uW2AQnq)Nkw3XwFIYW^`B6}H)*TI0?ZmE^Qc$0>@x*d3+{ z9f!V2DVw_4Z-J-vA%xEAm}IV3NqTCa)~|WFxf>Uuyh~T63OTPdiIwgyuBSNIurW%n z38_<$e#J$`lvbMCih0mm^>9#<-*N~mv_rv>sZZ;~t)swpd5p>rV*E2*$54FW8_@Ou7~oL}Zs@XE_oF;s**4!5SosdQ_1= z3o_u=*ZNuzmR9P-hBZqqdU7<raG{=N#6HGw5T>(;Zfe3ppC7`UbPp zfo&TFpL|@I2R=Hkc~Z(i6rT`{4AFKQlPaY%4|vDmieZjeKy7v z|7uE46AR{OdSnqc)CHfz!=%=Ob3-Q%=Q!=S?c#Oq)dY}STynh%EV60ZkBCyGqHoz2 z4nKIEqgsdq_(}$sd386~xj8_gzFc3Lz)Lydo0p!Km$w`xvbxQvyfwetR69ahE8tZt zb|vtRm{?o<^QS+rcxS6Frrq1TiK-}Q>?b2fBX?R&^x&}QQ z?lZ(ApRQ{fswB@is~n{j>^h;u4t=F)jC6w5Q4?TYIT!A~s)dSj-tW0vn)w~iN|J({1C@xPe9)_qubL7XX(Q0p2{}L7-kmiiuYi@dQrkjbty{|bVtl-pjlhe{bD-^oHj*@<`!#l;? z@GQhQc^z{raO@n`j8g3$>xbo<;Qh03G5FQo8on{yW~?gdn+>L@_e@o4b!e7zQ5vSu z>-oxz+{W6WK%wlclPlAd%s1`mz;Q?R2Uen^mMOo?+@5=gU|n__a4S9{?nG-0b-f5h z!w$){5(yA&M%u86e6VZ8&Xk!3%Mz9kb)D5|TKWrTay@kRlADJw(;S@6tLt2+4_BMG zQkI9m`^~I3SmfdsDmBruxjj;5ul~gAhUw73#L~hETCO)$S8^u+cfMN;ccam8(b?IKWo~=%BOth{>GqJBo5#ehN_oz*k+yrOd=a<1#X+)1PQQoWE6awEF zp91H!m-6#QgiV#whEnM5)9K2NXIC{j)MMh#%EG7EFTNcpW>zLrP_ZBCsXRup>uz0- z9B(ya-N8w6oFVyn$!W4y6R<0Kk4HxiyaqlSJS;DN5!#b#RzeBmX%c5&z=pDJ9Y+b8 zUS!IU-ScRffzaHZ-E;EDr4vVrhF!@0A zw;`KI*DHU8;@1^5ymwG&8g0OG4X2!e3>7 zSg=cYy?O-)i_O5_@a8B~{5$Ny+PGosu=P94GFrX=k>;0h+6*e*>v#G@w)k6qN;3KU z>WBEpS@)7HU%VoveUhD2-B)aCso^H*VEB%O~tjiDiT;uECqC(6KzPWXqG?I(~RC25lf*TK|HV)buyTiPv=I z=VcIb48ow+Omuz)PL9Gco^|S!uvT>&e53?OW=g>7VRB9dLyzu)>=DTaVI*CZaSmI+ zn2>&!hr3Nph?Qx74E_RH50D9UFJY5iJ$h1f++ z#&EHqHDOjtrgSfehK+Wi*AOuw`ku9WppAj`*~@J8mJeLtY6>3_O5(KV&KP zaX2#D+0$vCOy&@fLUp<>94X9Ytmh8dEc!L0dB!ZS1NQ;Ij(IpNCfiyhU6pm4Zez&$ zh-$0|k1HHW5Oy-GYtc0`%p&r>OrdFA0rE{U|Ae52{3L(dQ{*Z1KEw`Sl0`|7;h2SA z@RAt~g~e!wc#y7E=ANf^()XS5zN~LRdED4~Md~+C3Rj|%#$+KwKH>a zl{_7BarEt4_EERAcA)!4n~8}u?A!@%YGB5+b{dO*WniCcF-qX;sN`CNEpZ+n9~ZNa z*k)a&cV-Z!qlm2B8)_U09NTe}axL4Utm&hCjfh6A1XboHuIJi0Vw1)I@G;p840H8G zV>Pi{o_g0}!>-UdeKO2-Sab)2w{9!dGv;7E6qIl+EfOp9T=DxopuGR$sb@y$JmX5d zi7I1hC*x(G&~J#nGJpddb;bpP3NxsE;eJV{`8)!=%xuBOoEC*MAnR0nMGM)F#K}f6 zMkaRHDHF@r59Qa>X1lGTa=M+9=cl7de1}Ckx_TAjBV|m8CO-4XYf95nIaMx3>rTq!x_6|3f<5*<)QU*fC>mLmuug>Yr&t0P|2chKn$*SH0;!`qr&A<8f z@-T6Y$7I`EL!w%zR^q+$>xtHjm*?n|TDGRqxq$o0Q``)G6wqTcyZ_q2G*Ccu>fW9cj z0I+8`8qCW;_)XPOFw4Ina%IH8NnQ@UD5EPbTL8YJCg)&Q@rF+^Q3qU zzk@Oi%e&^ru7a!$_?5be4$>X+k|Id_Jhqm1a}4Dx%gv)D@l3|yRwa+MqLvK2OwgZ8 zAGkp1<$n=nQDxTr>~3*#Iznx+QSGb$)Ovdh7DMN#=4{`r+Kqk8uaVnF zeXqle6>Wd)w9hj+AGy+RW#t{sm3-NsJ>qWu1|N|~b$$uzl{sP@>}+^0rM|MdMt;Kg#cCeZ*o^X8y0(*1_4LjL8{ z8wYytFIA3L9C4hG9Pt-_WqFnxnXz>wOb0%GoyF3k@x&1elVG8gxmwE0O*}h``PiDq z=ox0oV=cRV#5Rq3U9In^CaM-z7i_H73)NCLPs#=o&F*9==uoiterrglP2V_k8>y@R z%d41IR;j;2VphTHg)RF{qp~;(hVlf=ddW1DSEwv+Ga}a@-+)~Vx@CM2EGXfOSYE;i z4_;zOTrdqtMn-(4^v1+Gz7-=I#or4GDJ4hxWD14pR`p>O_KX6_TkK=r=X;q{=j=sM z1w<`|84|7khT}B^hji}|ImT)26$PgVgK4CnkB>Ls|MKf1guN%d+uN8y>!xX-r}g(z zY^8@EoCVDoj=VlgypB(Q-r;DUR@;j~!ri5&bDL zNvq1vUaYQLVmAyiaK>C8eD~aXkV0BE1iH1qWTj?Re+$4^fihdaBVhj> zaQgpq=HH0w|EnL+v!lO0*4WmOe8@kZg4IbWA~6RFZKp-9;hxZDRimJ%MWvbkBZTvF z6wdYc07dnArYk*8AJ+G@=pev=Ih(7em->qm0m@6UFVECSWee!r$-{2m@M@fSba;7V zd(W8Vw*Cq6C0mswsBEJ>?!hwwNGgucqAJ^E1Q&%DCP&~&-t z4YcKr%UK@^uTC!ymjPH8y|T>UjjfW^r1y0P9hwc%IV!bV(ql_?bgfp|zIup1ZvK=j7~i?*I_{wRY>pn(m7^G@!V+w_*(RIowGjX{xP zdDc3!ET^y{S|7tqZH4F3=at1+*khYVsow;8;fGCV2fn^d`U5vtk#qN%*XUujYk3Z} zSV8HK*9ODXNP!IHMu9gsd)=IKQM zVG5Tqmk(pf;bKu^r<%Rs-13 z-#k;)!Bb6mnAqAsPr;a=r^5jY2A!q@JIedbEo!x}YE`atR51$|9dutT-A;JaLp6+Kd4suH&8W3b!_&GMS|}{Jpl+oBdevd{JIJD0 zNt|eJ=zOpVq_lq%J=-?!+$GCD9))|G@NK*e2V%<*jpKmh7-e!^?J{8t8UuoYk`eT7 z|8`a?_oO*ZNPbhW3P5+gV%KqMDxk14)9vA-;$Y+v(h@T(|NyUL+ z_*LqauDYki2?d?!&@1`shlfOZl;whm z(yfP#WrW#r7Gg>-BNW^@tAnI1h@wUsr_KXJ>hs6*s-Ty&@>gvt-FyS%X6`Gg;-~V5 z4KP^&3qE$%vuRWd;z{`=D77oPHWr@c5--$4CKuxvHFj7thEpc>9E6NUnc-llC-8A% zUFxfY{#~u%V^w8lIyb;p27zL36ZMk?nBR?Nhbct?jW5T$Y=l^sV9U;3)GMiga%+`+@)N#m27sDZQ>mGCUP-p) zL)>A!+njaZ?-mr$O9%0ePTn;rQtcS|+Kr%8Udy%*?&sP+nK`BoCtZALb_%a#47wGjs;b(Xg0niS#SH0z9RQ(RPaSRqlBm9! zc)seI?oG6t2H)Ld>z#}maPd!nPBtN{>OZ{rF-i0lTlth~07~v2j4j=IyT0t0%bvZl zv+wQ_&JL^JtgpO9I2(?7kriG|Q`^Rgk$7|%%w2F1y?_-q+m2LL4I`h09!iH>>1*?h zhdj^X{p&xh9Ru@@#VMhe;(9GRCY}&G6l3%C1aA965GayfgY?xl5N93;qrDFM{?P-v zRr_|6>*fmg({@U(8(xoDJQef%rlptnRx@W;*}U8pCCLXR1F|EFqOSs= z=_1$XigT3SD9&EiB0^71|4nmo;&>_|QDzM1?hOBIo%TLKFsNK{Z*(VH=@qZ$L#h(N zY%K<$%zRI|?5>KLivF7zQ~Jw4s+Bh}dMw3EPgc~X*pL1p7Mc}BxjPf5c^QdUDsEyL zwomlE5YO{Zs9R=14j2VZM0!oEoq5VS>Mc^VJ$#e&<_w<_EYJjLId86nhlhu^6E^~M zd|6r9B#11s3o5N7BtDs~qOgExo27YJljk)=%05sP)dzZs zNVjO+dKa_;Cw#97F2wvO*eDC`NB(Om@P9R-&x|g7`i3e7GO(g2S~S~#091;n6+0*e zF-YbrTVnI|^$(kd&yU_|Kl)+w;OPyl284P*Ir{%CXa0xxF!TGCN}vufBF_eMhRgb& z=ZA5}YJBB7q_wYp-JVeNh^|96%a|0U?urHjl$HJkByT3t6bh6ELHhE?8n^=v6tQAW zTA$*EO6D3WFv{8`Z&=IdG$xrH;|u1Zu-=|ORCSN&^*Avz;lt+~&gd%xXqmQSQ5Dy+ zjvSC!fKjf*3rXrilkK1cF0dF)7lPu3K15}l{Nw(!^PJ1_uWgBO02Q0u-eA5#U8P`x zf`WF{*4AdP@{5qTX~yliN;~oxxqGOuA>j>5Q04ASz0d5)VzxF+S^e=;4}4j4n3@nlhe*HR+U-@;&S|6Cs;4yv z{5HfLe)H$KQ^W=Ze@{U;E!OVx=}NAmG45zbu6GGvcasM%K&`9zJIN$A;m*FG{K7tH zl?CQXpwZB%_*}AO^$3wqEI4rq-fV{=Nnh`h%*XeK{d20>aojpa4lt8N;A zI*7aFgU$E`q$UK?r{AzL`l8`9@{nOcctm)3_OjQKE*fx@(MZ*#$q1Q5WKJ23-}%8e z? zb>P`6&xiqwDzctA5o$)X#^mAYSLor&Z10jf=W6OmH6M%WHIb#&o~;_znbQ#?Sk}Wj zqAX}-Kx2%ZEru>D<(rLoTFEDW)fGBw& z&&|E>UWeuhgZVR<%q~Nl20hQrE-^gp-pzGbnL4cxGmsPbv-QXvtr#Fgp<;nv4U$i` zz?sO|l5RcMT9jH*Avu6t@TysggsOr*B^0ha+X;5h8DBU`tpADxFb7{VmwJw77IeKS zc$U8|;N(|a3TdP*U1)ci&Y!{*MR+);5K7+g3lL+=Lt}L=P)vPgj%FuRTpygPIetRB z-o%{44oU`hD{5Jq2Y&IPHP~Ogv-<%`P&eBgpX?BL8i3SfWk6cju~cl$>E}i z7h!tiNl{|Z(%}m$v0CbH3cZGAyEO0tDnA!Kco5bimb2i;2Ty9_=R9_18fewl)oBzV zhJjm6`lGZF*n3mq=AnfrY~rA4TYd1dmExS~u3E5cIVFYJbh2(|M!QX_v~bV!_#OjS z9pvxD$97U!cnk@NA9+eWCd%Y$2TM{{iu>#Ef^;343d|MJ&q}+OnAst{s)BVcPLo-t z9HB(a(hEY$?}fc9vFj*^@pC|^%K;8XGiCoR(*d)$=}uChDDjCYj=I>iq@U!zU4^*-iuJ7nlQ?I@=q>bc=~b6;(Q{ z7NU~iF-NJk?r`CZp+gJFKvR>Fq-FCdf9?m*som2WB6X6z6JRN-+ys;MO@Y}OoJ&&G{vz%$X zksOwhUWyOA_RcBLc*+ELpo}otzmPdfjrR6u@SyUvaM%m))Cz#X@fDe+r;X@M1eim9 zr)pAyoT=_UqNprk)t1)yF`NiG88x02E?pNaM-B{o7AXn<=^z3(t!lVU*rR#5IVF6( zxR=O3K?w!4Q5b+zIbfK1#c9=EN0b^y(epq$>9}dK-k^f+_VZmb-%?$o-|)Q#*7><| zGyIJrXlF$o-UwctUx2}JsmCbPlH97e;kVWuH%k5U*x%WeYvVF>GC5D~F|NbES2#5Y zScaqgmLN#9q+(o)nmx@2JCkCjt1Poi;O_buN(K5F|#$W|Y%<8|J% zhMjl){Y&`aoz9tVCY1d;xfZCXjh2Tgy?(v;&7o@hGPk@Q?Pv9)A%laqp!K7NC zw*V-_rf(ESl28rMqtO3@GQ&2L7}AGeYq7_Y7%Gw(Te6XgsXJKwxH0ZW`4Tq!i&Q@E zV&w$kf2T#rdGU=Ai@UzJR( zU+})2Cw4KyU>x#HH?p(0_vO4TvFB$aIx|nXuys6}F33`c-A~9hMljJ!{}r|mQn~w` z>>$b?5f3RqpjmHHLc3 z%HBr22+(dULgZhi(m@XE2@3sGxDk9$12Ti#IO{ON;6q0iPR373jw3eo4bi+^!xo0X zYkz(GtixwW+I9S8RzLq&E+9(OGL!J=@8@qD3gq+eGJusczrX`dIM{k~u^4{JHaUYR z|H4s$rKkJnvm28f7*X6w#~ z1Cr5IobokPv%5(C*(oKd-7|zY({=LjxP!yTR{OtKyX(Htjb*btb6IHlbg+I=YK!n^ z&m1r8lWJ%%4A%PPLboeU5QJl%xE&#BZ*h@V@JEPBQkZ5Kq29b=+O-BSUfyC%v55l6|LR2{Xg!7_ zd;=B@aENUCMn?!GM1Stwn?i*RhRFrcy@_*HCk%g3dKaE&{3bk4-0Xnyx|b5F9kwvb zkWKfGqSyyPW=>Y||8$)ln<`z`DsHi+n&*@u&PdrKEHBrqZ}NMrJ#GSd&=K#-S_$ zP?h?~68HA)5ai;0Hiw~?y&gqu;@N~eEk9EFqOP$S?C%RqkLr5`5E-6X3<2kI8eMN`wRGbO(;7o`a za#>6C6kjbY=<)|0iC4`^8rQb@K)akKx4DKQrQdiB?i+`{UFet2LKA0{(0`NM?b~^a`j!| z5fKVN;~J-di+sJk=;$IIy*}sb8Lzdv5J7It+D|p(_e4%AZYU}~voJDN4zk!j?;bM{ z=wbSB=HqsaF`{6a=IVg0&iQFTZz+fkut;fGu1G-zP_+}Yu-xaKHKqJOhA?p26PUWVgWg!*hf|kEkJC06Bjet!JTsR| z_`TwZffqV^f$nyn#$h-8x%zio3RZjztpdEg^S2M`k)?L7?KFPImwZ4Hg@bkf6gf0~ zJ*sO1%k|BP>HsbaXtbD@jtu|0nYi`$4dgb8@WgD@Iq0(8{S0CyaduyanZmy9eY`?- z%gyyb9aD(JY$U_;-NB-LS2lcVJ|*@ks;kO-`wE){m@&5PADy?Z1|^h6GuTt-f$N|9 zTTr^@2xw9Nr_&+9r#8_i8zXYQwC#rkcs`7)4`JCm;dcmjfbN)cO%Io-{t1Y251Gl< zrsDv6DSn5YcWAvEENKGp74?I;rV&Aa%V=*Le+@X^cFVa^MB`t9%N$;){FFTX}~ed7iKalBu}mKtoO={EfryeN({LNwahd5ZEL zI5pkmM*P;hfN%7!to+J)ozU-61)Hu_zhx@(bIik_!~ z5!bKSQi@h)UQ2}2io!VB#k-nY$}#$|1wEV(Z-x_d462 zO`K5#eTef1l-4d^_dcK9_wIe<@>d|&<|EaE^8c896Wy}m&5GOG4ULR)qKX$bfz00T zBSFu(%gmZ@1>m4bxxe{uq>HSL;@y*9R&)XoYJYAqbh$W8+JP_Oi;kw) zQH(y!K0*1I?Ys)8qt)hX6qOx_p=Z%EKZgGFbXIf?1R8F|%0GYlCjAZmGig>E0iVJM ztMGwSu(jmHwd9rv)JVj6i0;y5@XF;lgmf4Y7~d%|IQ1jYB{`@QAx z=Y(+rL7=72uHTd^4P?CA?TL2OvK!lb2JUMmeXO(xWYf!C(=~&|D`pXs*|$bwUB4YRksia&DD?yUniYTssEP^_Sm7+X3VWN=USua>YMykB{40+nLxNrT>L z)(^2)j?F_FJ!esXpWf0@SU9pJ(}AcD`VjTgca~`8Vx87z;L@1?gPP|bfA9e$#Ht&? z>+AiE5u~(CZC~wZApZ2H#kBx3a1-q5)=I2LU6aQns1iSSLvC-d9~2w*U_%FuOK|@q z77*g~A1FC_DT}=WRPMRe=P7)NXvk6k-H~dAQohbouvUw)`QgHOdOzSZ!)?Es`w%`6 zjad6ZpyW)1D4u1=%9Gy9Kd03WIv>y`lz#w5Guyv)o z)deLLg_dAa?m3fgK&Ps8oKCw@w4C?{S!ZzSfTsMQ?aoe5K$+jt*JmH%3~mJ!%2pw} z&Vu`ZkPK*K`Z?=gru2IDzHtYjW~o4XnTq_6+EtT#vKx+{3sMkTm0Mc_9t*cFAo zi<@?D1D5h3&Ktgoo@W}d4d}o+KYx6@H~%!}L`O}1J>8&v?}36#B)?DfSEp8#W5Qhp z{HOyg4W@aYvnd$ZBM0{F=p6Wv*8%8;x21q(k+i+nqfP{iT~hCqEmT|xVfOg-p}12? z>o?2wbn4#anIS7fvV`0KYln7@!E?APv5ES7l!I^KgR}-O3+{y{Li9<&l-&+RVNTy! zK8|ts_Lx%Cu6zp}WuWL@ZII9bnRQi9=?A}l{$74=e*Ohu38nZ)n>X;Rr&HIkYL5+` zQ@HNR8w-eE?9DOi;Nwt2I#XD4G--VOW`{wn?S1FkEL?I_mPsIYoX)clmt?@HV0jGf zs?PZ7okCZ5Ps&R8tW|QABzCcS`p~8k)0G`VRQd5+S54AzuJGKB(&YRMJH#X(7>(&0}h`aGTmXZJN{5NuUGaIY*CTzOD5(i|=L^vhsa7V84Q<}IyB2nicyUYkD3@}skgw>|<)oC26Q*mU&L^Y*}~?I*2Us|;?@?k|iXROYi>rixcz zHTMp)WY5hal8e(4F4-vv;Q20GA!ra#L#EHt)B9 z0)FB|t?kQxeVh?$Q&Ui2U{dDj#X>#q^fwz=JRqy>|EY>*Oe{4`K@Ok~u*&C)6$K4pQ!t=`8R?iV zEIl+M`DoUGd=BjQSV4#uCO+w7eSw1a!#3oH3*-`QYW~i+j{sT>;#|Dg{(|2)maD#T z+zg}gA3&9X`qw~K`TNE217wAEb})Jq=(C^pN}*b*5#wv!Sj<}m(1-Os&(0OKkpDiv z3K#;x>Oj<*w^JudK}oIKti%wyk*s=1I(6`Jt7Up z2{IAO06BLcsp8(hYXKW0p8hy!mcbyz><(QFgkb;#-w4CN(9%X2*2AKJ(ZOu!>>{e9 zRtvBx?3IoHs4hP*y@&4k4>ghhYUh9JsO!IJRr}*wc3qW}N^ literal 0 HcmV?d00001 diff --git a/TileFormats/VectorData/figures/header-layout.pptx b/TileFormats/VectorData/figures/header-layout.pptx new file mode 100644 index 0000000000000000000000000000000000000000..90ae1cfa073ee541231e50f23cc509877665cd84 GIT binary patch literal 36528 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 literal 0 HcmV?d00001 diff --git a/TileFormats/VectorData/figures/vector-polyline-diagram.png b/TileFormats/VectorData/figures/vector-polyline-diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..feffa0e1e6590d4551361c305e53e5f490f3b9bb GIT binary patch literal 50582 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 qIoCK7U^@ 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 O`3js|rbqwy_P+q0(APZx literal 0 HcmV?d00001 diff --git a/TileFormats/VectorData/figures/vector-polyline-plot.png b/TileFormats/VectorData/figures/vector-polyline-plot.png new file mode 100644 index 0000000000000000000000000000000000000000..9a8e4e00f37b7f373dcf6c520db05b08e574ae1f GIT binary patch literal 9864 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 literal 0 HcmV?d00001 From 990f9392aacfc5966475146429874b7e72a3f6da Mon Sep 17 00:00:00 2001 From: Robert Taglang Date: Fri, 26 Aug 2016 14:58:17 -0400 Subject: [PATCH 4/9] Edits --- TileFormats/VectorData/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/TileFormats/VectorData/README.md b/TileFormats/VectorData/README.md index ba2d97ae7..d476f1039 100644 --- a/TileFormats/VectorData/README.md +++ b/TileFormats/VectorData/README.md @@ -66,10 +66,10 @@ Multiple geometry types may be defined in a single Vector tile using multiple `L | Semantic | Data Type | Description | Required | | --- | --- | --- | --- | -| `POLYGON_COUNT` | `uint32` | The number of points that belong to each polygon. This refers to `POLYGON_INDICES` if it is defined, otherwise it refers to `POSITION`. | :white_check_mark: Yes, unless `POLYGONS_LENGTH` is not defined. | +| `POLYGON_COUNT` | `uint32` | The number of points that belong to each polygon. This refers to `POLYGON_INDICES` if it is defined, otherwise it refers to `POSITION` or `POSITION_QUANTIZED`. | :white_check_mark: Yes, unless `POLYGONS_LENGTH` is not defined. | | `POLYGON_INDICES` | `uint32` | An index into the `POSITION` or `POSITION_QUANTIZED` array. | :red_circle: No. | | `POLYGON_BATCH_ID` | `uint16` | The `batchId` of the polygon that can be used to retrieve metadata from the `Batch Table`. | :red_circle: No. | -| `POLYLINE_COUNT` | `uint32` | The number of points that belong to each polyline. This refers to `POLYLINE_INDICES` if it is defined, otherwise it refers to `POLYGON_POSITION`. | :white_check_mark: Yes, unless `POLYLINES_LENGTH` is not defined. | +| `POLYLINE_COUNT` | `uint32` | The number of points that belong to each polyline. This refers to `POLYLINE_INDICES` if it is defined, otherwise it refers to `POSITION` or `POSITION_QUANTIZED`. | :white_check_mark: Yes, unless `POLYLINES_LENGTH` is not defined. | | `POLYLINE_INDICES` | `uint32` | An index into the `POSITION` or `POSITION_QUANTIZED` array. | :red_circle: No. | | `POLYLINE_BATCH_ID` | `uint16` | The `batchId` of the polyline that can be used to retrieve metadata from the `Batch Table`. | :red_circle: No. | | `POSITION` | `float32[3]` | A 3-component array of numbers containing `x`, `y`, and `z` Cartesian coordinates for positions. If an `INDICES` semantic is not defined, these values are used to create the geometry in order. | :white_check_mark: Yes, unles `POSITION_QUANTIZED` is defined. | From 303affa1e1d12641c8090337f2a9fdbb07be870f Mon Sep 17 00:00:00 2001 From: Robert Taglang Date: Fri, 26 Aug 2016 15:00:41 -0400 Subject: [PATCH 5/9] More edits; added quantized-volume figure --- TileFormats/VectorData/README.md | 4 +- .../VectorData/figures/quantized-volume.png | Bin 0 -> 47712 bytes .../VectorData/figures/quantized-volume.svg | 226 ++++++++++++++++++ 3 files changed, 228 insertions(+), 2 deletions(-) create mode 100644 TileFormats/VectorData/figures/quantized-volume.png create mode 100644 TileFormats/VectorData/figures/quantized-volume.svg diff --git a/TileFormats/VectorData/README.md b/TileFormats/VectorData/README.md index d476f1039..7b5ed6e4f 100644 --- a/TileFormats/VectorData/README.md +++ b/TileFormats/VectorData/README.md @@ -81,8 +81,8 @@ The semantics define global properties for all vector elements. | Semantic | Data Type | Description | Required | | --- | --- | --- | --- | -| `POLYGONS_LENGTH` | `uint32` | The number of polygons to generate. The length of each array value for a `POLYGON` semantic should be equal to this. | :white_check_mark: Yes, unless `POLYLINES_LENGTH` is defined. | -| `POLYLINES_LENGTH` | `uint32` | The number of polylines to generate. The length of each array value for a `POLYLINE` semantic should be equal to this. | :white_check_mark: Yes, unless `POLYGONS_LENGTH` is defined. | +| `POLYGONS_LENGTH` | `uint32` | The number of polygons to generate. | :white_check_mark: Yes, unless `POLYLINES_LENGTH` is defined. | +| `POLYLINES_LENGTH` | `uint32` | The number of polylines to generate. | :white_check_mark: Yes, unless `POLYGONS_LENGTH` is defined. | | `RTC_CENTER` | `float32[3]` | A 3-component array of numbers defining the center position when point positions are defined relative-to-center. | :red_circle: No. | | `QUANTIZED_VOLUME_OFFSET` | `float32[3]` | A 3-component array of numbers defining the offset for the quantized volume. | :red_circle: No, unless `POSITION_QUANTIZED` is defined. | | `QUANTIZED_VOLUME_SCALE` | `float32[3]` | A 3-component array of numbers defining the scale for the quantized volume. | :red_circle: No, unless `POSITION_QUANTIZED` is defined. | diff --git a/TileFormats/VectorData/figures/quantized-volume.png b/TileFormats/VectorData/figures/quantized-volume.png new file mode 100644 index 0000000000000000000000000000000000000000..a3989c3c0cb397ed5d57a0ef5e2766197fbda802 GIT binary patch literal 47712 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¨N}E5szN#A9TQQq=fKXwiK;bwlUW$ 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 a@`zlct<34a9tuGMe&nT9pp}v)pZ*86gMoAa literal 0 HcmV?d00001 diff --git a/TileFormats/VectorData/figures/quantized-volume.svg b/TileFormats/VectorData/figures/quantized-volume.svg new file mode 100644 index 000000000..b1eebb35a --- /dev/null +++ b/TileFormats/VectorData/figures/quantized-volume.svg @@ -0,0 +1,226 @@ + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 216-1 + 216-2 + 1 + 216-2 + 216-1 + 216-2 + + + + + + offset(x,y,z) + s + scale.y + scale.x + scale.z + + + + + 1 + 2 + 3 + 0 + 4 + 0 + 2 + 3 + 4 + 0 + 1 + 2 + 3 + 4 + + + From 43b98786d95882d4cf9345116495c55af53a622e Mon Sep 17 00:00:00 2001 From: Robert Taglang Date: Fri, 26 Aug 2016 15:02:06 -0400 Subject: [PATCH 6/9] Fixed a few paths --- TileFormats/VectorData/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/TileFormats/VectorData/README.md b/TileFormats/VectorData/README.md index 7b5ed6e4f..f8acea715 100644 --- a/TileFormats/VectorData/README.md +++ b/TileFormats/VectorData/README.md @@ -124,7 +124,7 @@ Quantized positions can be mapped to model space using the formula: The `CLAMP_TO_GROUND` semantic is a flag declaring that the geometry in the vector tile should be projected onto a surface. This is usually the WGS84 ellipsoid, but could also be custom terrain data. -With this flag enabled, the Cartesian x, y, and z coordinates should be mapped to the longitude and latitude of the surface. +With this flag enabled, the Cartesian `x`, `y`, and `z` coordinates should be mapped to the longitude and latitude of the surface. The `MINIMUM_HEIGHT` and `MAXIMUM_HEIGHT` semantics place bounds on the height from the surface for the projection. For example, `MINIMUM_HEIGHT` could be set to `10.0` to have the rendered vector graphics float uniformly `10.0` units off of a flat surface. @@ -140,13 +140,13 @@ In this example, four features are defined, a line, two triangles connected to e **Figure 2**: Example polyline plot. -![vector polyline plot](figure/vector-polyline-plot.png) +![vector polyline plot](figures/vector-polyline-plot.png) A data layout using indices is shown in Figure 3. This is typically the best approach since duplicate points do not need to have their data repeated. **Figure 3**: Example polyline data layout. -![vector polyline diagram](figure/vector-polyline-diagram.png) +![vector polyline diagram](figures/vector-polyline-diagram.png) A feature table can also be easily generated for this example. From 47d6089d2a9998318f22c07aba9f61cbd8b0f7af Mon Sep 17 00:00:00 2001 From: Patrick Cozzi Date: Fri, 26 Aug 2016 16:26:29 -0400 Subject: [PATCH 7/9] Tweaks --- TileFormats/VectorData/README.md | 41 ++++++++++++++++---------------- 1 file changed, 20 insertions(+), 21 deletions(-) diff --git a/TileFormats/VectorData/README.md b/TileFormats/VectorData/README.md index f8acea715..44119a571 100644 --- a/TileFormats/VectorData/README.md +++ b/TileFormats/VectorData/README.md @@ -8,9 +8,9 @@ ## Overview -The _Vector_ tile format allows streaming of vector graphics data like polygons and polylines. +The _Vector_ tile format allows streaming of vector datasets including points, polylines, and polygons. Points can be represented with a combination of billboard, label, and point graphics primitives. -Each vector graphics element is a _feature_ in the core 3D Tiles spec language. +Each point, poyline, and polygon is a _feature_ in the 3D Tiles specification language. ## Layout @@ -27,7 +27,7 @@ The 28-byte header contains the following fields: | Field name | Data type | Description | | --- | --- | --- | | `magic` | 4-byte ANSI string | `"vctr"`. This can be used to identify the arraybuffer as a Vector tile. | -| `version` | `uint32` | The version of the Instanced 3D Model format. It is currently `1`. | +| `version` | `uint32` | The version of the Vector Data format. It is currently `1`. | | `byteLength` | `uint32` | The length of the entire tile, including the header, in bytes. | | `featureTableJSONByteLength` | `uint32` | The length of the feature table JSON section in bytes. | | `featureTableBinaryByteLength` | `uint32` | The length of the feature table binary section in bytes. If `featureTableJSONByteLength` is zero, this will also be zero. | @@ -39,13 +39,12 @@ If `featureTableJSONByteLength` equals zero, the tile does not need to be render The body section immediately follows the header section, and is composed of two fields: `Feature Table` and `Batch Table`. Code for reading the header can be found in -[Vector3DModelTileContent](https://github.com/AnalyticalGraphicsInc/cesium/blob/3d-tiles/Source/Scene/Instanced3DModel3DTileContent.js) +[Vector3DModelTileContent.js](https://github.com/AnalyticalGraphicsInc/cesium/blob/3d-tiles/Source/Scene/Vector3DModelTileContent.js) in the Cesium implementation of 3D Tiles. ## Feature Table -Contains values for `vctr` semantics used to create vector elements. -More information is available in the [Feature Table specification](../FeatureTable). +Contains values for `vctr` semantics used to render features. The general layout of a Feature Table is described in the [Feature Table specification](../FeatureTable). The `vctr` Feature Table JSON schema is defined in [vctr.featureTable.schema.json](../../schema/vctr.featureTable.schema.json). @@ -53,14 +52,14 @@ TODO: Write schema after this gets looked over a bit. ### Semantics -If a semantic has a dependency on another semantic, that semantic must be defined. +If a semantic has a dependency on another semantic, that semantic must be defined as well. If both `POSITION` and `POSITION_QUANTIZED` are defined, the higher precision `POSITION` will be used. -Per-feature semantics specific to a vector geometry type are prefixed with the name of the geometry type. e.g. `POLYGON` for polygons and `POLYLINE` for polylines. +Per-feature semantics specific to a feature type are prefixed with the name of the feature type. e.g. `POLYGON` for polygons and `POLYLINE` for polylines. At least one global `LENGTH` semantic must be defined. If `POLYGONS_LENGTH` is not defined, or zero, no polygons will be rendered. -If `POLYLINES_LENGTH` is not defined, or zero, no polylines will be rendered. -Multiple geometry types may be defined in a single Vector tile using multiple `LENGTH` semantics, and in that case, all specified geometry types will be rendered. +Likewise, if `POLYLINES_LENGTH` is not defined, or zero, no polylines will be rendered. +Multiple feature types may be defined in a single Vector tile using multiple `LENGTH` semantics, and in that case, all specified feature types will be rendered. #### Vector Semantics @@ -72,8 +71,8 @@ Multiple geometry types may be defined in a single Vector tile using multiple `L | `POLYLINE_COUNT` | `uint32` | The number of points that belong to each polyline. This refers to `POLYLINE_INDICES` if it is defined, otherwise it refers to `POSITION` or `POSITION_QUANTIZED`. | :white_check_mark: Yes, unless `POLYLINES_LENGTH` is not defined. | | `POLYLINE_INDICES` | `uint32` | An index into the `POSITION` or `POSITION_QUANTIZED` array. | :red_circle: No. | | `POLYLINE_BATCH_ID` | `uint16` | The `batchId` of the polyline that can be used to retrieve metadata from the `Batch Table`. | :red_circle: No. | -| `POSITION` | `float32[3]` | A 3-component array of numbers containing `x`, `y`, and `z` Cartesian coordinates for positions. If an `INDICES` semantic is not defined, these values are used to create the geometry in order. | :white_check_mark: Yes, unles `POSITION_QUANTIZED` is defined. | -| `POSITION_QUANTIZED` | `uint16[3]` | A 3-component array of numbers containing `x`, `y` and `z` in quantized Cartesian coordinates for positions. If an `INDICES` semantic is not defined, these values are used to create the geometry in order. | :white_check_mark: Yes, unless `POSITION` is defined. | +| `POSITION` | `float32[3]` | A 3-component array of numbers containing `x`, `y`, and `z` Cartesian coordinates for positions. If an `INDICES` semantic is not defined, these values are used to create the feature in order. | :white_check_mark: Yes, unles `POSITION_QUANTIZED` is defined. | +| `POSITION_QUANTIZED` | `uint16[3]` | A 3-component array of numbers containing `x`, `y` and `z` in quantized Cartesian coordinates for positions. If an `INDICES` semantic is not defined, these values are used to create the feature in order. | :white_check_mark: Yes, unless `POSITION` is defined. | #### Global Semantics @@ -81,25 +80,25 @@ The semantics define global properties for all vector elements. | Semantic | Data Type | Description | Required | | --- | --- | --- | --- | -| `POLYGONS_LENGTH` | `uint32` | The number of polygons to generate. | :white_check_mark: Yes, unless `POLYLINES_LENGTH` is defined. | -| `POLYLINES_LENGTH` | `uint32` | The number of polylines to generate. | :white_check_mark: Yes, unless `POLYGONS_LENGTH` is defined. | +| `POLYGONS_LENGTH` | `uint32` | The number of polygons in the tile. | :white_check_mark: Yes, unless `POLYLINES_LENGTH` is defined. | +| `POLYLINES_LENGTH` | `uint32` | The number of polylines in the tile. | :white_check_mark: Yes, unless `POLYGONS_LENGTH` is defined. | | `RTC_CENTER` | `float32[3]` | A 3-component array of numbers defining the center position when point positions are defined relative-to-center. | :red_circle: No. | | `QUANTIZED_VOLUME_OFFSET` | `float32[3]` | A 3-component array of numbers defining the offset for the quantized volume. | :red_circle: No, unless `POSITION_QUANTIZED` is defined. | | `QUANTIZED_VOLUME_SCALE` | `float32[3]` | A 3-component array of numbers defining the scale for the quantized volume. | :red_circle: No, unless `POSITION_QUANTIZED` is defined. | -| `CLAMP_TO_GROUND` | `bool` | A boolean flag declaring that the vector geometry should be projected onto an application-specific surface. `false` by default. | :red_circle: No. | -| `MINIMUM_HEIGHT` | `float32` | The minimum height to allow when projecting the vector geometry onto a surface. | :red_circle: No. | -| `MAXIMUM_HEIGHT` | `float32` | The maximum height to allow when projecting the vector geometry onto a surface. | :red_circle: No. | +| `CLAMP_TO_GROUND` | `bool` | A boolean flag declaring that the feature should be projected onto an application-specific surface. `false` by default. | :red_circle: No. | +| `MINIMUM_HEIGHT` | `float32` | The minimum terrain height for this tiles' region in meters above the WGS84 ellipsoid. | :red_circle: No. | +| `MAXIMUM_HEIGHT` | `float32` | The maximum terrain height for this tiles' region in meters above the WGS84 ellipsoid. | :red_circle: No. | Examples using these semantics can be found in the [examples section](#examples). ### Positions -Vector geometry is generated using the same procedure for both polygons and polylines. +Features are generated using the same procedure for both polygons and polylines. -Vector geometry is generated as features using the data included in the Feature Table. +Features are generated using the data included in the Feature Table. The `POLYGONS_LENGTH` semantic defines the length of the `POLYGON_COUNT` array. The `POLYLINES_LENGTH` semantic defines the length of the `POLYLINE_COUNT` array. -`COUNT` defines how many points to sequentially read and add to a geometry before creating a new one. +`COUNT` defines how many points to sequentially read and add to a feature before creating a new one. Points are read using `INDICES` to retrieve positions by index, if it is defined. `POSITION` may be defined relative to a center point using the global semantic `RTC_CENTER` for high-precision rendering [4]. @@ -122,7 +121,7 @@ Quantized positions can be mapped to model space using the formula: ### Clamping to Ground -The `CLAMP_TO_GROUND` semantic is a flag declaring that the geometry in the vector tile should be projected onto a surface. +The `CLAMP_TO_GROUND` semantic is a flag declaring that the feature in the vector tile should be projected onto a surface. This is usually the WGS84 ellipsoid, but could also be custom terrain data. With this flag enabled, the Cartesian `x`, `y`, and `z` coordinates should be mapped to the longitude and latitude of the surface. From 09f1222b174038cf2c640c0e33b9e160e9b7bd64 Mon Sep 17 00:00:00 2001 From: Patrick Cozzi Date: Mon, 29 Aug 2016 08:14:52 -0400 Subject: [PATCH 8/9] Tweaks --- TileFormats/VectorData/README.md | 20 +++----------------- 1 file changed, 3 insertions(+), 17 deletions(-) diff --git a/TileFormats/VectorData/README.md b/TileFormats/VectorData/README.md index 44119a571..2a1c5dcd9 100644 --- a/TileFormats/VectorData/README.md +++ b/TileFormats/VectorData/README.md @@ -85,7 +85,6 @@ The semantics define global properties for all vector elements. | `RTC_CENTER` | `float32[3]` | A 3-component array of numbers defining the center position when point positions are defined relative-to-center. | :red_circle: No. | | `QUANTIZED_VOLUME_OFFSET` | `float32[3]` | A 3-component array of numbers defining the offset for the quantized volume. | :red_circle: No, unless `POSITION_QUANTIZED` is defined. | | `QUANTIZED_VOLUME_SCALE` | `float32[3]` | A 3-component array of numbers defining the scale for the quantized volume. | :red_circle: No, unless `POSITION_QUANTIZED` is defined. | -| `CLAMP_TO_GROUND` | `bool` | A boolean flag declaring that the feature should be projected onto an application-specific surface. `false` by default. | :red_circle: No. | | `MINIMUM_HEIGHT` | `float32` | The minimum terrain height for this tiles' region in meters above the WGS84 ellipsoid. | :red_circle: No. | | `MAXIMUM_HEIGHT` | `float32` | The maximum terrain height for this tiles' region in meters above the WGS84 ellipsoid. | :red_circle: No. | @@ -93,15 +92,13 @@ Examples using these semantics can be found in the [examples section](#examples) ### Positions -Features are generated using the same procedure for both polygons and polylines. - -Features are generated using the data included in the Feature Table. +Features are defined in the Feature Table. The `POLYGONS_LENGTH` semantic defines the length of the `POLYGON_COUNT` array. -The `POLYLINES_LENGTH` semantic defines the length of the `POLYLINE_COUNT` array. +Likewise, the `POLYLINES_LENGTH` semantic defines the length of the `POLYLINE_COUNT` array. `COUNT` defines how many points to sequentially read and add to a feature before creating a new one. Points are read using `INDICES` to retrieve positions by index, if it is defined. -`POSITION` may be defined relative to a center point using the global semantic `RTC_CENTER` for high-precision rendering [4]. +`POSITION` may be defined relative to a center point using the global semantic `RTC_CENTER` for high-precision rendering [2]. #### Quantized Positions @@ -119,17 +116,6 @@ Quantized positions can be mapped to model space using the formula: `POSITION = POSITION_QUANTIZED * QUANTIZED_VOLUME_SCALE / 65535.0 + QUANTIZED_VOLUME_OFFSET` -### Clamping to Ground - -The `CLAMP_TO_GROUND` semantic is a flag declaring that the feature in the vector tile should be projected onto a surface. -This is usually the WGS84 ellipsoid, but could also be custom terrain data. -With this flag enabled, the Cartesian `x`, `y`, and `z` coordinates should be mapped to the longitude and latitude of the surface. - -The `MINIMUM_HEIGHT` and `MAXIMUM_HEIGHT` semantics place bounds on the height from the surface for the projection. -For example, `MINIMUM_HEIGHT` could be set to `10.0` to have the rendered vector graphics float uniformly `10.0` units off of a flat surface. - -This behavior is disabled by default, but is useful for rendering things like roads and borders onto a globe. - ### Examples This example will define positions for polylines, but the same procedure is applied for polygons as well. From 79b6e8af7c0cb7ed8c935165e10b0c25cbf38ee1 Mon Sep 17 00:00:00 2001 From: Sean Lilley Date: Thu, 27 Apr 2017 10:47:16 -0400 Subject: [PATCH 9/9] File extension notes --- TileFormats/VectorData/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/TileFormats/VectorData/README.md b/TileFormats/VectorData/README.md index 2a1c5dcd9..d18ba3f22 100644 --- a/TileFormats/VectorData/README.md +++ b/TileFormats/VectorData/README.md @@ -182,6 +182,8 @@ See the [Batch Table](..//Batched3DModel#batch-table) reference for more informa `.vctr` +The file extension is optional. Valid implementations ignore it and identify a content's format by the `magic` field in its header. + ## MIME Type _TODO, [#60](https://github.com/AnalyticalGraphicsInc/3d-tiles/issues/60)_