package gocitiesjson
import (
_ "embed"
"encoding/json"
"strconv"
)
var citiesbytes []byte
type City struct {
Country string `json:"country"`
Name string `json:"name"`
Lat float64 `json:"lat"`
Lng float64 `json:"lng"`
}
var Cities []*City
func init() {
type RawCity struct {
Country string `json:"country"`
Name string `json:"name"`
Lat string `json:"lat"`
Lng string `json:"lng"`
}
var rawcities []*RawCity
if err := json.Unmarshal(citiesbytes, &rawcities); err != nil {
panic(err)
}
for _, rawcity := range rawcities {
lat, err := strconv.ParseFloat(rawcity.Lat, 64)
if err != nil {
panic(err)
}
lng, err := strconv.ParseFloat(rawcity.Lng, 64)
if err != nil {
panic(err)
}
Cities = append(Cities, &City{
Lat: lat,
Lng: lng,
Country: rawcity.Country,
Name: rawcity.Name,
})
}
}