private static bool IsYnu(double latitude, double longitude) { GeoCoordinate startCoordinate = PlaceGetter.GetInstance().Get("YNU").Item1; GeoCoordinate endCoordinate = PlaceGetter.GetInstance().Get("YNU").Item2; return(latitude > startCoordinate.Latitude && latitude < endCoordinate.Latitude && longitude > startCoordinate.Longitude && longitude < endCoordinate.Longitude); }
/* * IsSightseeing() * 2018leaf実験用に追加した観光オプション判定用のメソッド * 引数で与えられた座標がPLACE.PROPERTY==sightseeingとなるようなレコード群に含まれるかを判定する。 */ private static bool IsSightseeing(double latitude, double longitude) { GeoCoordinate startCoordinate; GeoCoordinate endCoordinate; // property値がsightseeingである範囲群を取得 List <Tuple <GeoCoordinate, GeoCoordinate> > sightseeingPlaces = PlaceGetter.GetInstance().GetRowsByProperty("sightseeing"); // 引数で与えられた座標が範囲群の中の1つの範囲内に存在する場合はTrue foreach (Tuple <GeoCoordinate, GeoCoordinate> sightseeingPlace in sightseeingPlaces) { startCoordinate = sightseeingPlace.Item1; endCoordinate = sightseeingPlace.Item2; if (latitude > startCoordinate.Latitude && latitude < endCoordinate.Latitude && longitude > startCoordinate.Longitude && longitude < endCoordinate.Longitude) { return(true); } } // ここに到達した場合には、引数で与えられた座標はsightseeingプロパティを持つ場所群に含まれない return(false); }
private static bool IsHome(double latitude, double longitude, DateTime date, InsertDatum datum) { DataTable dataTable = PlaceGetter.GetInstance().getDataTable(); DataRow[] dataRows = dataTable.Select("property = 'home'"); for (int i = 0; i < dataRows.Length; i++) { if (dataRows[i][PlaceDao.ColumnStartDate] == DBNull.Value && dataRows[i][PlaceDao.ColumnEndDate] == DBNull.Value) { if (latitude > dataRows[i].Field <double>(PlaceDao.ColumnStartLatitude) && latitude <dataRows[i].Field <double>(PlaceDao.ColumnEndLatitude) && longitude> dataRows[i].Field <double>(PlaceDao.ColumnStartLongitude) && longitude < dataRows[i].Field <double>(PlaceDao.ColumnEndLongitude)) { return(true); } } else if (dataRows[i][PlaceDao.ColumnStartDate] != DBNull.Value && dataRows[i][PlaceDao.ColumnEndDate] == DBNull.Value) { if (latitude > dataRows[i].Field <double>(PlaceDao.ColumnStartLatitude) && latitude <dataRows[i].Field <double>(PlaceDao.ColumnEndLatitude) && longitude> dataRows[i].Field <double>(PlaceDao.ColumnStartLongitude) && longitude <dataRows[i].Field <double>(PlaceDao.ColumnEndLongitude) && date> dataRows[i].Field <DateTime>(PlaceDao.ColumnStartDate)) { return(true); } } else if (dataRows[i][PlaceDao.ColumnStartDate] == DBNull.Value && dataRows[i][PlaceDao.ColumnEndDate] != DBNull.Value) { if (latitude > dataRows[i].Field <double>(PlaceDao.ColumnStartLatitude) && latitude <dataRows[i].Field <double>(PlaceDao.ColumnEndLatitude) && longitude> dataRows[i].Field <double>(PlaceDao.ColumnStartLongitude) && longitude < dataRows[i].Field <double>(PlaceDao.ColumnEndLongitude) && date < dataRows[i].Field <DateTime>(PlaceDao.ColumnEndDate)) { return(true); } } else { if (latitude > dataRows[i].Field <double>(PlaceDao.ColumnStartLatitude) && latitude <dataRows[i].Field <double>(PlaceDao.ColumnEndLatitude) && longitude> dataRows[i].Field <double>(PlaceDao.ColumnStartLongitude) && longitude <dataRows[i].Field <double>(PlaceDao.ColumnEndLongitude) && date> dataRows[i].Field <DateTime>(PlaceDao.ColumnStartDate) && date < dataRows[i].Field <DateTime>(PlaceDao.ColumnEndDate)) { return(true); } } } return(false); }