Ruby on Rails,用户可以设置他们的位置
Posted
技术标签:
【中文标题】Ruby on Rails,用户可以设置他们的位置【英文标题】:Ruby on Rails, users can set their location 【发布时间】:2015-07-19 19:52:58 【问题描述】:所以我正在使用 Ruby on Rails 开发一个 Web 应用程序,并且我想找到一种方法,让用户在创建他的帐户时可以设置他的位置。我正在考虑类似 google maps API for rails 之类的东西,用户可以在其中选择他的居住地。
如果有人对此有任何建议,我将不胜感激!
【问题讨论】:
【参考方案1】:有一个很好的SlideShare 谈论在您的rails 应用程序中启用地理定位。您可以轻松获取用户的位置并使用 javascript 将其设置为默认位置。
假设您想获取用户的当前位置并将其显示在您的视图中: 首先包含相应的 google maps api js 库:
<script src="https://maps.googleapis.com/maps/api/js"></script>
观看次数/索引
<body>
<div class="container">
<div class="error-message">
</div>
<div class="jumbotron">
<h1>Google Maps</h1>
</div>
<div class="location">
<div class="loc longitude">
<h3>Longitude</h3>
<p id="longitude"><i class="fa fa-spinner fa-spin"></i></p>
</div>
<div class="loc latitude">
<h3>Latitude</h3>
<p id="latitude"><i class="fa fa-spinner fa-spin"></i></p>
</div>
</div>
<div class="row">
<div class="col-md-12 google-map-container">
<div id="google-map">
<h3>Map</h3>
<div id="map_canvas">
<div class=" ">
<i class="fa fa-spinner fa-spin fa-5x"></i>
</div>
</div>
</div>
</div>
</div>
</div> <!-- /container -->
</html>
现在假设您有两个 js 文件,一个获取用户经度和纬度,另一个根据用户位置创建和插入地图
fetch_location.js
$(document).ready(function()
var x = document.getElementById("latitude");
var y = document.getElementById("longitude");
// $('.vertical-align').hide();
function getLocation()
navigator.geolocation.getCurrentPosition(function(position)
x.innerHTML = position.coords.latitude.toFixed(4);
y.innerHTML = position.coords.longitude.toFixed(4);
insertMap(latitude,longitude);
);
getLocation();
);
然后在 inser_map.js
function insertMap(latitude, longitude)
$('#map_canvas').html(initialize(latitude,longitude));
function initialize(latitude,longitude)
var mapCanvas = document.getElementById('map_canvas');
var mapOptions =
center: new google.maps.LatLng(latitude,longitude),
zoom: 8,
mapTypeId: google.maps.MapTypeId.ROADMAP
var map = new google.maps.Map(mapCanvas, mapOptions);
google.maps.event.addDomListener(window, 'load', initialize);
insertMap 函数将使用地图和用户位置的 pin 填充 id map_canvas
的 div。
然后您可以使用此信息将用户的位置保存到数据库中。
【讨论】:
太棒了,谢谢!我发现这个对我也有帮助的小教程:binarapps.com/blog/integration-of-googlemaps-in-rails-4以上是关于Ruby on Rails,用户可以设置他们的位置的主要内容,如果未能解决你的问题,请参考以下文章
是否可以在 ruby on rails 中对关联进行分组?
Ruby on rails 协会 - 用户(设计)在注册和登录后可以“创建团队”或“加入团队”