寻找纬度和经度字段的地理编码器,但它们不存在
Geocoder looking for latitude and longitude fields but they don't exist
我正在使用 Rails Geocoder Gem、Rails 4.2 和 MySqL。我想检测有多少旅行与某些盒子兼容。
旅行和盒子有这些字段:departure_address
、departure_lat
、departure_long
和 arrival_address
、arrival_lat
、arrival_long
。
当我想检查旅行是否与盒子兼容时,我尝试使用以下查询:
Travel.near([Box.last.departure_lat, Box.last.departure_long], 50)
我知道它只考虑 departure_address
而不是 arrival_address
但无论如何它不起作用,因为 Geocoder 试图在 table 'travels' 即使我称它为 'dep_lat' 等等经度。
我想解决这个问题,然后想把它和arrivals结合起来。谢谢!
您需要向 GeoCoder 指定您不想使用它们的默认 lat
和 lon
属性名称。
为此,请将以下行添加到您的模型中:
geocoded_by :departure_address, :latitude => :departure_lat, :longitude => :departure_lon # ActiveRecord
你也会为你的到来做同样的事情,但当然要改变名字。
来自文档:
You are not stuck with using the latitude and longitude database column names (with ActiveRecord). For example:
geocoded_by :address, :latitude => :lat, :longitude => :lon # ActiveRecord
有关此内容的更多信息,请参阅 GeoCoder 文档的 Model Configuration 部分。
我正在使用 Rails Geocoder Gem、Rails 4.2 和 MySqL。我想检测有多少旅行与某些盒子兼容。
旅行和盒子有这些字段:departure_address
、departure_lat
、departure_long
和 arrival_address
、arrival_lat
、arrival_long
。
当我想检查旅行是否与盒子兼容时,我尝试使用以下查询:
Travel.near([Box.last.departure_lat, Box.last.departure_long], 50)
我知道它只考虑 departure_address
而不是 arrival_address
但无论如何它不起作用,因为 Geocoder 试图在 table 'travels' 即使我称它为 'dep_lat' 等等经度。
我想解决这个问题,然后想把它和arrivals结合起来。谢谢!
您需要向 GeoCoder 指定您不想使用它们的默认 lat
和 lon
属性名称。
为此,请将以下行添加到您的模型中:
geocoded_by :departure_address, :latitude => :departure_lat, :longitude => :departure_lon # ActiveRecord
你也会为你的到来做同样的事情,但当然要改变名字。
来自文档:
You are not stuck with using the latitude and longitude database column names (with ActiveRecord). For example:
geocoded_by :address, :latitude => :lat, :longitude => :lon # ActiveRecord
有关此内容的更多信息,请参阅 GeoCoder 文档的 Model Configuration 部分。