gpt4 book ai didi

ruby-on-rails - 如何将谷歌地图添加到事件管理员?

转载 作者:行者123 更新时间:2023-12-02 01:20:31 25 4
gpt4 key购买 nike

我在我的 Rails 应用程序中使用 active-admin 并想在谷歌地图上绘制(纬度,地段)。有人可以指导我如何去做。

这是我的 booking_geo_locations.rb 文件

ActiveAdmin.register BookingGeoLocation do
show do
attributes_table do
row :id
row :user_id
row :date_pickup
row :location_pickup
row :date_dropoff
row :location_dropoff
row :location_pickup_latitude
row :location_dropoff_latitude
row :driver_price

end
end

最佳答案

为简单起见,我的示例基于 rails g scaffold Post location:string latitude:float longitude:float移民。

将此添加到 config/initializers/active_admin.rb 的末尾(在最后一个 end 之后):

Rails.application.config.after_initialize do
javascripts = Array.wrap("//maps.googleapis.com/maps/api/js?key=#{ENV['GOOGLE_MAPS_API_KEY']}&libraries=places")
javascripts += ActiveAdmin.application.javascripts.to_a
ActiveAdmin.application.javascripts.replace javascripts
end

您必须重新启动服务器才能使其生效。请注意,这使用了一个环境变量,您也必须设置它。

接下来,在 app/assets/javascripts/active_admin.js.coffee 中,您想要执行以下操作:
jQuery ->
input = document.getElementById("post_location");
if input
autocomplete = new google.maps.places.Autocomplete(input);
autocomplete.addListener "place_changed", ->
$("#post_latitude").val(autocomplete.getPlace().geometry.location.lat());
$("#post_longitude").val(autocomplete.getPlace().geometry.location.lng());

当您添加新帖子时,您将在键入时得到一个由谷歌地图提供的下拉菜单。从那里选择一个选项将填充您的纬度和经度字段 - 将这些设置为只读是一个好主意,这样您的用户可以直观地确认所选坐标,但不能更改数据。

注意:在您的 BookingGeoLocation 上实现此功能模型,您的表中还需要两列 location_pickup_longitudelocation_dropoff_longitude .确保这些是 Float 类型.

关于ruby-on-rails - 如何将谷歌地图添加到事件管理员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40509795/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com