/// <summary> /// 指定された矩形範囲に含まれるオブジェクトの取得を行います。 /// </summary> /// <param name="key"> フィールド名</param> /// <param name="southwest"> 左下(南西)</param> /// <param name="northeast"> 右上(北東)</param> /// <returns> クエリ</returns> public NCMBQuery <T> WhereWithinGeoBox(string key, NCMBGeoPoint southwest, NCMBGeoPoint northeast) { Dictionary <string, object> geoDictionary = _geoPointToObjectWithinBox(southwest, northeast); _addCondition(key, "$within", geoDictionary); return(this); }
/// <summary> /// 指定位置から近い順にオブジェクト取得を行います。 /// </summary> /// <param name="key"> フィールド名</param> /// <param name="point"> 指定位置(NCMBGeoPoint)</param> /// <returns> クエリ</returns> public NCMBQuery <T> WhereNearGeoPoint(string key, NCMBGeoPoint point) { object geoPoint = this._geoPointToObject(point); _addCondition(key, "$nearSphere", geoPoint); return(this); }
/// <summary> /// 指定位置から指定距離(キロメートル)までの範囲に含まれるオブジェクトの取得を行います。<br/> /// 指定位置から近い順に取得します。 /// </summary> /// <param name="key"> フィールド名</param> /// <param name="point"> 指定位置(NCMBGeoPoint)</param> /// <param name="maxDistance"> 指定距離</param> /// <returns> クエリ</returns> public NCMBQuery <T> WhereGeoPointWithinKilometers(string key, NCMBGeoPoint point, double maxDistance) { Dictionary <string, object> geoDictionary = this._geoPointToObject(point); _addCondition(key, "$nearSphere", geoDictionary); _addCondition(key, "$maxDistanceInKilometers", maxDistance); return(this); }
/// <summary> /// NCMBGeoPointのJSON化するDictionaryの作成。 /// </summary> private Dictionary <string, object> _geoPointToObject(NCMBGeoPoint point) { Dictionary <string, object> geoDic = new Dictionary <string, object> (); geoDic.Add("__type", "GeoPoint"); geoDic.Add("longitude", point.Longitude); geoDic.Add("latitude", point.Latitude); return(geoDic); }
/// <summary> /// JSON化するDictionaryの作成。キーは$box 値は南西GeoPointと北東GeoPointが入ったリスト。 /// </summary> private Dictionary <string, object> _geoPointToObjectWithinBox(NCMBGeoPoint southwest, NCMBGeoPoint northeast) { Dictionary <string, object> geoDic = new Dictionary <string, object> (); Dictionary <string, object> jSouthwest = _geoPointToObject(southwest); Dictionary <string, object> jNortheast = _geoPointToObject(northeast); List <object> List = new List <object> (); List.Add(jSouthwest); List.Add(jNortheast); geoDic ["$box"] = List; return(geoDic); }