我正在使用 rails 3.2.3 和 gmaps4rails gem。
我有一个模型叫做联系。在联系对象中,我有一个名为地址的文件。
现在我已将联系人定义为acts_as_gmappable,并且gmaps4rails_address 将地址字段显示为谷歌地图中的标记。
现在,当我们添加新联系人时,我想添加一个功能,当我们点击带有点击位置的谷歌地图时,地址将自动填充。
如何在 gmaps4rails gem 的帮助下做到这一点?
我正在使用 rails 3.2.3 和 gmaps4rails gem。
我有一个模型叫做联系。在联系对象中,我有一个名为地址的文件。
现在我已将联系人定义为acts_as_gmappable,并且gmaps4rails_address 将地址字段显示为谷歌地图中的标记。
现在,当我们添加新联系人时,我想添加一个功能,当我们点击带有点击位置的谷歌地图时,地址将自动填充。
如何在 gmaps4rails gem 的帮助下做到这一点?
wiki 上有一个很好的指南可能会有所帮助。查找“在表单中删除标记并更新字段属性”部分
https://github.com/apneadiving/Google-Maps-for-Rails/wiki/Javascript-goodies
只需包含 javascript,并使用您的实际字段 ID 更新以下内容(您可能需要在表单上隐藏一些 :lat :lon 字段)
$('#location_attributes_latitude').val(latLng.lat());
$('#location_attributes_longitude').val(latLng.lng());
$('#location_attributes_gmaps_zoom').val(Gmaps.map.serviceObject.getZoom());
保存时,您需要检查用户是否手动输入了地址,或者使用了地图。
如果他们使用了地图,您将需要一种方法来反向地理编码并使用 :lat :lon 值从 Google 获取地址。
在带有 erb 的 rails 3.2 中,要添加 id 你应该这样做:
<%= text_field_tag(:latitudex, "", :id => "location_attributes_latitude") %>
感谢您的回答,“字段ID”是我所缺少的。