2D自動車シミュレーターをGoogle Maps API for Flashに対応

Google Maps APIのFlash版がリリースされたので、突貫工事で導入してみました。
APIはJavaScript版から多少変わってるみたいですが(プリフィックスのGが取り除かれたり、getBounds()がDisplayObject.getBounds()とのバッティングのためにgetLatLngBounds()になっていたり)、MapをaddChildして、ExternalInterfaceで呼んでいたJavaScriptの関数群をそのままActionScriptにコピペして適当にエラーを潰した程度であっさり移行完了。
やっぱりFlashオンリーだと動きがスムーズ。フレームレートをJavaScript版の15?20fpsから40fpsに上げたにもかかわらず、CPU使用率は下がった。Googleマップのレスポンスの遅れによる表示ずれもなくなった。安定性もずっと良くなったのではと思う。トラブルメーカーのwmode=transparentが必要なくなったし、そもそもFlashからJavaScriptを秒数十回呼ぶとか、どんな環境で何が起こるか分かったものじゃないし。というか実際不具合が起きていたようで……。
あと、MapはSpriteのサブクラスなので、回転させたりエフェクトをかけたり好き放題できるんだけど、Googleのロゴや著作権表示まで加工してしまうことになるので、APIの規約に引っかかるかもしれない。とはいえ、Google自身がマップを回転させるサンプルを用意していて、これは「やってもいいよ」サインなんだろうか。画面が回転しないと運転しにくいとはよく言われるので、どうするか悩みどころ。
楽しそうなんだけどなあ。回転。
それと、LatLng.distanceFrom()に不具合があるっぽい。経度が無視されて、緯度だけの距離が戻ってくる。v1.4で修正されたようです。
JavaScript版:
var p1 = new GLatLng(35, 135); var p2 = new GLatLng(35, 136); var p3 = new GLatLng(36, 135); var p4 = new GLatLng(36, 136);
p2.distanceFrom(p1) = 91187.20767600156 p3.distanceFrom(p1) = 111319.49079327373 p4.distanceFrom(p1) = 143543.27401042765
Flash版:
var p1:LatLng = new LatLng(35, 135); var p2:LatLng = new LatLng(35, 136); var p3:LatLng = new LatLng(36, 135); var p4:LatLng = new LatLng(36, 136);
p2.distanceFrom(p1) = 0 p3.distanceFrom(p1) = 111319.49079327373 p4.distanceFrom(p1) = 111319.49079327373
これを回避するためにちょっと精度が落ちてるはずなんですが、まあ気になるほどではないですね。鈴鹿を一周するとトリップメーターがちゃんと5.8kmになります。
