Documentation ¶
Index ¶
- func CalculateHaversine(lat1, lon1, lat2, lon2 float64) (d float64)
- func CalculatePythagorasEquirectangular(lat1, lon1, lat2, lon2 float64) (d float64)
- func Deg2Rad(deg float64) float64
- func MeasureDistanceHaversine(m1 Measurer, m2 Measurer) (distance float64)
- func MeasureDistancePythagoras(m1 Measurer, m2 Measurer) (distance float64)
- type BaseLang
- type Codes
- type Coordinates
- type Country
- type Geo
- type Measurer
- type Query
- type SubDivision
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CalculateHaversine ¶
func MeasureDistanceHaversine ¶
MeasureDistanceHaversine measures distances betweeen two countries using Havesine equation
func MeasureDistancePythagoras ¶
MeasureDistancePythagoras measures distances betweeen two countries using Pythagoras equirect angular equation
Types ¶
type Codes ¶
type Codes struct { Alpha2 string `json:"cca2"` Alpha3 string `json:"cca3"` CIOC string CCN3 string //CountryCode string // Yaml CallingCodes []string `json:"callingCode"` InternationalPrefix string // Yaml }
Codes contains various code representations
type Coordinates ¶
type Coordinates struct { LongitudeString string `json:"longitude"` LatitudeString string `json:"latitude"` MinLongitude float64 MinLatitude float64 MaxLongitude float64 MaxLatitude float64 Latitude float64 Longitude float64 }
Coordinates contains the coordinates for both Country and SubDivision
type Country ¶
type Country struct { Name struct { BaseLang `yaml:",inline"` Native map[string]BaseLang } `json:"name"` EuMember bool LandLocked bool Nationality string TLDs []string `json:"tld"` Languages map[string]string Translations map[string]BaseLang Currencies []string `json:"currency"` Borders []string // Grouped meta Codes Geo Coordinates // contains filtered or unexported fields }
Country contains all countries and their country codes
func (*Country) BorderingCountries ¶
BorderingCountries gets the bordering countries for this country
func (Country) MeasurableCoordinates ¶
MeasurableCoordinates provides long/lat for country struct
func (*Country) SubDivisions ¶
func (c *Country) SubDivisions() (subdivisions []SubDivision)
type Geo ¶
type Geo struct { Region string `json:"region"` SubRegion string `json:"subregion"` Continent string // Yaml Capital string `json:"capital"` Area float64 }
Geo contains geographical information
type Measurer ¶
type Measurer interface {
MeasurableCoordinates() (lat, long float64)
}
Measurer provides coordinates for measurements
type Query ¶
type Query struct { Countries []Country Subdivisions map[string][]SubDivision }
Query contains queries for countries, cities, etc.
func NewFromPath ¶
NewFromPath creates a Query object from data folder in provided path
func (Query) FindCountries ¶
func (*Query) FindCountryByAlpha ¶
FindCountryByCode fincs a country by given code
type SubDivision ¶
type SubDivision struct { Name string Names []string Code string CountryAlpha2 string Coordinates }
SubDivision contains Country subdivison information
func (SubDivision) MeasurableCoordinates ¶
func (sd SubDivision) MeasurableCoordinates() (lat, long float64)
MeasurableCoordinates provides long/lat for country struct