Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将地理位置javascript变量传递给rails无限重载_Javascript_Jquery_Ruby On Rails_Ruby_Geolocation - Fatal编程技术网

将地理位置javascript变量传递给rails无限重载

将地理位置javascript变量传递给rails无限重载,javascript,jquery,ruby-on-rails,ruby,geolocation,Javascript,Jquery,Ruby On Rails,Ruby,Geolocation,好的,我正在尝试创建一个在一页上的地图。javascript应该定位用户,然后将这些变量传递给rails,以便它可以找到附近的存储模型位置。我似乎不知道我需要做什么才能让它工作。由于body onload='getLocation()'和.js文件中的window.location函数,它处于无限循环中。url也是/findme 控制器 def show @nearby_stores = (params[:lat].present? && params[:lon].pre

好的,我正在尝试创建一个在一页上的地图。javascript应该定位用户,然后将这些变量传递给rails,以便它可以找到附近的存储模型位置。我似乎不知道我需要做什么才能让它工作。由于body onload='getLocation()'和.js文件中的window.location函数,它处于无限循环中。url也是/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
看法

好吧,愚蠢的我

一个同事帮我修的

if (!window.location.search) {
                window.location = ('/findme?lat=' + lat + '&lon=' + lon);    
            }

当您执行
window.location=…
时,您意识到这将更改当前页面,对吗?您可能希望在
#
之后追加数据,以便页面不会刷新。
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);    
            }