传单ajax中的等值线

时间:2015-09-04 03:33:22

标签: leaflet geojson topojson

我在这里按照本教程http://leafletjs.com/examples/choropleth.html使用GEOJSON格式的状态建立一个州级别的等值线。

Leaflet 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?

1 个答案:

答案 0 :(得分:1)

为什么不使用普通香草TopoJSON并抛弃杂食动物插件。它只是一个包装器而又是你不需要的另一个依赖项,因为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的一个工作示例:http://plnkr.co/edit/5Kn94H?p=preview