How to do an Ajax GET request to get data from rails and pass it to javascript(google maps)?

13,825

Oh I was able to find my way to get the list of locations. The controller and view are left untouched.

I added the following ajax in map.js which did the work for me.

$.ajax({
        type: "GET",
        dataType: "json",
        url: "/locations",
        success: function(data){}
    }); 

Now data can be passed to the marker object in google maps.

Share:
13,825
Maddy
Author by

Maddy

Updated on June 05, 2022

Comments

  • Maddy
    Maddy almost 2 years

    I have a model Locations with two columns latitude and longitude. I want to find a way where I can get the list of locations and pass them to google maps using Ajax and javascript. So far my code is as follows:

    map.js:

    function initialize() 
    {   
        var map;
        var latlng = new google.maps.LatLng(37.09, -95.71);
        var options = {
        zoom: 5, 
        center: latlng, 
        mapTypeId: google.maps.MapTypeId.ROADMAP,
        disableDefaultUI: true,
        disableDoubleClickZoom: true,
        noClear: true,
        navigationControl: true,
        navigationControlOptions: {
            position: google.maps.ControlPosition.TOP_RIGHT
        }
        };
       map = new google.maps.Map(document.getElementById('map'), options);
    
       var marker = new google.maps.Marker({
        position: latlng, 
        map: map, 
        title: 'Click me', 
        });
    }
    

    locations_controller.rb

    def show
        @location = Location.find(params[:id])
    
        respond_to do |format|
          format.html # show.html.erb
          format.json { render json: @location }
        end
      end
    

    Page displaying the map:

    <div id="map" onload="initialize();">
    </div>
    

    SO now I want to find a way to make an AJAX request from map.js so I can get the locations from the Location model and pass it to the marker object so that when a map is loading all the locations pre-existing in the database are passed to marker and those markers appear.

    Thank you.