Inspiration
We’re driven by a shared goal to improve navigation for everyday people—from commuters in Mexico City to travelers worldwide. As a team, we saw geolocation errors in HERE’s map database as a challenge to solve, ensuring no one gets lost due to a misplaced Point of Interest (POI). Our goal? Empower communities with accurate maps that connect them to the places they love.
What it does
GeoFix295 Is an automated system that tackles the POI295 challenge, processing ~190,000 POIs across 20 tiles in Mexico City. It managed to detect ~1000 violations—POIs stuck between multi-digitized roads—classified them into four scenarios, applied smart fixes, and created interactive Folium maps per tile to visualize results.
Code Spotlight:
# From visualize_pois: Creating per-tile maps
m = folium.Map(location=[centroid.y, centroid.x], zoom_start=14)
folium.Marker(
location=[poi.geometry.y, poi.geometry.x],
icon=folium.Icon(color=config['color'], icon=config['icon'])
).add_to(m)
How we built it
We poured our hearts into GeoFix295, coding through the night with Python, pandas, and geopandas. Our secret weapon? An R-tree index for fast and precise spatial queries, paired with algorithms to compute POI geometries and classify violations. We used Folium for our maps and logged every step in poi295_corrections.log to keep track of everything made.
Code Spotlight:
# From find_multidigit_pairs: R-tree for road pairs
idx = index.Index()
for i, df_idx in enumerate(df_indices):
link = multidigit_links.loc[df_idx]
idx.insert(df_idx, link.geometry.bounds)
Challenges we ran into
The struggle was on! Loading mismatched tile files tripped us up, and computing street-side offsets was a geospatial odyssey. Ensuring our automation was flawless tested our grit and patience—bugs like KeyError: 'Action' and a tricky map error ('int' object has no attribute 'fillna') kept us on edge. But we debugged, iterated, and eventually, conquered.
Accomplishments that we're proud of
We’re thrilled to present that with our code, we:
- Detected ~1000 violations with precision across 20 tiles.
- Built scalable per-tile maps for, perfect for analysis.
- Wrote precise data files of the changes made to the POIs.
- Fixed complex bugs to deliver a rock-solid solution for HERE.
What we learned
This hackathon was a crash course in data analysis! We had to use, and mastered*R-tree indexing, **Folium visualizations*, and handling massive datasets (~190,000 POIs). We learned to debug under pressure and collaborate as a team, fueled by Pau Paus and pure determination.
What's next for GeoFix295
The sky’s the limit! We’re ready to scale GeoFix295 according to the neccesities of Here, adapting to diverse road systems and geolocation quirks. By integrating real-time satellite imagery, (an already planned) adaptability to multiple countries and parallel processing, we’ll make our solution faster and smarter, ensuring accurate maps for every corner of the world.
Log in or sign up for Devpost to join the conversation.