2017-05-11 3 views
2

正しくマップされたときに緯度/経度が37.786453, -122.490402になりました。しかし、私のコードでは。それは西ユタ州へのマッピングです。私は、利用元のブロックから変わらずとなっているコードのこの部分を変更することによってポイントの位置を操作することができる午前:地図上に緯度/経度の点が正しく配置されていません

projection 
    .scale(1000) 
    .center([-106, 37.5]) 

ここに配置する必要が正しいどのような値(秒)?セクションを完全に削除すると、オレゴン州東部にポイントが置かれます。ここで

は、現在のフィドルです:https://jsfiddle.net/Lv5knc0n/

これはd3.js.を使用して地図上の緯度/長いプロットに関するフォローアップの質問です最初の投稿へのリンクhere

答えて

2

あなたフィドルは、二つの異なる突起と機能を示している。

  • ヌル投影で示さtopojsonに対するポイント

ため

  • Aメルカトル図法topojson USためのヌル投影:

    参照されている米国のtopojsonは、多くの他の投稿にも登場しています。これは米国の複合Albers投影です(マルチ1つのフレーム内の1つの投影)。その中のデータは既に投影されているため、NULL投影を使用します。ヌル投影は各点のx、y座標を単純に取り込み、変換なしでsvg座標に変換します(mapshaper.orgまたは任意の地理的ソフトウェアでは、svg座標が上から始まり、地理座標はあなたの地図の下の赤道線)。

    最終的に、あなたはメルカトルにアルバースが一致している - あなたはメルカトル図法に変更を加えるとき:

    projection 
        .scale(1000) 
        .center([-106, 37.5]) 
    

    をそれが投影を使用していないためにあなたは、パスジェネレータ以来topojsonを変更されていません。あなたはポイントの投影を変更するだけです。また、2つの異なる投影法を使用している場合、同じ地理的な点が各投影法で異なって表されます。複数の点のアラインメントは、不可能ではないにしても問題ありません(点と投影によって異なります)。


    比較的簡単な解決策は、あなたの米国の郡のために、非投影データを使用(空間データは、緯度、長いペアで構成されている)とあなたのポイントと同じ投影し、それを投影し、あります。これにより、ポイントとパス、またはその他のフィーチャの両方に1つの投影を使用できるため、すべてのフィーチャを一度に拡大/縮小できます(そうでない場合は、geoTransformを使用して、理想的な解決策ではなく、投影の変更を伴う)。

    blockhere)のjsonを使用してみてください。

  • +0

    ありがとう、@アンドリュー。私はそれを考え出したのかどうか分からない。 –

    関連する問題