如何在 ammap 上使用数据加载器

How to use dataloader on ammap

我正在尝试在 ammap 上使用 dataloader 功能,但我无法获得。

以下是我的尝试方法:

var dogum_map = AmCharts.makeChart( "il_bazinda_dogum_say_dagilim", {
                  "type": "map",
                  "data": {
                        "map": "turkeyLow"
                    },
                  "theme": "light",
                  "colorSteps": 10,
                  "dataLoader": {
                        "url": "/dogum/dogum_frekans_verilerini_il_bazinda_hesapla",
                        "format": "json",
                        "showErrors": true
                  },
                  "areasSettings": {
                    "autoZoom": false,
                    "balloonText": "[[value]]",
                    "selectable":true
                  },

                  "valueLegend": {
                    "right": 10,
                    "minValue": "En Az",
                    "maxValue": "En Çok"
                  },

                  "export": {
                    "enabled": true,
                    "fileName":"İl Bazında Doğum Sayıları"
                  }

                } );

没有问题 json url.This url returns json 这样的数据:

[{"id":"TR-01","ndogum":1111,"mdogum":22,"sdogum":693,"pdogum":336,"total":2162},{"id":"TR-02","ndogum":423,"mdogum":0,"sdogum":325,"pdogum":147,"total":895},{"id":"TR-03","ndogum":199,"mdogum":1,"sdogum":113,"pdogum":42,"total":355},{"id":"TR-04","ndogum":681,"mdogum":17,"sdogum":180,"pdogum":117,"total":995}]

我想在地图 total 上用作 value

如何在 ammap 上使用 dataloader

谢谢

要将 dataLoader 与地图库一起使用,您的数据需要与地图的 dataProvider 对象具有相同的格式,其中包括 map 属性 和 areas 大批。如果您的数据不是这种格式,那么您可以使用 dataLoader 的 postProcess 回调创建一个 dataProvider 对象,然后 return 与您的数据一起创建。您还需要将总计 属性 重新映射到数据中的值,以便气球和图例起作用。

这是数据加载器代码:

  "dataLoader": {
    "url": "/dogum/dogum_frekans_verilerini_il_bazinda_hesapla",
    "postProcess": function(data) {
      var dataProvider = {
        "map": "turkeyLow"
      };
      //create new areas array, while adding a value property 
      //to each area containing the value stored in total
      dataProvider.areas = data.map(function(area) {
        area.value = area.total;
        return area;
      });
      return dataProvider;
    }
  },

Codepen demo