示例#1
0
    def testAddPointLayer(self):

        points = Layer(self.map, name="Points", filename="points", layertype=LayerTypePoint)
        points.open(mode='w')
        self.map.addLayer(points)

        # Add a new point
        newpoint = CellElementPoint((16.185, 58.5912), objtype=10)
        newpoint.discretizeGeometry(points.getCell(1))
        points.addCellElement(newpoint)

        self.map.close()

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

        points, group = map.getLayerAndGroupByName("Points")

        points.open('r')

        actual = Set(points.getCellElements())

        expected = Set([newpoint])
        
        self.assertSetsEqual(actual, expected)
示例#2
0
    def testcalc_cell_extents(self):
        layer = Layer(self.m, name="The Layer", filename="layer", layertype=LayerTypePoint, nlevels = 1)

        lbb = layer._bbox.todiscrete(layer.refpoint, layer.scale)

        self.assertEqual(lbb, Rec((-3000,-1000), (2000,4000)))

        self.assertEqual(layer.calc_cell_extents(1), lbb)

        self.assertEqual(layer.calc_cell_extents(2), Rec((-3000, -1000),(-500, 1500)))
示例#3
0
    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
示例#4
0
def createMapFromBLX(mapdir, blxfile):
    north, south, east, west = getBBox(blxfile)

    m = Map(mapdir)
    m.open('w')
    m.bbox = ((west, south), (east,north))

    ## Add dummy layer
    trails = Layer(m, name="00_dummy", filename="00dummy", layertype=LayerTypePolyline)
    trails.open(mode='w')
    trailstyle = DetailMapLayerStyle()
    m.addLayer(trails, layerstyle = trailstyle)

    roadsgroup = m.getGroupByName('00_Roads')
    roadsgroup.addLayer(trails)

    m.addTopo(blxfile)
    m.close()
    mapdir.write()
示例#5
0
    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
示例#6
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)
示例#7
0
    def testAddPoint(self):
        outimage = os.path.join(self.tempdir.dir, 'test.imi')

        mi = MapImage(outimage)
        mi.open('w')
        
        m = mi.createMap()

        m.scale = 1e-3
        m.bbox = ((-3.0, -4.0), (2.0, 1.0))

        m.open("w")
        
        layer = Layer(m, name="The Layer", filename="layer", layertype=LayerTypePoint, nlevels = 1)
        m.addLayer(layer)
        layer.open("w")

        point = CellElementPoint((-1.5006, -3.5006))
        layer.addCellElement(point)

        cell = layer.getCell(point.cellnum)

        self.assertEqual(point.cellnum, 4)

        point.discretizeGeometry(layer.getCell(point.cellnum))

        self.assertAlmostEqual(point.x, -1.501)
        self.assertAlmostEqual(point.y, -3.501)

        mi.close()

        ## Read back
        mi = MapImage(outimage)
        mi.open('r')

        m = mi.maps[0]
示例#8
0
    def testCreateLayerSansBBox(self):
        m = self.m
        
        layer = Layer(m, name="The Layer", filename="layer", layertype=LayerTypePolyline)
        m.addLayer(layer)
        layer.open("w")

        line = CellElementPolyline(((16.185, 58.5912), (16.186, 58.5915)), objtype=2)
        layer.addCellElement(line)

        self.mi.close()

        ## Read back
        mi = MapImage(self.outimage)
        mi.open('r')

        m = mi.maps[0]
示例#9
0
    def testSimple(self):
        refmap = Map(MapDirectory('./layerdata8'))
        refmap.open('r')
        reflayer = refmap.getLayerByName('00_Trails_4WD')
        reflayer.open('r')
        
        map = Map(MapDirectory(self.testdatadir.dir), maptype=MapTypeImage)
        map.open("w")
        map.bbox = ((-18.04, 28.4), (-17.7, 28.89))
        map.bbox = refmap.bbox

        ## Add trails layer
        trails = Layer(map, name="00_Trails", filename="00trails", layertype=LayerTypePolyline)
        trails.open(mode='w')
        trailstyle = DetailMapLayerStyle()
        trailstyle.style = 'TRAIL_LINE'
        map.addLayer(trails, layerstyle = trailstyle)

        trailwkt = 'LINESTRING (-17.768953959275908 28.775591075650038,-17.768678531255482 28.7757692937809,-17.768346397466143 28.775890806142854,-17.767981860380281 28.775923209439377,-17.767779339777025 28.775923209439377,-17.767212282087907 28.775874604494597,-17.766669526871183 28.775777394605033,-17.766151074126846 28.775647781418947,-17.765438201603384 28.775388555046781,-17.764879244738399 28.775145530322874,-17.764514707652538 28.774943009719617,-17.764239279632111 28.77467568252332,-17.763040357660834 28.774238238020288,-17.762813534585188 28.774189633075505,-17.762513804092368 28.774222036372027,-17.762513804092368 28.774222036372027)'
        trail = CellElementPolyline(trails, wkt=trailwkt, objtype=11)
        cellelementrefs = trails.addCellElement(trail)
        print "cellelementrefs", cellelementrefs

        ## Add group
        roadsgroup = map.getGroupByName('00_Roads')
        roadsgroup.addLayer(trails)
        feature = FeatureNormal(name="Apstigen", layerindex=map.getLayerIndex(trails),
                                objtype=29,
                                cellelementreflist=cellelementrefs)
        roadsgroup.addFeature(feature)

        ## Add topo
        map.addTopo('layerdata8/00t0.blx')
#        map.mapdir.copyfile('layerdata8/topo3d.ini')
        map.close()
        
        map.writeImage('trails.imi')
        
        self.assertTrue('00map.ini' in os.listdir(self.testdatadir.dir))

        files = os.listdir(self.testdatadir.dir)
        expectedfiles = Set(('bmp2bit.ics', 'bmp4bit.ics', '00map.ini', 'add_maps.cfg', 'db00.dbd' ,
                             '00trails.lay', '00trails.clt',
                             'gr0.ext', 'gr0.clp', 'gr0.aux',
                             'gr1.ext', 'gr1.clp', 'gr1.aux',
                             'gr2.ext', 'gr2.clp', 'gr2.aux',
                             'gr3.ext', 'gr3.clp', 'gr3.aux',
                             '00z.dat', '00cn.dat',
                             '00t0.blx', 'topo3d.ini'))
        self.assertEqual(expectedfiles, Set(files))

        expectedinitfile = ""

        inifile = open(os.path.join(self.testdatadir.dir, '00map.ini'))

        print inifile.read()

        map = Map(MapDirectory(self.testdatadir.dir))
        map.open("r")
        roadsgroup = map.getGroupByName('00_Roads')
        roadsgroup.open('r')
        print "features: ", list(roadsgroup.getFeatures())
        trails = map.getLayerByName('00_Trails')
        trails.open('r')
        trails.check()
        print trails.cellnumbers