Skip to content
master
Switch branches/tags
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 

Gominatim - Go library to access nominatim geocoding services

Latest Release GoDoc Build Status Coverage Status Go ReportCard

Geocoding? WTF?

If you want to determine the coordinates of a certain location by only having its name, you can do this via a geocoding service. If you want to do this in Go, you probably want to use gominatim to do it.

License

LGPLv3

Features

The plan is to cover everything this site documents: Nominatim Wiki

  • Search
  • Reverse Geocoding

Contributions

…Are welcome :)

If you want to add anything, do it and submit a pull-request. Please add Tests for your additions!

Usage of the Openstreetmaps-Nominatim Server

Please refer to the Nominatim Wiki if you plan to use the nominatim service of openstreetmaps. If you plan to generate high loads with geoqueries, it would be nice if you did it on your own infrastructure, not on their server.

Examples

package main

import (
	"fmt"
	"github.com/muesli/gominatim"
)

func main() {
	gominatim.SetServer("https://nominatim.openstreetmap.org/")

	//Get by a Querystring
	qry := gominatim.SearchQuery{
		Q: "Hamburg",
	}
	resp, _ := qry.Get() // Returns []gominatim.SearchResult
	fmt.Printf("Found location: %s (%s, %s)\n", resp[0].DisplayName, resp[0].Lat, resp[0].Lon)

	//Get by City
	qry = gominatim.SearchQuery{
		City: "Berlin",
	}
	resp, _ = qry.Get()
	fmt.Printf("Found location: %s (%s, %s)\n", resp[0].DisplayName, resp[0].Lat, resp[0].Lon)

	//Reverse Geocoding
	rqry := gominatim.ReverseQuery{
		Lat: "52.5170365",
		Lon: "13.3888599",
	}
	rresp, _ := rqry.Get()
	fmt.Printf("Found %s\n", rresp.DisplayName)
}

About

Go library to access nominatim geocoding services

Topics

Resources

Packages

No packages published

Languages