ruby-on-rails - rails geokit - 获取旅行/通勤时间

标签 ruby-on-rails ruby ruby-on-rails-3 geolocation geokit

有没有办法在 rails 中使用 geokit 来获取两个位置之间的估计旅行时间?现在,我只是显示距离,但我认为更好的方法是显示“15 分钟路程”——给它一个更实用的距离方法(有时 2 英里是 10 分钟,有时是 3 分钟)

最佳答案

更好的解决方案是使用 Google Maps Directions API使用 API 就像调用以下 URL http://maps.googleapis.com/maps/api/directions/json?origin=Chicago,IL&destination=Los+Angeles,CA&waypoints=Joplin,MO|Oklahoma+ 一样简单城市,OK&sensor=false。 返回此 JSON:

{
  "status": "OK",
  "routes": [ {
    "summary": "I-40 W",
    "legs": [ {
      "steps": [ {
        "travel_mode": "DRIVING",
        "start_location": {
          "lat": 41.8507300,
          "lng": -87.6512600
        },
        "end_location": {
          "lat": 41.8525800,
          "lng": -87.6514100
        },
        "polyline": {
          "points": "a~l~Fjk~uOwHJy@P",
          "levels": "B?B"
        },
        "duration": {
          "value": 19,
          "text": "1 min"
        },
        "html_instructions": "Head \u003cb\u003enorth\u003c/b\u003e on \u003cb\u003eS Morgan St\u003c/b\u003e toward \u003cb\u003eW Cermak Rd\u003c/b\u003e",
        "distance": {
          "value": 207,
          "text": "0.1 mi"
        }
      },
      ...
      ... additional steps of this leg
    ...
    ... additional legs of this route
      "duration": {
        "value": 74384,
        "text": "20 hours 40 mins"
      },
      "distance": {
        "value": 2137146,
        "text": "1,328 mi"
      },
      "start_location": {
        "lat": 35.4675602,
        "lng": -97.5164276
      },
      "end_location": {
        "lat": 34.0522342,
        "lng": -118.2436849
      },
      "start_address": "Oklahoma City, OK, USA",
      "end_address": "Los Angeles, CA, USA"
    } ],
    "copyrights": "Map data ©2010 Google, Sanborn",
    "overview_polyline": {
      "points": "a~l~Fjk~uOnzh@vlbBtc~@tsE`vnApw{A`dw@~w\\|tNtqf@l{Yd_Fblh@rxo@b}@xxSfytAblk@xxaBeJxlcBb~t@zbh@jc|Bx}C`rv@rw|@rlhA~dVzeo@vrSnc}Axf]fjz@xfFbw~@dz{A~d{A|zOxbrBbdUvpo@`cFp~xBc`Hk@nurDznmFfwMbwz@bbl@lq~@loPpxq@bw_@v|{CbtY~jGqeMb{iF|n\\~mbDzeVh_Wr|Efc\\x`Ij{kE}mAb~uF{cNd}xBjp]fulBiwJpgg@|kHntyArpb@bijCk_Kv~eGyqTj_|@`uV`k|DcsNdwxAott@r}q@_gc@nu`CnvHx`k@dse@j|p@zpiAp|gEicy@`omFvaErfo@igQxnlApqGze~AsyRzrjAb__@ftyB}pIlo_BflmA~yQftNboWzoAlzp@mz`@|}_@fda@jakEitAn{fB_a]lexClshBtmqAdmY_hLxiZd~XtaBndgC",
      "levels": "BBBAAAAABAABAAAAAABBAAABBAAAABBAAABABAAABABBAABAABAAAABABABABBABAABB"
    },
    "warnings": [ ],
    "waypoint_order": [ 0, 1 ],
    "bounds": {
      "southwest": {
        "lat": 34.0523600,
        "lng": -118.2435600
      },
      "northeast": {
        "lat": 41.8781100,
        "lng": -87.6297900
      }
    }
  } ]
}   

然后解析返回的 JSON 以获取 duration.text 并将其显示在您的页面上。 您可能必须遵守服务条款才能使用此 API,因此请务必阅读 Google 的要求以及它们如何影响服务的使用。

关于ruby-on-rails - rails geokit - 获取旅行/通勤时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6877907/

相关文章:

ruby-on-rails - Rails 4 - 将变量传递给部分

ruby-on-rails - 使用隐藏字段 Rails 4 验证确认

ruby - 按空格拆分字符串,忽略转义的空格

ruby-on-rails - 如何在 rails 3.2.1 中使用 link_to 和 ajax

ruby-on-rails - 动态 Ruby 类调用?

ruby-on-rails - 记录更改等待特权用户的批准;它就像版本控制与批准相结合

mysql - 缺少 MySQL 客户端

ruby-on-rails - collection_select 不在 rails 4 中显示 text_method

ruby - Rails——before_save 不工作?

ruby-on-rails-3 - click_on 和 click_link 的区别?