2

グラフの描画にマークのマップを使用しています。国名だけでなく、国に関連する追加の値を警告したい。onClickただし、関数内で利用できるのは geography オブジェクトのみです。次のような他のデータにアクセスするにはどうすればよいですか

'numberOfThings'

内部onClick機能?

前もって感謝します。

4

1 に答える 1

3

doneクリック ハンドラーをセットアップするには、Datamapsのコールバックを使用する必要があります。クリック ハンドラー内ではid、geography オブジェクトの を使用してオブジェクトを参照map.options.dataし、関連データを検索できます。

米国のみに追加のデータがある実際の例は次のとおりです。

map = new Datamap({
    scope: 'world',
    element: document.getElementById('container1'),
    projection: 'mercator',
    height: 500,
    fills: {
      defaultFill: '#f0af0a',
      lt50: 'rgba(0,244,244,0.9)',
      gt50: 'red'
    },

    data: {
      USA: {fillKey: 'lt50', numberOfThings: 120132 },
      RUS: {fillKey: 'lt50' },
      CAN: {fillKey: 'lt50' },
      BRA: {fillKey: 'gt50' },
      ARG: {fillKey: 'gt50'},
      COL: {fillKey: 'gt50' },
      AUS: {fillKey: 'gt50' },
      ZAF: {fillKey: 'gt50' },
      MAD: {fillKey: 'gt50' }       
    },

    done: function(map) {

      map.svg.selectAll('.datamaps-subunit').on('click', function(geo) {
        var localData = map.options.data[geo.id]
        if ( localData && localData.numberOfThings ) {
          alert(localData.numberOfThings)
        }
      })
    }
  })

デモへのリンク: http://jsbin.com/nigifuyeqe/1/edit?html,output

于 2016-02-09T18:25:41.313 に答える