Leaflet 传单中的合唱

Leaflet 传单中的合唱,leaflet,geojson,topojson,Leaflet,Geojson,Topojson,我按照本教程在这里使用状态的GEOJSON格式制作了一个状态级choropleth 传单GeoJSON允许我们发送AJAX请求以获取外部参数。像这样的 $.ajax({ dataType: 'json', url: 'atl_metro.geojson', success: function(data) { $(data.features).each(function(key, data) { var zips = L.geoJs

我按照本教程在这里使用状态的GEOJSON格式制作了一个状态级choropleth

传单GeoJSON允许我们发送AJAX请求以获取外部参数。像这样的

$.ajax({
    dataType: 'json',
    url: 'atl_metro.geojson',
    success: function(data) {
        $(data.features).each(function(key, data) {

            var zips = L.geoJson(data,{
                onEachFeature: onEachFeature, 
                style: style
            }).addTo(map);  

        });
    }
}).error(function() {}); 

有没有办法使用TopJSON来使用它?

为什么不使用普通的TopJSON并扔掉杂食插件呢。它只是一个包装器,也是一个您不需要的依赖项,因为TopoJSON本身使用起来非常简单

var url = 'https://rawgit.com/mbostock/topojson/master/examples/us-10m.json';

// Fetch topojson file via jQuery
$.getJSON(url, function(data) {
  // Convert the topojson to geojson 
  var geojsonData = topojson.feature(data, data.objects.counties);
  // Create new geojsonlayer with the data
  var geojsonLayer = new L.GeoJSON(geojsonData, {
    style: getStyle,
  }).addTo(map);
});

function getStyle(feature) {
  return {
    weight: 1,
    opacity: 1,
    color: '#fff',
    fillOpacity: 0.7,
    // fillColor: getColor(feature.properties.density)
    // TopoJSON used in this example doesn't have any data attributes
    // so throwing in some random colors
    fillColor: '#'+Math.floor(Math.random()*16777215).toString(16)
  };
}

下面是一个关于Plunker的工作示例:

也许您可以编辑您的问题,并以更好的方式表达您的问题。我不确定你到底想完成什么。这些都是额外的问题,这显然不是评论的目的。你完全错了。不能使用TopoJSON或GeoJSON发出AJAX/XHR请求。
$.ajax
$.getJSON
方法来自jQuery库,显然您正在使用jQuery库。MouseeEvents也与Topo或GeoJSON无关。这些活动是传单的一部分。无论您是使用TopoJSON、将其转换为GeoJSON还是使用普通GeoJSON,一旦您将GeoJSON数据加载到传单的GeoJSON层,该层将负责事件。是的,谢谢,我已经解决了这个问题。我已经实现并开始使用缩放和其他功能!唯一剩下的是topojson.featuure在转换为Geojson时是否保留了topojson文件的属性?我已经在另一个问题中对此进行了评论。谢谢你的帮助!你对你的问题进行了编辑,我的回答完全没有意义了如果你误解了很多事情,我不知道从哪里开始。我会先回答你的其他问题,也许事情会变得更清楚。对不起,我会恢复编辑,这样你的答案才有意义!:)