aerospike.GeoJSON
— GeoJSON Class
Overview
Starting with version 3.7.0
, the Aerospike server supports storing GeoJSON data.
A Geo2DSphere index can be built on a bin which contains GeoJSON data,
which allows queries for points inside any given shapes using:
It also enables queries for regions that contain a given point using:
On the client side, wrapping geospatial data in an instance of the
aerospike.GeoJSON
class enables serialization of the data into the
correct type during a write operation, such as put()
.
When reading a record from the server, bins with geospatial data will be
deserialized into a GeoJSON
instance.
See also
Example
import aerospike
from aerospike import GeoJSON
config = { 'hosts': [ ('127.0.0.1', 3000)]}
client = aerospike.client(config)
client.index_geo2dsphere_create('test', 'pads', 'loc', 'pads_loc_geo')
# Create GeoJSON point using WGS84 coordinates.
latitude = 28.608389
longitude = -80.604333
loc = GeoJSON({'type': "Point",
'coordinates': [longitude, latitude]})
print(loc)
# Expected output:
# {"type": "Point", "coordinates": [-80.604333, 28.608389]}
# Alternatively, create the GeoJSON point from a string
loc = aerospike.geojson('{"type": "Point", "coordinates": [-80.604333, 28.608389]}')
# Create and store a user record.
bins = {'pad_id': 1,
'loc': loc}
client.put(('test', 'pads', 'launchpad1'), bins)
# Read the record.
(k, m, b) = client.get(('test', 'pads', 'launchpad1'))
print(b)
# Expected output:
# {'pad_id': 1, 'loc': '{"type": "Point", "coordinates": [-80.604333, 28.608389]}'}
# Cleanup
client.remove(('test', 'pads', 'launchpad1'))
client.close()
Methods
- class aerospike.GeoJSON
- class GeoJSON([geo_data])
Optionally initializes an object with a GeoJSON
str
or adict
of geospatial data.See Example for usage.
- unwrap() dict of geospatial data
Gets the geospatial data contained in the
GeoJSON
class.- Returns:
a
dict
representing the geospatial data.
New in version 1.0.53.