位置情報検索(JavaScript & Monaca)
基本的な使い方
位置情報について
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 bottomLeft = new ncmb.GeoPoint(0, 0);
var upperRight = new ncmb.GeoPoint(20, 50);
//検索範囲の左下と右上の位置を指定
withinSquare("location", bottomLeft, upperRight)
位置情報が設定されているプロパティは、以下のように取得されます。
{"__type":"GeoPoint","longitude":「経度(数値)」,"latitude":「緯度(数値)」}
お探しの内容が見つからなかった場合はユーザーコミュニティ
もご活用ください。(回答保証はいたしかねます)
なお、 Expertプラン以上のお客様はテクニカルサポートにてご質問を承らせて頂きます。
推奨画面サイズ1024×768px以上