I'm going to talk about a stack for OpenStreetNightPurposeHealth, so the top of the stack is user
application for all the major platforms iOS, Android, Windows, Linux, so if you know organic
maps are also an end, it's like that.
Unlike those that you all have to support offline maps, there is an online tile server,
so you can do many more in the world and meet and we see that without having to download
the tile file for that area.
So right now that just runs on a $10 month DPS, so there's no SLA.
There's a number of map styles by a Kike transit, some technical points, it's a small
app, it's GPL, uses a best cross-bath on build system, plain GNU-MAKE.
So this is an example of what it looks like, 3D terrain, you can record tracks, like you
would install or something.
One of the key features is very customizable, so there's no URLs hard code anywhere in the
application code, it's all in JavaScript plugins or YAML configuration files.
So there's plugins for use and different services, so for example Wikipedia search to
find interesting places nearby, for different routing services, for providing specialized
maps sources that may have non-trivial URLs, so for example Sentinel2 satellite imagery.
You can do custom shaders for different maps styling and you can customize the stack of layers
anywhere you want, and it has kind of basic features that you'd find in any maps
apps, so recording and editing tracks, saving routes, but as I said, you can download any
rectangle, basically, for off-line use, then so this is all built on 10G, which is a fork
of the 10GMS library from MapsN, which is a similar to MapOx, but that didn't make it
when I was a business in 2018, and the library was basically no, not maintained, so no
significant activity, and so I kind of just started building on that and added features like
to be terrain, directly embedding SVG, resources in the, in the scene style files, support for
different raster formats, and this is MIT license, so not KPL, so as the original Tangram
the SVG, MIT, so that's usable in a broader range of applications. So this is another example
of what you can do with it, again, this is 3D terrain, with all kinds of different styles
of trails and roads and labels, and then so to talk about the tile server, so a lot of
tiles servers have you, a lot of tiles servers have you, have you built generate tiles for
the whole world before you use it, do this tiles, let's you build tiles on demand, and in order
to do that, it uses this geodesk library, no affiliation, but it's a really nice format for open
street Mac, or any geographic geodata, it's roughly the files roughly the same sizes, open street
map pvf files, but are fully indexed, so you can quickly look up geodesk, how it's quickly
looks up everything in a rectangle, the build a tile, and can build a tile in a few milliseconds,
and this runs on again a cheap VPS, as long as you have enough storage for the whole world
would be like 100 gigabytes, or you can use extracts, so right now, if you're familiar with tile
maker, which is one of the kind of two main existing open source applications for building
vector tiles, it's basically based on that, but instead of using the script to define the
tile appearance, it uses C++, but it don't let that scare you, it looks quite similar to Lua,
so if you can do the right to Lua, code to generate the tile, you can write the C++, and so that
makes it of course a little faster, with the upcoming geodesk V2, which supports pulling updates,
or accepting updates from open street map, updating these tiles in a new real time or in a
minute basis to be possible, and that's something that we'll be added once that's available on
geodesk. Also mentioned briefly the tile schema, so open map tiles, of course, is probably
the most widely known opens street map tile schema. I decided to kind of use something different
because that there's some things like missing, like, includes the OSMID, and some additional
data for helping determine the importance of different PLIs, and so I mainly just use the unmodified
open street map tags, and then really just the decision is how to break these in the layers,
and I find that works pretty well. So if you want to build a tile server to serve
vector tiles for the whole world, this is five lines basically, you download the
geodesk file, and another one just to see which tiles are ocean and which are land,
for tiles that don't have any coastlines, build this, get this library, build it, and that's it.
So something I've got just recently is basic geocoding, so this would be another part of the
kind of the open source map stack. So there's about 40 million places and points of interest.
If you exclude like street names and addresses, and so I'm just using simple
SUI full-text search over those with just this custom simple ranking function,
and to determine like the geographic boundary, which administrative areas are places in,
it's point and polygon testing over the over street map and then polygon's,
and using tiling to break those up and then clip the polygons to this tiles, and so that actually
all works pretty fast, so you can do the point and polygon testing for all the, for all the
polygons for all these places, and do everything about five minutes, and that's faster than
the SQLite full-text search indexing times, so I've bothered to optimize that anymore.
And so that'll be the next, there's a false search index version of the user application,
some future directions, and then just some, some examples of what you can do with the app,
so Wikipedia search, this is place information for most street map, all done by plugin,
offline search, this is in the example of sent-on-2 data, this is all done by plugin to
set the date and and thought cover that you pass to the sent-on-2 server, so I think that's
basically time, so thank you, thank you very much.