問題の発見に関する進歩を反映するために、この質問を修正しました。次の python コードを使用して、米国本土の SVG を生成しています。私が説明する問題は、使用するシェープファイルに関係なく発生するため、シェープファイルは無関係です。スクリプトは実にシンプルです。私は基本的に、米国のシェープファイルを取得し、バウンディング ボックスを使用してハワイとアラスカを除外します。
from kartograph import Kartograph
K = Kartograph()
blah={
"layers": [
{
"id":"mylayer",
"src":"/Users/austinc/Documents/shapefiles/states_21basic/states.shp",
}
],
"bounds":{
"mode":"bbox",
"data":[-130,25,-65,50],
},
"proj":{
"id":"mercator"
}
}
K.generate(blah,outfile='/Users/austinc/Desktop/mymap.svg')
問題は、このコードによって生成された svg に関連付けられている座標が正しくないことです。JavaScript を使用してポイントをマッピングしようとすると、ポイントは正しい緯度に表示されますが、経度で約 100 度ずれています。
Kartograph の事前に作成された SVG を使用する場合、この問題は発生しません (アラスカとハワイのトリミングはまだ試していません)。私のpythonスクリプトに関する何かがこれを引き起こしていますが、何がわかりません。
修正済み: 以下のコメントを見て、これはプロジェクションと関係があるのではないかと考えました。グラフをメルカトル図法として描画する python スクリプトの一部を削除すると、すべてが修正されました。理由がよくわかりませんが、同様の問題があり、この質問を見つけた場合は、投影を変更するか、投影をまったく使用しないでください。