epoc32/include/mw/epos_cposlmareacriteria.h
branchSymbian2
changeset 2 2fe1408b6811
parent 1 666f914201fb
child 4 837f303aceeb
--- a/epoc32/include/mw/epos_cposlmareacriteria.h	Tue Nov 24 13:55:44 2009 +0000
+++ b/epoc32/include/mw/epos_cposlmareacriteria.h	Tue Mar 16 16:12:26 2010 +0000
@@ -1,1 +1,160 @@
-epos_cposlmareacriteria.h
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
+* which accompanies this distribution, and is available
+* at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  CPosLmAreaCriteria class
+*
+*/
+
+
+#ifndef CPOSLMAREACRITERIA_H
+#define CPOSLMAREACRITERIA_H
+
+#include <e32base.h>
+#include "EPos_CPosLmSearchCriteria.h"
+
+/**
+*  Criterion for searching for landmarks which reside in a certain area.
+*
+*  The search area is defined by providing two latitude and two longitude
+*  values which specify the borders of the area. Note that this search
+*  does not consider landmark coverage radius, see
+*  @p CPosLandmark::GetCoverageRadius.
+*
+*  The search area is defined as a spherical rectangle, limited by two
+*  longitude borders (WestLongitude and EastLongitude) and two latitude
+*  borders (SouthLatitude and NorthLatitude).
+*
+*  It is required that -90 =< SouthLatitude =< NorthLatitude =< 90.
+*  WestLongitude must be in the interval [-180, 180), i.e. not including +180.
+*  EastLongitude must be in the interval [-180, 180], i.e. including +180.
+*  It is allowed that EastLongitude < WestLongitude. This defines an area
+*  which crosses the 180 meridian. The area definition is inclusive, i.e.
+*  landmarks which lie on the border of the area will be considered as matches.
+*  If WestLongitude = EastLongitude and NorthLatitude = SouthLatitude then
+*  only landmarks which match the longitude and latitude respectively, are
+*  considered to be matches. If WestLongitude = -180 and EastLongitude = +180,
+*  all longitudes are included in the search.
+*
+*  This criterion is only valid when searching for landmarks, i.e. if it
+*  is passed to @p CPosLandmarkSearch::StartCategorySearchL, the function
+*  will fail with error code @p KErrArgument.
+*
+*  @lib eposlmsearchlib.lib
+*  @since S60 3.0
+*/
+class CPosLmAreaCriteria : public CPosLmSearchCriteria
+    {
+    public:
+
+        /**
+        * Two-phased constructor.
+        *
+        * The input parameters specify the area to search as described
+        * in the class description.
+        *
+        * If one of the parameters is out of range, this function fails with
+        * error code @p KErrArgument. The correct ranges are:
+        *   -# -90 =< aSouthLatitude =< aNorthLatitude =< 90
+        *   -# -180 <= aWestLongitude < 180
+        *   -# -180 <= aEastLongitude <= 180
+        *
+        * @param[in] aSouthLatitude The southern latitude border of the search area.
+        * @param[in] aNorthLatitude The northern latitude border of the search area.
+        * @param[in] aWestLongitude The western longitude border of the search area.
+        * @param[in] aEastLongitude The eastern longitude border of the search area.
+        * @returns A new instance of this class.
+        */
+        IMPORT_C static CPosLmAreaCriteria* NewLC(
+            const TReal64& aSouthLatitude,
+            const TReal64& aNorthLatitude,
+            const TReal64& aWestLongitude,
+            const TReal64& aEastLongitude
+        );
+
+        /**
+        * Destructor.
+        */
+        virtual ~CPosLmAreaCriteria();
+
+    public:
+
+        /**
+        * Returns the search area.
+        *
+        * @param[out] aSouthLatitude The southern latitude border of the search area.
+        * @param[out] aNorthLatitude The northern latitude border of the search area.
+        * @param[out] aWestLongitude The western longitude border of the search area.
+        * @param[out] aEastLongitude The eastern longitude border of the search area.
+        */
+        IMPORT_C void GetSearchArea(
+            TReal64& aSouthLatitude,
+            TReal64& aNorthLatitude,
+            TReal64& aWestLongitude,
+            TReal64& aEastLongitude
+        ) const;
+
+        /**
+        * Define the search area.
+        *
+        * The input parameters specify the area to search as described in the
+        * class description.
+        *
+        * If one of the parameters is out of range, this function fails with
+        * error code @p KErrArgument. The correct ranges are:
+        *   -# -90 =< aSouthLatitude =< aNorthLatitude =< 90
+        *   -# -180 <= aWestLongitude < 180
+        *   -# -180 <= aEastLongitude <= 180
+        *
+        * @param[in] aSouthLatitude The southern latitude border of the search area.
+        * @param[in] aNorthLatitude The northern latitude border of the search area.
+        * @param[in] aWestLongitude The western longitude border of the search area.
+        * @param[in] aEastLongitude The eastern longitude border of the search area.
+        * @returns @p KErrNone if successful, @p KErrArgument if the input
+        *   parameters are invalid, otherwise a system wide error code.
+        */
+        IMPORT_C TInt SetSearchArea(
+            const TReal64& aSouthLatitude,
+            const TReal64& aNorthLatitude,
+            const TReal64& aWestLongitude,
+            const TReal64& aEastLongitude
+        );
+
+    private:
+
+        // C++ constructor
+        CPosLmAreaCriteria();
+
+        void ConstructL(
+            const TReal64&  aSouthLatitude,
+            const TReal64&  aNorthLatitude,
+            const TReal64&  aWestLongitude,
+            const TReal64&  aEastLongitude
+        );
+
+        // Prohibit copy constructor
+        CPosLmAreaCriteria( const CPosLmAreaCriteria& );
+        // Prohibit assigment operator
+        CPosLmAreaCriteria& operator= ( const CPosLmAreaCriteria& );
+
+    private:
+
+        TReal64 iSouthLatitude;
+        TReal64 iNorthLatitude;
+        TReal64 iWestLongitude;
+        TReal64 iEastLongitude;
+
+    };
+
+#endif      // CPOSLMAREACRITERIA_H
+
+