3

緯度と経度の 2 つの列を持つモデル Locations があります。Ajax と JavaScript を使用して、場所のリストを取得し、それらを Google マップに渡す方法を見つけたいと考えています。これまでのところ、私のコードは次のとおりです。

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', 
    });
}

location_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

地図を表示しているページ:

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

SO 今私は map.js から AJAX リクエストを作成する方法を見つけたいので、ロケーション モデルから場所を取得し、それをマーカー オブジェクトに渡して、マップがデータベースに既存のすべての場所をロードするときにそれを渡します。マーカーに渡され、それらのマーカーが表示されます。

ありがとうございました。

4

1 に答える 1

8

ああ、場所のリストを取得する方法を見つけることができました。コントローラーとビューはそのままです。

次の ajax を map.js に追加しました。

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

これで、Google マップのマーカー オブジェクトにデータを渡すことができます。

于 2012-07-21T16:00:11.717 に答える