3

私は D3.js にまったく慣れていません。これまで、あちこちで検索してすべての問題に対する答えを見つけることができましたが、これについてはまだ何も見つけていません。

アラスカやその他の場所が地図の一番下に移動したことを示す、この非常に優れた米国の地図投影があります (albers USA)。

私はナッツ 2010 ヨーロッパ (ヨーロッパがより小さな地域に分割される公式の方法) のいくつかのコロプレス マップを作成しています。同様のことを行う必要があります。地図。このようなもの: http://whs.moodledo.co.uk/file.php/1378/Europe_Quality_of_Life/GDP_Europe_2004.png

さらに、マルタのズームを表示して、コロプレスが何色であるかを実際に確認できるようにする必要があります。

これは、q3.js によって計算された後、geojson から抽出された私のパスの例です。

....
<path id="ITI3" class="nut cat2" d="M519.439374985861..."></path>
<path id="ITI4" class="nut cat2" d="M496.3654726267817,575.02..."></path>
<path id="LT00" class="nut cat1" d="..."></path>
<path id="MT00" class="nut cat4" d="Z"></path>
<path id="LV00" class="nut cat1" d="M637.95Z"></path><path id="MT00" class="nut cat3" d="M517.0753838465" fill="#000"></path>
...

移動してサイズ変更する必要があるナッツ領域の ID は次のとおりです。

FR91 (south america)
FR92 (south america)
FR93 (south america)
FR94 (somewhere close to madagascar)
MT00 (malta)
PT30
PT20
ES70

あなたは何をすることを提案しますか? 作成時にそれぞれにいくつかの異なるレイヤーを作成する必要がありますか? albers USA 投影を使用してそれに応じて変更するか、パスが作成された後に何らかの形で変換する方がよいですか? それとも、私がまだ考えていない何か他のものでしょうか?

ありがとう、

4

2 に答える 2

3

実際の形状ファイルをいじるつもりはなく、新しいプロジェクションを作成するだけです。Albert USA の実装はそれほどトリッキーではありません。

function albersUsa(location) {
  var longitude = location[0],
      latitude = location[1];
  return (latitude > 50 ? alaska
      : longitude < -140 ? hawaii
      : latitude < 21 ? puertoRico
      : lower48)(coordinates);
}

https://github.com/mbostock/d3/wiki/Geo-Projections#wiki-albersUsa

ヨーロッパ向けのバージョンを作成できるはずです。

于 2013-05-28T14:48:43.723 に答える