geoinfo.go 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. // Copyright 2019 Yunion
  2. //
  3. // Licensed under the Apache License, Version 2.0 (the "License");
  4. // you may not use this file except in compliance with the License.
  5. // You may obtain a copy of the License at
  6. //
  7. // http://www.apache.org/licenses/LICENSE-2.0
  8. //
  9. // Unless required by applicable law or agreed to in writing, software
  10. // distributed under the License is distributed on an "AS IS" BASIS,
  11. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. // See the License for the specific language governing permissions and
  13. // limitations under the License.
  14. package cloudprovider
  15. // +onecloud:model-api-gen
  16. type SGeographicInfo struct {
  17. // 纬度
  18. // example: 26.647003
  19. Latitude float32 `list:"user" update:"admin" create:"admin_optional"`
  20. // 经度
  21. // example: 106.630211
  22. Longitude float32 `list:"user" update:"admin" create:"admin_optional"`
  23. // 城市
  24. // example: Guiyang
  25. City string `list:"user" width:"32" update:"admin" create:"admin_optional"`
  26. // 国家代码
  27. // example: CN
  28. CountryCode string `list:"user" width:"4" update:"admin" create:"admin_optional"`
  29. }
  30. func (geo SGeographicInfo) IsEquals(other SGeographicInfo) bool {
  31. return geo.City == other.City && geo.CountryCode == other.CountryCode &&
  32. geo.Latitude-other.Latitude < 0.01 && geo.Longitude-other.Longitude < 0.01
  33. }