surveillance / services /map_service.py
lokesh341's picture
Create map_service.py
2bcb413
raw
history blame
875 Bytes
import folium
import os
def generate_map(gps_coordinates, cracks):
# Create a map centered at the average of the GPS coordinates
if not gps_coordinates:
return None
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)
m = folium.Map(location=[avg_lat, avg_lon], zoom_start=15)
# Add markers for cracks
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)
map_path = "map_temp.html"
m.save(map_path)
return map_path