Changed a lot of names in the geolocation module
This commit is contained in:
parent
8ab3962e6c
commit
44d5ba81ed
@ -23,7 +23,7 @@
|
|||||||
#Add timezone setting for exif date
|
#Add timezone setting for exif date
|
||||||
#Change the background of TitledFrames from the wnidow background
|
#Change the background of TitledFrames from the wnidow background
|
||||||
#Make computasionally heavy processes like searching for a point in gpx file in a sepparate thread asynchronously
|
#Make computasionally heavy processes like searching for a point in gpx file in a sepparate thread asynchronously
|
||||||
#remove reference to GPS and fix gnss/gpx wording in codebase and json output
|
#Do doable TODOs
|
||||||
|
|
||||||
#import stuff that's needed for both GUI and check mode plus tkinter to make inheritance easier (for now)
|
#import stuff that's needed for both GUI and check mode plus tkinter to make inheritance easier (for now)
|
||||||
import sys
|
import sys
|
||||||
@ -142,23 +142,24 @@ def main():
|
|||||||
"have_data": False,
|
"have_data": False,
|
||||||
"valid_data_source": "uninitialised",
|
"valid_data_source": "uninitialised",
|
||||||
"display_map_tile_server" : "",
|
"display_map_tile_server" : "",
|
||||||
"source_gpx_file":{
|
"source_gnss_track_file":{
|
||||||
"have_data": False,
|
"have_data": False,
|
||||||
"GPS_latitude_decimal": 100000,
|
"Latitude_decimal": 100000,
|
||||||
"GPS_longitude_decimal": 100000,
|
"Longitude_decimal": 100000,
|
||||||
"gpx_device_time_offset_seconds": 0,
|
"gnss_device_time_offset_seconds": 0,
|
||||||
"gpx_file_path": "",
|
"file_path": "",
|
||||||
"gpx_file_sha512sum":""
|
"file_sha512sum":"",
|
||||||
|
"file_type": ""
|
||||||
},
|
},
|
||||||
"source_original_media_file":{
|
"source_original_media_file":{
|
||||||
"have_data": False,
|
"have_data": False,
|
||||||
"GPS_latitude_decimal": 100000,
|
"Latitude_decimal": 100000,
|
||||||
"GPS_longitude_decimal": 100000,
|
"Longitude_decimal": 100000,
|
||||||
},
|
},
|
||||||
"source_manual_entry":{
|
"source_manual_entry":{
|
||||||
"have_data": False,
|
"have_data": False,
|
||||||
"GPS_latitude_decimal": 100000,
|
"Latitude_decimal": 100000,
|
||||||
"GPS_longitude_decimal": 100000,
|
"Longitude_decimal": 100000,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"constants": {
|
"constants": {
|
||||||
@ -177,7 +178,7 @@ def main():
|
|||||||
exif_data = image._getexif()
|
exif_data = image._getexif()
|
||||||
exif_data_ = image.getexif()
|
exif_data_ = image.getexif()
|
||||||
|
|
||||||
def _convert_to_degress(value):
|
def nautical_to_decimal(value):
|
||||||
d = float(value[0])
|
d = float(value[0])
|
||||||
m = float(value[1])
|
m = float(value[1])
|
||||||
s = float(value[2])
|
s = float(value[2])
|
||||||
@ -193,28 +194,28 @@ def main():
|
|||||||
utc_dt = dt.replace(tzinfo=timezone.utc)
|
utc_dt = dt.replace(tzinfo=timezone.utc)
|
||||||
data["capture_timestamp"]["capture_start_on_original_metadata_timestamp"]=int(utc_dt.timestamp()) # Unix epoch time
|
data["capture_timestamp"]["capture_start_on_original_metadata_timestamp"]=int(utc_dt.timestamp()) # Unix epoch time
|
||||||
elif tag == 'GPSInfo':
|
elif tag == 'GPSInfo':
|
||||||
gps_data = {}
|
|
||||||
for t in value:
|
for t in value:
|
||||||
sub_decoded = GPSTAGS.get(t, t)
|
sub_decoded = GPSTAGS.get(t, t)
|
||||||
if sub_decoded == "GPSLatitude":
|
if sub_decoded == "GPSLatitude":
|
||||||
gps_latitude = value[t]
|
latitude_nautical = value[t]
|
||||||
elif sub_decoded == "GPSLatitudeRef":
|
elif sub_decoded == "GPSLatitudeRef":
|
||||||
gps_latitude_ref = value[t]
|
latitude_nautical_ref = value[t]
|
||||||
elif sub_decoded == "GPSLongitude":
|
elif sub_decoded == "GPSLongitude":
|
||||||
gps_longitude = value[t]
|
longitude_nautical = value[t]
|
||||||
elif sub_decoded == "GPSLongitudeRef":
|
elif sub_decoded == "GPSLongitudeRef":
|
||||||
gps_longitude_ref = value[t]
|
longitude_nautical_ref = value[t]
|
||||||
|
|
||||||
if gps_latitude and gps_latitude_ref and gps_longitude and gps_longitude_ref:
|
if latitude_nautical and latitude_nautical_ref and longitude_nautical and longitude_nautical_ref:
|
||||||
lat = _convert_to_degress(gps_latitude)
|
latitude_decimal = nautical_to_decimal(latitude_nautical)
|
||||||
if gps_latitude_ref != "N":
|
if latitude_nautical_ref != "N":
|
||||||
lat = 0 - lat
|
latitude_decimal = 0 - latitude_decimal
|
||||||
|
|
||||||
lon = _convert_to_degress(gps_longitude)
|
longitude_decimal = nautical_to_decimal(longitude_nautical)
|
||||||
if gps_longitude_ref != "E":
|
if longitude_nautical_ref != "E":
|
||||||
lon = 0 - lon
|
longitude_decimal = 0 - longitude_decimal
|
||||||
data["geolocation_data"]["source_original_media_file"]["GPS_latitude_decimal"]=lat
|
|
||||||
data["geolocation_data"]["source_original_media_file"]["GPS_longitude_decimal"]=lon
|
data["geolocation_data"]["source_original_media_file"]["Latitude_decimal"]=latitude_decimal
|
||||||
|
data["geolocation_data"]["source_original_media_file"]["Longitude_decimal"]=longitude_decimal
|
||||||
data["geolocation_data"]["source_original_media_file"]["have_data"]=True
|
data["geolocation_data"]["source_original_media_file"]["have_data"]=True
|
||||||
|
|
||||||
def save_and_exit():
|
def save_and_exit():
|
||||||
@ -273,16 +274,17 @@ def main():
|
|||||||
gpx_file = open(filepath, 'r')
|
gpx_file = open(filepath, 'r')
|
||||||
gpx = gpxpy.parse(gpx_file)
|
gpx = gpxpy.parse(gpx_file)
|
||||||
point_found=0
|
point_found=0
|
||||||
data["geolocation_data"]["source_gpx_file"]["have_data"]=False
|
data["geolocation_data"]["source_gnss_track_file"]["have_data"]=False
|
||||||
for track in gpx.tracks:
|
for track in gpx.tracks:
|
||||||
for segment in track.segments:
|
for segment in track.segments:
|
||||||
for point in segment.points:
|
for point in segment.points:
|
||||||
if(point.time == datetime.fromtimestamp(data["events"][0]["timestamp"]-data["geolocation_data"]["source_gpx_file"]["gpx_device_time_offset_seconds"],tz=timezone.utc)): #TODO don't hardcode this value
|
if(point.time == datetime.fromtimestamp(data["events"][0]["timestamp"]-data["geolocation_data"]["source_gnss_track_file"]["gnss_device_time_offset_seconds"],tz=timezone.utc)): #TODO don't hardcode this value
|
||||||
data["geolocation_data"]["source_gpx_file"]["GPS_longitude_decimal"]=point.longitude
|
data["geolocation_data"]["source_gnss_track_file"]["Longitude_decimal"]=point.longitude
|
||||||
data["geolocation_data"]["source_gpx_file"]["GPS_latitude_decimal"]=point.latitude
|
data["geolocation_data"]["source_gnss_track_file"]["Latitude_decimal"]=point.latitude
|
||||||
data["geolocation_data"]["source_gpx_file"]["gpx_file_path"]=filepath
|
data["geolocation_data"]["source_gnss_track_file"]["file_path"]=filepath
|
||||||
data["geolocation_data"]["source_gpx_file"]["gpx_file_sha512sum"]=sha512Checksum(filepath)
|
data["geolocation_data"]["source_gnss_track_file"]["file_sha512sum"]=sha512Checksum(filepath)
|
||||||
data["geolocation_data"]["source_gpx_file"]["have_data"]=True
|
data["geolocation_data"]["source_gnss_track_file"]["file_type"]="gpx"
|
||||||
|
data["geolocation_data"]["source_gnss_track_file"]["have_data"]=True
|
||||||
point_found=1
|
point_found=1
|
||||||
break
|
break
|
||||||
if point_found==1:
|
if point_found==1:
|
||||||
@ -295,31 +297,31 @@ def main():
|
|||||||
return 0
|
return 0
|
||||||
|
|
||||||
def Geolocation_update(*args):
|
def Geolocation_update(*args):
|
||||||
manual_lat=gnss_manual_entry_source.get_lat()
|
manual_latitude=geolocation_manual_entry_source.get_latitude()
|
||||||
manual_long=gnss_manual_entry_source.get_long()
|
manual_longitude=geolocation_manual_entry_source.get_longitude()
|
||||||
data["geolocation_data"]["display_map_tile_server"]=map_tile_server_selection.get()
|
data["geolocation_data"]["display_map_tile_server"]=map_tile_server_selection.get()
|
||||||
data["geolocation_data"]["valid_data_source"]=human_name_to_source[gnss_source_selection.get()]
|
data["geolocation_data"]["valid_data_source"]=human_name_to_source[geolocation_source_selection.get()]
|
||||||
|
|
||||||
map_widget.set_tile_server(tilemap_url_option_map[data["geolocation_data"]["display_map_tile_server"]], max_zoom=tilemap_maxzoom_option_map[data["geolocation_data"]["display_map_tile_server"]])
|
map_widget.set_tile_server(tilemap_url_option_map[data["geolocation_data"]["display_map_tile_server"]], max_zoom=tilemap_maxzoom_option_map[data["geolocation_data"]["display_map_tile_server"]])
|
||||||
|
|
||||||
try:
|
try:
|
||||||
manual_lat=float(manual_lat)
|
manual_latitude=float(manual_latitude)
|
||||||
manual_long=float(manual_long)
|
manual_longitude=float(manual_longitude)
|
||||||
data["geolocation_data"]["source_manual_entry"]["GPS_latitude_decimal"]=manual_lat
|
data["geolocation_data"]["source_manual_entry"]["Latitude_decimal"]=manual_latitude
|
||||||
data["geolocation_data"]["source_manual_entry"]["GPS_longitude_decimal"]=manual_long
|
data["geolocation_data"]["source_manual_entry"]["Longitude_decimal"]=manual_longitude
|
||||||
data["geolocation_data"]["source_manual_entry"]["have_data"]=True
|
data["geolocation_data"]["source_manual_entry"]["have_data"]=True
|
||||||
except ValueError as e:
|
except ValueError as e:
|
||||||
data["geolocation_data"]["source_manual_entry"]["have_data"]=False
|
data["geolocation_data"]["source_manual_entry"]["have_data"]=False
|
||||||
|
|
||||||
global map_marker
|
global map_marker
|
||||||
if data["geolocation_data"][data["geolocation_data"]["valid_data_source"]]["have_data"] == True:
|
if data["geolocation_data"][data["geolocation_data"]["valid_data_source"]]["have_data"] == True:
|
||||||
new_lat=data["geolocation_data"][data["geolocation_data"]["valid_data_source"]]["GPS_latitude_decimal"]
|
new_latitude=data["geolocation_data"][data["geolocation_data"]["valid_data_source"]]["Latitude_decimal"]
|
||||||
new_long=data["geolocation_data"][data["geolocation_data"]["valid_data_source"]]["GPS_longitude_decimal"]
|
new_longitude=data["geolocation_data"][data["geolocation_data"]["valid_data_source"]]["Longitude_decimal"]
|
||||||
if map_marker == None:
|
if map_marker == None:
|
||||||
map_marker=map_widget.set_marker(new_lat,new_long)
|
map_marker=map_widget.set_marker(new_latitude,new_longitude)
|
||||||
else:
|
else:
|
||||||
map_marker.set_position(new_lat,new_long)
|
map_marker.set_position(new_latitude,new_longitude)
|
||||||
map_widget.set_position(new_lat,new_long)
|
map_widget.set_position(new_latitude,new_longitude)
|
||||||
data["geolocation_data"]["have_data"]=True
|
data["geolocation_data"]["have_data"]=True
|
||||||
else:
|
else:
|
||||||
data["geolocation_data"]["have_data"]=False
|
data["geolocation_data"]["have_data"]=False
|
||||||
@ -329,33 +331,33 @@ def main():
|
|||||||
|
|
||||||
def Geolocation_update_time(*args):
|
def Geolocation_update_time(*args):
|
||||||
try:
|
try:
|
||||||
data["geolocation_data"]["source_gpx_file"]["gpx_device_time_offset_seconds"]=float(gpx_device_time_offset.get())
|
data["geolocation_data"]["source_gnss_track_file"]["gnss_device_time_offset_seconds"]=float(gnss_device_time_offset.get())
|
||||||
except ValueError as e:
|
except ValueError as e:
|
||||||
data["geolocation_data"]["source_gpx_file"]["gpx_device_time_offset_seconds"]=0
|
data["geolocation_data"]["source_gnss_track_file"]["gnss_device_time_offset_seconds"]=0
|
||||||
for file in os.listdir("/home/user/gnss_test/"):
|
for file in os.listdir("/home/user/gnss_test/"): #TODO TODO TODO TODO
|
||||||
if file.endswith(".gpx"):
|
if file.endswith(".gpx"):
|
||||||
#print("Trying "+str(os.path.join("/home/user/gnss_test/", file)))
|
#print("Trying "+str(os.path.join("/home/user/gnss_test/", file)))
|
||||||
if try_gpx_file(os.path.join("/home/user/gnss_test/", file)) == 0:
|
if try_gpx_file(os.path.join("/home/user/gnss_test/", file)) == 0:
|
||||||
break
|
break
|
||||||
if data["geolocation_data"]["source_gpx_file"]["have_data"] == True :
|
if data["geolocation_data"]["source_gnss_track_file"]["have_data"] == True :
|
||||||
gnss_gpx_file_source.update_lat( data["geolocation_data"]["source_gpx_file"]["GPS_latitude_decimal"])
|
geolocation_gnss_track_file_source.update_latitude( data["geolocation_data"]["source_gnss_track_file"]["Latitude_decimal"])
|
||||||
gnss_gpx_file_source.update_long( data["geolocation_data"]["source_gpx_file"]["GPS_longitude_decimal"])
|
geolocation_gnss_track_file_source.update_longitude( data["geolocation_data"]["source_gnss_track_file"]["Longitude_decimal"])
|
||||||
else:
|
else:
|
||||||
gnss_gpx_file_source.update_lat("")
|
geolocation_gnss_track_file_source.update_latitude("")
|
||||||
gnss_gpx_file_source.update_long("")
|
geolocation_gnss_track_file_source.update_longitude("")
|
||||||
Geolocation_update()
|
Geolocation_update()
|
||||||
|
|
||||||
gnss_location_data_frame=TitledFrame(root,[("[3]", ("TkDefaultFont", 12, "bold")),("Geolocation data", ("TkDefaultFont", 10))])
|
geolocation_data_frame=TitledFrame(root,[("[3]", ("TkDefaultFont", 12, "bold")),("Geolocation data", ("TkDefaultFont", 10))])
|
||||||
|
|
||||||
#Map Widget
|
#Map Widget
|
||||||
map_widget = tkintermapview.TkinterMapView(gnss_location_data_frame, width=400, height=250, corner_radius=10)
|
map_widget = tkintermapview.TkinterMapView(geolocation_data_frame, width=400, height=250, corner_radius=10)
|
||||||
map_widget.set_position(data["geolocation_data"]["source_gpx_file"]["GPS_latitude_decimal"], data["geolocation_data"]["source_gpx_file"]["GPS_longitude_decimal"])
|
map_widget.set_position(data["geolocation_data"]["source_gnss_track_file"]["Latitude_decimal"], data["geolocation_data"]["source_gnss_track_file"]["Longitude_decimal"])
|
||||||
map_widget.set_zoom(15)
|
map_widget.set_zoom(15)
|
||||||
global map_marker
|
global map_marker
|
||||||
map_marker=None
|
map_marker=None
|
||||||
|
|
||||||
|
|
||||||
map_tile_server_selection=TitledDropdown(gnss_location_data_frame,"Map tile server",(
|
map_tile_server_selection=TitledDropdown(geolocation_data_frame,"Map tile server",(
|
||||||
"OpenStreetMaps online",
|
"OpenStreetMaps online",
|
||||||
"Google Maps default online",
|
"Google Maps default online",
|
||||||
"Google Maps satelite online"),0,callback=Geolocation_update)
|
"Google Maps satelite online"),0,callback=Geolocation_update)
|
||||||
@ -370,50 +372,50 @@ def main():
|
|||||||
"Google Maps satelite online": 22
|
"Google Maps satelite online": 22
|
||||||
}
|
}
|
||||||
|
|
||||||
gnss_source_selection=TitledDropdown(gnss_location_data_frame,"Select geolocation source:",
|
geolocation_source_selection=TitledDropdown(geolocation_data_frame,"Select geolocation source:",
|
||||||
("Original media file",
|
("Original media file",
|
||||||
"GPX file",
|
"GPX file",
|
||||||
"Manual entry")
|
"Manual entry")
|
||||||
,0,callback=Geolocation_update)
|
,0,callback=Geolocation_update)
|
||||||
human_name_to_source = {
|
human_name_to_source = {
|
||||||
"Original media file": "source_original_media_file",
|
"Original media file": "source_original_media_file",
|
||||||
"GPX file": "source_gpx_file",
|
"GPX file": "source_gnss_track_file",
|
||||||
"Manual entry": "source_manual_entry"
|
"Manual entry": "source_manual_entry"
|
||||||
}
|
}
|
||||||
gpx_device_time_offset=TitledEntry(gnss_location_data_frame,"GPX device time offset (seconds)",data["geolocation_data"]["source_gpx_file"]["gpx_device_time_offset_seconds"],callback=Geolocation_update_time)
|
gnss_device_time_offset=TitledEntry(geolocation_data_frame,"GNSS device time offset (seconds)",data["geolocation_data"]["source_gnss_track_file"]["gnss_device_time_offset_seconds"],callback=Geolocation_update_time)
|
||||||
|
|
||||||
|
|
||||||
#Sources
|
#Sources
|
||||||
gnss_gpx_file_source=Geolocation_source(gnss_location_data_frame,
|
geolocation_gnss_track_file_source=Geolocation_source(geolocation_data_frame,
|
||||||
"GPX file:",
|
"GPX file:",
|
||||||
data["geolocation_data"]["source_gpx_file"]["GPS_latitude_decimal"],
|
data["geolocation_data"]["source_gnss_track_file"]["Latitude_decimal"],
|
||||||
data["geolocation_data"]["source_gpx_file"]["GPS_longitude_decimal"],
|
data["geolocation_data"]["source_gnss_track_file"]["Longitude_decimal"],
|
||||||
tk.DISABLED)
|
tk.DISABLED)
|
||||||
if data["geolocation_data"]["source_original_media_file"]["have_data"] == True:
|
if data["geolocation_data"]["source_original_media_file"]["have_data"] == True:
|
||||||
source_file_lat=data["geolocation_data"]["source_original_media_file"]["GPS_latitude_decimal"]
|
source_file_latitude=data["geolocation_data"]["source_original_media_file"]["Latitude_decimal"]
|
||||||
source_file_long=data["geolocation_data"]["source_original_media_file"]["GPS_longitude_decimal"]
|
source_file_longitude=data["geolocation_data"]["source_original_media_file"]["Longitude_decimal"]
|
||||||
else:
|
else:
|
||||||
source_file_lat=""
|
source_file_latitude=""
|
||||||
source_file_long=""
|
source_file_longitude=""
|
||||||
gnss_original_media_file_source=Geolocation_source(gnss_location_data_frame,
|
geolocation_original_media_file_source=Geolocation_source(geolocation_data_frame,
|
||||||
"Original media file:",
|
"Original media file:",
|
||||||
source_file_lat,
|
source_file_latitude,
|
||||||
source_file_long,
|
source_file_longitude,
|
||||||
tk.DISABLED)
|
tk.DISABLED)
|
||||||
|
|
||||||
gnss_manual_entry_source=Geolocation_source(gnss_location_data_frame,
|
geolocation_manual_entry_source=Geolocation_source(geolocation_data_frame,
|
||||||
"Original media file:",
|
"Original media file:",
|
||||||
"",
|
"",
|
||||||
"",
|
"",
|
||||||
tk.NORMAL, callback=Geolocation_update)
|
tk.NORMAL, callback=Geolocation_update)
|
||||||
|
|
||||||
map_widget.grid (row=0,column=0,pady=(0,3),padx=5)
|
map_widget.grid (row=0,column=0,pady=(0,3),padx=5)
|
||||||
map_tile_server_selection.grid (row=1,column=0,pady=(5,2),sticky='we')
|
map_tile_server_selection.grid (row=1,column=0,pady=(5,2),sticky='we')
|
||||||
gnss_source_selection.grid (row=2,column=0,pady=(2,2),sticky='we')
|
geolocation_source_selection.grid (row=2,column=0,pady=(2,2),sticky='we')
|
||||||
gpx_device_time_offset.grid (row=3,column=0,pady=(2,5),sticky='w')
|
gnss_device_time_offset.grid (row=3,column=0,pady=(2,5),sticky='w')
|
||||||
gnss_gpx_file_source.grid (row=4,column=0,sticky='we')
|
geolocation_gnss_track_file_source.grid (row=4,column=0,sticky='we')
|
||||||
gnss_original_media_file_source.grid (row=5,column=0,sticky='we')
|
geolocation_original_media_file_source.grid (row=5,column=0,sticky='we')
|
||||||
gnss_manual_entry_source.grid (row=6,column=0,sticky='we')
|
geolocation_manual_entry_source.grid (row=6,column=0,sticky='we')
|
||||||
|
|
||||||
#Geolocation_update_time() #Note, not needed because the capture timestamp callback will call it
|
#Geolocation_update_time() #Note, not needed because the capture timestamp callback will call it
|
||||||
|
|
||||||
@ -573,7 +575,7 @@ def main():
|
|||||||
#Root frame layout
|
#Root frame layout
|
||||||
display_image_frame .grid(row=0,column=0,sticky='n')
|
display_image_frame .grid(row=0,column=0,sticky='n')
|
||||||
editables .grid(row=0,column=1,rowspan=2,sticky='ns')
|
editables .grid(row=0,column=1,rowspan=2,sticky='ns')
|
||||||
gnss_location_data_frame .grid(row=1,column=0)
|
geolocation_data_frame .grid(row=1,column=0)
|
||||||
timeline_frame .grid(row=2,column=0,columnspan=2)
|
timeline_frame .grid(row=2,column=0,columnspan=2)
|
||||||
|
|
||||||
#editables frame layout
|
#editables frame layout
|
||||||
@ -583,13 +585,13 @@ def main():
|
|||||||
constants_frame .grid(row=4,column=0,sticky="we",pady=5)
|
constants_frame .grid(row=4,column=0,sticky="we",pady=5)
|
||||||
# light_table .grid(row=6,column=0,sticky="we",pady=5)
|
# light_table .grid(row=6,column=0,sticky="we",pady=5)
|
||||||
|
|
||||||
#This updates the default gnss source after the timestamp callback calls the gnss callback that looks through all the files
|
#This updates the default geolocation source after the timestamp callback calls the geolocation callback that looks through all the files
|
||||||
if data["geolocation_data"]["source_original_media_file"]["have_data"] == True :
|
if data["geolocation_data"]["source_original_media_file"]["have_data"] == True :
|
||||||
gnss_source_selection.set(0)
|
geolocation_source_selection.set(0)
|
||||||
elif data["geolocation_data"]["source_gpx_file"]["have_data"] == True :
|
elif data["geolocation_data"]["source_gnss_track_file"]["have_data"] == True :
|
||||||
gnss_source_selection.set(1)
|
geolocation_source_selection.set(1)
|
||||||
else:
|
else:
|
||||||
gnss_source_selection.set(2)
|
geolocation_source_selection.set(2)
|
||||||
|
|
||||||
#Focus debug found online
|
#Focus debug found online
|
||||||
#def debug_focus(event):
|
#def debug_focus(event):
|
||||||
@ -793,13 +795,13 @@ class Geolocation_source(tk.Frame):
|
|||||||
if callback != None:
|
if callback != None:
|
||||||
self.lat_var.trace_add("write", callback)
|
self.lat_var.trace_add("write", callback)
|
||||||
self.long_var.trace_add("write", callback)
|
self.long_var.trace_add("write", callback)
|
||||||
def get_lat(self):
|
def get_latitude(self):
|
||||||
return self.lat_var.get()
|
return self.lat_var.get()
|
||||||
def get_long(self):
|
def get_longitude(self):
|
||||||
return self.long_var.get()
|
return self.long_var.get()
|
||||||
def update_lat(self,value):
|
def update_latitude(self,value):
|
||||||
self.lat_var.set(value)
|
self.lat_var.set(value)
|
||||||
def update_long(self,value):
|
def update_longitude(self,value):
|
||||||
self.long_var.set(value)
|
self.long_var.set(value)
|
||||||
def paste_callback(self):
|
def paste_callback(self):
|
||||||
clipboard=self.root.clipboard_get()
|
clipboard=self.root.clipboard_get()
|
||||||
|
Loading…
Reference in New Issue
Block a user