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_markersadd_markers

您可以调整地图的设置,使其以您想要的方式居中:https ://github.com/apneadiving/Google-Maps-for-Rails/wiki/Map

具体见auto_adjust

于 2011-04-10T16:08:23.010 回答