AmericanRedCross / hacmap

Repository for Humanitarian Access Constraints Map - HACMap
0 stars 0 forks source link

Research base map alternatives #10

Open idfx opened 3 years ago

idfx commented 3 years ago

Research alternatives for base map solutions to use on the UI. Keep in mind offline work.

danbjoseph commented 3 years ago

tldr - 3D tiles are cool but probably too much effort for not much payoff for this particular project at this time

I was looking at 3D tiles, such as what is possible with Cesium. The JavaScript client, as well as the tile builder and server, are all Apache License v2.0. It would be cool to be able to load our app with recent satellite imagery scenes (e.g. post-disaster), and drape it over an open source of digital elevation data such as the NASA SRTM Plus (30 meter resolution) dataset. Cons: probably complicated?, maybe computationally expensive to process and serve the tiles?, and I’m not sure navigating a 3D map is particularly intuitive for most people (hard without a mouse and even then can be hard to get the zoom, pan, rotate, etc all figured out smoothly).

Screen Shot 2021-02-22 at 8 43 19 AM

I think it may be already quite dated, but this blog post from Sep 2018 discusses using Tin-Terrain in combination with CesiumJS to privately or publicly host your own 3D terrain map. In addition to Cesium's offerings, there is harp.gl, an experimental and work in progress open-source 3D map rendering engine written in TypeScript. The experimental and work in progress makes me hesitant to consider this one too seriously at this point.

Mapbox GL JS v2 is sick, with amazing 3D maps and features like a Sky API... "As the Camera API increases map pitch and exposes the horizon, the Sky API simulates the sun’s position based on geographic location and time of day." But there are limitations to the license and I don't think we can use it for a self contained App.

Screen Shot 2021-02-22 at 9 10 01 AM

However, we might be able to offer some sense of terrain using elevation data and hill-shading techniques on a 2D map. Mapbox does this with their Streets tile style.

Screen Shot 2021-02-22 at 9 04 17 AM

Their controls allow you to tilt the map (and see that it's a flat surface despite the appearance of terrain).

Screen Shot 2021-02-19 at 4 37 32 PM

Limiting map navigation to left-right-up-down and in-out, should be easier for majority of users.

danbjoseph commented 3 years ago

For the client, I think there's 3 good options:

For the Server. I think the layer of app data (e.g. image points, extracted road lines) needs to be served as vector tiles for interaction. However, the base map could be either vector or raster. I've found 3 options that seem promising:

Tool data (image points, road lines, etc):

If we wanted a way to allow the user to load a different style sheet, we would probably want vector tiles for the basemap. Two OSS style editors (both mentioned in the t-rex project) are below. Could the app allow the user to change the map base style by uploading a new stylesheet?

Base map data.

danbjoseph commented 3 years ago

I think we should use PostgreSQL + PostGIS for the data storage. So my main questions are:

danbjoseph commented 3 years ago
idfx commented 3 years ago

Assigning to @rahulthewall for visibility

idfx commented 3 years ago

The idea @rahulthewall is that now you can review the alternatives that @danbjoseph outlined here and start a conversation leading to a decision. Sounds good?