Exemple #1
0
    def testAppendStreetGrow(self):
        map = createMap(self.testdatadir)
        map.open(mode="a")

        streets, group = map.getLayerAndGroupByName("00_Streets")
        streets.open("a")

        # Add a new street
        newstreet = CellElementPolyline(((16.175, 58.5901), (16.176, 58.5905)), objtype=2)

        newbbox = newstreet.bboxrec.union(streets.bboxrec)
        newbbox = newbbox.buffer(streets.scale)
        
        streets.bboxrec = newbbox

        actual = Set([ce for ce in streets.getCellElements()])
        expected = actual.copy()
        
        newstreet.discretizeGeometry(streets.getCell(1))
#        streets.addCellElement(newstreet)
#        expected.add(newstreet)

        actual = Set([ce for ce in streets.getCellElements()])

        # Test if the new streets exists in the layer object
        self.assertEqual(actual, expected)
        
        # Test if the new street was written to file
        streets.close()
        del streets
        del map

        map = createMap(self.testdatadir)
        map.open(mode="a")

        streets, group = map.getLayerAndGroupByName("00_Streets")
        streets.open("r")

#        actual = Set([ce.serialize(cell) for ce in streets.getCellElements()])
#        expected = Set([ce.serialize(cell) for ce in expected])
        actual = Set([ce for ce in streets.getCellElements()])

        self.assertEqual(len(actual), len(expected))

        if actual != expected:
            print "difference:",actual.symmetric_difference(expected)
            print "actual: ",actual
            print "expected: ",expected

        
        self.assertEqual(actual, expected, "Cell elements don't match after read back")
Exemple #2
0
    def testAppendStreet(self):
        map = createMap(self.testdatadir)
        map.open(mode="a")

        streets, group = map.getLayerAndGroupByName("00_Streets")
        streets.open("a")

        actual = Set([ce for ce in streets.getCellElements()])
        expected = actual.copy()
        
        # Add a new street
        newstreet = CellElementPolyline(((16.185, 58.5912), (16.186, 58.5915)), objtype=2)
        newstreet.discretizeGeometry(streets.getCell(1))
        streets.addCellElement(newstreet)
        expected.add(newstreet)

        actual = Set([ce for ce in streets.getCellElements()])

        # Test if the new streets exists in the layer object
        self.assertEqual(actual, expected)
        
        # Test if the new street was written to file
        streets.close()
        del streets
        del map

        map = createMap(self.testdatadir)
        map.open()

        streets, group = map.getLayerAndGroupByName("00_Streets")
        streets.open("r")

#        actual = Set([ce.serialize(cell) for ce in streets.getCellElements()])
#        expected = Set([ce.serialize(cell) for ce in expected])
        actual = Set([ce for ce in streets.getCellElements()])
        expected = Set([ce for ce in expected])

        self.assertEqual(len(actual), len(expected))

        if actual != expected:
            for m in actual:
                if m.objtype == 2:
                    print streets.scale[0]
                    print m
                    print newstreet
                    print m==newstreet
        
        self.assertEqual(actual, expected, "Cell elements don't match after read back")
    def testAddGroup(self):
        map = createMap(self.testdatadir)
        map.open(mode='a')
        map.bigendian = True

        trailgroup = GroupNormal(map, name="00_Trails")

        map.addGroup(trailgroup)

        trailgroup.open("w")

        # Add trail layer and feature to new group
        trails = Layer(map,
                       name="00_Trails",
                       filename="00trails",
                       layertype=LayerTypePolyline)
        trails.open(mode='w')
        map.addLayer(trails)

        trails.setXScale(1e-5)
        trails.setYScale(1e-5)

        trailgroup.addLayer(trails)

        newtrailwkt = "LINESTRING (16.185 58.5912, 16.186 58.5915)"
        newtrail = CellElementPolyline(trails, wkt=newtrailwkt)
        newtrail.discretizeGeometry(trails.getCell(1))
        cellelementrefs = trails.addCellElement(newtrail)
        feature = FeatureNormal(name="Apgatan",
                                layerindex=map.getLayerIndex(trails),
                                objtype=29,
                                cellelementreflist=cellelementrefs)
        trailgroup.addFeature(feature)

        map.writeImage('trails.img')

        map.close()

        os.system("cat " + os.path.join(self.testdatadir, "00map.ini"))

        map = createMap(self.testdatadir)
        map.open('r')

        trailgroup = map.getGroupByName("00_Trails")

        trailgroup.open()

        print "Trails", trails
    def testAddGroup(self):
        map = createMap(self.testdatadir)
        map.open(mode='a')
        map.bigendian = True

        trailgroup = GroupNormal(map, name="00_Trails")

        map.addGroup(trailgroup)

        trailgroup.open("w")

        # Add trail layer and feature to new group
        trails = Layer(map, name="00_Trails", filename="00trails", layertype=LayerTypePolyline)
        trails.open(mode='w')
        map.addLayer(trails)

        trails.setXScale(1e-5)
        trails.setYScale(1e-5)

        trailgroup.addLayer(trails)
        
        newtrailwkt = "LINESTRING (16.185 58.5912, 16.186 58.5915)"
        newtrail = CellElementPolyline(trails, wkt=newtrailwkt)
        newtrail.discretizeGeometry(trails.getCell(1))
        cellelementrefs = trails.addCellElement(newtrail)
        feature = FeatureNormal(name="Apgatan", layerindex=map.getLayerIndex(trails),
                                objtype=29,
                                cellelementreflist=cellelementrefs)
        trailgroup.addFeature(feature)

        map.writeImage('trails.img')
        
        map.close()

        os.system("cat " +os.path.join(self.testdatadir, "00map.ini"))

        map = createMap(self.testdatadir)
        map.open('r')

        trailgroup = map.getGroupByName("00_Trails")

        trailgroup.open()
        
        print "Trails",trails
Exemple #5
0
    def testAddPolylineLayer(self):
        trails = Layer(self.map, name="Trails", filename="trails", layertype=LayerTypePolyline)
        trails.open(mode='w')
        self.map.addLayer(trails)

        # Add a new trail
        newtrail = CellElementPolyline(((16.185, 58.5912), (16.186, 58.5915)), objtype=0)
        newtrail.discretizeGeometry(trails.getCell(1))
        trails.addCellElement(newtrail)

        self.map.close()

        map = createMap(self.testdatadir)
        map.open()

        trails, group = map.getLayerAndGroupByName("Trails")

        trails.open('r')

        actual = Set(trails.getCellElements())

        expected = Set([newtrail])
        
        self.assertSetsEqual(actual, expected)
    def testAddFeature(self):
        map = createMap(self.testdatadir)
        map.open(mode='a')

        roads = map.getGroupByName("00_Roads")

        roads.open('a')

        streets, streetsgroup = map.getLayerAndGroupByName("00_Streets")

        nfeatures=roads.getFeatureCount()
        self.assertEqual(roads.getFeatureCount(), 29)
        
        newstreetwkt = "LINESTRING (16.185 58.5912, 16.186 58.5915)"
        newstreet = CellElementPolyline(streets, wkt=newstreetwkt)
        newstreet.discretizeGeometry(streets.getCell(1))
        cellelementrefs = streets.addCellElement(newstreet)

        feature = FeatureStreet(name="Apgatan",
                                layerindex=map.getLayerIndex(streets),
                                objtype=29,
                                cellelementreflist=cellelementrefs)

        roads.addFeature(feature)

        # Check that the # of features increased
        self.assertEqual(roads.getFeatureCount(), nfeatures+1)

        found=False
        for i in range(0, roads.getFeatureCount()):
            tmpfeature = roads.getFeatureByIndex(i)
            if tmpfeature == feature:
                print feature
                found = True
        self.assertTrue(found, "New feature not found")        

        names = [roads.getFeatureByIndex(i).name for i in range(0, roads.getFeatureCount())]

        self.assertTrue(areSorted(names), "Features are not sorted")

        print roads.layers

        # Re-open map and verify that the new feature is present
        map.close()
        del map
        del streets
        
        map = createMap(self.testdatadir)
        map.open()
        roads = map.getGroupByName("00_Roads")

        print roads.layers

        roads.open('r')

        found = False
        for i in range(0, roads.getFeatureCount()):
            tmpfeature = roads.getFeatureByIndex(i)
            print tmpfeature
            if tmpfeature.name == feature.name:
                streets, streetsgroup = map.getLayerAndGroupByName("00_Streets")
                if tmpfeature == feature:
                    found = True

        # Check that the # of features increased
        self.assertEqual(roads.getFeatureCount(), nfeatures+1)

        self.assertTrue(found, "New feature not found after re-opening the map")        
        names = [roads.getFeatureByIndex(i).name for i in range(0, roads.getFeatureCount())]
        self.assertTrue(areSorted(names), "Features are not sorted")
    def testAddFeature(self):
        map = createMap(self.testdatadir)
        map.open(mode='a')

        roads = map.getGroupByName("00_Roads")

        roads.open('a')

        streets, streetsgroup = map.getLayerAndGroupByName("00_Streets")

        nfeatures = roads.getFeatureCount()
        self.assertEqual(roads.getFeatureCount(), 29)

        newstreetwkt = "LINESTRING (16.185 58.5912, 16.186 58.5915)"
        newstreet = CellElementPolyline(streets, wkt=newstreetwkt)
        newstreet.discretizeGeometry(streets.getCell(1))
        cellelementrefs = streets.addCellElement(newstreet)

        feature = FeatureStreet(name="Apgatan",
                                layerindex=map.getLayerIndex(streets),
                                objtype=29,
                                cellelementreflist=cellelementrefs)

        roads.addFeature(feature)

        # Check that the # of features increased
        self.assertEqual(roads.getFeatureCount(), nfeatures + 1)

        found = False
        for i in range(0, roads.getFeatureCount()):
            tmpfeature = roads.getFeatureByIndex(i)
            if tmpfeature == feature:
                print feature
                found = True
        self.assertTrue(found, "New feature not found")

        names = [
            roads.getFeatureByIndex(i).name
            for i in range(0, roads.getFeatureCount())
        ]

        self.assertTrue(areSorted(names), "Features are not sorted")

        print roads.layers

        # Re-open map and verify that the new feature is present
        map.close()
        del map
        del streets

        map = createMap(self.testdatadir)
        map.open()
        roads = map.getGroupByName("00_Roads")

        print roads.layers

        roads.open('r')

        found = False
        for i in range(0, roads.getFeatureCount()):
            tmpfeature = roads.getFeatureByIndex(i)
            print tmpfeature
            if tmpfeature.name == feature.name:
                streets, streetsgroup = map.getLayerAndGroupByName(
                    "00_Streets")
                if tmpfeature == feature:
                    found = True

        # Check that the # of features increased
        self.assertEqual(roads.getFeatureCount(), nfeatures + 1)

        self.assertTrue(found,
                        "New feature not found after re-opening the map")
        names = [
            roads.getFeatureByIndex(i).name
            for i in range(0, roads.getFeatureCount())
        ]
        self.assertTrue(areSorted(names), "Features are not sorted")