Best way to store geo data?

I am building an Android app with capacitor where I use a collection of about 200.000 geographical objects (about 2-4 Mb data in total). The objects originally are retrieved from a a server.
To get a fast load time for my app I see a number of scenarios for these data:

  1. Load all the data from the server at startup of the app
  2. Load only the data from the server that is required for the initial map shown in the app (typically 100 objects)
  3. Store the data locally on the mobile device as a json-file
  4. Store the data locally on the mobile device as an sql database (using the sqlite plugin)

I expect the complexity of the app will increase from 1->4. But what will it mean for the loading time?

Any advice?


In the end, the only real way you’ll know is to try each of those options out and see what the results are.

My initial instinct would be to go with a hybrid of 2 and 3. Burn the objects needed for the initial map into the app, so that it can be displayed even with no server interaction. Then, upon launch, kick off a background task that downloads some other ones, perhaps in an outwardly-spiraling fashion.

I would avoid SQL. It is generally not a great fit for geographic data.

Thanx. Sounds like the best apporach.