Tag: gmaps4rails

Google Maps For Rails – 仅在搜索结果发生变化时通过ajax更新标记

我一直在编写一个小应用程序,有很多来自stackoverflow的帮助。 基本前提很简单,我在网络上看到了这种function:我试图将一个位置列表绘制到可搜索/可平移的谷歌地图上。 位置存储在后端,控制器将这些位置提供给视图。 涉及AJAX是因为我不想重新加载整个页面。 以下是场景:a)用户通过zipcode搜索位置=>地图加载新位置,搜索获取发送到服务器并映射加载任何标记,如果有任何设置半径,地图设置默认缩放级别; b)用户平移/缩放=>地图停留在用户离开的任何地方,使用视口边界框的搜索被发送到服务器并映射结果。 地图将在初始加载时默认为西雅图,它尝试的第一件事是地理定位用户… 使用gmaps4ails wiki,主要是这个问题答案的修改版本: Google Maps for Rails – 用AJAX更新标记我已经非常接近了。 实际上,这很有效。 这是它的样子: sightings_controller.rb def search if params[:lat] @ll = [params[:lat].to_f, params[:lng].to_f] @sightings = Sighting.within(5, origin: @ll).order(‘created_at DESC’) @remap = true elsif search_params = params[:zipcode] geocode = Geokit::Geocoders::GoogleGeocoder.geocode(search_params) @ll = [geocode.lat, geocode.lng] @sightings = Sighting.within(5, origin: @ll).order(‘created_at DESC’) @remap = true […]

在gmaps4rails中,如何移动地图以便标记在视图中?

我有一组我希望通过ajax调用单独调出的位置,其中一些位置不在地图的当前范围内。 有没有办法移动地图,以便标记在视野中? 我不需要它在中心,只要它在视野中。

谷歌地图的标记变量范围(gmaps4rails gem)

我试图理解javascript,以及传递变量的方式,但我做得不太好。 我正在尝试用ajax刷新谷歌地图的标记,但什么也没发生。 我提交了一个表单,它将一些变量发送给控制器。 处理了一些东西,它用.js响应…… find.js.erb $(‘#collapseTwo ul’).html(“”); alert(); clearMarkers(); markers = handler.addMarkers(, { draggable: false }); 渲染点火很好,所以一切都在那里工作,但我似乎无法抓住标记来刷新地图。 该警报显示[object Object] ,因此可能是正确的,但对标记没有任何操作。 我以marker.coffee的forms对marker.coffee进行了一些修改 clear: -> @getServiceObject().setMap(null) show: -> @getServiceObject().setVisible(true) hide: -> @getServiceObject().setVisible(false) 这样clearMarkers(); 作品。 它在另一个文件中,我正在存储其他一些操作 events.js.coffee jQuery -> … … @clearMarkers = -> for marker in Gmaps.store.markers marker.clear() Gmaps.store.markers = [] 所以…我最初打电话给地图… jQuery -> handler = Gmaps.build […]

使用原型动态加载时,gmaps4rails地图未显示

我有一个视图有3个选项卡,每个选项卡代表数据视图(表,地图,图表)。 当我单击选项卡时,如果运行switch_view.js.rjs,它将使视图失明 {:controller => :biogas_calculator, :action => :switch_view, :view => “table”}, :method => :get, :loading => visual_effect(:blind_up, “biomass_configuration”, :duration => 0.5, :queue => ‘front’), :html => {:id => “table_view”, :class => “toggle_map_button”} %> {:controller => :biogas_calculator, :action => :switch_view, :view => “map”}, :method => :get, :loading => visual_effect(:blind_up, “biomass_configuration”, :duration => 0.5, :queue => ‘front’), […]

Gmaps4rails:当用户点击侧边栏中的链接时,如何更改标记的外观?

我正在尝试使用gmaps4rails获取此行为:用户单击侧边栏中的链接,地图上的相应标记更改图像/颜色,以使所选的一个与其他标记脱颖而出。 我试过这个代码 Gmaps.map.callback = function(){ var len = Gmaps.map.markers.length; for(var i = 0; i < len; i++){ marker = Gmaps.map.markers[i]; google.maps.event.addListener(marker.serviceObject, 'click', (function(i){ return function(){ console.log($(Gmaps.map.markers[i].serviceObject.ne.ga).attr("src", "/assets/marker_sprite2.png")); } })(i)); } } 但这会改变每个标记的外观,这对我正在尝试做的事情并不是很有用! 反正有没有实现这个目标? 编辑:使其工作,见下面的答案 编辑2:虽然这个解决方案适合我想要的,但我偶然发现了这个方法的另一个问题,请参阅下面的评论

Rails:Gmaps4rails获取路线并在地图上显示

我已经在我的应用上实现了gem ‘gmaps4rails’ 。 我在动态标签内显示一个带有两个标记的地图,一个用于当前位置(dd-start.png),另一个用于目标位置(dd-end.png)。 这是当前的设置: def show @item = Item.find(params[:id]) respond_to do |format| format.html format.js { render ‘show.js.erb’ } end @hash = Gmaps4rails.build_markers(@item) do |item, marker| marker.lat item.latitude marker.lng item.longitude marker.picture({ :url => “https://www.google.com/mapfiles/dd-end.png”, :width => 32, :height => 32 }) marker.infowindow render_to_string(:partial => ‘pages/info_page’) end append_cur_location end # method to show current location marker […]

gmaps4rails回调没有解雇

= gmaps(markers: { data: @json, options: @marker_options }, map_options: @map_options ) – content_for :map_scripts do :javascript Gmaps.map.callback = function() { alert(‘asdf’) // <– I never see this alert } 使用gmaps4rails gem(v1.5.2),我将上面的代码放在我的视图中。 我的地图看起来很好用我的标记。 但是用我的javascript,我不应该得到警报(我不是)? 我不确定我是否完全理解回调。 仅供参考,javascript在我的源代码中显得很好。

使用Gmaps4rails gem监听infowindow

我希望在用户点击标记后放置一个事件,这通常是通过这种方式制作的: var infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener(infoWindow, ‘domready’, function() { // whatever you want to do once the DOM is ready }); 我们在这个答案中可以看到: 收听google.maps.InfoWindow类的domready事件 问题是我正在使用gmaps4rails,而且我在“infoWindow”上面手动调用的变量已经在黑暗中生成了。 我们有变量“handler”来完成所有的工作 handler = Gmaps.build(‘Google’); 我本能地认为应该是这样的: var infoWindow = handler.infoWindow google.maps.event.addListener(infoWindow, ‘domready’, function() { // whatever you want to do once the DOM is ready }); 但是不行。 我怎么能用这个gem完成这项工作? 谢谢。

通过Ajax使用gmaps4rails渲染谷歌地图

我想仅按需渲染地图(以最小化加载时间),意味着像“显示地图”这样的链接应该在指定的div中渲染地图。 我该怎么办?

放大gmap4rails中的特定区域

如何放大gmaps4rails中的特定坐标。 假设在我的应用程序的索引页面上我想显示所有用户的地址,但希望最初地图应该关注美国并具有一定的缩放级别 提前致谢