Add geographic coordinates to IP data and enhance map visualization
- Introduced latitude and longitude fields in the IP data structure to support geographic information. - Updated the API documentation to reflect the inclusion of geographic coordinates in the unique IPs endpoint. - Enhanced the UI to display a map of connections using Leaflet, providing a visual representation of IP locations based on the new geographic data. - Improved the handling of GeoIP data to ensure accurate mapping and user experience when GeoIP is enabled.
This commit is contained in:
@@ -75,6 +75,8 @@ type Result struct {
|
||||
CountryCode string
|
||||
CountryName string
|
||||
CityName string
|
||||
Latitude float64
|
||||
Longitude float64
|
||||
ASN uint64
|
||||
ASOrg string
|
||||
}
|
||||
@@ -99,6 +101,13 @@ func (s *Service) Lookup(ipStr string) (Result, bool) {
|
||||
if rec.City.Names != nil {
|
||||
out.CityName = rec.City.Names["en"]
|
||||
}
|
||||
// Coordinates are used by the UI map.
|
||||
// Note: MaxMind might still return 0/0 for unknown locations.
|
||||
if rec.Location.Latitude != 0 || rec.Location.Longitude != 0 {
|
||||
out.Latitude = rec.Location.Latitude
|
||||
out.Longitude = rec.Location.Longitude
|
||||
ok = true
|
||||
}
|
||||
if out.CountryCode != "" || out.CountryName != "" || out.CityName != "" {
|
||||
ok = true
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user