Ruby on rails 如何自动查找用户';什么地方?

Ruby on rails 如何自动查找用户';什么地方?,ruby-on-rails,ruby,language-agnostic,location,detect,Ruby On Rails,Ruby,Language Agnostic,Location,Detect,我目前正在一个节目列表网站上工作。我将按位置为用户显示以各种不同方式排序的显示信息 我知道,当用户第一次登录网站时,我可以询问他们的位置,但我注意到许多网站都内置了自动检测位置的功能(例如,请参阅“活动:您所在地区的音乐会列表”) 他们是怎么做到的?我目前正在用RubyonRails构建我的网站。他们通常使用IP表的IP分辨率。 可能会有一些想法这里有一个指向相关谷歌地图API文档的链接: 它显示了如何使用它的示例: /** * Set the currentState_ and curre

我目前正在一个节目列表网站上工作。我将按位置为用户显示以各种不同方式排序的显示信息

我知道,当用户第一次登录网站时,我可以询问他们的位置,但我注意到许多网站都内置了自动检测位置的功能(例如,请参阅“活动:您所在地区的音乐会列表”)


他们是怎么做到的?我目前正在用RubyonRails构建我的网站。

他们通常使用IP表的IP分辨率。
可能会有一些想法

这里有一个指向相关谷歌地图API文档的链接:

它显示了如何使用它的示例:

/**
 * Set the currentState_ and currentCountry_ properties based on the client's
 * current location (when available and in the US), or to the defaults.
 */
InTheNews.prototype.setDefaultLocation_ = function() {
  this.currentState_ = this.options_.startingState;
  if (google.loader.ClientLocation &&
      google.loader.ClientLocation.address.country_code == "US" &&
      google.loader.ClientLocation.address.region) {

    // geo locate was successful and user is in the United States. range
    // check the region so that we can safely use it when selecting a
    // state level polygon overlay
    var state = google.loader.ClientLocation.address.region.toUpperCase();
    if (InTheNews.stateNames[state]) {
      this.currentState_ = state;
    }
  }
  this.currentCountry_ = "US";
}
并告诉您将从中获得什么:

当填充时
google.loader.ClientLocation
对象为 填充了以下内容 metro级粒度属性:

  • ClientLocation.latitude
    -提供与客户端IP地址关联的低分辨率纬度

  • ClientLocation.longitude
    -提供与客户端IP地址关联的低分辨率经度

  • ClientLocation.address.city
    -提供与客户端IP地址关联的城市名称

  • ClientLocation.address.country
    -提供与客户端IP地址关联的国家/地区的名称

  • ClientLocation.address.country_代码-提供与客户IP地址关联的ISO 3166-1国家/地区代码的名称

  • ClientLocation.address.region-提供与客户端IP地址关联的特定于国家/地区的名称


您可能希望了解Solution的IP位置。一个开源的解决方案。

有一种新的方法,事实上它是找到地理位置的更好的方法,因为浏览器本机支持W3C API进行地理定位。。。你应该去看看。

是一个使用Maxminds免费或付费库的简单宝石


轻松设置,无需模式更新。

我对社区有点陌生,因此这可能有点离谱,但包含页面中的片段如何实质性地增加答案?他仍然需要点击链接才能使用API,不是吗?@runako:这个想法是为了让SO成为一个充满信息的维基。因此,拥有链接是一个很好的开始,但是提供更多的信息让某人有一个良好的开端就更好了。@runako-如果页面移动或被删除怎么办?在这种情况下,上面发布的文档很可能也被弃用。@runako:然后这个wiki就可以编辑了。我建议您阅读常见问题解答,了解更多关于我们为什么选择此选项的信息。如果您需要更多信息,请不要忘记对一些您喜欢的答案进行投票,并可能标记一个已接受的答案。人们总是需要鼓励。我对三个答案投了赞成票。但有人对一切都投了反对票。@Coding:有趣。好问题,请继续。