示例#1
0
 /// <summary>
 /// Méthode permettant de savoir si un point se trouve dans un périmètre donné.
 /// </summary>
 /// <param name="latitude">La latitude du point.</param>
 /// <param name="longitude">La longitude du point.</param>
 /// <param name="perimeter">Le périmètre.</param>
 /// <returns></returns>
 public static bool IsPointInRadius(double latitude, double longitude, CalculateAmplitudeResult perimeter)
 {
     if (latitude >= perimeter.MinLatitude && latitude <= perimeter.MaxLatitude
         && longitude >= perimeter.MinLongitude && longitude <= perimeter.MaxLongitude)
     {
         return true;
     }
     else
     {
         return false;
     }
 }
示例#2
0
        /// <summary>
        /// Méthode permettant de calculer un périmètre à partir d'un point de référence donné par sa latitude et sa longitude.
        /// </summary>
        /// <param name="latitude">latitude du point de référence</param>
        /// <param name="longitude">longitude du point de référence</param>
        /// <param name="distance">rayon d'action (en mètres)</param>
        /// <returns></returns>
        public static CalculateAmplitudeResult CalculateRadius(double latitude, double longitude, int rayon)
        {
            //1° de latitude = 111,11 Km, on fait donc un produit en croix (40 000/360 = 111,11)
            double offSetLat = rayon / 111110d;

            //1° de longitude à 'latitude' degrés de latitude correspond à OneLongitudeDegree mètres. (1° de longitude = 111,11 Km * cos (latitude))
            //On passe àa la méthode Math.Cos des radians
            double OneLongitudeDegree = 111110 * Math.Cos(latitude * Math.PI / 180);

            //produit en croix pour trouver le nombre de degrés auquel correspond le balyage de notre rayon sur ce cercle de longitude
            double offSetLong = rayon / OneLongitudeDegree;

            CalculateAmplitudeResult result = new CalculateAmplitudeResult
            {
                MaxLatitude = latitude + offSetLat,
                MinLatitude = latitude - offSetLat,
                MaxLongitude = longitude + offSetLong,
                MinLongitude = longitude - offSetLong
            };
            return result;
        }