Most modern ROMs come with support for non-Google geolocation providers. On these systems UnifiedNlp can be installed as a user app to replace the network location provider. It acts as a middleware for various plugins aka backends, it does not provide any location lookup itself. For further information please refer to the UnifiedNlp (no GAPPS) package and the README.
To be able to use this package, you will either need the XposedUnifiedNlp module, or your custom ROM must have org.microg.nlp added to the list of network location services, otherwise UnifiedNlp (no GAPPS) would be more suitable for you (provided that you do not have GAPPS installed on your system).
After installing you have to reboot your device, install a backend service and activate/configure it in the app settings. After this you can use UnifiedNlp by activating network-based geolocation from Settings -> Location: You need to select any mode but "device only".