Example #1
0
    // Returns the minimum distance from X to the latitude line segment defined by
    // the given latitude and longitude interval.
    private static S1Angle GetDistance(S2LatLng x, S1Angle lat, S1Interval interval)
    {
        Assert.True(x.IsValid());
        Assert.True(interval.IsValid());

        // Is X inside the longitude interval?
        if (interval.Contains(x.LngRadians))
        {
            return(S1Angle.FromRadians((x.Lat() - lat).Abs()));
        }

        // Return the distance to the closer endpoint.
        return(new[] { x.GetDistance(new S2LatLng(lat, S1Angle.FromRadians(interval.Lo))),
                       x.GetDistance(new S2LatLng(lat, S1Angle.FromRadians(interval.Hi))) }.Min());
    }
        /**
         * Returns the minimum distance from X to the latitude line segment defined by
         * the given latitude and longitude interval.
         */

        private static S1Angle getDistance(S2LatLng x, S1Angle lat, S1Interval interval)
        {
            assertTrue(x.IsValid);
            assertTrue(interval.IsValid);

            // Is X inside the longitude interval?
            if (interval.Contains(x.Lng.Radians))
            {
                return(S1Angle.FromRadians(Math.Abs(x.Lat.Radians - lat.Radians)));
            }

            // Return the distance to the closer endpoint.
            return(S1Angle.Min(x.GetDistance(new S2LatLng(lat, S1Angle.FromRadians(interval.Lo))),
                               x.GetDistance(new S2LatLng(lat, S1Angle.FromRadians(interval.Hi)))));
        }
        /**
         * Returns the minimum distance from X to the latitude line segment defined by
         * the given latitude and longitude interval.
         */

        private static S1Angle getDistance(S2LatLng x, S1Angle lat, S1Interval interval)
        {
            assertTrue(x.IsValid);
            assertTrue(interval.IsValid);

            // Is X inside the longitude interval?
            if (interval.Contains(x.Lng.Radians))
                return S1Angle.FromRadians(Math.Abs(x.Lat.Radians - lat.Radians));

            // Return the distance to the closer endpoint.
            return S1Angle.Min(x.GetDistance(new S2LatLng(lat, S1Angle.FromRadians(interval.Lo))),
                               x.GetDistance(new S2LatLng(lat, S1Angle.FromRadians(interval.Hi))));
        }