public void TestCreateGeoPoint() { var latitude = 35.6585805; var longitude = 139.7454329; var geo = new NCMBGeoPoint(latitude, longitude); Assert.AreEqual(latitude, geo.Latitude); }
public void TestSetGeoPoint() { var latitude = 35.6585805; var longitude = 139.7454329; var geo = new NCMBGeoPoint(latitude, longitude); var item = new NCMBObject("Item"); item.Set("geo", geo); var geo1 = (NCMBGeoPoint)item.Get("geo"); Assert.AreEqual(geo1.Latitude, geo.Latitude); }
public void TestSaveGeoPoint() { Task.Run(async() => { var latitude = 35.6585805; var longitude = 139.7454329; var geo = new NCMBGeoPoint(latitude, longitude); var item = new NCMBObject("Item"); item.Set("geo", geo); await item.Save(); Assert.NotNull(item.Get("objectId")); await item.Delete(); }).GetAwaiter().GetResult(); }
public void TestSearchGeoPoints() { Task.Run(async() => { var text = File.ReadAllText("../../yamanote.json"); var json = JArray.Parse(text); foreach (var x in json) { var p = (JObject)x; var geo = new NCMBGeoPoint((double)p["latitude"], (double)p["longitude"]); var item = new NCMBObject("Station"); await item.Set("name", p["name"].ToString()).Set("geo", geo).Save(); } var query = new NCMBQuery("Station"); var geo1 = new NCMBGeoPoint(35.6585805, 139.7454329); var ary = await query.Limit(5).Near("geo", geo1).FetchAll(); Assert.AreEqual(5, ary.Length); Assert.AreEqual("浜松町", ((NCMBObject)ary[0]).Get("name").ToString()); var geo2 = new NCMBGeoPoint(35.6654861, 139.7684781); var geo3 = new NCMBGeoPoint(35.6799926, 139.7357476); query = new NCMBQuery("Station"); ary = await query.WithinSquare("geo", geo2, geo3).FetchAll(); Assert.AreEqual(2, ary.Length); query = new NCMBQuery("Station"); var stations = await query.Limit(100).FetchAll(); foreach (var station in stations) { await station.Delete(); } }).GetAwaiter().GetResult(); }
//estimatedDataのvalueの値がオブジェクト型の場合はここで変換 private static IDictionary <string, object> _encodeJSONObject(object value, bool allowNCMBObjects) { //日付型をNifty仕様に変更してクラウドに保存 if (value is DateTime) { DateTime dt = (DateTime)value; Dictionary <string, object> Datedic = new Dictionary <string, object> (); string iso = dt.ToString("yyyy-MM-dd'T'HH:mm:ss.fff'Z'"); Datedic.Add("__type", "Date"); Datedic.Add("iso", iso); return(Datedic); } if (value is NCMBObject) { NCMBObject obj = (NCMBObject)value; if (!allowNCMBObjects) { throw new ArgumentException("NCMBObjects not allowed here."); } //GetRelationなどしたオブジェクトが未保存の場合はエラー if (obj.ObjectId == null) { throw new ArgumentException("Cannot create a pointer to an object without an objectId."); } Dictionary <string, object> NCMBDic = new Dictionary <string, object> (); NCMBDic.Add("__type", "Pointer"); NCMBDic.Add("className", obj.ClassName); NCMBDic.Add("objectId", obj.ObjectId); return(NCMBDic); } if (value is NCMBGeoPoint) { NCMBGeoPoint point = (NCMBGeoPoint)value; Dictionary <string, object> GeoDic = new Dictionary <string, object> (); GeoDic.Add("__type", "GeoPoint"); GeoDic.Add("latitude", point.Latitude); GeoDic.Add("longitude", point.Longitude); return(GeoDic); } if (value is IDictionary) { Dictionary <string, object> beforeDictionary = new Dictionary <string, object> (); IDictionary afterDictionary = (IDictionary)value; foreach (object key in afterDictionary.Keys) { if (key is string) { beforeDictionary [(string)key] = _maybeEncodeJSONObject(afterDictionary [key], allowNCMBObjects); } else { throw new NCMBException(new ArgumentException("Invalid type for key: " + key.GetType().ToString() + ".key type string only.")); } } return(beforeDictionary); } if (value is NCMBRelation <NCMBObject> ) { NCMBRelation <NCMBObject> relation = (NCMBRelation <NCMBObject>)value; return(relation._encodeToJSON()); } if (value is NCMBACL) { NCMBACL acl = (NCMBACL)value; return(acl._toJSONObject()); } return(null); }