What problem does it solve? CKAN DataStore lacks PostGIS, so location-based questions like "trees near me" or "crime within 1 km" cannot use native spatial functions. This Skill provides the bounding-box-plus-Haversine pattern needed to answer proximity queries against Montréal's geolocated open data. ## Core Features & Use Cases - Bounding Box SQL Pattern: Convert a radius around a point into lat/lon bounds and filter server-side with CAST and BETWEEN before transferring data. - Haversine Client-Side Filtering: Refine bounding-box results to exact circular distances in meters using a Python distance function. - Ready-Made Query Recipes: Includes patterns for nearby trees, crime near an address, nearest BIXI station via the GBFS API, and facilities within a radius, plus Montréal geographic constants and island bounds. - Use Case: A user asks "which crimes were reported within 1 km of 3575 Parc Avenue this year?" The agent geocodes the address, builds a bounding box, queries the crime dataset via CKAN SQL, and Haversine-filters the results. ## Quick Start Ask the agent to find all trees within 500 meters of a given Montréal address or coordinate.