Как использовать dataloader на ammap

Я пытаюсь использовать dataloader функциональность на ammap, но я не смог получить.

Вот как я могу попробовать:

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ı"
                  }

                } );

Нет проблем с URL-адресом JSON. Этот 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?

Спасибо

1 ответ

Решение

Чтобы использовать dataLoader с библиотекой карт, ваши данные должны быть в том же формате, что и карта dataProvider объект, который включает в себя map собственность и areas массив. Если ваши данные не отформатированы таким образом, вы можете использовать dataLoader's postProcess обратный вызов, чтобы создать dataProvider возразить и вернуть это вместе с вашими данными. Вам также необходимо переназначить общее свойство, чтобы оно соответствовало вашим данным, чтобы ваш всплывающая подсказка и легенда работали.

Вот код dataLoader:

  "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 демо

Другие вопросы по тегам