25

我想问一下哪个是将谷歌地图集成到 ruby​​ on rails 应用程序的最佳解决方案。一个特定的宝石值得还是我们应该为它写下自己的观点?

感谢您的任何意见。

4

6 回答 6

32

仅供参考,我已经完成了 gmaps4rails 的稳定版本。

请参阅:https ://github.com/apneadiving/Google-Maps-for-Rails

于 2011-02-18T17:28:02.960 回答
11

如果您的要求只是显示特定区域的谷歌地图,可能带有一些标记,您可以使用谷歌地图静态图像 API,例如:

<img src="http://maps.google.com/maps/api/staticmap?size=255x255&maptype=roadmap&sensor=false&markers=color:blue|label:A|Chicago,IL&markers=color:purple|label:B|Hammond,IN" alt="Static, Marked Map of Chicago, Illinois and Hammond, Indiana with no Center and Zoom"></img>

结果是:

伊利诺伊州芝加哥和印第安纳州哈蒙德的静态标记地图,没有中心和缩放

这是一篇关于主题的好文章。也可以在标记上用纬度和经度指定地理位置:

markers=color:pink|label:A|55.783041, -137.500994

因此,在 Rails 中,您可以使用例如image_taggoogle map image path helper:

= image_tag google_map_image_path, :alt => "Google Map"
于 2011-02-18T18:28:08.767 回答
7

我之前使用过 YM4R、Geruby 和空间适配器 gem,效果很好。看到这个描述

于 2009-05-31T03:22:41.090 回答
3

截至 2012 年 11 月,我发现的谷歌地图集成的最佳宝石是geocoder
它提供对象地理编码(按街道或 IP 地址)、反向地理编码(与街道地址的坐标)、ActiveRecord 和 Mongoid 的距离查询、结果缓存和更多的。专为 Rails 设计,但也适用于 Sinatra 和其他 Rack 框架。

你也可以得到一个railscasts

于 2012-11-22T09:51:55.257 回答
0

GoogleMaps gem 是一个不错的选择。它添加了所有基本的 JS 脚本,但无论如何,如果没有 JS 编码,就无法完成功能齐全的动态地图。

还有 JS 插件,其中最吸引人的是 gmap3、Mapplace.Js 和 gmaps.js。

宝石和插件可以节省基本的时间,但使用它们会带来一些限制。例如,如果 Google 对其 Maps API 进行了更改,您必须等待 gem 或插件的更新版本或手动集成。

事实上,将谷歌地图集成到 Rails 应用程序中并没有什么大的困难,恕我直言,在没有宝石的情况下这样做是有道理的。

有关将 Google 地图集成到 Ruby on Rails 应用程序中的详细演练,请参阅这篇文章:如何将 Google 地图集成到 Ruby on Rails 应用程序中。

于 2016-09-01T11:11:18.633 回答
0

截至 2021 年 12 月,我推荐使用 Stimulus.js的这种方法https://www.driftingruby.com/episodes/google-maps-api-with-stimulusjs

必须为 Rails 7 更新一些位。

  1. 您不需要这样做rails webpacker:install:stimulus,它已经通过 Hotwire 包含在内
  2. 将 turbolink 重命名为 turbo
  3. packs/application.js 不再存在,我还没有找到最好的位置。现在我把它放在 app/javascripts/controllers/index.js
  4. import { Controller} from "stimulus"已经成为import { Controller } from "@hotwired/stimulus"

就是这样

于 2021-12-26T05:51:28.080 回答