Metadata-Version: 2.0
Name: mozilla-location-python
Version: 0.5.1
Summary: Using Mozilla Location services, log location vs. time using WiFi or convert to KML.
Home-page: https://github.com/scivision/mozilla-location-wifi-python
Author: Michael Hirsch, Ph.D.
Author-email: UNKNOWN
License: UNKNOWN
Description-Content-Type: text/markdown
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Information Technology
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Topic :: System :: Networking
Classifier: Topic :: Utilities
Requires-Python: >=3.6
Requires-Dist: pandas
Requires-Dist: requests
Provides-Extra: kml
Requires-Dist: simplekml; extra == 'kml'
Provides-Extra: tests
Requires-Dist: nose; extra == 'tests'
Requires-Dist: coveralls; extra == 'tests'

[![Python versions (PyPI)](https://img.shields.io/pypi/pyversions/mozilla-location-python.svg)](https://pypi.python.org/pypi/mozilla-location-python)

[![Distribution format (PyPI)](https://img.shields.io/pypi/format/mozilla-location-python.svg)](https://pypi.python.org/pypi/mozilla-location-python)

# mozilla-location-python
Uses nmcli on Linux in a short, simple Mozilla Location Services with Wifi from Python.
Goal was to be as simple as possible.

Note that a similar service with better accuracy is available from [Google](https://developers.google.com/maps/documentation/geolocation/intro).
Let us know if you're interested.

## Install
```sh
python -m pip install -e .
```

### prereqs
Linux system with NetworkManager (e.g. Ubuntu, Raspberry Pi, etc.).



## Usage
```sh
./MozLoc.py
```

Returns `dict()` containing `lat` `lng` `accuracy` `N BSSIDs heard`.
In urban areas, accuracy ~ 5 - 100 meters.


### convert to KML
You can display your logged data in Google Earth or other KML value after converting by

    ./csv2kml.py in.log out.kml

with

    pip install simplekml

Note that your time MUST be in ISO 8601 format or some KML reading programs such as Google Earth will just show a blank file.
E.g.

2016-07-24T12:34:56


## Contributing
Pull request if you have another favorite approach.
Would like to add Bluetooth, should be simple.


## Notes

* [Inspired by](https://github.com/flyinva/mozlosh)
* [Alternative using Skyhook and geoclue](https://github.com/scivision/python-geoclue)
* [Raspberry Pi NetworkManager](https://raspberrypi.stackexchange.com/a/73816)

### Raspberry Pi 3
Debian comes without NetworkManager by default.
Be careful as you lose Wifi password etc. by this procedure

1. Install network manager and remove the old
   ```sh
   apt install network-manager
   apt purge dhcpcd5
   ```
   reboot
2. upon reboot, try
   ```sh
   nmcli dev wifi list
   ```
   you should see several wifi access points and signal.
3. try the MLS geolocation program above.


