2016-12-07 6 views
0

dataloaderの機能を使用しようとしていますが、それは得られませんでした。ここでammap上でdataloaderを使用する方法

は、私がしようとする方法にある:私は地図上valueとして使いたい

[{"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}] 

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に問題はありません。このようにJSON件のデータを返します。 total

dataloaderとどうすればammapで使用できますか?マップライブラリとデータローダーを使用するには

おかげ

答えて

0

、あなたのデータはmap財産とareas配列を含む地図のdataProviderオブジェクトと同じ形式である必要があります。データがそのようにフォーマットされていない場合は、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 demo

+0

[OK]を感謝 – kodcu

関連する問題