Building customised, simplified but styled maptiles

75 views
Skip to first unread message

Phil Lee

unread,
Dec 17, 2023, 4:14:37 AM12/17/23
to OpenAIP - Aviation Data Platform
Hello !

I'm interested in generating my own simplified versions of the openAIP map tiles using the same styling but I want to divide them into three groups.

I'd like to one set of produce tiles showing airspace and airfields below 4,000 ft, another set covering airspace above 4,000 ft and finally a set showing airfields and all airspace.

In all cases I'd like to remove things like frequencies, waypoints, navaids etc as I have other ways of displaying that data to my users.

If I download the source data for the UK (my area of interest) and the map styles from here:


is this going to be possible ?  Presumably I'd need to manually edit the airspace files to remove the bits that I don't want from the different sets of tiles ?

If I'm on the right line, do I need to use Mapbox or can QGIS do this instead ?

Apologies for all the questions but I'm a complete begineer when it comes to GIS and mapping !

Thanks in advance

Phil

openaip net

unread,
Dec 17, 2023, 6:55:22 AM12/17/23
to OpenAIP - Aviation Data Platform
Hi Phil,

this is a rather large topic which is not covered easily with a post reply but I'll try to do my best. First of, what you are trying to do is possible but i can be done in different ways and those ways depend on your tech stack, infrastructure and of course, your use case and the amount of money to invest. 

Tech Stack Mapbox GL JS + Database (or Geojson) + Mapbox Styles + PBF Tile Server:

Mapbox styles allow styling the data directly on the client. This means that you can do styling in realtime without having to preprocess the underlying data (assuming that the dataset contains all properties that you require). With a specific filter in the mapbox map style, it's possible to filter airspaces depending on theier upper or lower ceiling. To make those filter rules easier or even possible, it may require tweaking of the underyling data to add properties that help in styling the map. But, and that is the main difference and pro of this approach, it does not require you to maintain multiple sets of data or layers like you would have with a traditional TMS/WMS approach.

A con of this approach is that you need a MVT/PBF server that spits out the binary tiles. You can use mapbox for free but depending on your usage, it will cost money. There are other oss alternatives but mpst have trade-offs compared to mapbox (especially the mapbox map styler capabilities are awesome).

Tech Stack WMS/TMS server:

The traditional way is using a WMS/TMS like Geoserver fronted with openlayers or leafelt. This approach is reliable and battle proven and easy to setup but it lacks the styling capabilities and flexibility of mapbox gl. It will also be required to at least preprender some png for some layers to take the load of the tile server. There are a lot of oss projects that help you setup such a stack like UMN mapserver, Georserver, mapproxy and openlayers or leaflet. 

Ultimately, what you use in the end depends what suits you best,. For the mapserver appraoch, I would do the following to achieve your goal:

1.) download the data
2.) Tweak the data to have easier harmonized ceiling values. This helps with styling in mapbox.
3.) grad the current mapbox style via browser developer tools from the current openaip map. The one in the repo is outdated - but of course can be used as a starting point.
4.) get the iconmap via browser developer tools from the current openaip map to have the used icons.
5.) adjust the style according to your needs to either show or hide the airspaces in question. this can be done on the client with just changing an "upper ceiling slider" for example.
6.) choose a server that is used to host your data and creates the binary tiles. Mapbox offers a pretty decent free tier that can be used for most personal projects. This also allows you to upload the data in geojson, create the layers and style the data directly in the browser with a very good interface.

Hope that helps,

Stephan
Reply all
Reply to author
Forward
0 new messages