我是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);
答案 0 :(得分:0)
omnivore.topojson
的{{3}}与jQuery的$.getJSON
不同:您不应该提供回调函数,而是提供选项(对应于您的2ng参数null
)和{ {1}}将填充检索到的功能的图层组(您构建回调的第3个参数)。
可以在L.GeoJSON
的{{3}}中指定回调函数(如果有)。
最后,您在回调参数中使用了相同的标识符omnivore.topojson
作为全局变量,因此您无法再在回调范围内访问后者(它被遮蔽)。
请注意,在原始示例中,他们使用topoLayer
作为全局变量名,使用geojson
作为回调参数(注意大写geoJson
)。
J
更新了JSFiddle:API