本文整理汇总了Python中mapfish.protocol.Protocol类的典型用法代码示例。如果您正苦于以下问题:Python Protocol类的具体用法?Python Protocol怎么用?Python Protocol使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Protocol类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_protocol_create_and_update
def test_protocol_create_and_update(self):
"""Create a new point and also update an already existing point"""
old_spot = session.query(Spot).filter(Spot.spot_height==102.34).one()
proto = Protocol(session, Spot)
request = FakeRequest({})
request.body = '{"type": "FeatureCollection", "features": [\
{"type": "Feature", "properties": {"spot_height": 12.0}, "geometry": {"type": "Point", "coordinates": [45, 5]}},\
{"type": "Feature", "id": ' + str(old_spot.spot_id) + ', "properties": {}, "geometry": {"type": "Point", "coordinates": [1, 1]}}]}'
response = FakeResponse()
collection = proto.create(request, response)
eq_(response.status, 201)
eq_(len(collection.features), 2)
feature0 = collection.features[0]
eq_(feature0.id, 10)
eq_(feature0.geometry.coordinates, (45.0, 5.0))
eq_(feature0.properties["spot_height"], 12)
feature1 = collection.features[1]
eq_(feature1.id, old_spot.spot_id)
eq_(feature1.geometry.coordinates, (1, 1))
new_spot = session.query(Spot).filter(Spot.spot_height==12.0).one()
ok_(new_spot is not None)
eq_(session.scalar(new_spot.spot_location.wkt), u'POINT(45 5)')
updated_spot = session.query(Spot).filter(Spot.spot_height==102.34).one()
ok_(updated_spot is not None)
ok_(old_spot is updated_spot)
eq_(updated_spot.spot_height, 102.34)
eq_(session.scalar(updated_spot.spot_location.wkt), u'POINT(1 1)')
示例2: test_protocol_count_filter_box
def test_protocol_count_filter_box(self):
"""Get the feature count with a box as filter"""
proto = Protocol(session, Spot)
request = FakeRequest({})
request.params['bbox'] = '-10,-10,10,10'
eq_(proto.count(request), '4')
request.params['tolerance'] = '200000'
eq_(proto.count(request), '5')
# query features that are inside a bbox that uses a different CRS
# note that we either have to specify a tolerance ('tol') or
# dimension information ('dim1' and 'dim2')
filter = create_default_filter(request, Spot, additional_params={'tol': '0.005'})
request.params['bbox'] = '-12.3364241712925,-10.0036833569465,7.66304367998925,9.9979519038951'
request.params['epsg'] = '2210'
request.params['tolerance'] = '0'
eq_(proto.count(request, filter=filter), '5')
# dimension information array for 54004
# see http://download.oracle.com/docs/cd/E11882_01/appdev.112/e11830/sdo_objrelschema.htm#i1010905
diminfo = "MDSYS.SDO_DIM_ARRAY("\
"MDSYS.SDO_DIM_ELEMENT('LONGITUDE', -20037508, 20037508, 0.005),"\
"MDSYS.SDO_DIM_ELEMENT('LATITUDE', -19929239, 19929239, 0.005)"\
")"
request.params['bbox'] = '-975862.822682856,-999308.345117013,1027887.98627823,999373.702609189'
request.params['epsg'] = '54004' # Oracles SRID number for World Mercator
filter = create_default_filter(request, Spot,
additional_params={'dim1': text(diminfo),
'dim2' : text(diminfo)})
eq_(proto.count(request, filter=filter), '3')
示例3: test_protocol_create_fails
def test_protocol_create_fails(self):
"""Try to create a feature without geometry"""
proto = Protocol(session, Spot)
request = FakeRequest({})
request.body = '{"type": "FeatureCollection", "features": [{"type": "Feature", "properties": {"spot_height": 12.0}}]}'
proto.create(request, FakeResponse())
示例4: test_protocol_count_queryable
def test_protocol_count_queryable(self):
"""Count all features that match a filter"""
proto = Protocol(session, Spot)
request = FakeRequest({})
request.params['queryable'] = 'spot_height'
request.params['spot_height__gte'] = '1454.66'
eq_(proto.count(request), '3')
示例5: test_protocol_read_all
def test_protocol_read_all(self):
"""Return all features"""
proto = Protocol(session, Spot)
collection = proto.read(FakeRequest({}))
ok_(collection is not None)
ok_(isinstance(collection, FeatureCollection))
eq_(len(collection.features), 9)
示例6: test_protocol_count_filter_geometry
def test_protocol_count_filter_geometry(self):
"""Get the feature count with a geometry as filter"""
proto = Protocol(session, Spot)
request = FakeRequest({})
request.params['geometry'] = '{"type": "Polygon", "coordinates": [[ [-10, -1], [10, -1], [0, 10], [-10, -1] ]]}'
eq_(proto.count(request), '2')
request.params['tolerance'] = '10'
eq_(proto.count(request), '5')
示例7: test_protocol_read_one
def test_protocol_read_one(self):
"""Return one feature"""
proto = Protocol(session, Spot)
feature = proto.read(FakeRequest({}), id=1)
ok_(feature is not None)
ok_(isinstance(feature, Feature))
eq_(feature.id, 1)
eq_(feature.geometry.coordinates, (0.0, 0.0))
eq_(feature.properties["spot_height"], 420.39999999999998)
示例8: test_protocol_update_fails
def test_protocol_update_fails(self):
"""Try to update a not-existing feature"""
proto = Protocol(session, Spot)
id = -1
request = FakeRequest({})
request.body = '{"type": "Feature", "id": ' + str(id) + ', "properties": {}, "geometry": {"type": "Point", "coordinates": [1, 1]}}'
response = FakeResponse()
proto.update(request, response, id)
示例9: test_protocol_count_filter_box
def test_protocol_count_filter_box(self):
"""Get the feature count with a box as filter"""
proto = Protocol(session, Spot)
request = FakeRequest({})
request.params['bbox'] = '-10,-10,10,10'
eq_(proto.count(request), '4')
request.params['tolerance'] = '1'
eq_(proto.count(request), '5')
示例10: test_protocol_count_filter_box_reproject
def test_protocol_count_filter_box_reproject(self):
"""Try to get the feature count with a box that has to be reprojected
(MySQL does not support transform() yet)"""
proto = Protocol(session, Spot)
request = FakeRequest({})
# reproject the bbox
request.params['bbox'] = '-12.3364241712925,-10.0036833569465,7.66304367998925,9.9979519038951'
request.params['epsg'] = '4807'
request.params['tolerance'] = '0'
proto.count(request)
示例11: test_protocol_count_filter_within
def test_protocol_count_filter_within(self):
"""Get the feature count with a point as filter"""
proto = Protocol(session, Spot)
request = FakeRequest({})
request.params['lat'] = '0'
request.params['lon'] = '0'
eq_(proto.count(request), '1')
request.params['tolerance'] = '10'
eq_(proto.count(request), '3')
示例12: ZonesController
class ZonesController(BaseController):
readonly = True # if set to True, only GET is supported
def __init__(self):
self.protocol = Protocol(Session, Zone, self.readonly)
@geojsonify
def index(self, format='json'):
"""GET /: return all features."""
# If no filter argument is passed to the protocol index method
# then the default MapFish filter is used.
#
# If you need your own filter with application-specific params
# taken into acount, create your own filter and pass it to the
# protocol read method.
#
# E.g.
#
# from sqlalchemy.sql import and_
#
# default_filter = create_default_filter(request, Zone)
# filter = and_(default_filter, Zone.columname.ilike('%value%'))
# return self.protocol.read(request, filter=filter)
if format != 'json':
abort(404)
return self.protocol.read(request)
@geojsonify
def show(self, id, format='json'):
"""GET /id: Show a specific feature."""
if format != 'json':
abort(404)
return self.protocol.read(request, response, id=id)
#@geojsonify
#def create(self):
# """POST /: Create a new feature."""
# return self.protocol.create(request, response)
#
#@geojsonify
#def update(self, id):
# """PUT /id: Update an existing feature."""
# return self.protocol.update(request, response, id)
#
#def delete(self, id):
# """DELETE /id: Delete an existing feature."""
# return self.protocol.delete(request, response, id)
def count(self):
"""GET /count: Count all features."""
return self.protocol.count(request)
示例13: test_protocol_read_one_null
def test_protocol_read_one_null(self):
"""Return one null feature"""
proto = Protocol(session, Spot)
feature = proto.read(FakeRequest({}), id=9)
ok_(feature is not None)
ok_(isinstance(feature, Feature))
eq_(feature.id, 9)
# make use of __geo_interface__ property since 'geometry'
# value is not the same in various versions of geojson lib
ok_(feature.__geo_interface__['geometry'] is None)
ok_(feature.__geo_interface__['bbox'] is None)
示例14: test_protocol_delete
def test_protocol_delete(self):
"""Delete an existing point"""
proto = Protocol(session, Spot)
id = 1
request = FakeRequest({})
response = FakeResponse()
proto.delete(request, response, id)
eq_(response.status, 204)
spot = session.query(Spot).get(id)
ok_(spot is None)
示例15: test_protocol_count_filter_within
def test_protocol_count_filter_within(self):
"""Get the feature count with a point as filter"""
proto = Protocol(session, Spot)
request = FakeRequest({})
request.params['lat'] = '0'
request.params['lon'] = '0'
eq_(proto.count(request), '1')
request.params['tolerance'] = '400000'
eq_(proto.count(request), '2')
filter = create_default_filter(request, Spot, additional_params={'params': 'unit=KM'})
eq_(proto.count(request, filter=filter), '8')