Browse Source

refactored getname

dev
Clemens Richter 9 years ago
parent
commit
1fcf184b97
  1. 55
      python/tmc_classes.py

55
python/tmc_classes.py

@ -110,7 +110,12 @@ class lcl:
def get_point(self,LCD): def get_point(self,LCD):
return self.points[LCD] return self.points[LCD]
def get_name(self,NID): def get_name(self,NID):
return self.names[NID]["NAME"] if NID=u"":
return u""
elif self.names.has_key(int(NID))
return self.names[int(NID)]["NAME"]
else:
return u"invalid nid: %i"%int(NID)
def dat_to_tuple_dict(self,lcldir,filename,encoding,tuple_name): def dat_to_tuple_dict(self,lcldir,filename,encoding,tuple_name):
cache_version_str="v1.0" cache_version_str="v1.0"
md5_hash=hashlib.md5(open(lcldir+filename, 'rb').read()+cache_version_str).hexdigest() md5_hash=hashlib.md5(open(lcldir+filename, 'rb').read()+cache_version_str).hexdigest()
@ -288,14 +293,18 @@ class tmc_area:
self.subtype=0 self.subtype=0
print("location subtype %s is invalid in location %i"%(area.STCD,lcn)) print("location subtype %s is invalid in location %i"%(area.STCD,lcn))
loc_dict=self.lcl_obj.areas[lcn] loc_dict=self.lcl_obj.areas[lcn]
if not area.NID==u"": self.name=self.lcl_obj.get_name(area.NID)
self.name=self.lcl_obj.get_name(int(area.NID))
self.is_valid=True self.is_valid=True
elif self.tableobj.log or self.tableobj.debug: elif self.tableobj.log or self.tableobj.debug:
print("area not found %i"%lcn) print("area not found %i"%lcn)
elif self.tableobj.log or self.tableobj.debug: elif self.tableobj.log or self.tableobj.debug:
print("lcn not allocated %i"%lcn) print("lcn not allocated %i"%lcn)
class tmc_segment: class tmc_segment:
#used refs:
#~ segment (linref):
#~ first_name
#~ second_name
#~ roadnumber
def __init__(self,lcn,tableobj): def __init__(self,lcn,tableobj):
self.lcn=lcn self.lcn=lcn
self.tableobj=tableobj self.tableobj=tableobj
@ -322,16 +331,25 @@ class tmc_segment:
self.subtype=0 self.subtype=0
print("location subtype %s is invalid in location %i"%(segment.STCD,lcn)) print("location subtype %s is invalid in location %i"%(segment.STCD,lcn))
self.roadnumber=segment.ROADNUMBER self.roadnumber=segment.ROADNUMBER
if not segment.RNID==u"": self.roadname=self.lcl_obj.get_name(segment.RNID)
self.roadname=self.lcl_obj.get_name(int(segment.RNID)) self.first_name=self.lcl_obj.get_name(segment.N1ID)
if not segment.N1ID==u"": self.second_name=self.lcl_obj.get_name(segment.N2ID)
self.first_name=self.lcl_obj.get_name(int(segment.N1ID))
if not segment.N2ID==u"":
self.second_name=self.lcl_obj.get_name(int(segment.N2ID))
self.is_valid=True self.is_valid=True
elif self.tableobj.log or self.tableobj.debug: elif self.tableobj.log or self.tableobj.debug:
print("lcn not allocated %i"%lcn) print("lcn not allocated %i"%lcn)
class tmc_location: class tmc_location:
#~ used refs:
#~ is_valid
#~ get_extent_location()
#~ positive_offset
#~ negative_offset
#~ linRef
#~ has_koord
#~ first_name
#~ second_name
#~ roadnumber
#~ reflocs
#~ koord_str_google
def __ref_locs(self,lcn,name_string=""): def __ref_locs(self,lcn,name_string=""):
if(lcn==34196):#europe if(lcn==34196):#europe
#print("reached eu: "+name_string) #print("reached eu: "+name_string)
@ -339,7 +357,7 @@ class tmc_location:
else: else:
try: try:
area=self.lcl_obj.get_area(lcn) area=self.lcl_obj.get_area(lcn)
loc_name=self.lcl_obj.get_name(int(area.NID)).encode('utf-8') loc_name=self.lcl_obj.get_name(area.NID).encode('utf-8')
aref=int(area.POL_LCD) aref=int(area.POL_LCD)
return(self.__ref_locs(aref,name_string+","+loc_name)) return(self.__ref_locs(aref,name_string+","+loc_name))
except KeyError as e:#no area with lcn except KeyError as e:#no area with lcn
@ -375,18 +393,9 @@ class tmc_location:
except ValueError:#should not happen, all rows have int except ValueError:#should not happen, all rows have int
self.subtype=0 self.subtype=0
print("location subtype %s is invalid in location %i"%(self.point.STCD,lcn)) print("location subtype %s is invalid in location %i"%(self.point.STCD,lcn))
if not self.point.RNID==u"": self.roadname=self.lcl_obj.get_name(self.point.RNID)
self.roadname=self.lcl_obj.get_name(int(self.point.RNID)) self.first_name=self.lcl_obj.get_name(self.point.N1ID)
else: self.second_name=self.lcl_obj.get_name(self.point.N2ID)
self.roadname=""
if not self.point.N1ID==u"":
self.first_name=self.lcl_obj.get_name(int(self.point.N1ID))
else:
self.first_name=""
if not self.point.N2ID==u"":
self.second_name=self.lcl_obj.get_name(int(self.point.N2ID))
else:
self.second_name=""
if not self.point.SEG_LCD==u"": if not self.point.SEG_LCD==u"":
self.linRef=tmc_segment(int(self.point.SEG_LCD),tableobj) self.linRef=tmc_segment(int(self.point.SEG_LCD),tableobj)

Loading…
Cancel
Save