将topojson加载到传单Slider中

时间:2016-03-11 04:03:47

标签: javascript leaflet topojson

我是js的新手,正在尝试绘图。为了适应我的数据大小,我一直试图让Leaflet Slider与topojson输入一起工作。

我发现自己陷入了如何在使用Omnivore的函数中正确嵌套数据调用和sliderControl。 Topojson数据加载正确,只是不使用滑块,很可能是我的语法问题。如果有人能提供一些帮助,我将非常感激。

来自脑工程的原始geojson示例:http://jsfiddle.net/brainsengineering/nboo4ksg/

    var geojson;
$(document).ready(function() {
  $.getJSON("http://vamoss.brainsen.com/API/Get.aspx?q=5", function(geoJson) {
    geojson = L.geoJson(geoJson, {
      style: style,
      onEachFeature: onEachFeature
    }).addTo(map);

我在这里的尝试:http://jsfiddle.net/midihavoc/ktxgdmkn/

var topoLayer;
$(document).ready(function() {
    omnivore.topojson('https://api.myjson.com/bins/2whnb', null, function(topoLayer){
  topoLayer = L.geoJson(null, {
    style: style,
    onEachFeature: onEachFeature
  }).addTo(map);

1 个答案:

答案 0 :(得分:0)

omnivore.topojson的{​​{3}}与jQuery的$.getJSON不同:您不应该提供回调函数,而是提供选项(对应于您的2ng参数null)和{ {1}}将填充检索到的功能的图层组(您构建回调的第3个参数)。

可以在L.GeoJSON的{​​{3}}中指定回调函数(如果有)。

最后,您在回调参数中使用了相同的标识符omnivore.topojson作为全局变量,因此您无法再在回调范围内访问后者(它被遮蔽)。

请注意,在原始示例中,他们使用topoLayer作为全局变量名,使用geojson作为回调参数(注意大写geoJson)。

J

更新了JSFiddle:API