def test_postgis_transform(ngw_txn, x, y, src, dst): px, py = DBSession.connection().execute(db.text( 'SELECT ST_X(pt), ST_Y(pt) ' 'FROM ST_Transform(ST_Transform(' ' ST_SetSRID(ST_MakePoint(:x, :y), :src) ,:dst), :src) AS pt' ), x=x, y=y, src=src, dst=dst).fetchone() assert abs(px - x) < 1e-6 assert abs(py - y) < 1e-6
def forward(ctx): connection = DBSession.connection() instance_id = ctx.env.core.options.get('provision.instance_id', str(uuid.uuid4())) connection.execute(text(""" INSERT INTO setting (component, name, value) VALUES ('core', 'instance_id', :instance_id) """), instance_id=json.dumps(instance_id))
def test_postgis_sync(txn): obj = SRS(wkt=WKT_ESPG_4326, display_name='') obj.persist() DBSession.flush() assert obj.id >= SRID_LOCAL qpg = db.text('SELECT srtext FROM spatial_ref_sys WHERE srid = :id') srtext, = DBSession.connection().execute(qpg, id=obj.id).fetchone() assert obj.wkt == srtext obj.wkt = WKT_ESPG_3857 DBSession.flush() srtext, = DBSession.connection().execute(qpg, id=obj.id).fetchone() assert obj.wkt == srtext DBSession.delete(obj) DBSession.flush() assert DBSession.connection().execute(qpg, id=obj.id).fetchone() is None
def create_vector_layer(cls, parent_obj, json_layer_struct, layer_name): from nextgisweb.resource.serialize import CompositeSerializer # only where!!! vl = VectorLayer(parent=parent_obj, owner_user=parent_obj.owner_user) cs = CompositeSerializer(vl, parent_obj.owner_user, json_layer_struct) cs.deserialize() vl.tbl_uuid = uuid.uuid4().hex for fld in vl.fields: fld.fld_uuid = uuid.uuid4().hex vl.keyname = '%s_%s' % (layer_name, vl.tbl_uuid) vl.persist() # temporary workaround #266. vl.srs_id = vl.srs.id ti = TableInfo.from_layer(vl) ti.setup_metadata(vl._tablename) ti.metadata.create_all(bind=DBSession.connection()) return vl