Карта центра Google-Maps-for-Rails через ajax - PullRequest
0 голосов
/ 10 апреля 2011

Я устанавливаю новый маркер через 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 или есть другой способ? Спасибо

1 Ответ

2 голосов
/ 10 апреля 2011

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 в частности.

...