d3.jsでChoroplethを作ろうとしていますが、最初はちょっと立ち往生しました。私はシェイプファイルを見つけ、hereのようにGeoJSONとTopoJsonファイルを生成しました。地図はAlbers-Siberia投影を使用しています。私は、この投影について見つけたもの:d3.jsとTopoJSON、Albersとのマップシベリア投影
プロジェクション:アルバース等積円錐
- 単位:メートル
- スフェロイド:Krasovsky
- 中央子午線:105
- 標準パラレル1:52
- 標準パラレル2:64
- 参照緯度:0
- 偽東距:18500000
- 偽北距:0
PROJ.4:+がproj = AEA + lat_1 = 52 + lat_2 = 64 + lat_0 = 0 + lon_0 = 105 + X_0 = 18500000 + Y_0 = 0 + ellps = krass + units = m + towgs84 = 28、-130、-95,0,0,0,0 + no_defs
MapInfo: "Albers-Siberia"、9,1001,7,105,0、 64、52、18500000、0
私はこのコードを最終的に手に入れました。それで何もしません(そしてフリーズアップする)、何が問題なのですか?
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Choropleth</title>
<script type="text/javascript" src="d3/d3.v3.js"></script>
<script type="text/javascript" src="d3/queue.v1.min.js"></script>
<script type="text/javascript" src="d3/topojson.v0.min.js"></script>
</head>
<body>
<h1>My Choropleth</h1>
<script type="text/javascript">
var width = 960,
height = 500;
var svg = d3.select("body").append("svg")
.attr("width", width)
.attr("height", height);
var pr = d3.geo.albers()
.center([105,0])
.parallels([52, 64])
.scale(1000);
var path = d3.geo.path().projection(pr);
d3.json("map_rus_topo.json", function(error, map) {
svg.append("path")
.datum(topojson.object(map, map.objects.map_rus))
.attr("d", path);
});
</script>
</body>
あなたはすべてのJSONファイルhereを見つけることができます。
もう1つ質問:の領域のフィールドを TopoJsonファイルにどのように参照することができますか。
コードを実行するとどうなりますか?あなたはどんな種類のエラーメッセージを出力しますか? –
いいえ、コンソールにエラーはありません。 – KoGor
JSONファイルのサイズに問題がある可能性があります。あなたはそれらを単純化しようとしましたか、ちょっと待ってみましたか? –