コード例 #1
0
ファイル: test_wfsfilter.py プロジェクト: marisn/gislab-web
    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'])
コード例 #2
0
    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'])
コード例 #3
0
    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"])
コード例 #4
0
    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')
コード例 #5
0
ファイル: test_wfsfilter.py プロジェクト: marisn/gislab-web
    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')
コード例 #6
0
    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")
コード例 #7
0
    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")
コード例 #8
0
    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")
コード例 #9
0
    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")
コード例 #10
0
ファイル: test_wfsfilter.py プロジェクト: marisn/gislab-web
    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")
コード例 #11
0
ファイル: map.py プロジェクト: wsf1990/gisquick
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')
コード例 #12
0
ファイル: test_wfsfilter.py プロジェクト: marisn/gislab-web
    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")
コード例 #13
0
ファイル: map.py プロジェクト: gislab-npo/gislab-web
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')
コード例 #14
0
 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')
コード例 #15
0
 def _test_paging(self):
     result = webgisfilter(self.url, 'Places', 30, 30)
     self.assertEqual(len(result['features']), 30, '30 features returned')
コード例 #16
0
    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")
コード例 #17
0
ファイル: test_wfsfilter.py プロジェクト: marisn/gislab-web
 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')
コード例 #18
0
ファイル: test_wfsfilter.py プロジェクト: marisn/gislab-web
 def _test_paging(self):
     result = webgisfilter(self.url, 'Places', 30, 30)
     self.assertEqual(len(result['features']), 30, '30 features returned')
コード例 #19
0
 def _test_paging(self):
     result = webgisfilter(self.url, "Places", 30, 30)
     self.assertEqual(len(result["features"]), 30, "30 features returned")
コード例 #20
0
 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")