Kentucky Transportation Cabinet
Step 1
Kentucky latitude is typically 36.5° to 39.1° N and longitude is typically −89.6° to −82.0° W.
Format: POINT (longitude latitude) — easting (X) comes before northing (Y).
Format: POINT (latitude longitude) — latitude comes before longitude.
Column headers are normalized to uppercase with spaces replaced by _.
Spreadsheet preview
Step 2
Select the attributes below to append to your dataset during processing. Defaults are pre-selected and locked. Optional fields can be changed anytime.
| Use | Key | Description |
|---|---|---|
| Loading attribute list… | ||
Step 3
Review preview
Step 4
Preview
Kentucky Transportation Cabinet
This is not an official tool of the Kentucky Transportation Cabinet. This is a personal project providing a browser-based graphical user interface for the Kentucky Transportation Cabinet (KYTC) Spatial Application Programming Interface (API) that appends roadway attributes to coordinate datasets with no software installation required.
Upload a file containing point coordinates. Supported input formats:
CSV, JSON, GeoJSON, Parquet
Note: The tool auto-detects latitude and longitude columns and shows a live spreadsheet preview. Three coordinate input modes are supported: Separate lat/lon columns, WKT Point column (POINT (longitude latitude)), and Point column (a single column containing latitude,longitude or longitude,latitude). Column headers with spaces are automatically normalized to underscores. Use the column selector chip bar to choose which source columns to carry through to the output. Columns can be toggled on or off individually or all at once before processing.
Choose which KYTC LRS (Linear Referencing System) attributes to append to each row. The full attribute catalog is loaded live from the KYTC API each time the app starts, so it always reflects the current schema. A curated set of defaults — District, County, Route Label, Road Name, Cardinality, Direction, Milepoint, Snap Distance, and Snap Probability — are pre-selected and highlighted with a default badge. Any attribute, including the defaults, can be toggled on or off individually, searched by name, or reset back to the recommended defaults at any time. Changes here can be made even after an initial processing run.
The tool sends each coordinate pair to the KYTC Spatial API in parallel async batches of up to 500 requests with automatic retry logic. Progress is logged in real time in the request console. Rows that cannot be matched are flagged with a status code rather than silently dropped. You can return to Step 2, change optional attributes, and re-run without losing previously processed values.
Download the processed result in your preferred format. Available formats:
CSV, JSON, GeoJSON, KML, Excel (XLSX), Parquet, GeoParquet
Note: A 10-row preview updates as you switch formats. You can select which output columns to include before downloading. Parquet and GeoParquet are generated via DuckDB-WASM. All other formats are produced directly in the browser with no additional dependencies.
date_processed column is automatically appended to every row, recording the local date (YYYY-MM-DD) the API was queried — useful for tracking which weekly version of the linear referencing system was used.A special thanks to Jeremy Gould for developing the KYTC Spatial API.