如何在Rails控制器中添加前数组末尾元素以生成连续GeoJSON线串?
解决方案:在控制器中调整数组格式以生成连续GeoJSON线串
你可以在控制器中通过遍历分组后的数组,将每个子数组的最后一个元素添加到下一个子数组的头部,来实现线串的连续性。具体代码如下:
@slopes = Slope.order(:id) @array_slopes = @slopes.chunk_while { |i, j| i.average_slope == j.average_slope }.to_a # 处理分组数组,确保相邻线串连续 @array_slopes.each_with_index do |current_group, index| # 最后一个分组无需处理,因为没有后续分组 next if index == @array_slopes.size - 1 # 取出当前分组的最后一个Slope元素 connecting_slope = current_group.last # 将该元素插入到下一个分组的开头 @array_slopes[index + 1].unshift(connecting_slope) end
代码说明
- 遍历分组数组时跳过最后一个分组,避免出现越界错误
- 对每个非末尾分组,提取其最后一个元素并插入到下一个分组的最前面
- 处理后相邻分组会共享一个元素,生成LineString时线条就不会断裂
内容的提问来源于stack exchange,提问作者Ben
相关产品推荐
相关产品推荐

