サーバー構築不要!スマートフォンアプリ向けの新クラウド

トップ >ドキュメント >位置情報検索(Android):基本的な使い方

位置情報検索(Android)

基本的な使い方

概要

このページでは、アプリから位置情報検索を行う方法について解説します。

位置情報をデータストアに保存する

位置情報をデータストアに保存する場合は、putメソッドを使ってLocationクラスを設定します。
以下のサンプルコードはTestClassクラスにgeoキーに位置情報データを設定し、保存を行うコードとなります。

Location geo = new Location("test");
geo.setLatitude(10.0);
geo.setLongitude(10.0);
NCMBObject obj = new NCMBObject("TestClass");
try {
    obj.put("geo", geo);
    obj.saveInBackground(new DoneCallback() {
        @Override
        public void done(NCMBException e) {
            if (e != null) {
                //エラー発生時の処理
            } else {
                //成功時の処理
            }
        }
    });
} catch (NCMBException e) {
    e.printStackTrace();
}

位置情報の検索

位置情報の検索を行う場合は、距離か範囲を指定して検索を行います。

検索距離

検索距離を指定する場合は、検索開始地点の位置情報とそこからの検索距離を指定します。
検索距離は、キロメートル、マイル、ラジアンで指定可能です。

Location point = new Location("sdk-test");
point.setLatitude(30.0);
point.setLongitude(30.0);

NCMBQuery<NCMBObject> query = new NCMBQuery<>("TestClass");

//pointで指定した位置から半径10km以内の位置情報をlocationフィールドに持つデータを検索する
query.whereWithinKilometers("location", point, 10);

query.findInBackground(new FindCallback<NCMBObject>() {
    @Override
    public void done(List<NCMBObject> results, NCMBException e) {
        if (e != null) {
            //検索失敗時の処理
        } else {
            //検索成功時の処理
        }
    }
});

検索範囲

検索範囲で指定する場合は、検索範囲となる矩形の左下(南西)と右上(北東)の位置情報を設定し、
その範囲内で保存してあるオブジェクトの検索ができます。

Location southwest = new Location("sdk-test");
southwest.setLatitude(30.0);
southwest.setLongitude(30.0);

Location northeast = new Location("sdk-test");
northeast.setLatitude(60.0);
northeast.setLongitude(60.0);

NCMBQuery<NCMBObject> query = new NCMBQuery<>("TestClass");

//southwest(左下)とnortheast(右上)で指定された
//検索範囲内の位置情報をlocatioフィールドに持つオブジェクトを検索する
query.whereWithinGeoBox("location", southwest, northeast); 

query.findInBackground(new FindCallback<NCMBObject>() {
    @Override
    public void done(List<NCMBObject> results, NCMBException e) {
        if (e != null) {
            //検索失敗時の処理
        } else {
            //検索成功時の処理
        }
    }
});

お探しの内容が見つからなかった場合はユーザーコミュニティ もご活用ください。(回答保証はいたしかねます)
なお、 Expertプラン以上のお客様はテクニカルサポートにてご質問を承らせて頂きます。

推奨画面サイズ1024×768px以上

ページの先頭へ