在我看到的许多网站上,我打印出了我现在的城市(例如"Hello to Berlin.").他们是怎么做到的?那需要什么呢?我想主要部分是javascript,但是我需要将所有这些内容实现到我自己的应用程序中?(或者Rails有一些宝石吗?)
另外,我想问一件事 - 我在状态列表中很有趣(通常在选择框中),用户选择他的状态(比如德国),根据状态值在另一个选择中显示所有区域在德国和选择区域后,将在所选区域中显示相应的城市.
有可能在任何地方获得这个庞大的州/城市/地区数据库吗?在我们的应用程序中有类似的东西会很有趣,但我不知道,这些列表在哪里得到......
您需要一个支持地理定位 api 的浏览器来获取用户的位置(但是,您需要用户的同意(此处为示例)才能执行此操作(大多数较新的浏览器都支持该功能,包括 IE9+ 和大多数移动操作系统的浏览器,包括 Windows Phone 7.5+)。
然后你所要做的就是使用 JavaScript 来获取位置:
if (window.navigator.geolocation) {
var failure, success;
success = function(position) {
console.log(position);
};
failure = function(message) {
alert('Cannot retrieve location!');
};
navigator.geolocation.getCurrentPosition(success, failure, {
maximumAge: Infinity,
timeout: 5000
});
}
Run Code Online (Sandbox Code Playgroud)
该position对象将保存用户位置的纬度和经度(但是,在桌面浏览器上人口较少的区域,这可能非常不准确,因为它们没有内置 GPS 设备)。进一步解释一下:在莱比锡,在台式计算机上获得的精度约为 300 米 - 我使用手机的 GPS 设备获得的精度约为 30 米。
然后,您可以继续使用Google Maps API的坐标(请参阅此处的反向地理编码)来查找用户的位置。如果您愿意的话,有一些Rails 的精华。我从来没有觉得有必要使用它们,但有些人似乎喜欢它们。
至于国家/城市列表,我们在项目中使用过一次从Geonames获得的数据,但我们需要先将其转换为我们的需要。
| 归档时间: |
|
| 查看次数: |
6008 次 |
| 最近记录: |