def GET(self, name): request_params = web.input() print(request_params.lat) print(request_params.lang) latitude = float(request_params.lat) langitude = float(request_params.lang) radius = int(request_params.radius) #pp = pprint.PrettyPrinter(indent=2) try: client = aerospike.client(config).connect() # Records are addressable via a tuple of (namespace, set, key) query = client.query('locality', 'location') query.select('store', 'seller', 'address', 'loc') query.where(p.geo_within_radius('loc', langitude, latitude, radius)) stores = [] sellers = [] address = [] def matched_names((key, metadata, bins)): #pp.pprint(bins) stores.append(bins['store']) sellers.append(bins['seller']) address.append(bins['address']) query.foreach(matched_names) storeStr = '' addressStr = '' sellerStr = '' for i in range(0, stores.__len__()): storeStr = storeStr + str(stores[i]) + '|' addressStr = addressStr + address[i] + '|' sellerStr = sellerStr + sellers[i] + '|' response = storeStr[: -1] + '~' + sellerStr[: -1] + '~' + addressStr[: -1] print("Final response::", response) return response # Close the connection to the Aerospike cluster client.close() except Exception as e: import sys print("error: {0}".format(e), file=sys.stderr)
def test_geospatial_within_radius_pred(self, bin_name, idx_type): records = [] query = self.as_connection.query("test", "demo") def callback(input_tuple): _, _, record = input_tuple records.append(record) predicate = p.geo_within_radius(bin_name, -122.0, 37.5, 250.2, idx_type) query.where(predicate) query.foreach(callback) assert len(records) == 1
def test_geospatial_within_radius_pred(self, bin_name, idx_type): records = [] query = self.as_connection.query("test", "demo") def callback(input_tuple): _, _, record = input_tuple records.append(record) predicate = p.geo_within_radius( bin_name, -122.0, 37.5, 250.2, idx_type) query.where(predicate) query.foreach(callback) assert len(records) == 1
def test_geospatial_positive_query_for_circle_with_within_radius_helper(self): """ Perform a positive geospatial query for a circle with helper """ if TestGeospatial.skip_old_server == True: pytest.skip("Server does not support apply on AeroCircle for GeoJSON") records = [] query = TestGeospatial.client.query("test", "demo") query.where(p.geo_within_radius("loc", -122.0, 37.5, 250.2)) def callback((key, metadata, record)): records.append(record) query.foreach(callback) assert len(records) == 1 expected = [{'coordinates': [-122.0, 37.5], 'type': 'Point'}] for r in records: assert r['loc'].unwrap() in expected
def test_geo_query_with_geo_within_radius_predicate(self): """ Perform a positive geospatial query for a circle with helper """ if TestGeospatial.skip_old_server is True: pytest.skip( "Server does not support apply on AeroCircle for GeoJSON") records = [] query = self.as_connection.query("test", "demo") query.where(p.geo_within_radius("loc", -122.0, 37.5, 250.2)) def callback(input_tuple): _, _, record = input_tuple records.append(record) query.foreach(callback) assert len(records) == 1 expected = [{'coordinates': [-122.0, 37.5], 'type': 'Point'}] for r in records: assert r['loc'].unwrap() in expected
import pprint config = {'hosts': [('127.0.0.1', 3000)]} client = aerospike.client(config).connect() pp = pprint.PrettyPrinter(indent=2) #client.index_geo2dsphere_create('test', 'pads', 'loc', 'pads_loc_geo') #bins = {'pad_id': 1, # 'loc': aerospike.geojson('{"type":"Point", "coordinates":[-80.604333, 28.608389]}')} #client.put(('test', 'pads', 'launchpad1'), bins) query = client.query('locality', 'location') query.select('store', 'seller', 'address', 'loc') query.where( p.geo_within_radius('loc', -94.2217082259192, 36.3689382317293, 1000)) stores = [] sellers = [] def matched_names((key, metadata, bins)): pp.pprint(bins) stores.append(bins['store']) sellers.append(bins['seller']) query.foreach(matched_names) pp.pprint(stores[1]) pp.pprint(sellers) #records = query.results() client.close()