【DTP作業効率化】スプレッドシートから緯度経度を取得してIllustrator上に展開する--(2)スプレッドシートの操作
前の記事

上画像のように、スプレッドシートで緯度経度を取得して、Illustrator上に展開させる過程のスプレッドシート部分について。
下記のスプレッドシート をマイドライブにコピーで使える。
https://docs.google.com/spreadsheets/d/1EMCE5r4OXNXM5AtoIhSUZGWfTBEuDZFl62tWeiBry1E/edit#gid=42199664

手順
「シート1」のA列にIllustratorに記入する施設の名前を入力。
「シート1」のC列に緯度経度を調べる住所または施設名を入力。
メニューの「スクリプト」から「緯度経度検索」を実行。
メニューの「スクリプト」から「緯度経度を平面座標に」を実行。
座標上の点とIllustrator上の点を揃えるために矯正用の数値を求める。
「シート1」のP1の値をコピーしてAppleScriptに渡す。
詳細
●「シート1」のA列にIllustratorに記入する施設の名前を入力。
この文字がIllustratorに入力される。
●「シート1」のC列に緯度経度を調べる住所または施設名を入力。
緯度経度はGoogle Apps Scriptで取得する。施設名で検索できる場合がある。できない場合は住所を入れる。
●メニューの「スクリプト」から「緯度経度検索」を実行。
緯度経度を取得する。「シート1」のE列に結果が入力される。緯度経度を取得する方法はGAS用に用意されている「Geocoder」クラスを利用。エラーになった箇所は「error」と記入される。「緯度経度検索(errorだけ)」を実行すれば、errorになっている箇所だけ検索できるので検索キーを変更して再度挑戦。Geocoderは1日に使える回数制限があるようで使いすぎるとエラーが返ってくる。140件くらいは大丈夫だった。


GoogleAppsScriptの初回実行時は承認が必要。下記の手順で承認。
●メニューの「スクリプト」から「緯度経度を平面座標に」を実行。
取得した緯度経度が平面の座標に置き換えられ、「シート1」のJ列、K列に結果が入力される。
●座標上の点とIllustrator上の点を揃えるために矯正用の数値を求める。
「調整用」のシートに下図のように2点の値をいれる。
赤い箇所はB2、B3に施設名を入れればVlookupで数値が入る。
緑の箇所は1、2の長さをイラレで調べてC6、D6に入力。
「高さ比」「底辺比」「イラレ用」の値が「シート1」に反映される。
イラレ用「2.834645669」はAppleScriptが扱う単位とイラレ が扱う単位を揃えるためのもの。変更不要。

●「シート1」のP1の値をコピーしてAppleScriptに渡す。
P1の文字列をApplescriptがIllustratorに展開させるためのリストとして使用する。
関数のArrayformulaをindirect とCountaを組み合わせて各所に使用しているので、シート1は各列の途中に空白のセルがないようにする。
つづく。