us-counties-datasette
OfflineReverseGeocode
us-counties-datasette | OfflineReverseGeocode | |
---|---|---|
1 | 1 | |
9 | 484 | |
- | - | |
0.0 | 0.0 | |
over 1 year ago | almost 5 years ago | |
Shell | Java | |
- | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
us-counties-datasette
-
SpatiaLite: A Spatial Extension to SQLite
It had been quite a while since a major release, but then SpatiaLite 5.0 came out a couple of months ago with some very significant new features - the K-Nearest-Neighbor stuff is particularly interesting. https://www.gaia-gis.it/fossil/libspatialite/wiki?name=5.0.0...
I've built a few fun demos using SpatiaLite and Datasette. Here's an API that tells you the timezone for a latitude longitude point:
https://timezones-api.datasette.io/timezones/by_point?longit... - implementation here: https://github.com/simonw/timezones-api
And here's the same thing for which US county a point is within: https://us-counties.datasette.io/counties/county_for_latitud... - implementation here: https://github.com/simonw/us-counties-datasette
I've also built an experimental Datasette plugin that lets you draw a shape on a Leaflet map to generate a GeoJSON polygon, then uses SpatiaLite to show you geometries that are contained by that drawn polygon. I wrote about that here: https://simonwillison.net/2021/Jan/24/drawing-shapes-spatial...
OfflineReverseGeocode
-
SpatiaLite: A Spatial Extension to SQLite
A kd-tree is the generalized data structure that can do log(n) lookups of nearest in any dimensions. I wrote an implementation for nearest to a geographical point years ago (since ported to many other languages): https://github.com/AReallyGoodName/OfflineReverseGeocode
A less generalized solution is to grid things up (quad tree and bsp trees) as you implied above but the kd-tree is the generalized solution without edge cases (what if the majority of points of interest end up in a single grid square in your example?). A kd-tree is essentially what a sort list is for one dimensional data but instead supports multiple dimensions.
What are some alternatives?
timezones-api - A Datasette-powered API for finding the time zone for a latitude/longitude point
laion-aesthetic-datasette - Use Datasette to explore LAION improved_aesthetics_6plus training data used by Stable DIffusion
til - Today I Learned
sqlite-utils - Python CLI utility and library for manipulating SQLite databases
twitter-to-sqlite - Save data from Twitter to a SQLite database