WARNING: The 2.x versions of Elasticsearch have passed their EOL dates. If you are running a 2.x version, we strongly advise you to upgrade.
This documentation is no longer maintained and may be removed. For the latest information, see the current Elasticsearch documentation.
Lat/Lon Formatsedit
With the location
field defined as a geo_point
, we can proceed to index
documents containing latitude/longitude pairs, which can be formatted as
strings, arrays, or objects:
PUT /attractions/restaurant/1 { "name": "Chipotle Mexican Grill", "location": "40.715, -74.011" } PUT /attractions/restaurant/2 { "name": "Pala Pizza", "location": { "lat": 40.722, "lon": -73.989 } } PUT /attractions/restaurant/3 { "name": "Mini Munchies Pizza", "location": [ -73.983, 40.719 ] }
A string representation, with |
|
An object representation with |
|
An array representation with |
Everybody gets caught at least once: string geo-points are
"latitude,longitude"
, while array geo-points are [longitude,latitude]
—the opposite order!
Originally, both strings and arrays in Elasticsearch used latitude followed by longitude. However, it was decided early on to switch the order for arrays in order to conform with GeoJSON.
The result is a bear trap that captures all unsuspecting users on their journey to full geolocation nirvana.