0

私はajaxを介して新しいマーカーを設定しています.カスタムズームレベルでマップを新しいポイントに集中させる方法を考えていました.この方法で作成しました:

  def geocode
pos = Gmaps4rails.geocode(params[:address])
render :update do |page|
    unless pos.blank?
        page << "$('#poi_latitude').val(#{pos.first[:lat]});"
        page << "$('#poi_longitude').val(#{pos.first[:lng]});"
        page << "if (marker != null) { marker.setMap(null); }"
        page << "var myLatlng = new google.maps.LatLng(#{pos.first[:lat]},#{pos.first[:lng]});"
        page << "marker = new google.maps.Marker({position: myLatlng, map: Gmaps4Rails.map});"
                    page << "Gmaps4Rails.map.centerAndZoom(myLatlng, 0);"

    end
end

終わり

しかし、メソッドcenterAndZoomがgmaps4rails.jsに定義されていないため、エラーが発生します.jsに定義する必要がありますか、それとも別の方法がありますか? ありがとう

4

1 に答える 1

2

Gmaps4railsはラッパーであるため、Google オブジェクトはすべてのプロパティを保持します。

有効な方法ではないため、行Gmaps4Rails.map.centerAndZoom(myLatlng, 0);は機能しませんcenterAndZoom(どこで見つけましたか?参照はこちらです: http://code.google.com/apis/maps/documentation/javascript/reference.html )

それ以外の場合、あなたの質問はすでにここで回答されています: https://github.com/apneadiving/Google-Maps-for-Rails/wiki/Dynamic-%28or-Ajax%29-map-refresh

またはのいずれかを使用できreplace_markersますadd_markers

また、マップの設定を調整して、好きなように中央に配置することもできます: https://github.com/apneadiving/Google-Maps-for-Rails/wiki/Map

auto_adjust特に参照してください。

于 2011-04-10T16:08:23.010 に答える