vincentiusyoshuac commited on
Commit
59c425e
·
verified ·
1 Parent(s): ab9d6df

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +20 -6
app.py CHANGED
@@ -4,6 +4,7 @@ import folium
4
  import numpy as np
5
  from scipy.optimize import linear_sum_assignment
6
  import pandas as pd
 
7
 
8
  def calculate_distances(coordinates):
9
  """Calculate distances between all points using Haversine formula"""
@@ -13,7 +14,6 @@ def calculate_distances(coordinates):
13
  for i in range(n):
14
  for j in range(n):
15
  if i != j:
16
- # Haversine formula
17
  lat1, lon1 = coordinates[i]
18
  lat2, lon2 = coordinates[j]
19
 
@@ -44,6 +44,17 @@ def get_place_coordinates(place_name):
44
  except:
45
  return None
46
 
 
 
 
 
 
 
 
 
 
 
 
47
  def main():
48
  st.title("AI Travel Route Optimizer")
49
 
@@ -76,17 +87,20 @@ def main():
76
 
77
  m = folium.Map(location=[center_lat, center_lon], zoom_start=4)
78
 
 
 
 
79
  # Add markers and route lines
80
  for i in range(len(optimized_indices)):
81
  current_idx = optimized_indices[i]
82
  next_idx = optimized_indices[(i + 1) % len(optimized_indices)]
83
 
84
- # Add marker
85
  place_name, (lat, lon) = places[current_idx]
86
  folium.Marker(
87
  [lat, lon],
88
  popup=f"Stop {i+1}: {place_name}",
89
- icon=folium.Icon(color='red', icon='info-sign')
90
  ).add_to(m)
91
 
92
  # Add line to next point
@@ -101,10 +115,10 @@ def main():
101
  # Display map
102
  st.components.v1.html(m._repr_html_(), height=600)
103
 
104
- # Display itinerary
105
  st.header("Optimized Itinerary")
106
- for i in range(len(optimized_indices)):
107
- st.write(f"{i+1}. {places[optimized_indices[i]][0]}")
108
 
109
  # Calculate total distance
110
  total_distance = 0
 
4
  import numpy as np
5
  from scipy.optimize import linear_sum_assignment
6
  import pandas as pd
7
+ from folium import plugins
8
 
9
  def calculate_distances(coordinates):
10
  """Calculate distances between all points using Haversine formula"""
 
14
  for i in range(n):
15
  for j in range(n):
16
  if i != j:
 
17
  lat1, lon1 = coordinates[i]
18
  lat2, lon2 = coordinates[j]
19
 
 
44
  except:
45
  return None
46
 
47
+ def create_numbered_marker(number):
48
+ """Create a custom marker with a number"""
49
+ return plugins.BeautifyIcon(
50
+ number=number,
51
+ border_color='#b4b4b4',
52
+ border_width=1,
53
+ text_color='black',
54
+ background_color='white',
55
+ inner_icon_style='margin-top:0;'
56
+ )
57
+
58
  def main():
59
  st.title("AI Travel Route Optimizer")
60
 
 
87
 
88
  m = folium.Map(location=[center_lat, center_lon], zoom_start=4)
89
 
90
+ # Create optimized itinerary list first
91
+ optimized_places = [(i+1, places[idx][0]) for i, idx in enumerate(optimized_indices)]
92
+
93
  # Add markers and route lines
94
  for i in range(len(optimized_indices)):
95
  current_idx = optimized_indices[i]
96
  next_idx = optimized_indices[(i + 1) % len(optimized_indices)]
97
 
98
+ # Add numbered marker
99
  place_name, (lat, lon) = places[current_idx]
100
  folium.Marker(
101
  [lat, lon],
102
  popup=f"Stop {i+1}: {place_name}",
103
+ icon=create_numbered_marker(i+1)
104
  ).add_to(m)
105
 
106
  # Add line to next point
 
115
  # Display map
116
  st.components.v1.html(m._repr_html_(), height=600)
117
 
118
+ # Display optimized itinerary
119
  st.header("Optimized Itinerary")
120
+ for stop_num, place_name in optimized_places:
121
+ st.write(f"{stop_num}. {place_name}")
122
 
123
  # Calculate total distance
124
  total_distance = 0