JollyRancher right now, nearby Wi-Fi access point identifiers (BSSIDs) are sent to Apple's server, either directly or through the GrapheneOS proxy.
Cell tower support is planned so it can be used when there aren't a sufficient amount of Wi-Fi access points.
Apple's server returns positioning data for each Wi-Fi access point which is: latitude, longitude, latitude and longitude accuracy, altitude (if available), and altitude accuracy (if available).
The Network Location app uses an algorithm that estimates your location from the positioning data using multilateration (also called trilateration). This part is done fully on-device.
Regional local databases are planned. We'll probably initially do them for cell towers as the database for them is much smaller. Amount of storage the cell tower database will take up isn't precisely known at this time, but it's looking like it may be under 50 megabytes or less depending on your region. I still need to try a few more methods to decrease its size. Wi-Fi database size is unknown but will certainly be larger than the cell tower one.
Cell towers might provide a more coarse location (200-1000 meters) compared to Wi-Fi (30-100 meters). However, it might get a bit more accurate with the upcoming new algorithm I'm developing that is faster and better and should especially help with cell towers which don't seem to have an altitude in Apple's database. Some Wi-Fi access points do. The new algorithm always operates in 3D so it should increase cell-tower-based location accuracy. It estimates an altitude when one isn't given and it's already more accurate than the current algorithm for Wi-Fi. I'll resume working on cell tower support after I finish the new algorithm written in Rust and get it shipped.