0

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

这是我尝试的方法:

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没有问题。这个url返回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}]

我想用作value地图total

如何dataloader在 ammap 上使用 with?

谢谢

4

1 回答 1

0

要将 dataLoader 与地图库一起使用,您的数据需要与地图dataProvider对象的格式相同,其中包括map属性和areas数组。如果您的数据不是这样格式化的,那么您可以使用 dataLoader 的postProcess回调来创建一个dataProvider对象并将其与您的数据一起返回。您还需要将您的总属性重新映射到数据中的值,以便您的气球和图例能够正常工作。

这是数据加载器代码:

  "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 演示

于 2016-12-07T12:20:19.143 回答