使用 respond_to rails & mapbox/leaflet 渲染 geojson
render geojson w/ respond_to rails & mapbox/leaflet
所以我目前正在尝试从我的 rails 控制器请求一些地理 json 数据。我正在使用通过 mapbox/leaflet 提供给我的 loadURL
方法对我的控制器进行 ajax 调用。
$(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)
该错误基本上导致图像未加载。
目前支持的 Mapbox 图标中没有 tree
图标。用park
代替,也是树的图片
所以我目前正在尝试从我的 rails 控制器请求一些地理 json 数据。我正在使用通过 mapbox/leaflet 提供给我的 loadURL
方法对我的控制器进行 ajax 调用。
$(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)
该错误基本上导致图像未加载。
目前支持的 Mapbox 图标中没有 tree
图标。用park
代替,也是树的图片