形からTopojsonへの変換の問題
質問
メキシコ市町村のシェープファイルをTopojsonに変換し、このチュートリアル="http://bost.ocks.org/mike/map/#converting-data-data-data-data-data-Data"> http://bost.ocks.org/mike/map/#converting-data 。私はそれを変換することができましたが、私はそれを表示することができません。あらゆる助けが大いに感謝されます。
これまでの私のワークフローです:
1)ShapeFile
をダウンロードして解凍するwget http://mapserver.inegi.org.mx/MGN/mgm2010v5_0a.zip
unzip mgm2010v5_0a.zip
.
2)JSONへの変換、LAT-LONDおよびSUBSETをサブセット化してSHAPEFILE
ogr2ogr -f GeoJSON -t_srs EPSG:4326 -where "CVE_ENT IN ('09')" df.json Municipios_2010_5A.shp
.
3)Topojson
への変換topojson --id-property OID -p name=OID -p name -o df2.json df.json
.
4)およびHTMLコードの作成
<!DOCTYPE html>
<meta charset="utf-8">
<style>
/* CSS goes here. */
</style>
<body>
<script src="http://d3js.org/d3.v3.min.js"></script>
<script src="http://d3js.org/topojson.v1.min.js"></script>
<script>
var width = 960,
height = 1160;
var svg = d3.select("body").append("svg")
.attr("width", width)
.attr("height", height);
d3.json("df2.json", function(error, df2) {
svg.append("path")
.datum(topojson.feature(df2, df2.objects.df))
.attr("d", d3.geo.path().projection(d3.geo.mercator()));
});
</script>
.
HTMLを実行すると、空白のページが表示されます。私が間違っているかもしれないものについてのアイデアはどんなアイデアですか?
解決
最も簡単なオプションは、予測については特別ではない場合は、ShapeFile(Lambert Conformal Conic)によって提供される投影を使用することです。 topojson 's - widthと--heightコマンドラインフラグ投影シェイプファイルを妥当なサイズに再スケールする。たとえば、960pxの幅が必要な場合は、次のことができます。
topojson --width=960 --margin 20 --simplify=.1 -o mx.json -- municipalities.shp
.
(これはまたスクリーン座標、便利に単純化する。)
メイクファイルを備えた完全な例は bl.ocks.org/9265467 :
var projection = d3.geo.conicConformal()
.rotate([102, 0])
.center([0, 24])
.parallels([17.5, 29.5])
.scale(1850)
.translate([width / 2, height / 2]);
.
(あなたの希望のビューポートに合うように中心とスケールを使っています。)この代替的なアプローチは、
所属していません StackOverflow