5

Google Visualization Geochart APIを使用して、国の地域の地図を作成しています。ISO 3266-2国の細分化コードを提供し、正しい結果を取得します。ただし、チャートのラベルとしてISO 3266-2コードを表示することは、ユーザーエクスペリエンスに悪影響を及ぼします。そこで、カスタムラベルを提供したいと思います。これを例として取り上げます。

  function drawVisualization() {
    var data = google.visualization.arrayToDataTable([
      ['Country', 'Popularity'],
      ['DE-BY', 200],
      ['DE-NW', 500]
    ]);

    var geochart = new google.visualization.GeoChart(
          document.getElementById('visualization'));
    geochart.draw(data, {width: 556, height: 347, region: 'DE', resolution: 'provinces'});
  }

[コードプレイグラウンドで試してみてください]

「DE-BY」を提供したいのですが、ラベルとして「Bavaria」を使用しています。グーグルがそれを書いているように私はISO3266-2コードを使用する必要があります

同等の英語のテキスト(たとえば、「US-NJ」または「NewJersey」)

許可されている場合、それは非常に信頼性が低く、例「バイエルン」では機能しません。

4

2 に答える 2

12

これは機能する概念の簡単な証明です。似たようなものを探していて、名前を自動的に取得することを望んでいましたが、それがまだ可能かどうかはわかりませんが、少なくともツールチップテキストを手動で入力できます。

重要な要素は、必要な列を含むテーブルを作成し、PatternFormatを適用してツールチップを必要に応じて取得し、データバインディングに必要な列のみを含むデータビューを作成することです。

function drawVisualization() {

      var data = new google.visualization.DataTable();
      data.addColumn('string', 'Country');
      data.addColumn('number', 'Value');
      data.addColumn('string', 'Display');

      data.addRows([
        ['Germany', 200, 'Germany'],
        ['United States', 300, 'USA'],
        ['Brazil', 400, 'Brasil'],
        ['Canada', 500, 'Canada'],
        ['France', 600, 'France'],
        ['RU', 700, 'Russia']
      ]);

      var geochart = new google.visualization.GeoChart(
          document.getElementById('visualization'));

      var formatter = new google.visualization.PatternFormat('{1}');  
      formatter.format(data, [0, 2]);

      var view = new google.visualization.DataView(data);
      view.setColumns([0, 1]);  

      geochart.draw(view, {width: 556, height: 347});
    }
于 2012-08-14T15:49:52.177 に答える
0

私の経験から、ISO 3166-2には、コードがほとんどの人間に知られていないことを除けば、いくつかの問題があります。

  1. 機械加工可能な最新バージョンを無料で入手できる場所はないようです。

  2. 米国やカナダなどの最も安定した(通常は連邦政府の)国を除いて、割り当ては変わり続けています。機械で処理可能ですが、古いバージョンは無料で入手できます。

  3. 人々が使用する国名は、必ずしも正式なものではありません(やや長い名前)。

  4. 一部の国の地域名は、その地域が実際に何であるかについての地元の見解に対応していません(サブ地域レベルでははるかに悪いです)。

  5. (サブ)地域名は、英語または現地語の奇妙な混合物です。

  6. まだASCIIに焦点を当てているアプリケーションの場合、Unicode名の公式のASCIIフォールバックはありません。

これに対するアルゴリズムの解決策はありませんが、国からコードへの問題に対する私の実用的な解決策は、国名の通常のバリアントを処理するための長いルックアップテーブルを用意し、コードから許容可能な「標準」に逆引きすることです。 " 形。私の場合は#6のため、標準形がASCIIであることを確認します。ISO639-1および-3の言語に対しても同様のタスクを実行します。

ISO 3166-2のすべての地域についてこのようなリストを作成することは、非常に長い作業です。現在、私はOECD、BRIC、およびEU諸国に焦点を当てています。

于 2014-08-28T14:18:46.133 に答える