私はGoogleドキュメントを使用していて、次の形式のスプレッドシートを作成したいと考えています。
ポイントAポイントBマイレージ ロサンゼルスマイアミ292100 パロアルトサンフランシスコ90
スプレッドシートでMileage
は、が自動的に計算されます。「カラスが飛ぶように」ではなく、「距離駆動」を探しています。
これを実行できるGoogleスプレッドシートの関数はありますか?
私はGoogleドキュメントを使用していて、次の形式のスプレッドシートを作成したいと考えています。
ポイントAポイントBマイレージ ロサンゼルスマイアミ292100 パロアルトサンフランシスコ90
スプレッドシートでMileage
は、が自動的に計算されます。「カラスが飛ぶように」ではなく、「距離駆動」を探しています。
これを実行できるGoogleスプレッドシートの関数はありますか?
回答:
次の小さなコードで、2点間の距離を取得できます。
function getDirection(city1, city2, unit) {
var directions = Maps.newDirectionFinder()
.setOrigin(city1).setDestination(city2)
.setMode(Maps.DirectionFinder.Mode.DRIVING)
.getDirections();
var d = directions.routes[0].legs[0].distance.text;
var distance, value = d.split(" ")[0].replace(",", ""), text = d.split(" ")[1];
if(text == unit) {
distance = value;
} else if(text == "km" && unit == "mi") {
distance = value / 1.6;
} else {
distance = value * 1.6;
}
return Math.round(distance);
}
Maps APIには、Google Appsスクリプトの上にビルドは、第一の方向(取得するルート[0]の間)の起源と目的地を。戻り値はコンマから取り除かれ、整数として解析されます。
返される距離は、キロメートルまたはマイルのいずれかです。「カラスが飛ぶように」の計算も追加しました(マイル単位)。
スプレッドシートの[ツール]> [スクリプトエディター]でスクリプトを追加します。スクリプトエディタのバグボタンを押すと、外出中です!!
私はあなたのためにサンプルファイルを作成しました:走行距離を取得します
Googleスプレッドシート:
=importXML("http://mapquestapi.com/directions/v1/route?
key=YOUR_KEY_HERE&outFormat=xml&from=" & A2 & "&to="
& B2,"//response/route/distance")
どこA2
の起源であるとB2
目的地です。
mapquestからAPIキーを取得し、値YOUR_KEY_HERE
をそれで置き換える必要があります。
これは私にとってうまくいくものです:
=importXML("http://maps.googleapis.com/maps/api/distancematrix/xml?&origins="& <point.A> & "&destinations=" & <point.B>; "//distance/value")
これは間で駆動距離が得られる<point.A>
と<point.B>
(もちろん、Googleマップ、による)メートル。
これを行うためのExcel関数、または拡張機能が組み込まれているとは思いません。
このSource Forgeページを確認してください。http://zips.sourceforge.net/
Excel関数は
=IF(SIN(Lat1) * SIN(Lat2) + COS(Lat1) * COS(Lat2) * COS(Long1 - Long2) > 1,
RadiusofEarth * ACOS(1), RadiusofEarth *
ACOS(SIN(Lat1) * SIN(Lat2) + COS(Lat1) * COS(Lat2) * COS(Long1-Long2)))
このページでは、角度はラジアンでなければならず、Excelには度からラジアンへの変換関数があることに注意してください。
=RADIAN(degrees)
他の誰かがより正確な答えを持っている場合を除き、これはあまり多くの作業なしであなたが望むものを得るはずです。
スプレッドシートテンプレート形式の完全なGoogleスプレッドシートの例と、Google Maps APIに関する情報については、http: //winfred.vankuijk.net/2010/12/calculate-distance-in-google-spreadsheet/
Google Developers は、 Googleスプレッドシートのマップ関連機能用の非常に堅牢なスクリプトを提供しています。これは、私が使用して非常に楽しんだものです。完全な説明もウェブページにあります。
これを行う方法を正確に説明するAPIに精通していませんが、Google Maps APIを使用することで可能になると思います。
もちろん、GoogleマップはAPIを介してある地点から別の地点への道順を提供できます。複雑になりますが、APIを介してスプレッドシートから場所をルーティングし、運転ルートを取得することができます。これにより、都市間の運転距離がわかります。
マクロのように自分で関数を書くことができます
http://www.google.com/google-ds/scripts/yourfirstscript.html
ここで完全なドキュメントを見つけることができます
PS:現在、一部のGoogle Appsスクリプトでは利用できません