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)
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 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]
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 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()
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]
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 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