Documentation
Feedback
Guides
API Reference

Guides
Master Datav2 Guides
Search by geocoordinates

To enable search by geocoordinates in Master Data v2, your JSON schema must contain an object with the properties latitude and longitude:

{ "properties": { "{{yourFieldName}}": { "type": "object", "properties": { "latitude": { "type": "number" }, "longitude": { "type": "number" } }, "additionalProperties": false } } }

Also, it must be configured as indexed:

{ "v-indexed": [ "{{yourFieldName}}" ] }

Saving documents

To save a document that can later be searched by geocoordinates, it must contain the object value configured as geocoordinates:

{ "{{yourFieldName}}": { "latitude": {{value}}, "longitude": {{value}} } }

Filtering

To filter documents that contain a location nearby a given geocoordinate (measured in km), add a filter as a query parameter in this format:

{{yourFieldName}}={{latitudeValue}},{{longitudeValue}},{{integer}}km

See an example:

address.location=-23.01227,-43.46163,25km

Ordering search results by distance

To order documents by distance from a given geocoordinate, use the _sort query parameter with this format:

_sort={{yourFieldName}} {{asc/desc}} {{latitudeValue}},{{longitudeValue}} km

See an example

_sort=address.location asc -23.01227,-43.46163 km

When Master Data order results by distance from a geocoordinate field a new field is available: _sort. This field could be added in _fields parameter to retrieve the distance between the geocoordinate in the sort query.

Real complete example

JSON Schema:

{ "properties": { "name": { "type": "string" }, "isActive": { "type": "boolean" }, "address": { "type": "object", "properties": { "state": { "type": "string" }, "location": { "type": [ "null", "object" ], "properties": { "latitude": { "type": "number" }, "longitude": { "type": "number" } }, "additionalProperties": false } } } }, "v-indexed": [ "name", "isActive", "address" ], "v-default-fields": [ "id", "name", "address", "_sort" ] }

Query:

/search?address.location=-23.01227,-43.46163,100km&_schema=v1&_sort=address.location asc -23.01227,-43.46163 km&_fields=id,_sort

Result:

[ { "id": "AME", "_sort": [ 0 ] }, { "id": "BAR", "_sort": [ 10.71936198115181 ] }, { "id": "BAN", "_sort": [ 14.87184710662879 ] }, { "id": "BRX", "_sort": [ 27.607623540300178 ] } ]
Contributors
1
Photo of the contributor
+ 1 contributors
Was this helpful?
Yes
No
Suggest edits (Github)
On this page