Show HN: Tile38 – A geolocation DB with spatial index and realtime geofencing
github.com
github.com
Are there any plans for GIS standards support? Can I use it with PostGIS/ArcInfo/civil engineering CAD software, upload SHP files, WEKT data, my muni's folio/block/lot tax data, the bus routes, population data from the census, or any other 100+ years worth of very expensive existing technology (like satellite imagery)?
There is a very large and older-than-internet software ecosystem this could play in.
Think separation of concerns - use a storage engine for spatial data and a separate engine for rasterization and tile generation - and how this could be used in a market that still expects proprietary data AND software.
The spatial data already exists and an entire industry built on pretty much a couple of companies tools (ESRI, Oracle, DigitalGlobe, GeoEye). You need to have the protocols or interfaces to interact with the storage engines. It will probably be another 50+ years before those databases change in any sort of major technological way.
In many cases the tile generation and access to those tiles (usually via web interface) is often lacking or extremely difficult / expensive to setup.
The way you can subscribe to geofenced areas is particularly clever, especially when combined with the WebSocket protocol option.
The docs don't cover how to communicate polygons/etc over the protocol just yet.
I hadn't realised you could use unicode characters for identifiers in Go - very aesthetically pleasing: https://github.com/tidwall/tile38/blob/master/geojson/geo/ge...
And the connection will be kept open. If any object enters or exits the 6 km radius around 33.462,-112.268 the server will respond in realtime with a message such as: {"command":"set","detect":"enter","id":"truck02","object":{"type":"Point","coordinates":[-112.2695,33.4626]}}
I'm specifically interested in how the measurement performs with a lot of writes constantly happening.
I'm going to generate some benchmarks and post in the coming days. Thanks a ton for the suggestion.
Regarding elevation: All coordinates may have an optional 'z' member. For example, you can add a simple point `set garden tomatoes point 33.5091 -112.7998 125` which would create a point with 'z' equal to 125. Or, you could have a complex GeoJSON object containing multiple coordinates or features. There's no limits to this values except that it must be a number.
At this time the only supported coordinate system is WGS84. Though I'm open to suggestions.
* Written 100% in Go.
Is Go so great that it becomes a feature of the final product?
For closed source though I wouldn't class the language as feature