UltipaDocs
Try Playground
  • Introduction
  • Terminologies
    • Graphset
    • Schema
    • Property
    • Constraints
    • Insert
    • Overwrite or Insert
    • Upsert
    • Update
    • Delete
    • Find Nodes
    • Find Edges
      • AB
      • Autonet
      • Spread
      • Path Template
      • K-Hop
      • K-Hop Template
    • GROUP BY
    • ORDER BY
    • SKIP
    • LIMIT
    • WHERE
    • RETURN
    • WITH
    • UNCOLLECT
    • UNION
    • UNION ALL
    • CALL
    • All Functions
    • Path Functions
    • Aggregate Functions
    • Mathematical Functions
    • Trigonometric Functions
    • String Functions
    • List Functions
    • Datetime Functions
    • Spatial Functions
    • Table Functions
    • Null Functions
    • Type Conversion Functions
  • Operators
  • Expressions
    • Index
    • Full-text Index
    • Vector Index
    • Cache
    • Overview
    • Managing HDC Graphs
    • HDC Graph Queries
    • Process
    • Job
    • Execution Plan
    • Alias
    • Filter
    • Values and Types
    • Data Flow in Queries
    • Comments
    • Reserved Words
  • Access Control
  1. Docs
  2. /
  3. UQL
  4. /
  5. Functions

Spatial Functions

Example Graph

The following examples run against this graph:

distance()

Computes the straight-line distance between two points.

Syntaxdistance(<point1>, <point2>)
ArgumentsNameTypeDescription
<point1>POINT or POINT3DThe first point
<point2>POINT or POINT3DThe second point
Return TypeDOUBLE
UQL
find().nodes({name == "New York"}) as p1
find().nodes({name == "London"}) as p2
return distance(p1.location, p2.location)

Result:

distance(p1.location, p2.location)
5571177.78487926

point()

Constructs a two-dimensional geographical coordinate. The point() function can be used to specify the value of a point-type property.

Syntaxpoint({latitude: <lati>, longitude: <longti>})
ArgumentsNameTypeDescription
<lati>NumericThe latitude value
<longti>NumericThe longitude value
Return TypePOINT
UQL
return point({latitude:39.9, longitude:116.3}) as point

Result:

point
POINT(39.9 116.3)
UQL
insert().into(@City).nodes([{name: "Tokyo", location:point({latitude: 35.7, longitude: 139.7})}]) as n
return n.location

Result:

n.location
POINT(35.7 139.7)

point3d()

Constructs a three-dimensional Cartesian coordinate. The point3d() function can be used to specify the value of a point3d-type property.

Syntaxpoint3d({x: <value_x>, y: <value_y>, z: <value_z>})
ArgumentsNameTypeDescription
<value_x>NumericThe x value
<value_y>NumericThe y value
<value_z>NumericThe z value
Return TypePOINT3D
UQL
return point3d({x:10, y:15, z:5}) as point3d

Result:

point3d
POINT3D(10 15 5)
UQL
insert().into(@City).nodes([{name: "Tokyo", landmark: point3d({x:10, y:15, z:5})}]) as n
return n.landmark

Result:

n.landmark
POINT3D(10 15 5)