日々適当

hibitekitou

ようやく形になった…(追記:なってない)

cg |2020-03-07

国土地理院の配布している行政区域データを日本地図を作成する目的でわちゃわちゃいじっておりました。SVGファイルで出力してIllustratorに持っていくのが目的です。

svgwriteやpyprojを使うことでSVGファイルへの出力は随分と前にできていたのだけど、それを直接 Illustrator に読み込むと一部うまく読み込まれないことがあり、困っていたわけです。

これがIllustratorで読み込んだ状態。佐渡市が飛び飛びの線でしか表示されていないように見えるけど、島本体のアウトラインが認識されていない状況です。で、どうにかならないかって時に、

こんな感じで、Affinity Designer ならちゃんと読み込まれたのですよ。ってことでこいつから改めてsvgを書き出してやります。

書き出したsvgファイルをIllustrator で読み込むと

今度はちゃんと読み込まれました。Affinity Desingerがいい感じのSVGファイルにしてくれたってことっすね。ってことで手順はこれで良さそうです。読み込めたと思ったんですけどねぇ。やっぱり同じように島の本島部分の要素が消えてしまいます。佐渡島と対馬に発生中。

<追記>佐渡市の本島のみ、つまり d="" の中に書かれる閉曲線の要素を一つだけにしたものを書き出したのですけど、やっぱりIllustratorでは読み込まれませんでした。そこで、その佐渡市の本島部分だけにしたsvgファイルをテキストエディタで開き、d=""内の一番最後の要素を残し、そこから前のファイル全体から見ると半分までを削除しました。ポイントの数を半減させたってことですね。そしたら読み込まれるわけです。Illustratorがデータを読み込む際、扱えるポイント数に制限があるんじゃないか疑惑が生まれています(そりゃ当然あるだろうけど、Affinity DesignerはもちろんWebブラウザでも読み込める範囲のポイント数でダメになっちゃうの?って思いますけど...もちろんBlenderも読み込める)。
Affinity DesignerからパスをコピペでIllustratorに持っていけるのだけど、佐渡市本島については島の一部が欠けた形でペーストされることからそんな予想をしてみているのですが、実際のとこどうなんでしょう。そしてそうだとするなら回避手段は無い?</追記>

余談ながら、これはテストのために新潟県だけを出したものなのだけど、svgwriteから出力されたSVGファイルは9.9MBで、それを読み込んでAffinity Desginerから書き出されたSVGファイルは2.6MBでした。お互いのファイルを開いてみたところ、Affinity Desinger産のSVGファイルのサイズが小さいのは、有効桁数が少ないのと相対位置で座標が記録されているからのようです。svgは単なるテキストファイルだから、それだけでだいぶサイズが変わってきてしまうわけっすな。

さらに余談ながら、Affinity Designerで開けたからこれで以後の作業を完結してもいいのだけど、自動処理をさせたい時(市町村ごとに違う色を割り当てたいとかしたい時)、現状手動でやらざる得ないってのは困るかなと思いました。

それから、例えば長岡市の内側に見附市の飛び地があるようなのだけど、下図の緑色領域内にある小さな黒線で囲まれた範囲ですね。そこは長岡市単体で見た時、穴になっていて欲しいわけです。

レイヤーパレット上は下図のような感じで、ここの「カーブ」って名前のサブレイヤーを選択して

レイヤー→塗りつぶしモード→交互(奇数-偶数) を選ぶことで穴が開きます。

しかしてレイヤーの構造的に長岡市グループの下にカーブレイヤーがあるもので、いちいちグループを開いてカーブレイヤーを選択しメニューを選ぶって手間を経ないといけないのですよ。長岡市だけならいいけど、当然、その他の市町村にも同様の構造のところはあるので、一括で処理したい。のだけど、グループの子供のカーブレイヤーを一括で選択するのがどうも困難らしいのです。

この辺、Illustratorだとレイヤー全部選択して属性パレットの塗りの奇偶規則を適用ボタンをオンにするだけです。

Affinity Designerで同じようにまとめて選択して適用する楽な方法ってあるんかなぁって思いつつ、Illustratorはよくできているなぁと思いました。

コメント ( 0 )|Trackback ( )
 
コメント
 
コメントはありません。
コメントを投稿する
ブログ作成者から承認されるまでコメントは反映されません
 
名前
タイトル
URL
コメント
コメント利用規約に同意の上コメント投稿を行ってください。

数字4桁を入力し、投稿ボタンを押してください。