验证地理位置纬度和经度

ber*_*kes 7 validation geocoding ruby-on-rails

我有一个Ruby on Rails的模型Camping#latitude#longitude属性.

这应该得到验证.必须进行验证,以便:

  • 值格式正确.例如48.8582和2.2945,但也有48.8和2.2.应该允许任何精度.我将它们存储为Float,是否需要或建议任何附加验证?
  • 它们在有效范围内(0-90).或者我应该允许负数,或高于和低于90的数字?

我不感兴趣在这一点上是否是一个实际有效的地址(海洋,北极,无论如何,只要它是地球上的有效点).

我正在使用geocoder gem,但是现在,输入只是一对lat/lon文本字段.地理编码器只是对这个问题感兴趣,因为它可能有实用方法(我找不到)来验证纬度/经度对.

dei*_*vid 23

我不知道Geocoder中的任何方法来检查,但你可以使用rails验证

validates :latitude , numericality: { greater_than_or_equal_to:  -90, less_than_or_equal_to:  90 }
validates :longitude, numericality: { greater_than_or_equal_to: -180, less_than_or_equal_to: 180 }
Run Code Online (Sandbox Code Playgroud)