GeneXusで位置情報を使ったスマホアプリを作ってみた!
GeneXusで作るのはWebアプリばかりでスマートデバイス用アプリを作る機会がなかったので、GeneXusで位置情報を使ったスマートデバイス用アプリの作成に挑戦してみました!
今回作成したアプリは、写真を撮って登録した場所の位置情報を取得し、登録された場所の一覧を地図上に表示するというものです。
アプリの完成イメージはこちら
位置情報取得の実装方法
まず、デバイスの現在の位置情報を取得します
&GeoLocationinfo = GeoLocationAPI.GetMyLocation(0,0,false)
TripLocation = &GeoLocationinfo.Location
次に取得した位置情報から住所を取得します
&GeoAddress = GeoLocationAPI.GetAddress(TripLocation)
TripAddress = &GeoAddress.Item(1)
試しに取得した位置情報からキャパまでの距離を表示させてみる事にしました
&TripDistance = GeoLocationAPI.GetDistance(‘35.6958608,139.775018’,TripLocation)
TripDistance = &TripDistance / 1000
今回、GeneXusでコードを書いたのはこれだけです!
さて、実際にデータを登録し、そのデータを確認してみます!
結果は、デバイスの位置情報が正しく登録されていました!
(住所が文字化けしているのは、データベースの環境の影響です。日本語だとすべて文字化けしてしまうのでデバイスの言語設定を英語に変更して登録しています。)
地図上に登録したデータの一覧を表示する実装方法
登録したデータを地図上に表示するのにコードを書く必要はありません!
SD MAPsというControl Typeに変更するだけであっという間に地図上にデータを表示することができます!
プロパティ設定例:
まず、GirdのプロパティからControl TypeをSD MAPsに変更します。
次にLocation Attributeに座標の項目を設定します。
実行して確認してみると、登録したデータの一覧が地図上に表示され、登録したデータの座標にはピンが立っています!(先ほど登録データを確認した際に、座標が地図上で表示されていたのも座標が登録されている項目のControl TypeをSD MAPsに変更したためです)
ピンをタッチすると登録データの内容も確認できます。
最後に
今回のアプリで位置情報を取得する際に使ったAPIをご紹介します。
デバイスのGPS 情報を取得するGeoLocationAPI
GeneXusには、GeoLocationAPIというAPIが用意されています。
この API により、アプリケーションを実行しているデバイスで GPS 情報をやり取りすることが可能となります。
このAPIを使用できるよう、GeoLocationAPIには多くのメソッドが定義されています。今回のアプリで使用した3つのメソッドをご紹介します。
1.GetMyLocation
デバイスの座標を取得します。
パラメータには座標の精度や希望の精度で座標を取得するための最大待ち時間を指定できます。
2.GetAddress
位置情報の住所を取得します。
パラメータに指定した座標からその場所の住所が取得できます。
3.GetDistance
2 つの位置情報の間の距離を取得します。
パラメーターで指定した2つの座標からその間の距離を取得できます。距離の単位はメートル(m)です。
今回、GeneXusでスマートデバイスアプリの開発に初めて挑戦してみましたが、あっという間にできて驚きました!このアプリの作成時間も1日程度です。また、コードを書いた量もほんのわずかです!まだ作り込みが必要な箇所はありますが、スマートデバイスアプリの開発が初心者の私でも短時間でここまで作ることができました。さすが、超高速開発ツールですね!
株式会社キャパでは、GeneXusを用いた超高速開発についてご相談を承っています。
短納期、予算が合わないなどお気軽にご相談ください。
高速開発:GeneXusのご紹介