An open API service indexing awesome lists of open source software.

https://github.com/saidsef/faas-reverse-geocoding

Golang reverse geocoding
https://github.com/saidsef/faas-reverse-geocoding

docker docker-container geocoding go golang golang-server location reverse-geocode reverse-geocoding

Last synced: 10 months ago
JSON representation

Golang reverse geocoding

Awesome Lists containing this project

README

          

# Golang Reverse GeoCoding

[![Go Report Card](https://goreportcard.com/badge/github.com/saidsef/faas-reverse-geocoding)](https://goreportcard.com/report/github.com/saidsef/faas-reverse-geocoding)
![GitHub go.mod Go version](https://img.shields.io/github/go-mod/go-version/saidsef/faas-reverse-geocoding)
[![GoDoc](https://godoc.org/github.com/saidsef/faas-reverse-geocoding?status.svg)](https://pkg.go.dev/github.com/saidsef/faas-reverse-geocoding?tab=doc)
![GitHub release(latest by date)](https://img.shields.io/github/v/release/saidsef/faas-reverse-geocoding)
![Commits](https://img.shields.io/github/commits-since/saidsef/faas-reverse-geocoding/latest.svg)
![GitHub](https://img.shields.io/github/license/saidsef/faas-reverse-geocoding)

Reverse geocoding is used to find places or addresses near a latitude, longitude pair. Picture a map showing building outlines but no labels, then clicking on a building and being shown the name of the business. That is reverse geocoding.

This repository holds a small web service that performs reverse geocoding to determine whether specified geo coordinates has an address. If it is then the response will contain attributes associated with the matched address, municipality, county, country, etc.

> By default, this will cache requests for 60 minutes to prevent repeated request(s) being sent again and again. The percision is limited to 3 decimal places.

## Geographic Coordinates

The number of decimal places in geographic coordinates determines the accuracy of the location. Each additional decimal place increases the precision of the coordinates:

| Decimal Places | Precision |
|:--------------:|:----------------:|
| 1 | ±10 kilometres |
| 2 | ±1 kilometre |
| 3 | ±100 metres |
| 4 | ±10 metres |
| 5 | ±1 metre |
| 6 | ±10 centimetres |

## Deployment

### Helm Chart

```shell
helm repo add geocode https://saidsef.github.io/faas-reverse-geocoding
helm repo update
helm upgrade --install geocode geocode/reverse-geocoding --namespace geocode --create-namespace
```

> *NOTE:* API can be accessed via port-forward `Service` or via Enabling `Ingress`

### Kustomization

```shell
kubectl apply -k deployment/
```

> *NOTE:* API can be accessed via port-forward `Service` or via updating `Ingress`

Take it for a test drive:

```shell
curl -d '{"lat":"41.40338","lon":"2.17403"}' http://localhost:8080/
```

```python
from requests import post
data='{"lat":"41.40338","lon":"2.17403"}'
r = post('http://localhost:8080/', data=data)
print(r.text)
```

## Source

Our latest and greatest source of *Reverse Geocoding* can be found on [GitHub]. [Fork us](https://github.com/saidsef/faas-reverse-geocoding/fork)!

## Contributing

We would :heart: you to contribute by making a [pull request](https://github.com/saidsef/faas-reverse-geocoding/pulls).

Please read the official [Contribution Guide](./CONTRIBUTING.md) for more information on how you can contribute.