Ruby 和谷歌地图 API

标签 ruby ruby-on-rails-3 google-maps-api-3

我正在使用以下 url 请求路线:

http://maps.googleapis.com/maps/api/directions/json?origin=43.656877,-79.32085&destination=Montreal&sensor=false

然后,Google 发回一个巨大的 JSON,我想以比这更好的方式访问这些步骤:

response = open("http://maps.googleapis.com/maps/api/directions/json?origin=#{lat1},#{lng1}&destination=#{lat2},#{lng2}&sensor=false").read
response = JSON.parse(response)

response["routes"][0]["legs"][0]["steps"][0]["end_location"]

有没有更漂亮的方法来访问 end_location 而不必使用所有这些数组表示法?我想过使用 OpenStruct,但它也不太理想。

最佳答案

可以将[0]替换为first,字符较多但概念更简单,速度也稍快。

response["routes"].first["legs"].first["steps"].first["end_location"]

或者,您也可以这样做:

["routes", 0, "legs", 0, "steps", 0, "end_location"].inject(response, &:fetch)

关于Ruby 和谷歌地图 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13143355/

相关文章:

ruby-on-rails - 在任何来源中都找不到 gem mime-types-2.4.1

ruby - Rails3/ruby gem 中是否有将状态代码映射到消息的方法?

javascript - 如何在谷歌地图API中使用多边形字符串

ruby-on-rails - Twitter API- Rails 未定义方法 `name' 为 nil :NilClass

ruby - 为什么 macvim 不总是使用 ruby​​ 1.9.3?

ruby - Popen 获取新运行进程的 pid

ruby - 无法在 rails 3 上显示哈希

ruby-on-rails - 给定一个带句号的输入,如何让所有内容都跟在它后面?

javascript - 如何知道街景全景图是在室内还是室外

javascript - 谷歌地图API错误: initMap is not a function