|
|
|
|
@ -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: |
|
|
|
|
#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) |
|
|
|
|
|