def test_filter_max_features(self): myfilters = [{ 'attribute': 'POP_MAX', 'operator': '>=', 'value': 100 }] result = webgisfilter( self.url, 'Places', maxfeatures=50, filters=myfilters ) self.assertEqual(len(result['features']), 50, "161 places found with population bigger then 100") last_feature = result['features'][-1] result = webgisfilter( self.url, 'Places', maxfeatures=50, startindex=49, filters=myfilters ) self.assertEqual(len(result['features']), 50, "161 places found with population bigger then 100") first_feature = result['features'][0] self.assertEqual(first_feature['id'], last_feature['id'])
def test_filter_max_features(self): myfilters = [{ 'attribute': 'POP_MAX', 'operator': '>=', 'value': '100' }] result = webgisfilter(self.url, 'Places', maxfeatures=50, filters=myfilters) self.assertEqual(len(result['features']), 50, "161 places found with population bigger then 100") last_feature = result['features'][-1] result = webgisfilter(self.url, 'Places', maxfeatures=50, startindex=49, filters=myfilters) self.assertEqual(len(result['features']), 50, "161 places found with population bigger then 100") first_feature = result['features'][0] self.assertEqual(first_feature['id'], last_feature['id'])
def test_filter_max_features(self): myfilters = [{"attribute": "POP_MAX", "operator": ">=", "value": "100"}] result = webgisfilter(self.url, "Places", maxfeatures=50, filters=myfilters) self.assertEqual(len(result["features"]), 50, "161 places found with population bigger then 100") last_feature = result["features"][-1] result = webgisfilter(self.url, "Places", maxfeatures=50, startindex=49, filters=myfilters) self.assertEqual(len(result["features"]), 50, "161 places found with population bigger then 100") first_feature = result["features"][0] self.assertEqual(first_feature["id"], last_feature["id"])
def test_basic(self): result = webgisfilter(self.url, 'Places') self.assertTrue(result, 'WFS Response') self.assertEqual(len(result['features']), 161, '161 places found') self.assertFalse('geometry' in result['features'][0], 'Geometry cleared')
def test_basic(self): result = webgisfilter(self.url, 'Places') self.assertTrue(result, 'WFS Response') self.assertEqual(len(result['features']), 161, '161 places found') self.assertFalse(result['features'][0].has_key('geometry'), 'Geometry cleared')
def test_filer_prague(self): prague_filter = [{"attribute": "NAME", "operator": "~", "value": "Prague"}] result = webgisfilter(self.url, "Places", filters=prague_filter) self.assertEqual(len(result["features"]), 1, "Prague found")
def test_filter_equal(self): myfilters = [{"attribute": "NAME", "operator": "=", "value": "Prague"}] fes = get_filter_fes(myfilters) self.assertTrue(isinstance(fes, PropertyIsEqualTo), "PropertyIsEqualTo") result = webgisfilter(self.url, "Places", filters=myfilters) self.assertEqual(len(result["features"]), 1, "Prague found")
def test_filter_equal(self): myfilters = [{'attribute': 'NAME', 'operator': '=', 'value': 'Prague'}] fes = get_filter_fes(myfilters) self.assertTrue(isinstance(fes, PropertyIsEqualTo), "PropertyIsEqualTo") result = webgisfilter(self.url, 'Places', filters=myfilters) self.assertEqual(len(result['features']), 1, "Prague found")
def test_filter_prague(self): prague_filter = [{ 'attribute': 'NAME', 'operator': '~', 'value': 'Prague' }] result = webgisfilter(self.url, 'Places', filters=prague_filter) self.assertEqual(len(result['features']), 1, "Prague found")
def test_filter_prague(self): prague_filter = [ { 'attribute': 'NAME', 'operator': '~', 'value': 'Prague' } ] result = webgisfilter(self.url, 'Places', filters=prague_filter) self.assertEqual(len(result['features']), 1, "Prague found")
def filterdata(request): """Handle filter requrest - using OGC WFS service The request body should look like: { 'layer': 'Places', 'maxfeatures': 1000, 'startindex': 0, 'bbox': [0, 1, 2, 3], 'filters': [{ 'attribute': 'NAME', 'value': 'Prague', 'operator': '=' }] } sent as HTTP POST request """ if request.method == 'POST': project = request.GET['PROJECT'] project = get_last_project_version(project) + '.qgs' url = settings.GISQUICK_MAPSERVER_URL params = {'MAP': abs_project_path(project)} mapserv = '{}?{}'.format(url, urllib.parse.urlencode(params)) filter_request = json.loads(request.body.decode('utf-8')) layer_name = filter_request['layer'] maxfeatures = startindex = bbox = filters = None if 'maxfeatures' in filter_request: maxfeatures = filter_request['maxfeatures'] if 'startindex' in filter_request: startindex = filter_request['startindex'] if 'bbox' in filter_request: bbox = filter_request['bbox'] if 'filters' in filter_request: filters = filter_request['filters'] result = webgisfilter(mapserv, layer_name, maxfeatures=maxfeatures, startindex=startindex, bbox=bbox, filters=filters) return HttpResponse(json.dumps(result), content_type="application/json") else: raise Exception('No inputs specified, use POST method')
def test_filter_equal(self): myfilters = [ { 'attribute': 'NAME', 'operator': '=', 'value': 'Prague' } ] fes = get_filter_fes(myfilters) self.assertTrue(isinstance(fes, PropertyIsEqualTo), "PropertyIsEqualTo") result = webgisfilter(self.url, 'Places', filters=myfilters) self.assertEqual(len(result['features']), 1, "Prague found")
def filterdata(request): """Handle filter requrest - using OGC WFS service The request body should look like: { 'layer': 'Places', 'maxfeatures': 1000, 'startindex': 0, 'bbox': [0, 1, 2, 3], 'filters': [{ 'attribute': 'NAME', 'value': 'Prague', 'operator': '=' }] } sent as HTTP POST request """ if request.method == 'POST': project = request.GET['PROJECT'] url = settings.GISLAB_WEB_MAPSERVER_URL params = { 'MAP': get_last_project_version(project) + '.qgs' } mapserv = '{}?{}'.format(url, urllib.parse.urlencode(params)) filter_request = json.loads(request.body.decode('utf-8')) layer_name = filter_request['layer'] maxfeatures = startindex = bbox = filters = None if 'maxfeatures' in filter_request: maxfeatures = filter_request['maxfeatures'] if 'startindex' in filter_request: startindex = filter_request['startindex'] if 'bbox' in filter_request: bbox = filter_request['bbox'] if 'filters' in filter_request: filters = filter_request['filters'] result = webgisfilter(mapserv, layer_name, maxfeatures=maxfeatures, startindex=startindex, bbox=bbox, filters=filters) return HttpResponse(json.dumps(result), content_type="application/json") else: raise Exception('No inputs specified, use POST method')
def _test_bbox(self): bbox = [15, 50, 16, 51] result = webgisfilter(self.url, 'Places', bbox=bbox) self.assertEqual(len(result['features']), 3, '3 features returned bbox')
def _test_paging(self): result = webgisfilter(self.url, 'Places', 30, 30) self.assertEqual(len(result['features']), 30, '30 features returned')
def test_basic(self): result = webgisfilter(self.url, "Places") self.assertTrue(result, "WFS Response") self.assertEqual(len(result["features"]), 161, "161 places found") self.assertFalse(result["features"][0].has_key("geometry"), "Geometry cleared")
def _test_paging(self): result = webgisfilter(self.url, "Places", 30, 30) self.assertEqual(len(result["features"]), 30, "30 features returned")
def _test_bbox(self): bbox = [15, 50, 16, 51] result = webgisfilter(self.url, "Places", bbox=bbox) self.assertEqual(len(result["features"]), 3, "3 features returned bbox")