Skip to content

Latest commit

 

History

History
executable file
·
115 lines (73 loc) · 3.35 KB

geojson.rst

File metadata and controls

executable file
·
115 lines (73 loc) · 3.35 KB

aerospike

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:

  • ~aerospike.predicates.geo_within_geojson_region
  • ~aerospike.predicates.geo_within_radius

It also enables queries for regions that contain a given point using:

  • ~aerospike.predicates.geo_contains_geojson_point
  • ~aerospike.predicates.geo_contains_point

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 ~aerospike.Client.put.

When reading a record from the server, bins with geospatial data will be deserialized into a ~aerospike.GeoJSON instance.

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

Optionally initializes an object with a GeoJSON str or a dict of geospatial data.

See example for usage.

wrap(geo_data)

Sets the geospatial data of the ~aerospike.GeoJSON wrapper class.

param dict geo_data

a dict representing the geospatial data.

unwrap() -> dict of geospatial data

Gets the geospatial data contained in the ~aerospike.GeoJSON class.

return

a dict representing the geospatial data.

loads(raw_geo)

Sets the geospatial data of the ~aerospike.GeoJSON wrapper class from a GeoJSON string.

param str raw_geo

a GeoJSON string representation.

dumps() -> a GeoJSON string

Gets the geospatial data contained in the ~aerospike.GeoJSON class as a GeoJSON string.

return

a GeoJSON str representing the geospatial data.

1.0.53