FileMakerによるシステム開発はFileMakerPro3の頃から行っていて、システムの軽さからFileMakerPro 8.5が一番使いやすいと感じているところですが、iOS用のFileMaker Goが無料で配布されていることから、FM Goで使用するためのデータベースを作成できるFileMakerPro12を(今頃になってようやくって感じですが)使ってみることにしました。
具体的には、iPhoneやiPodTouchを持ち歩いて、移動中の場所を画面クリックで一旦FileMaker Goデータベースに取り込み、あとでパソコンに取り出すようなシステムを簡単に作れるのではないか?思ったためです。Xcodeを使わずにiPhone,iPadで使えるアプリケーションのようなものを開発できるFileMakerPro12とFileMaker Goに感謝。
FileMakerPro 12から追加された関数にLocation とLocationValues という位置情報データを取り扱う構文があります。これらは、取得する位置情報の数が異なるようで、Location関数は2次元情報、LocationValues 関数の方は高度を含む3次元情報と精度の違いがあるようです。
リファレンスによるとLocation は、「FileMaker Go を実行している iPad や iPhone などのデバイスの現在の経度、緯度を返します。場所は GPS、携帯ネットワーク、または WiFi から入手します。」となっているので、Location(精度;タイムアウト) の書式をフィールド設定スクリプトで、フィールドに代入するテストをしてみました。テストしたのは iPodTouch 4th。GPSは搭載しいておらずWiFiネットワークから計算すると思われます。
Location(50; 30)
やってみたら、なぜか 3つの値が返ってきました。
「+34.468868, +132.793872, +65.000000」
+65って高度?ちょっと数値が小さい気がするが・・・・と思いながら、GPS Status というiPhone App を立ち上げて数値を比較してみると、どうやら3値目は精度らしいと判明。
検索エンジンでサーチしてみたところ、2値が返ってくる場合と3値が返ってくる場合があるようです。FileMakerGoが動くiPhoneを持っていないため、iPodTouchとiPad+外付けGPSで試してみたものの両方ととも3値が返ってきました。
スクリプトを組むときは、3値の場合とタイムアウトする場合のことも考えないといけないな〜と感じたところです。