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

トップ >ドキュメント >SDKガイド(JavaScript):位置情報

SDKガイド(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){
  });

位置情報の検索

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

検索距離

検索距離を指定する場合は、検索開始地点の位置情報とそこからの検索距離を指定します。
指定する場合は、キロメートル、マイル、ラジアンで指定可能です。
また、検索距離を指定せずに検索をかける事もできます。その場合は検索開始地点から近い順に、
位置情報の保存されているオブジェクトが取得されます。

// 距離指定なし
near("point",geoPoint)

// キロメートルで距離指定
withinKilometers("point", geoPoint, 5)

// マイルで距離指定
withinMiles("point", geoPoint, 20)

// ラジアンで距離指定
withinRadians("point", geoPoint, 0.3)

例 新宿駅の位置情報を検索開始地点に指定し、検索範囲(5キロメートル)を指定しています。

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

var Places = ncmb.DataStore("Places");
Place.withinKilometers("point", geoPoint, 5)
     .fetchAll()
     .then(function(results){
        for (var i = 0; i < results.length; i++) {
          var data = results[i];
          console.log (data.point);
        }
      })
     .catch(function(err){
      // エラー処理
      });

検索範囲

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

例 南西に新宿、北東に池袋を指定し、その範囲内の検索を行っています。
上記にある「位置情報の保存」で新宿と高田馬場を保存している場合は、それぞれのオブジェクトが検索されます。

var swLatitude  = 35.690921;
var swLongitude  = 139.700258;
var swGeoPoint  = new ncmb.GeoPoint(swLatitude,swLongitude);

var nelatitude = 35.728926;
var nelongitude = 139.71038;
var neGeoPoint  = new ncmb.GeoPoint(nelatitude,nelongitude);

var Places = ncmb.DataStore("Places");
Place.withinSquare("point", swGeoPoint, neGeoPoint);
     .fetchAll()
     .then(function(results){
        for (var i = 0; i < results.length; i++) {
          var data = results[i];
          console.log (data.point);
        }
      })
     .catch(function(err){
      // エラー処理
      });

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

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

ページの先頭へ