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

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

位置情報検索(JavaScript)

基本的な使い方

位置情報について

NCMBGeoPointは、位置情報を扱うためのクラスです。
プロパティは以下の通り緯度・経度となっています。

//緯度:-90.0~90.0
latitude

//経度:-180.0~180.0
longitude

NCMBGeoPointオブジェクトの作成

位置情報のオブジェクトを作成する場合は、new演算子を利用します。
以下の例の用に、latitude, longitudeの順で設定した値で初期化され、初期値がない場合は0でオブジェクトが作成されます。

var geoObject1 = new ncmb.GeoPoint();   // defaults to (0,0)
var geoObject1 = new ncmb.GeoPoint(12,133);
var geoObject1 = new ncmb.GeoPoint(30.0, 30.0);

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

位置情報をデータストアに保存するには、setObjectでNCMBGeoPointクラスのオブジェクトをセットし、save系メソッドで保存します。

例1 save を使用し、新宿駅の座標をデータストアに保存しています。

var latitude  = 35.690921;
var longitude = 139.700258;
var geoPoint = new ncmb.GeoPoint(latitude, longitude);

var Places = ncmb.DataStore("Places");
var point = new Places();

point.set("areaName", "新宿駅");
point.set("point", geoPoint);
point.save()
     .then(function(){
      })
     .catch(function(err){
        // エラー処理
      });

すでに生成されているgeoPointの位置情報を変更して保存する事もできます。

例2 save を使用し、高田馬場駅の座標をデータストアに保存しています。

var geoPoint = new ncmb.GeoPoint(); // (0,0)で生成
geoPoint.latitude =35.712285;
geoPoint.longitude = 139.703782;

var Places = ncmb.DataStore("Places");
var point = new Places();

point.set("areaName", "高田馬場駅");
point.set("point", geoPoint);

point.save(function(err, data){
  });

位置情報に対するクエリ

位置情報のクエリ設定は、検索距離の指定と、検索範囲の指定が可能です。
検索距離を指定した場合は、検索を開始する地点から近い順にデータを取得します。

var origin = new ncmb.GeoPoint(0, 0);

//検索開始位置を指定
near("location", origin)

//検索開始位置と距離をキロメートルで指定
withinKilometers("location", origin, 1000)

//検索開始位置と距離をマイルで指定
withinMiles("location", origin, 800)

//検索開始位置と距離をラジアンで指定
withinRadians("location", origin, 0.3)

範囲を指定して検索する場合は、南西と北東の頂点位置から指定した矩形の内部にあるデータを取得します。

var southWest = new ncmb.GeoPoint(20, 50);
var northEast = new ncmb.GeoPoint(50, 0);

//検索範囲の左下と右上の位置を指定
withinSquare("location", southWest, northEast)

位置情報が設定されているプロパティは、以下のように取得されます。

{__type:"GeoPoint",longitude:「経度」,latitude:「緯度」}

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

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

ページの先頭へ