[英]Passing geolocation javascript variable to rails infinite reload
好的,所以我试图创建一张页面上的地图。 该javascript应该可以找到用户,然后将这些变量传递到rails,以便它可以找到附近的Store模型位置。 我似乎无法弄清楚要使其正常工作需要做什么。 由于主体onload ='getLocation()'和.js文件中的window.location函数,它处于无限循环中。 网址也是/ findme。
控制者
def show
@nearby_stores = (params[:lat].present? && params[:lon].present?) ? Storeuser.near([params[:lat], params[:lon]], 50) : []
respond_to do |format|
format.html
end
end
视图
<body onload = 'getLocation()'>
<div class = 'map'>
<div id="map" style='width: 800px; height: 400px;'></div>
</div>
<div class= "test"></div>
<h3>Nearby locations</h3>
<ul id="nearby_locations">
<% @nearby_stores.each do |storeuser| %>
<li><%= link_to storeuser.storename, profile_path(storeuser) %>(<%= storeuser.distance.round(2) %> miles) </li>
<% end %>
</ul>
</body>
application.js
var x = document.getElementById("map");
function getLocation()
{
if (navigator.geolocation)
{
navigator.geolocation.getCurrentPosition(showPosition);
}
else{x.innerHTML = "Geolocation is not supported by this browser.";}
}
function showPosition(position)
{
handler = Gmaps.build('Google', { markers: { maxRandomDistance: null } });
handler.buildMap({ provider: {}, internal: {id: 'map'}}, function(){
markers = handler.addMarkers([
{
"lat": position.coords.latitude,
"lng": position.coords.longitude,
"picture": {
"url": "https://addons.cdn.mozilla.net/img/uploads/addon_icons/13/13028-64.png",
"width": 36,
"height": 36
},
"infowindow": "You!"
}
]);
handler.bounds.extendWith(markers);
handler.fitMapToBounds();
});
var lat = position.coords.latitude
var lon = position.coords.longitude
var parsed_data = {location: {lat: lat, lon: lon}}
window.location = ('/findme?lat=' + lat + '&lon=' + lon);
}
好吧,愚蠢的我
一位同事为我修理了它
if (!window.location.search) {
window.location = ('/findme?lat=' + lat + '&lon=' + lon);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.