2

ニューヨーク市の行政区の地図を作成していますが、正しい投影法が得られないようです。得られるのは小さな地図だけです。

この例を再現しようとしましたが、コンソールがエラーでおかしくなっただけでした。方程式に何か問題があったためだと思います。

albers を機能させようとしていたとき、この質問に対する答えを試してみましたが、それでもマップを機能させることができませんでした。

  With 960/500 height and width, I used: var projection = d3.geo.albers().center([40.71, 73.98]).parallels([29.5, 45.5]).scale(10000).translate([(width) / 2, (height)/2]);

現在、横メルカトル図法を使用しており、以下のコードと、これらのファイルの 1 つを使用して作成した topojson を使用しています。

  var width = 960,
   height = 500;

  var svg = d3.select("body").append("svg")
    .attr("width", width)
    .attr("height", height);

  d3.json("nyc-borough.json", function(error, nyb) {

  var boroughs = topojson.feature(nyb, nyb.objects["nyc-borough-boundaries-polygon"]).features;

  var projection = d3.geo.transverseMercator()
.scale(1600)
.rotate([73 + 58 / 60, -48 - 47 / 60]);

var path = d3.geo.path()
.projection(projection);

var g = svg.append("g");

g.append("g")
.attr("id", "boroughs")
.selectAll(".state")
.data(boroughs)
.enter().append("path")
.attr("class", function(d){ return d.properties.name; })
.attr("d", path);

});

お願い、半減してください:(

前もって感謝します!

4

1 に答える 1

3

ここに NYC の自治区を含むブロックを作成しました。QGISでの簡単なチェックが示したように、元のデータが含まれていたので、WSG84/Mercatorで正しい道を歩んでいました。

QGISはデータの中心をチェックするのにも適していて、これも [-73.94, 40.70] でした。これらは、緯度と経度であった座標とは逆ですが、APIでここで説明されているように、d3 には経度と緯度が必要であることに注意してください。他に気をつけたいのは、ネガです。北が正なので、北半球の緯度は正で、南半球は負です。東半球と西半球では、東が正です。もちろん、これは、米国のアルバースが米国にネガティブな影響を与えないという世界的な予測にのみ関係します。ああ、 Jason Davies の作品を見ずして、Projections に関する議論は完了しません。

データの投影法とは異なる投影法を使用したい場合は、一般的に、データをその投影法に前処理する方が良いと思います.QGISはそのための優れたツールですが、gdalなど他にもたくさんあります.

于 2013-09-21T03:43:33.050 に答える