2016-10-15 3 views
0

私は点のレイヤーと線のレイヤーを持っています。レイヤーはjbuilderによって作成され、リーフレットはそれを表示します。 レイヤーを個別に作成して表示することはできますが、一緒に行うことはできません。一つの層、map.jsについて は一部jbuilderで複数のレイヤーを構築する

var featureLayer = L.mapbox.featureLayer() 
        .loadURL('map/map_data.geojson') 
        .addTo(map); 
featureLayer.on('ready', function(e) { 
    map.fitBounds(featureLayer.getBounds()); 
}); 

map_controller.rbでこれを持っている:

def map_data 
    start = '1895-01-01' 
    start = start.to_date 
    finish = (start + 3.year) 
    @lines = RestoResidLine.where(resto_date: start..finish).select("id, person_id, resto_loc_id, resid_loc_id, resto_name, resto_date, title_resto, resid_date, title_resid, long_resto, lat_resto, long_resid, lat_resid") 
end 

map_data.json.jbuilder

json.type "FeatureCollection" 
json.features @lines do |line| 
    if (line.long_resto && line.long_resid) 
    json.type "Feature" 
    json.geometry do 
     json.type "LineString" 
     json.coordinates [[line.long_resto, line.lat_resto], [line.long_resid, line.lat_resid]] 
    end 
    end 
end 

map_data.jsonはmap.jsに利用可能にされます。しかし、私はRailsの魔法を理解することはできません。

ポイントを持つ2番目のレイヤーが必要です。私は最初にコントローラにを追加するだけで、@linesを呼び出しました。しかし、最後のものだけが現れます。私は彼らが連結するかもしれないと思った。私はおそらく@の定義を変更することができます...必要なすべての情報を持ってくるので、それは一つの解決策になります。論理は醜いだろう。

は、だから私は、別のファイル point_data.json.jbuilderを作成し、ビルドします map.js

var featureLayer = L.mapbox.featureLayer() 
        .loadURL('map/point_data.geojson') 
        .addTo(map); 

案の定point_data.jsonに追加しようとしたが、それは2400行のHTML <title>Action Controller: Exception caught</title>です。 map_data.jsonが正しく構築されて表示されます。

これは名前の問題ですか?または?私はむしろRails、ActiveRecord、JavaScript Leafletの新機能です。

コード:https://bitbucket.org/MtnBiker/crores5/ 私はサイトをアップロードして、(in)アクションで見ることができます。 Herokuで正しく読み込まれません。

これは難しいことではありません。ありがとうございました。

答えて

0

私はpoint_dataを見つけるための経路を設定しておらず、明らかにjbuilderがそれを必要としていました。

get 'map' => 'map#index' 
get 'map/map_data', :defaults => { :format => 'json' } 
get 'map/point_data', :defaults => { :format => 'json' } 
get 'map/line_data', :defaults => { :format => 'json' } 

最初の2つは既に存在しましたが、後の2つを追加するのを忘れました。私は現在後者の2つを使用しています。最初は元のものでしたが、私はそれを2つに分割しました。マップは、Herokuの上で異なっ働いていた時に助けて何の

一部は、この作品を忘れてはlocalhost

でより周り掘りました。

関連する問題