def testTransformContextSignalIsEmitted(self): """Test that when a project transform context changes a transformContextChanged signal is emitted""" p = QgsProject() spy = QSignalSpy(p.transformContextChanged) ctx = QgsCoordinateTransformContext() ctx.addSourceDestinationDatumTransform(QgsCoordinateReferenceSystem(4326), QgsCoordinateReferenceSystem(3857), 1234, 1235) p.setTransformContext(ctx) self.assertEqual(len(spy), 1)
def testProject(self): """ Test project's transform context """ project = QgsProject() context_changed_spy = QSignalSpy(project.transformContextChanged) context = project.transformContext() context.addSourceDestinationDatumTransform(QgsCoordinateReferenceSystem('EPSG:3111'), QgsCoordinateReferenceSystem('EPSG:4283'), 1, 2) project.setTransformContext(context) self.assertEqual(len(context_changed_spy), 1) self.assertEqual(project.transformContext().sourceDestinationDatumTransforms(), {('EPSG:3111', 'EPSG:4283'): QgsDatumTransform.TransformPair(1, 2)})
def testProjectContextProj6(self): """ Test creating transform using convenience constructor which takes project reference """ p = QgsProject() context = p.transformContext() context.addCoordinateOperation(QgsCoordinateReferenceSystem('EPSG:28356'), QgsCoordinateReferenceSystem('EPSG:3111'), 'proj') p.setTransformContext(context) transform = QgsCoordinateTransform(QgsCoordinateReferenceSystem('EPSG:28356'), QgsCoordinateReferenceSystem('EPSG:3111'), p) self.assertEqual(transform.coordinateOperation(), 'proj')
def testProjectContext(self): """ Test creating transform using convenience constructor which takes project reference """ p = QgsProject() context = p.transformContext() context.addSourceDestinationDatumTransform(QgsCoordinateReferenceSystem('EPSG:28356'), QgsCoordinateReferenceSystem('EPSG:3111'), 1, 2) p.setTransformContext(context) transform = QgsCoordinateTransform(QgsCoordinateReferenceSystem('EPSG:28356'), QgsCoordinateReferenceSystem('EPSG:3111'), p) self.assertEqual(transform.sourceDatumTransformId(), 1) self.assertEqual(transform.destinationDatumTransformId(), 2)
def testTransformContextInheritsFromProject(self): """Test that when a layer is added to a project it inherits its context""" rl = QgsRasterLayer(self.rpath, 'raster') self.assertFalse(rl.transformContext().hasTransform(QgsCoordinateReferenceSystem(4326), QgsCoordinateReferenceSystem(3857))) p = QgsProject() self.assertFalse(p.transformContext().hasTransform(QgsCoordinateReferenceSystem(4326), QgsCoordinateReferenceSystem(3857))) p.setTransformContext(self.ctx) self.assertTrue(p.transformContext().hasTransform(QgsCoordinateReferenceSystem(4326), QgsCoordinateReferenceSystem(3857))) p.addMapLayers([rl]) self.assertTrue(rl.transformContext().hasTransform(QgsCoordinateReferenceSystem(4326), QgsCoordinateReferenceSystem(3857)))
def testProjectProj6(self): """ Test project's transform context """ project = QgsProject() context_changed_spy = QSignalSpy(project.transformContextChanged) context = project.transformContext() context.addCoordinateOperation(QgsCoordinateReferenceSystem('EPSG:3111'), QgsCoordinateReferenceSystem('EPSG:4283'), 'proj') project.setTransformContext(context) self.assertEqual(len(context_changed_spy), 1) self.assertEqual(project.transformContext().coordinateOperations(), {('EPSG:3111', 'EPSG:4283'): 'proj'})
def testTransformContextIsSyncedFromProject(self): """Test that when a layer is synced when project context changes""" rl = QgsRasterLayer(self.rpath, 'raster') self.assertFalse(rl.transformContext().hasTransform(QgsCoordinateReferenceSystem(4326), QgsCoordinateReferenceSystem(3857))) p = QgsProject() self.assertFalse(p.transformContext().hasTransform(QgsCoordinateReferenceSystem(4326), QgsCoordinateReferenceSystem(3857))) p.setTransformContext(self.ctx) self.assertTrue(p.transformContext().hasTransform(QgsCoordinateReferenceSystem(4326), QgsCoordinateReferenceSystem(3857))) p.addMapLayers([rl]) self.assertTrue(rl.transformContext().hasTransform(QgsCoordinateReferenceSystem(4326), QgsCoordinateReferenceSystem(3857))) # Now change the project context tc2 = QgsCoordinateTransformContext() p.setTransformContext(tc2) self.assertFalse(p.transformContext().hasTransform(QgsCoordinateReferenceSystem(4326), QgsCoordinateReferenceSystem(3857))) self.assertFalse(rl.transformContext().hasTransform(QgsCoordinateReferenceSystem(4326), QgsCoordinateReferenceSystem(3857))) p.setTransformContext(self.ctx) self.assertTrue(p.transformContext().hasTransform(QgsCoordinateReferenceSystem(4326), QgsCoordinateReferenceSystem(3857))) self.assertTrue(rl.transformContext().hasTransform(QgsCoordinateReferenceSystem(4326), QgsCoordinateReferenceSystem(3857)))