Links

projections Property

Vega projections map longitude and latitude data to projected x and y coordinates. When working with geospatial data in OmniSci, you can use projections to define geographic points and regions.
General projections property JSON format:
"projections": [
{
"name": "<projectionName>",
"type": "<projectionType>",
"bounds": {
"x": [<minLong>,<maxLong>],
"y": [<minLat>,<maxLat>]
}
}
]
When you specify a projection, you must reference it in the Marks Property using the transform object. For example, if you define the projection my_mercator_projection:
"projections": [
{
"name": "my_mercator_projection",
"type": "mercator",
"bounds": {
"x": [-120.0, 120.0],
"y": [-20.0,20.0]
}
}
]
you then reference it as follows:
"marks": [
{
"type": "symbol",
"from": { "data": "fec_contributions_oct" },
"properties": { ... elided ... }
"transform": {
"projection": "my_mercator_projection"
}
}
]
The projections specification has the following properties:
Property
Data Type
Required
Description
name
string
X
User-assigned name of the projection.
type
string
X
Projection type. Currently supported types:
  • mercator: Mercator map projection.
bounds
object
Specifies the longitude and latitude bounding box for the projection. Default values:
  • x: [-180.0, 180.0]
  • y: [-85.0, 85.0]

Example

Use Vega projection projection alongside array columns:
{
"width": 1024,
"height": 1024,
"data": [
{
"name": "table",
"sql": "SELECT rowid, coords[1] as x, coords[2] as y FROM cities WHERE coords[1] BETWEEN $minLon AND $maxLon AND coords[2] BETWEEN $minLat AND $maxLat"
}
],
"projections": [
{
"name": "projection",
"type": "mercator",
"bounds": {
"x": [-120.0, 120.0],
"y": [-20.0, 20.0]
}
}
],
"scales": [
],
"marks": [
{
"type": "symbol",
"from": {"data": "table"},
"properties": {
"shape": "circle",
"xc": {
"field": "x"
},
"yc": {
"field": "y"
},
"fillColor": "darkblue",
"width": 25,
"height": 25
},
"transform": {
"projection": "projection"
}
}
]
}