使用gmaps4rails gem点击谷歌地图获取地址

时间:2012-06-09 11:28:00

标签: ruby-on-rails google-maps gmaps4rails

我正在使用rails 3.2.3和gmaps4rails gem。

我有一个叫做联系的模型。在联系对象中,我有一个提交的命名地址。

现在我已将联系人定义为acts_as_gmappable,gmaps4rails_address将地址字段显示为Google地图中的标记。

现在,在我们添加新联系人时,我想添加一项功能,以便在点击带有点击位置的Google地图时自动填写地址。

我怎样才能在gmaps4rails gem的帮助下做到这一点?

2 个答案:

答案 0 :(得分:4)

维基上有一个很好的指南可能会有所帮助。查找“删除表单中的标记和更新字段属性”部分

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获取地址。

答案 1 :(得分:1)

在带有erb的rails 3.2中,要添加一个id,你应该这样做:

<%= text_field_tag(:latitudex, "", :id => "location_attributes_latitude") %>

感谢您的回答,“字段ID”是我所缺少的。