Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Gmaps4Rails和geocoder:保持请求客户端不受avid Heroku阻塞的方法_Ruby On Rails_Heroku_Client Side_Gmaps4rails_Google Geocoder - Fatal编程技术网

Ruby on rails Gmaps4Rails和geocoder:保持请求客户端不受avid Heroku阻塞的方法

Ruby on rails Gmaps4Rails和geocoder:保持请求客户端不受avid Heroku阻塞的方法,ruby-on-rails,heroku,client-side,gmaps4rails,google-geocoder,Ruby On Rails,Heroku,Client Side,Gmaps4rails,Google Geocoder,我已经在我的Rails 4应用程序中成功地实现了geocoder和Gmaps4Rails,并采用了我一直在寻找的定制设计。问题是,在RailsCast下使用地理编码器的方式似乎与正常的Heroku设置不兼容,远未得到优化 我的地图为人们显示地点,每个人都可以用自己的最佳地址创建自己的地图 现在我用geocoder gem对这个地方进行地理编码,然后使用纬度和经度来构建标记 有没有办法在my Place模型中只保留地址列,并在每次客户端打开映射时在客户端构建标记?如果是这样的话,如何从Geocod

我已经在我的Rails 4应用程序中成功地实现了geocoder和Gmaps4Rails,并采用了我一直在寻找的定制设计。问题是,在RailsCast下使用地理编码器的方式似乎与正常的Heroku设置不兼容,远未得到优化

我的地图为人们显示地点,每个人都可以用自己的最佳地址创建自己的地图

现在我用geocoder gem对这个地方进行地理编码,然后使用纬度和经度来构建标记

有没有办法在my Place模型中只保留地址列,并在每次客户端打开映射时在客户端构建标记?如果是这样的话,如何从Geocoder切换到JavaScript映射创建,以及为什么就我所知,Gmaps4rails和Geocoder不是以这种方式定向的,而是服务器端

我的代码现在相当普通:

模型

看法


Gmaps4rails完全是客户端的。但它需要坐标:
class Place < ActiveRecord::Base
  geocoded_by :address
  after_validation :geocode, if: :address_changed?
def show
  @hash = Gmaps4rails.build_markers(@diary.places) do |place, marker|
    marker.lat place.latitude
    marker.lng place.longitude
    marker.json({ title: place.title, id: place.id, category: place.category })
    marker.picture({
          :url    => ActionController::Base.helpers.asset_path(place.category.split(" ").first + ".png"),
          :width  => 24,
          :height => 24
         })
    marker.infowindow render_to_string(:partial => "/diaries/map/map_box", locals: {place: place})
  end
end
<div id="map"></div>

<!-- Contains all js linked to building the Google Map -->
<script src="http://maps.google.com/maps/api/js?v=3.13&amp;sensor=false&amp;libraries=geometry" type="text/javascript"></script>
<script src='http://google-maps-utility-library-v3.googlecode.com/svn/tags/markerclustererplus/2.0.14/src/markerclusterer_packed.js' type='text/javascript'></script>

<script type="text/javascript">
$(function(){

  handler = Gmaps.build('Google');
  handler.buildMap({ provider: {styles: mapStyle}, internal: {id: 'map'}}, function(){

    // set marker infos from gmaps4rails ruby @hash built in controller
    markers_json = <%= raw @hash.to_json %>;
    markers = _.map(markers_json, function(marker_json){
      marker = handler.addMarker(marker_json);
      _.extend(marker, marker_json);
      return marker;
    });

    handler.bounds.extendWith(markers);

    handler.fitMapToBounds();
  });
})
</script>