# Geo Data FBFs

The Geo data fields can be used to derive new fields and data from, by using the following Field Build Functions:

### area

FunctionDescriptionSourcesOutputArguments
areaA directive for calculating the area of polygon.
The input should be a polygon in the format of a
GeoJson (json or WKT) or a TopoJson.
The returned area will be in square meter (m^2).
Set convert_to_km to true in order to get the result in square kilometer(km^2)
polygon
convert_to_km

``````{
"area_of_polygon": {
"type": "numeric",
"function": "area",
"source": "polygon"
}
}
<EXAMPLE INPUT 1>
{
"polygon": {
"type": "Polygon",
"coordinates": [[[-50,-90],[-50,90],[50,90],[-50,-90]]]
}
}
<EXAMPLE INPUT 2>
{
"polygon": "POLYGON ((-50 -90, -50 90, 50 90, 50 -90, -50 -90))"
}
<EXAMPLE OUTPUT >
{
"area_of_polygon": 18000.0
}
``````

### distance

FunctionDescriptionSourcesOutputArguments
distanceA directive for calculating the distance between two points.
The input should be two given Geopoints.
The returned distance will be in meters (m).
Set convert_to_km to true in order to get the result in kilometers (km)
point1

point2
convert_to_km

``````{
"distance_between_two_points": {
"function": "distance",
"sources": ["point1", "point2"],
"type": "numeric"
}
}
<EXAMPLE INPUT>
{
[{
"point1": {"location" : "POINT (-71.34 41.12)" },
"point2": {"location" : "POINT (52.406374 16.9251681)" }
}]
}
<EXAMPLE OUTPUT>
{
"distance_between_two_points": 11365307.89
}
``````

### geo_intersect

FunctionDescriptionSourcesOutputArguments
geo_intersectA directive for calculating the intersection of two given polygons.
The input should be GeoJson or TopoJson format or WKT (as a json or a json string)
and the output will be returned as WKT string.
polygon1

polygon2
``````{
"intersection_of_polygons": {
"function": "geo_intersect",
"sources": ["poly1", "poly2"],
"type": "string"
}
}
<EXAMPLE INPUT>
{
[{
"poly1": {
"type": "Polygon",
"coordinates": [[
[-180,-90],
[-180,90],
[180,90],
[180,-90],
[-180,-90]
]]
},
"poly2": {
"type": "Polygon",
"coordinates": [[
[-122.801742, 45.48565],
[-122.801742, 45.60491],
[-122.584762, 45.60491],
[-122.584762, 45.48565],
[-122.801742, 45.48565]
]]
}
}]
}
<EXAMPLE OUTPUT>
{
""intersection_of_polygons": POLYGON ((
-122.801742 45.60491,
-122.584762 45.60491,
-122.584762 45.48565,
-122.801742 45.48565,
-122.801742 45.60491
))"
}
``````