Can Someone Help me?

Hey! I am a Mobile Developer working on Offline Map Tagging Application where I import gpkg for vector layers (points) and mbtiles for raster/satellite images, does the gpkg have always a fix table for each or no?? as I didn’t really deep dive for the gpkg since clients have different tables when I open a gpkg using sqlite browser. I am using Kotlin (Jetpack Compose) for this to work and using MapLibre-compose for it.

as inside the app i am trying to re-create (all of my own) the process of qfield, but rather than the whole app itself, I am just recreating how the importing,exporting, creating of new points and tagging of the points.

is there something should I be wary of??

PS: sorry if it’s kinda confusing question/statement as i have a lot in my mind when creating it and can’t somehow comprehend on what do i miss or what should i do or not do.

Hello @T4nyaaa !

is there some particular function that you or your client require that you didn’t find achievable with QField? I’m asking because it already is well suited for offline mapping in general, in my experience. Maybe we can help you out finding a particular setting or configuration that better suits your needs, or better explain some of its functionalities. I mostly use QField offline and find it very difficult to justify creating a whole other app if you plan to work with standard files such as geopackages and mbtiles.

Yes and no, it has a fixed format, that as you already guessed, it’s just a SQLite db with a standardised schema. It does create some tables as it sees fit, so I wouldn’t recommend attacking this issue directly by manipulating the sqlite db (with sqlite directly, for example), but by using some geoprocessing library that specifies having support for geopackages. Maybe https://geotools.org/ can be of use?

Helloo @cuprico not at all, the Qfield application is Great! As the old process was Create an Application and use Qfield Application for Tagging, The only thing that we want to achieve is to somewhat embed Map Tagging. Think of it like a All-in-One Application. I am Happily open to any recommendations and Idea!

I don’t quite understand what do you mean by “map tagging” and the all-in-one application, do you care to elaborate a bit on the workflow you are looking to achieve?

You want to open a geopackage with points and edit it, for example? Maybe the problem is with defining the “schema”, fields, attributes or forms with enough flexibility for your tagging needs? Or you want to open and save files without needing to create and configure projects?

the problem mostly that i’ve encountered is defiding of the schema fields, since all the gpkg samples I got has 1 or 2 additional tables that has different format with other gpkgs. i meant for “map Tagging” was creation of points on a specified area. if it has a fix schema for it or if you can have a different schema

the internal sqlite schema can indeed change between files, since geopackage is more akin to an “extension” to sqlite in practice. So, as long as you keep some specific tables and such, it is allowed to pretty much use all the functions of sqlite to extend and take advantage of the format as each user sees fit. You can for example just add a table, with no geographic information whatsoever, and any geopackage parser should be able to handle it. On QGIS, you can save pretty much anything you create on it, even things like the project configuration. Other software should be able to open at least the geographic information.

If you just need to add points on an area, what additional functionality do you need that you don’t find available on qfield? Maybe you can create a plugin for qfield that solves that need?

Thank you for all the Information! you’ve truly help me a lot!