def __init__(self, mapdirobj = None, gpsimage = True, maptype = MapTypeNormal, mapnumber=0, bigendian = False, inifile = None, hasmultiplemaps=True): self.gpsimage = gpsimage self.maptype = maptype self._mapnumber = mapnumber if mapdirobj == None: self.mapdir = mapdir.MapDirectory() else: if not isinstance(mapdirobj, mapdir.MapDirectory): raise ValueError("mapdirobj should be a MapDirectory object") self.mapdir = mapdirobj self.name = "Map" self.mode = None # Open mode ['r','w','a'] self.debug=False self.has_zip = True self.has_marine = (maptype == MapTypeStreetRoute) self._inifile = inifile self.inmemory = False ## If true all processing will be done in memory if maptype == MapTypeStreetRoute: self.routingcfg = routing.RoutingConfig() else: self.routingcfg = None ## Set endian self.bigendian = bigendian # Groups self._poigroup=None self.groups=[] self._searchgroups = [] ## Searchable group indices # Tables if maptype == MapTypeStreetRoute: self._ziptables = (0,1,0,0) else: self._ziptables = (0,0) self._marinetables = (0,1,0,1) ## Bounding box and bounding rect self._bboxrec = None self._boundrec = Rec((-198.316818, -99.475197), (198.316818, 99.475197)) ## Resolution and reference point self._scale = self.defaultscale self._refpoint = N.array([0.0, 0.0]) ## Config file self._cfg = ConfigParserUpper() self._initcfg() ## Layer and POI config self._laycfg = LayerConfig() self._poiconfig = POILayerConfig() ## Database self._db = None ## Other parameters otherparameters = ( ## Name, default value, description ('startscale', 4500.0, 'Start scale'), ('laycolor', 0, 'Unknown'), ('copyrightholders', ['Unknown'], 'Copyright holders'), ) ## Create properties for these parameters for param in otherparameters: setattr(self, '_' + param[0], param[1]) getfunc = lambda self, val: self.set_parameter('_'+param[0]) setfunc = lambda self, val: self.set_parameter('_'+param[0], val) setattr(self.__class__, param[0], property(getfunc, setfunc, doc=param[2])) ## Update config self._updatecfg() ## hasmultiplemaps is True if mapdir can have multiple maps with prefixes before their files self.hasmultiplemaps = hasmultiplemaps