-
Notifications
You must be signed in to change notification settings - Fork 473
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Vector Tiles #228
Vector Tiles #228
Changes from 24 commits
2983510
1886325
b8f9334
990f939
303affa
43b9878
47d6089
09f1222
79b6e8a
6b052b7
842de53
a976569
e88f1aa
e2939ce
75bb1e2
3acd529
1b45038
13e14ca
bd9f198
a002761
2ac37bb
1c30cc1
226d01f
94b737d
0faaf50
ac6c656
2207d1a
84f3968
ae5a7c1
107423d
596d30e
c57399f
e11fa25
55a582d
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -25,6 +25,7 @@ Example: Creating a color ramp based on building height. | |
* Tom Fili, [@CesiumFili](https://twitter.com/CesiumFili) | ||
* Sean Lilley, [@lilleyse](https://github.com/lilleyse) | ||
* Patrick Cozzi, [@pjcozzi](https://twitter.com/pjcozzi) | ||
* Dan Bagnell, [@bagnell](https://github.com/bagnell) | ||
|
||
Contents: | ||
|
||
|
@@ -51,6 +52,7 @@ Contents: | |
* [Notes](#notes) | ||
* [Batch Table Hierarchy](#batch-table-hierarchy) | ||
* [Point Cloud](#point-cloud) | ||
* [Vector Data](#vector-data) | ||
* [File Extension](#file-extension) | ||
* [MIME Type](#mime-type) | ||
* [Acknowledgments](#acknowledgments) | ||
|
@@ -254,7 +256,7 @@ The following types are supported: | |
* `vec4` | ||
* `RegExp` | ||
|
||
All of the types except `vec2`, `vec3`, `vec4`, and `RegExp` have the same syntax and runtime behavior as JavaScript. `vec2`, `vec3`, and `vec4` are derived from GLSL vectors and behave similarly to JavaScript `Object` (see the [Vector section](#vector)). Colors derive from [CSS3 Colors](https://www.w3.org/TR/css3-color/) and are implemented as `vec4`. `RegExp` is derived from JavaScript and described in the [RegExp section](#regexp). | ||
All of the types except `vec2`, `vec3`, `vec4`, and `RegExp` have the same syntax and runtime behavior as JavaScript. `vec2`, `vec3`, and `vec4` are derived from GLSL vectors and behave similarly to JavaScript `Object` (see the [Vector section](#vector)). Colors derive from [CSS3 Colors](https://www.w3.org/TR/css3-color/) and are implemented as `vec4`. Fonts derive from [CSS3 Fonts](https://www.w3.org/TR/css-fonts-3/) and are implemented as `String`. RegExp` is derived from JavaScript and described in the [RegExp section](#regexp). | ||
|
||
Example expressions for different types include the following: | ||
* `true`, `false` | ||
|
@@ -268,6 +270,7 @@ Example expressions for different types include the following: | |
* `vec4(1.0, 2.0, 3.0, 4.0)` | ||
* `color('#00FFFF')` | ||
* `regExp('^Chest'))` | ||
* `"30px sans-serif"` | ||
|
||
#### Number | ||
|
||
|
@@ -1344,6 +1347,65 @@ For example: | |
|
||
**TODO : add note about GLSL implementations requires strict type comparisons among other things: https://github.com/AnalyticalGraphicsInc/3d-tiles/issues/140** | ||
|
||
## Vector Data | ||
|
||
A [Vector Tile](../TileFormats/VectorData/README.md) is a collection of vector features such as points, polygons, and polylines. Vector features can be styled similar to other features with `color` and `show`. Points have several other styling options: | ||
|
||
**TODO : generate these tables from the JSON schema** | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Perhaps remove this TODO and add a note to #37? |
||
|
||
The following style properties apply to geometry features in vector tiles: | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Probably clearer to say |
||
|
||
| Style | Type | Description | Default | | ||
| --- | --- | --- | --- | | ||
| `show` | `Boolean` | Whether or not to show the feature. | `true` | | ||
| `color` | `vec4` | The color of the feature. | `color('#FFFFFF')` | | ||
|
||
The following style properties apply to point features in vector tiles: | ||
|
||
| Style | Type | Description | Default | | ||
| --- | --- | --- | --- | | ||
| `show` | `Boolean` | Whether or not to show the feature. | `true` | | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Is There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Related to @pjcozzi's comment: https://github.com/AnalyticalGraphicsInc/3d-tiles/pull/228/files#r124689387 There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can point's just use There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I added There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Maybe I am confused; what does There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. OK, so question still is can't There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Updated. |
||
| `pointSize` | `Number` | The size of the point in pixels. `pointSize` is ignored when `image` is defined. | `8.0` | | ||
| `pointColor` | `vec4` | The color of the point. `pointColor` is ignored when `image` is defined. | `color('#FFFFFF')` | | ||
| `pointOutlineColor` | `vec4` | The color of the point outline. `pointOutlineColor` is ignored when `image` is defined. | `color('#000000')` | | ||
| `pointOutlineWidth` | `Number` | The width, in pixels, of the point outline. `pointOutlineWidth` is ignored when `image` is defined. | `0.0` | | ||
| `labelText` | `String` | The text to display for the point. | `undefined` | | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Are |
||
| `labelColor` | `vec4` | The color of the label. This is ignored when `labelText` is undefined. | `color('#FFFFFF')` | | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It might be clearer if the description says it's for the label's text. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Here and throughout below probably remove:
It is obvious and keeping the text makes the table more verbose. |
||
| `labelStyle` | `Number` | The label style: **fill** (`0`), **outline** (`1`), or **both** (`2`). This is ignored when `labelText` is undefined. | `0` | | ||
| `labelOutlineColor` | `vec` | The color of the text outline. This is ignored when `labelText` is undefined. | `color('#FFFFFF')` | | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Should this be |
||
| `labelOutlineWidth` | `Number` | The width of the text outline. This is ignored when `labelText` is undefined. | `1.0` | | ||
| `font` | `String` | The font of the displayed text. This is ignored when `labelText` is undefined. | `"30px sans-serif"` | | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I thought I mentioned this before but the format of the font string needs to be referenced, e.g., like this spec does for CSS colors. |
||
| `backgroundColor` | `vec4` | The label background color. This is ignored when `labelText` is undefined. | `rgba(42, 42, 42, 0.8)` | | ||
| `backgroundPadding` | `vec2` | The background padding, in pixels, of this label. The `x` value controls horizontal padding, and the `y` value controls vertical padding. This is ignored when `labelText` is undefined. | `vec2(7, 5)` | | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can this add a tad more detail: is this the number of pixels on each size? Or is that |
||
| `backgroundEnabled` | `Boolean` | Whether or not to display the label background. This is ignored when `labelText` is undefined. | `false` | | ||
| `scaleByDistance` | `vec4` | Sets near and far scaling properties of a feature based on the features's distance from the camera. A feature's scale will interpolate between the `y` and `w` values while the camera distance falls within the upper and lower bounds of the specified `x` and `z` value. Outside of these ranges, the features's scale remains clamped to the nearest bound. If undefined, `scaleByDistance` will be disabled. | `undefined` | | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Just to be sure, is There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Here or below - the spec should specify how the interpolation occurs or if it is up to the implementation, e.g., some implementations may just do linear while others may ease in / ease out, overshot, etc. If you want to leave it up to the implementation, I think it is fine as long as the start and end points are clamped to the start and end scales, respectively. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Also, do you see this as a long-term feature in 3D Tiles? Given the use cases we have had so far, this is truly required, right? It is not just a workaround for more careful tiling. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @oterral added I can imagine having a root tile over a country with labels for the major cities. You could have some priority in the style where some of the cities are always visible and some fade in as the camera gets closer to reduce cluttering. You could get that effect with better tiling but the labels would pop in as opposed to fading in. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Sounds good, but please still document interpolation. #228 (comment) |
||
| `translucencyByDistance` | `vec4` | Sets near and far translucency properties of a feature based on the feature's distance from the camera. A feature's translucency will interpolate between the `y` and `w` while the camera distance falls within the upper and lower bounds of the specified `x` and `z`. Outside of these ranges the feature's translucency remains clamped to the nearest bound. If undefined, `translucencyByDistance` will be disabled. | `undefined` | | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Same comment. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'm OK with either translucency or alpha. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. OK, then up to @lilleyse I suppose. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Alpha is fine with me. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. OK, captain obvious, but please make it 0 - transparent, 1 - opaque, and then map it to Cesium's translucency. |
||
| `distanceDisplayCondition` | `vec2` | Sets the condition specifying at what distance from the camera that this feature will be displayed. The `x` value is the smallest distance in the interval where the feature is visible. The `y` value is the largest distance in the interval where the object is visible. If undefined, `distanceDisplayCondition` will be disabled. | `undefined` | | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Same question - is this a long-term feature? |
||
| `heightOffset` | `Number` | The distance, in meters, to offset the height. This is ignored if the valuse is less than or equal to zero. | `0.0` | | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Height probably needs to be defined more concretely. Is it the distance from the ellipsoid or from the terrain? Is it implementation specific? |
||
| `anchorLineEnabled` | `Boolean` | Whether or not to display a line from the feature to the point on terrain. This is ignored unless `heightOffset` is greater than zero. | `false` | | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This shouldn't state "point on terrain" - it is just the original position - it could be on terrain, on a BIM model, etc. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. |
||
| `anchorLineColor` | `vec4` | The color of the line from the feature to terrain. This is ignored unless `heightOffset` is greater than 0.0. | `color('#FFFFFF')` | | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Same comment. |
||
| `image` | `String` | A URL to an image or a data URI to be displayed instead of a point. | `undefined` | | ||
| `disableDepthTestDistance` | `Number` | The distance where depth testing for a point will be disabled. | `undefined` | | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It might be helpful for the description to reference the positive infinity number. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Is the description in Cesium suitable here?
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Is There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Agreed - this should be more explicit so it is clear if [0, disableDepthTestDistance] or [disableDepthTestDistance, infinity] is when the depth test is disabled. |
||
| `origin` | `Number` | The horizontal origin of the point: **center** (`0`), **left** (`1`), or **right** (`-1`). | `0` | | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Should there also be a vertical origin? |
||
| `labelOrigin` | The horizontal origin of the label: **center** (`0`), **left** (`1`), or **right** (`-1`). This is ignored when `labelText` is undefined. | `0` | | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. How is this different than There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This row is missing a column for the type. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. And - like https://github.com/AnalyticalGraphicsInc/3d-tiles/pull/228/files#r145808305 - should there be a vertical origin? |
||
|
||
For example: | ||
|
||
```json | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I thought I mentioned this before, but please add more examples showing more of the vector tile-specific properties. |
||
{ | ||
"labelText" : "${DISPLAY_TEXT}", | ||
"labelColor" : "color('#FFFF00')", | ||
"labelStyle" : "2", | ||
"image" : "'http://example.com/url/to/image.jpg'", | ||
"origin" : "1", | ||
"labelOrigin" : "-1" | ||
} | ||
``` | ||
|
||
| Fill | Outline | Fill and Outline | | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This table doesn't have context. Perhaps given it a table number and captain and then reference it from the properties in the table above. |
||
| --- | --- | --- | | ||
| ![](figures/label_fill.jpg) | ![](figures/label_outline.jpg) | ![](figures/label_fill_outline.jpg) | | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The quality of these images seems low. Was FXAA on? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. FXAA was disabled. I'll see what they look like when drawing the text to a canvas. |
||
|
||
## File Extension | ||
|
||
TBA | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
{ | ||
"$schema" : "http://json-schema.org/draft-04/schema", | ||
"id" : "style.vec2Expression.schema.json", | ||
"title" : "vec2 expression", | ||
"type" : "string", | ||
"description" : "3D Tiles style expression that evaluates to a vec2." | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
{ | ||
"$schema" : "http://json-schema.org/draft-04/schema", | ||
"id" : "style.vec4Expression.schema.json", | ||
"title" : "vec4 expression", | ||
"type" : "string", | ||
"description" : "3D Tiles style expression that evaluates to a vec4." | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,243 @@ | ||
{ | ||
"$schema" : "http://json-schema.org/draft-04/schema", | ||
"id" : "vctr.style.schema.json", | ||
"title" : "Vector Style", | ||
"type" : "object", | ||
"description" : "A 3D Tiles style with additional properties for vector data.", | ||
"allOf" : [{ | ||
"$ref" : "style.schema.json" | ||
}, { | ||
"properties" : { | ||
"show" : { | ||
"oneOf" : [{ | ||
"$ref" : "style.booleanExpression.schema.json" | ||
}, { | ||
"$ref" : "style.condition.schema.json" | ||
}], | ||
"description" : "If a feature should be shown.", | ||
"default" : "true" | ||
}, | ||
"pointSize" : { | ||
"oneOf" : [{ | ||
"$ref" : "style.numberExpression.schema.json" | ||
}, { | ||
"$ref" : "style.condition.schema.json" | ||
}], | ||
"description" : "The size of points in pixels.", | ||
"default" : 8.0 | ||
}, | ||
"pointColor" : { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This was removed. |
||
"oneOf" : [{ | ||
"$ref" : "style.colorExpression.schema.json" | ||
}, { | ||
"$ref" : "style.condition.schema.json" | ||
}], | ||
"description" : "The color of the point.", | ||
"default" : "Color('#FFFFFF')" | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. These all should be lowercase |
||
}, | ||
"pointOutlineColor" : { | ||
"oneOf" : [{ | ||
"$ref" : "style.colorExpression.schema.json" | ||
}, { | ||
"$ref" : "style.condition.schema.json" | ||
}], | ||
"description" : "The color of the point outline.", | ||
"default" : "Color('#000000')" | ||
}, | ||
"pointOutlineWidth" : { | ||
"oneOf" : [{ | ||
"$ref" : "style.numberExpression.schema.json" | ||
}, { | ||
"$ref" : "style.condition.schema.json" | ||
}], | ||
"description" : "The width, in pixels, of the point outline.", | ||
"default" : 0.0 | ||
}, | ||
"labelText" : { | ||
"oneOf" : [{ | ||
"type" : "string" | ||
}, { | ||
"$ref" : "style.condition.schema.json" | ||
}], | ||
"description" : "The label text to display.", | ||
"default" : "Undefined" | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. These should be lower case |
||
}, | ||
"labelColor" : { | ||
"oneOf" : [{ | ||
"$ref" : "style.colorExpression.schema.json" | ||
}, { | ||
"$ref" : "style.condition.schema.json" | ||
}], | ||
"description" : "The color of the label.", | ||
"default" : "Color('#FFFFFF')" | ||
}, | ||
"labelStyle" : { | ||
"oneOf" : [{ | ||
"$ref" : "style.numberExpression.schema.json" | ||
}, { | ||
"$ref" : "style.condition.schema.json" | ||
}], | ||
"description" : "The label style: fill (0), outline (1), or both (2).", | ||
"default" : 0 | ||
}, | ||
"labelOutlineColor" : { | ||
"oneOf" : [{ | ||
"$ref" : "style.colorExpression.schema.json" | ||
}, { | ||
"$ref" : "style.condition.schema.json" | ||
}], | ||
"description" : "The color of the text outline.", | ||
"default" : "Color('#FFFFFF')" | ||
}, | ||
"labelOutlineWidth" : { | ||
"oneOf" : [{ | ||
"$ref" : "style.numberExpression.schema.json" | ||
}, { | ||
"$ref" : "style.condition.schema.json" | ||
}], | ||
"description" : "The width of the text outline.", | ||
"default" : 1.0 | ||
}, | ||
"font" : { | ||
"oneOf" : [{ | ||
"type" : "string" | ||
}, { | ||
"$ref" : "style.condition.schema.json" | ||
}], | ||
"description" : "The font of the displayed text.", | ||
"default" : "'30px sans-serif'" | ||
}, | ||
"backgroundColor" : { | ||
"oneOf" : [{ | ||
"$ref" : "style.colorExpression.schema.json" | ||
}, { | ||
"$ref" : "style.condition.schema.json" | ||
}], | ||
"description" : "The label background color.", | ||
"default" : "rgba(42, 42, 42, 0.8)" | ||
}, | ||
"backgroundPadding" : { | ||
"oneOf" : [{ | ||
"$ref" : "style.vec2Expression.schema.json" | ||
}, { | ||
"$ref" : "style.condition.schema.json" | ||
}], | ||
"description" : "The background padding, in pixels, of this label. The `x` value controls horizontal padding, and the `y` value controls vertical padding.", | ||
"default" : "vec2(7, 5)" | ||
}, | ||
"backgroundEnabled" : { | ||
"oneOf" : [{ | ||
"$ref" : "style.booleanExpression.schema.json" | ||
}, { | ||
"$ref" : "style.condition.schema.json" | ||
}], | ||
"description" : "Whether or not to display the label background.", | ||
"default" : "false" | ||
}, | ||
"scaleByDistance" : { | ||
"oneOf" : [{ | ||
"$ref" : "style.vec4Expression.schema.json" | ||
}, { | ||
"$ref" : "style.condition.schema.json" | ||
}], | ||
"description" : "Sets near and far scaling properties of a feature based on the features's distance from the camera. A feature's scale will interpolate between the `y` and `w` values while the camera distance falls within the upper and lower bounds of the specified `x` and `z` value. Outside of these ranges, the features's scale remains clamped to the nearest bound. If undefined, `scaleByDistance` will be disabled.", | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There are minor differences between the descriptions in the schema and in the spec text, it's probably worth going through all of these to make sure they are the same. For example this one does not include "in meters". |
||
"default" : "Undefined" | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. You'll have to check if it is valid for "Undefined" to be a default value for some of these whose type is not string. |
||
}, | ||
"translucencyByDistance" : { | ||
"oneOf" : [{ | ||
"$ref" : "style.vec4Expression.schema.json" | ||
}, { | ||
"$ref" : "style.condition.schema.json" | ||
}], | ||
"description" : "Sets near and far translucency properties of a feature based on the feature's distance from the camera. A feature's translucency will interpolate between the `y` and `w` while the camera distance falls within the upper and lower bounds of the specified `x` and `z`. Outside of these ranges the feature's translucency remains clamped to the nearest bound. If undefined, `translucencyByDistance` will be disabled.", | ||
"default" : "Undefined" | ||
}, | ||
"distanceDisplayCondition" : { | ||
"oneOf" : [{ | ||
"$ref" : "style.vec2Expression.schema.json" | ||
}, { | ||
"$ref" : "style.condition.schema.json" | ||
}], | ||
"description" : "Sets the condition specifying at what distance from the camera that this feature will be displayed. The `x` value is the smallest distance in the interval where the feature is visible. The `y` value is the largest distance in the interval where the object is visible. If undefined, `distanceDisplayCondition` will be disabled.", | ||
"default" : "Undefined" | ||
}, | ||
"heightOffset" : { | ||
"oneOf" : [{ | ||
"$ref" : "style.numberExpression.schema.json" | ||
}, { | ||
"$ref" : "style.condition.schema.json" | ||
}], | ||
"description" : "The distance, in meters, to offset the height. This is ignored if the valuse is less than or equal to zero.", | ||
"default" : 0.0 | ||
}, | ||
"anchorLineEnabled" : { | ||
"oneOf" : [{ | ||
"$ref" : "style.booleanExpression.schema.json" | ||
}, { | ||
"$ref" : "style.condition.schema.json" | ||
}], | ||
"description" : "Whether or not to display a line from the feature to the point on terrain. This is ignored unless `heightOffset` is greater than zero.", | ||
"default" : "false" | ||
}, | ||
"anchorLineColor" : { | ||
"oneOf" : [{ | ||
"$ref" : "style.colorExpression.schema.json" | ||
}, { | ||
"$ref" : "style.condition.schema.json" | ||
}], | ||
"description" : "The color of the line from the feature to terrain. This is ignored unless `heightOffset` is greater than 0.0.", | ||
"default" : "Color('#FFFFFF)" | ||
}, | ||
"image" : { | ||
"oneOf" : [{ | ||
"type" : "string" | ||
}, { | ||
"$ref" : "style.condition.schema.json" | ||
}], | ||
"description" : "A URL to an image or a data URI to be displayed instead of a point.", | ||
"default" : "Undefined" | ||
}, | ||
"disableDepthTestDistance" : { | ||
"oneOf" : [{ | ||
"$ref" : "style.numberExpression.schema.json" | ||
}, { | ||
"$ref" : "style.condition.schema.json" | ||
}], | ||
"description" : "The distance from that camera at which the depth test will be disabled.", | ||
"default" : "Undefined" | ||
}, | ||
"origin" : { | ||
"oneOf" : [{ | ||
"$ref" : "style.numberExpression.schema.json" | ||
}, { | ||
"$ref" : "style.condition.schema.json" | ||
}], | ||
"description" : "The horizontal origin of the point: center ('0'), left ('1'), or right ('-1').", | ||
"default" : "0" | ||
}, | ||
"labelOrigin" : { | ||
"oneOf" : [{ | ||
"$ref" : "style.numberExpression.schema.json" | ||
}, { | ||
"$ref" : "style.condition.schema.json" | ||
}], | ||
"description" : "The horizontal origin of the label: center ('0'), left ('1'), or right ('-1').", | ||
"default" : "0" | ||
} | ||
}, | ||
"dependencies" : { | ||
"labelText" : [ | ||
"labelStyle", | ||
"labelColor", | ||
"labelOutlineColor", | ||
"labelOutlineWidth", | ||
"labelOrigin", | ||
"font", | ||
"backgroundColor", | ||
"backgroundPadding", | ||
"backgroundEnabled" | ||
] | ||
} | ||
}], | ||
"additionalProperties" : false | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add yourself to the contributors list in this file.