road1 / services /map_service.py
Yaswanth56's picture
Update services/map_service.py
2c07583 verified
import folium
import os
def generate_map(gps_coordinates, cracks):
if not gps_coordinates or not cracks:
return None
# Calculate the average latitude and longitude
avg_lat = sum(coord[0] for coord in gps_coordinates) / len(gps_coordinates)
avg_lon = sum(coord[1] for coord in gps_coordinates) / len(gps_coordinates)
# Create a Folium map centered at the average GPS coordinates
m = folium.Map(location=[avg_lat, avg_lon], zoom_start=15)
# Add markers for each crack
for coord, crack in zip(gps_coordinates[-len(cracks):], cracks):
folium.Marker(
location=coord,
popup=f"Severity: {crack['severity']}, Confidence: {crack['confidence']:.2f}",
icon=folium.Icon(color='red' if crack['severity'] == 'Severe' else 'orange' if crack['severity'] == 'Moderate' else 'green')
).add_to(m)
# Save the map as an HTML file
map_path_html = "map_temp.html"
m.save(map_path_html)
# Return the HTML map file path
return map_path_html