Reverse- and geocoding with nominatim in go
grindhold eecda9fb9b Merge pull request #8 from alaminopu/master | 6 年之前 | |
---|---|---|
example | 10 年之前 | |
.gitignore | 10 年之前 | |
.travis.yml | 8 年之前 | |
README.md | 6 年之前 | |
nominatim.go | 6 年之前 | |
nominatim_reverse.go | 7 年之前 | |
nominatim_reverse_test.go | 10 年之前 | |
nominatim_search.go | 10 年之前 | |
nominatim_search_test.go | 6 年之前 |
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.
The plan is to cover everything, this site documents: Nominatim Wiki
…Are welcome :)
If you want to add anyting, do it and submit a pullrequest. Please add Tests for your additions
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
package main
import (
"fmt"
"github.com/grindhold/gominatim"
)
func main() {
gominatim.SetServer("http://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)
}