diff --git a/python/tmc_classes.py b/python/tmc_classes.py index 2b20b29..719f901 100644 --- a/python/tmc_classes.py +++ b/python/tmc_classes.py @@ -110,7 +110,12 @@ class lcl: def get_point(self,LCD): return self.points[LCD] 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): cache_version_str="v1.0" md5_hash=hashlib.md5(open(lcldir+filename, 'rb').read()+cache_version_str).hexdigest() @@ -288,14 +293,18 @@ class tmc_area: self.subtype=0 print("location subtype %s is invalid in location %i"%(area.STCD,lcn)) loc_dict=self.lcl_obj.areas[lcn] - if not area.NID==u"": - self.name=self.lcl_obj.get_name(int(area.NID)) + self.name=self.lcl_obj.get_name(area.NID) self.is_valid=True elif self.tableobj.log or self.tableobj.debug: print("area not found %i"%lcn) elif self.tableobj.log or self.tableobj.debug: 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): self.lcn=lcn self.tableobj=tableobj @@ -322,16 +331,25 @@ class tmc_segment: self.subtype=0 print("location subtype %s is invalid in location %i"%(segment.STCD,lcn)) self.roadnumber=segment.ROADNUMBER - if not segment.RNID==u"": - self.roadname=self.lcl_obj.get_name(int(segment.RNID)) - if not segment.N1ID==u"": - 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.roadname=self.lcl_obj.get_name(segment.RNID) + self.first_name=self.lcl_obj.get_name(segment.N1ID) + self.second_name=self.lcl_obj.get_name(segment.N2ID) self.is_valid=True elif self.tableobj.log or self.tableobj.debug: print("lcn not allocated %i"%lcn) 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=""): if(lcn==34196):#europe #print("reached eu: "+name_string) @@ -339,7 +357,7 @@ class tmc_location: else: try: 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) return(self.__ref_locs(aref,name_string+","+loc_name)) except KeyError as e:#no area with lcn @@ -375,18 +393,9 @@ class tmc_location: except ValueError:#should not happen, all rows have int self.subtype=0 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(int(self.point.RNID)) - else: - 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="" + self.roadname=self.lcl_obj.get_name(self.point.RNID) + self.first_name=self.lcl_obj.get_name(self.point.N1ID) + self.second_name=self.lcl_obj.get_name(self.point.N2ID) if not self.point.SEG_LCD==u"": self.linRef=tmc_segment(int(self.point.SEG_LCD),tableobj)