Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.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
使用javascript和geojson为mapbox地图创建要素图层_Javascript_Jquery_Ruby On Rails_Mapbox_Geojson - Fatal编程技术网

使用javascript和geojson为mapbox地图创建要素图层

使用javascript和geojson为mapbox地图创建要素图层,javascript,jquery,ruby-on-rails,mapbox,geojson,Javascript,Jquery,Ruby On Rails,Mapbox,Geojson,我的RubyonRails应用程序中有一个mapbox地图,我想用数据库中的点坐标填充一个功能层。在Mapbox网站上,我似乎找不到有意义的帮助。我发现一个网站提供了一个指南,但它跳过了一些对作者来说很明显但对我来说不明显的步骤。谁能帮我做这个 这是我的。在Productions controller的Index方法中,我创建了一个geojson数组(这里的缩进是错误的,但在实际文件中是正确的): def索引 #将所有产品放置在地图上 @productionsall=Production.all

我的RubyonRails应用程序中有一个mapbox地图,我想用数据库中的点坐标填充一个功能层。在Mapbox网站上,我似乎找不到有意义的帮助。我发现一个网站提供了一个指南,但它跳过了一些对作者来说很明显但对我来说不明显的步骤。谁能帮我做这个

这是我的。在Productions controller的Index方法中,我创建了一个geojson数组(这里的缩进是错误的,但在实际文件中是正确的):

def索引
#将所有产品放置在地图上
@productionsall=Production.all
@geojson=Array.new
@productionsall.each do|p|
@geojson'#00607d',
:'marker-symbol'=>'circle',
:'marker-size'=>'medium'
}
}
结束
回应待办事项|格式|
format.html
format.json{render json:@geojson}#使用创建的json对象进行响应
结束
结束
然后在索引页上,我得到了映射本身,并尝试使用一个函数(从堆栈溢出答案中借用)来添加一个层:

<div id='map'></div>
<script>
  L.mapbox.accessToken = 'xxxxx';

  var map = L.mapbox.map('map', 'example.idkeiso')
    .setView([41.344,-99.316], 5);

  var zipLayer;

  $.getJSON('production/index.json', function(data) {
      zipLayer = L.mapbox.featureLayer(data);
      zipLayer.addTo(map);
  });

</script>

L.mapbox.accessToken='xxxxx';
var map=L.mapbox.map('map','example.idkeiso')
.setView([41.344,-99.316],5);
var zipLayer;
$.getJSON('production/index.json',函数(数据){
zipLayer=L.mapbox.featureLayer(数据);
zipLayer.addTo(地图);
});
将显示地图,但没有任何标记


谢谢你的帮助

首先:检查是否有任何错误,并确认production/index.json是格式良好的geojson。A可能会有帮助。否则,很难说是怎么回事。谢谢!不幸的是,我没有得到geojson验证器关于“编程访问”的说明,这似乎是我所需要的。唉,我希望Mapbox只包含如何操作的说明!如果有帮助的话,“这里发生的事情”是我在我的所有作品中循环,每个作品都有经度和纬度,并将所有这些点存储在一个名为geojson的数组中。然后我要做的是调用该数组并为我的mapbox地图创建一个要素层。我很确定这是第二批不起作用的代码,但不是100%。不,不需要“编程访问”。在js中,您正在加载index.json文件:
$.getJSON('production/index.json',function(data){
。您的rails应用程序是否正在输出
production/index.json
文件,如果是,它是否包含您期望的数据?加载页面时,您的浏览器控制台是否包含错误?
<div id='map'></div>
<script>
  L.mapbox.accessToken = 'xxxxx';

  var map = L.mapbox.map('map', 'example.idkeiso')
    .setView([41.344,-99.316], 5);

  var zipLayer;

  $.getJSON('production/index.json', function(data) {
      zipLayer = L.mapbox.featureLayer(data);
      zipLayer.addTo(map);
  });

</script>