def update_rival_uavs():
global rival_markers, initial_set, previous_data, all_routes, uav_routes, colors, konumBilgileri
# Update rival data
with open("best_puan.txt", "r") as f:
best_team_number = int(f.readline().strip())
with open("takip_eden_iha.txt", "r") as f:
takip_eden = int(f.readline().strip())
if konumBilgileri:
min_lat = min(rival["iha_enlem"] for rival in konumBilgileri)
max_lat = max(rival["iha_enlem"] for rival in konumBilgileri)
min_lon = min(rival["iha_boylam"] for rival in konumBilgileri)
max_lon = max(rival["iha_boylam"] for rival in konumBilgileri)
if initial_set:
map_widget.set_position((min_lat + max_lat) / 2, (min_lon + max_lon) / 2)
map_widget.set_zoom(15) # Adjust zoom level as needed
initial_set = False
for rival in konumBilgileri:
team_number = rival["takim_numarasi"]
rival_lat = rival["iha_enlem"]
rival_lon = rival["iha_boylam"]
rival_yaw = rival["iha_yonelme"]
rival_speed = rival["iha_hizi"]
rival_yuksek = rival["iha_irtifa"]
rival_time = rival["zaman_farki"]
low_opacity = rival_time > 15 or rival_yuksek < 5
# Initialize uav_routes for this team if not already initialized
if team_number not in uav_routes:
uav_routes[team_number] = []
all_routes[team_number] = []
colors[team_number] = random.choice(["blue", "green", "purple", "orange", "cyan"])
if (rival_lat, rival_lon, rival_yaw) != previous_data["rival"].get(team_number):
if team_number in rival_markers:
rival_markers[team_number].delete()
if rival_lat is not None and rival_lon is not None:
if team_number == best_team_number:
rival_icon = load_and_rotate_uav_icon(rival_yaw, 2, False)
elif team_number == takip_eden:
rival_icon = load_and_rotate_uav_icon(rival_yaw, 3, False)
elif team_number == 13:
rival_icon = load_and_rotate_uav_icon(rival_yaw, 4)
else:
rival_icon = load_and_rotate_uav_icon(rival_yaw, 1, low_opacity=low_opacity)
if team_number == 13:
rival_marker = map_widget.set_marker(rival_lat, rival_lon, text=f" iha {team_number}nirtifa: {rival_yuksek}nhiz: {rival_speed}", icon=rival_icon, command=partial(on_rival_marker_click, team_number))
else:
rival_marker = map_widget.set_marker(rival_lat, rival_lon, text=f"ravil iha {team_number}nirtifa: {rival_yuksek}nhiz: {rival_speed}", icon=rival_icon, command=partial(on_rival_marker_click, team_number))
rival_markers[team_number] = rival_marker
previous_data["rival"][team_number] = (rival_lat, rival_lon, rival_yaw)
uav_routes[team_number].append((rival_lat, rival_lon))
all_routes[team_number].append((rival_lat, rival_lon))
# Draw rival UAV route
if len(uav_routes[team_number]) > 1:
ravil_uav_path= map_widget.set_path(uav_routes[team_number], color=colors[team_number], width=2)
if len(uav_routes[team_number]) > 5 :
# ravil_uav_path.remove_position()
# last_position = ravil_uav_path.get_position_list()
last = uav_routes[team_number]
last[:-2]
delete_rival_paths()
ravil_uav_path= map_widget.set_path(last, color=colors[team_number], width=2)
def update_map():
global latest_data, uav_marker, rival_markers, initial_set, previous_data, all_routes, uav_routes, colors, previous_hss_koordinat_bilgileri
update_rival_uavs()
root_tk.after(1000, update_map)
update_rival_uavs()
I want to delete a last 2 points from the path when uav is moving. In ma_wiget.py there is
map_widget.delete_all_path()
This code delete all of the path but I want delete just the last points from the path
When I try to write a funcation in subclass of tkintermapview but It does not bring me together to change and reach the class. After that I try to acsess to canvas_path for remove the point.I call the remove_position but there is erorr in remove becuse remove just take 1 parameter
Az1 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.