Merge pull request 'Honest pins and paths: geocode precision, type-gated paths, impossible-speed stops (#236)' (#274) from feat/236-honest-pins into main
This commit was merged in pull request #274.
This commit is contained in:
@@ -690,8 +690,15 @@ async def _geocode_location(
|
||||
"""
|
||||
Geocode using Google Maps Geocoding API, biased toward the channel's area.
|
||||
|
||||
Returns {"lat": float, "lng": float}, or None if geocoding fails or the
|
||||
result lands outside the area this channel covers.
|
||||
Returns {"lat": float, "lng": float, "location_type": str}, or None if
|
||||
geocoding fails or the result lands outside the area this channel covers.
|
||||
|
||||
server-26#236: `location_type` (ROOFTOP / RANGE_INTERPOLATED /
|
||||
GEOMETRIC_CENTER) rides along with the coordinates so the map can show how
|
||||
precise a pin is — a route centroid must not draw the same teardrop as a
|
||||
rooftop. It is display-only: every consumer of these coords reads only
|
||||
"lat"/"lng", and the dict is stored as-is on the call doc and, through
|
||||
incident_correlator._resolve_location_pair, on the incident pin.
|
||||
|
||||
THE REFERENCE POINT IS THE TALKGROUP, NOT THE NODE (server-26#6 / #37). This
|
||||
used to reject anything more than geocode_max_km (40km) from the receiving
|
||||
@@ -801,7 +808,7 @@ async def _geocode_location(
|
||||
f"{dist_km:.1f}km from the receiving node, past {max_km:.1f}km — "
|
||||
f"accepted anyway: the query names its own region, not the node's"
|
||||
)
|
||||
coords = {"lat": lat, "lng": lng}
|
||||
coords = {"lat": lat, "lng": lng, "location_type": location_type}
|
||||
logger.info(
|
||||
f"Geocoded '{location_str}' → {coords} "
|
||||
f"({dist_km:.1f}km from {ref_label}) [{location_type}]"
|
||||
|
||||
Reference in New Issue
Block a user