2015-08-30 2 views
1

Так что я в настоящее время пытаюсь запросить некоторые данные geojson от моего контроллера рельсов. Я использую метод loadURL, предоставленный мне через карточку/буклет, чтобы сделать вызов ajax моему контроллеру.render geojson w/response_to rails & mapbox/sheetlet

$(document).on("ready", function() { 
    L.mapbox.accessToken = 'token is here'; 
    var userMap = L.mapbox.map('user-map', 'mapbox.run-bike-hike') 
    .addControl(L.mapbox.geocoderControl('mapbox.places')) 
    .setView([37.7833, -122.4167], 12); 
    var featureLayer = L.mapbox.featureLayer().loadURL('http://localhost:3000/users/1/trails.geoJson').addTo(userMap) 
    console.log(featureLayer); 
    // getTrailPoints(userMap); 
    featureLayer.on('ready', function(){ 
    userMap.fitBounds(featureLayer.getBounds()); 
    }); 
}); 

Приведенный выше код способен поразить мой контроллер, и мой контроллер может получить правильные данные. Вот что у меня в контроллере:

def index 
    user = User.find_by(id: params[:user_id]) 
    @trails = user.trails 
    @geojson = Array.new 
    build_geojson(@trails, @geojson) 
    p "*" * 50 
    p @geojson 

    respond_to do |format| 
     format.html 
     format.geojson { render geojson: @geojson } 
    end 

end 

Метод build_geojson прекрасно работает, вам придется верить, что. Однако то, что не работает, это format.geojson и рендеринг его как geojson. Я уверен, что мне нужно создать Mime, но я не уверен, как это сделать или каким образом я должен делать это с помощью geojson. Любая помощь будет принята с благодарностью. Я также отвечу на любые вопросы.

В настоящее время я отформатирован только в json, потому что geojson - это просто json. Однако с MapBox, когда я делаю это, я получаю следующее сообщение об ошибке:

http://a.tiles.mapbox.com/v4/marker/pin-l-tree+00607d.png?access_token=pk.e…hIjoiNDQ5Y2JiODdiZDZmODM0OWI0NmRiNDI5OGQzZWE4ZWIifQ.rVJW4H9TC1cknmRYoZE78w Failed to load resource: the server responded with a status of 400 (Bad Request) 

Ошибка в основном приводит к изображению не загружен.

+0

Geojson - это просто json, почему бы просто не использовать 'format.json' или' format.js' ?? – nathanvda

+0

Обновленный вопрос @nathanvda – Nappstir

+0

Я не вижу, как эта ошибка связана с geojson? Он дает ошибку при загрузке маркера ??? – nathanvda

ответ

1

Значок tree в поддерживаемых в настоящее время значками Mapbox. Вместо этого используйте park, что также является изображением дерева.