pinpointer 0.1.3

Gets provinces and countries from latitudes and longitudes.
Documentation
# pinpointer

Gets provinces and countries from latitudes and longitudes.

## Installation:

### From source:

You will need to install [Rust](https://www.rust-lang.org/learn/get-started) in order to install this program from source. 
After installing Rust, installation is simply:
```
cargo install pinpointer
```

## Usage

### As a library:

The main feature of this library is the `LabeledPartitionTree`, which can be used to perform fast point-in-region queries. 
A `LabeledPartitionTree` can be built from a mapping from labels to polygons with those labels.

This library provides some helper functions to make it easy to get map data and build label trees to perform point-in-country and point-in-province queries.
See the examples folder for full code examples for downloading data, computing the label trees, and finally performing millions of point-in-country/point-in-province lookups.

### Demo server:

You can also run a local demo server on port 8000 by running the `pinpointer-server` command after installation. 
On startup, the server will download country and province data to the `data` directory and compute depth 6 label trees for both.
The server exposes two endpoints, `/lat_lon_to_country` and `/lat_lon_to_province`, which take `lat` and `lon` query arguments and return a country or province code, respectively.
If the lat/lon pair does not fall within any country, the endpoints return "-99" instead.

Here are some example requests to the server:
```
curl http://localhost:8000/lat_lon_to_country?lat=10&lon=20
# TD

curl http://localhost:8000/lat_lon_to_province?lat=10&lon=20
# TD-SA

```