【问题标题】:Choropleth in Leaflet ajaxLeaflet ajax 中的 Choropleth
【发布时间】:2015-09-04 03:33:22
【问题描述】:

我按照本教程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 来使用它?

【问题讨论】:

  • 你已经编辑了你的问题,以至于我的回答完全没有意义了。 :D 你误解了很多东西,我不知道从哪里开始。我会先回答你的另一个问题,也许你会更清楚。
  • 对不起,我将恢复编辑,以便您的回答再次有意义! :)

标签: leaflet geojson topojson


【解决方案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

【讨论】:

  • 也许您可以编辑您的问题并更好地制定您的问题。我不确定你真正想要完成什么。这些是额外的问题,这显然不是 cmets 的目的。
  • 你完全错了。您不能使用 TopoJSON 或 GeoJSON 来发出 AJAX/XHR 请求。 $.ajax$.getJSON 方法来自您显然正在使用的 jQuery 库。 mouseevents 也与 Topo 或 GeoJSON 无关。这些事件是传单的一部分。无论您使用 TopoJSON、将其转换为 GeoJSON 还是使用普通的 GeoJSON,只要将 GeoJSON 数据加载到 Leaflet 的 GeoJSON 层,该层就会负责事件。
  • 是的,谢谢,我已经解决了这个问题。我已经实现并开始使用缩放和其他功能!剩下的唯一一件事是,topojson.featuure 在转换为 Geojson 时是否保留了 TopoJson 文件的属性?我已经在其他问题中对此发表了评论。感谢您的所有帮助!
猜你喜欢
  • 1970-01-01
  • 2020-01-04
  • 1970-01-01
  • 2023-03-25
  • 2020-01-04
  • 2018-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多