locationdataharvester/mylocationsengine/src/maptileinterface.cpp
branchRCL_3
changeset 18 870918037e16
parent 17 1fc85118c3ae
--- a/locationdataharvester/mylocationsengine/src/maptileinterface.cpp	Tue Aug 31 15:09:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,307 +0,0 @@
-/*
-* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Maptile interface source implementation for maptile
-*              service.
-*
-*/
-
-#include <EPos_CPosLandmark.h>
-#include <EPos_CPosLandmarkDatabase.h>
-#include <EPos_CPosLmItemIterator.h>
-#include <EPos_CPosLmOperation.h>
-#include <f32file.h>
-#include <bautils.h>
-#include "maptileinterface.h"
-#include "mylocationlogger.h"
-#include "mylocationsdefines.h"
-#include "lookupmaptiledb.h"
-#include <math.h>
-
-//Invalid latitude & longitude value
-const TReal KInvalidLatitudeLongitude =  200.0f;
-const TInt KStreetLvelZoom = 16;
-const TInt KCityLevelZoom = 11;
-const TInt KImagePathSize=36;
-const TInt KMapTileWidthHeight = 256 ;
-_LIT(KFileExtn, ".png");
-
-// -----------------------------------------------------------------------------
-// CMapTileInterface::NewL()
-// Creates and returns the instance of CMapTileInterface
-// -----------------------------------------------------------------------------
-//
-CMapTileInterface* CMapTileInterface::NewL()
-{
-    CMapTileInterface* self = new (ELeave) CMapTileInterface();
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop(self);
-    return self;
-}
-
-// -----------------------------------------------------------------------------
-// CMapTileInterface::~CMapTileInterface()
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CMapTileInterface::~CMapTileInterface()
-{
-    __TRACE_CALLSTACK;
-   
-    delete iFilePath;
-    
-    delete iMaptileGeocoder;
-    
-    delete iLandmark;
-}    
-
-
-// -----------------------------------------------------------------------------
-// CMapTileInterface::CMapTileInterface()
-// Constructor
-// -----------------------------------------------------------------------------
-//
-CMapTileInterface::CMapTileInterface() :
-           iMaptileGeocoder( NULL ), 
-           iFilePath( NULL ),
-           iObserver(NULL),
-           iLandmark(NULL)
-{
-}
-
-// -----------------------------------------------------------------------------
-// CMapTileInterface::ConstructL()
-// Two phase constructor
-// -----------------------------------------------------------------------------
-//
-void CMapTileInterface::ConstructL()
-{
-    __TRACE_CALLSTACK;
-
-    iMaptileGeocoder = CMaptileGeocoderPlugin::NewL();
-    
-    iMaptileGeocoder->SetMaptileGeocoderObserver( *this );
-}
-// -----------------------------------------------------------------------------
-// CMapTileInterface::GetGeoCodeFromAddressL()
-// Interface for requesting GEO fields for the given address
-// -----------------------------------------------------------------------------
-//
-void CMapTileInterface::GetGeoCodeFromAddressL(const TDesC& aAddressDetails,
-        const TDesC& aFilePath, MMapTileObserver* aObserver)
-{
-    __TRACE_CALLSTACK;
-    iObserver = aObserver;
-    delete iFilePath;
-    iFilePath = NULL;    
-    iFilePath = HBufC::NewL(aFilePath.Length());
-    iFilePath->Des().Copy(aFilePath);
-    iStreetAvailable = EFalse;
-    iMaptileGeocoder->GetCoordinateByAddressL(aAddressDetails, ESilent);
-     
-}
-// -----------------------------------------------------------------------------
-// CMapTileInterface::GetGeoCodeFromAddressL()
-// Interface for requesting GEO fields for the given landmark adress
-// -----------------------------------------------------------------------------
-//
-void CMapTileInterface::GetGeoCodeFromAddressL(CPosLandmark* aLandmark,
-        const TDesC& aFilePath, MMapTileObserver* aObserver)
-{
-    __TRACE_CALLSTACK;
-    iObserver = aObserver;
-    delete iFilePath;
-    iFilePath = NULL;    
-    iFilePath = HBufC::NewL(aFilePath.Length());
-    iFilePath->Des().Copy(aFilePath);
-
-    //Reset the street level available flag
-	iStreetAvailable = EFalse;
-	
-    TPtrC getStreet;
-    aLandmark->GetPositionField(EPositionFieldStreet, getStreet);
-
-    if (getStreet.Length() > 0)
-   {
-        iStreetAvailable = ETrue;
-    }
-    iMaptileGeocoder->GetCoordinateByAddressL(*aLandmark, ESilent);
-}
-
-// -----------------------------------------------------------------------------
-// CMapTileInterface::GetMapTileL()
-// Function for Retrieving latitude & longitude information
-// -----------------------------------------------------------------------------
-//
-void CMapTileInterface::GetMapTileL( const TReal& aLatitude, const TReal& aLongitude)
-{
-    __TRACE_CALLSTACK;//Notification to observer , to update contact db,
-    TInt zoom = KCityLevelZoom;
-    if (iStreetAvailable)
-    {
-        zoom = KStreetLvelZoom;
-    }
-    iStreetAvailable = EFalse;
-    TMapTileParam mapTileparam(aLatitude, aLongitude, zoom, MapTileWidth,MapTileHeight );
-    iMaptileGeocoder->GetMapTileByGeoCodeL( mapTileparam, *iFilePath );
-}
-
-// -----------------------------------------------------------------------------
-// CMapTileInterface::MapComplete()
-// Maptile retrievel notification
-// -----------------------------------------------------------------------------
-//
-void CMapTileInterface::MapTileFetchingCompleted( TInt aErrCode, const TDesC& aMapTilePath )
-{
-    __TRACE_CALLSTACK;
-    MYLOCLOGSTRING1("MapComplete() status-%d ",aErrCode );
-    iObserver->MapTilefetchingCompleted( aErrCode, aMapTilePath );
-}
-
-// ----------------------------------------------------------------------------
-// CMapTileInterface::UpdateFilePathL()
-// Converts the geocoordinate to maptile pixel coordinate and updates the
-// file path to Maptilefolder\RowCol.png
-// ----------------------------------------------------------------------------
-//
-void CMapTileInterface::UpdateFilePathL( const TReal& aLatitude, const TReal& aLongitude )
-{
-    TInt iZoomLvl = KCityLevelZoom;
-    if ( iStreetAvailable )
-        iZoomLvl = KStreetLvelZoom;
-    
-    TInt totalTilesHorizontal = 1 << iZoomLvl;
-    TInt totalTilesVertical = 1 << iZoomLvl;
-
-    TInt totalMapWidth = totalTilesHorizontal * KMapTileWidthHeight;
-    TInt totalMapHeight = totalTilesVertical * KMapTileWidthHeight;
-    
-    TReal pi = 3.14159265;
-
-    TInt convertedx = (( aLongitude + 180.0) * totalMapWidth)
-            / 360.0;
-    TReal convertedtemp = log(tan(( aLatitude + 90) * pi
-            / 360.0));
-    int convertedy = (1 - convertedtemp / pi) * totalMapHeight / 2.0;
-
-    //Get the image row,col
-    TInt iMapTileImageRow = ( convertedy / 256.0 ) * 1000;
-    TInt iMapTileImageCol = ( convertedx / 256.0 ) * 1000;
-    
-    TBuf<KImagePathSize> mImagePath;
-
-    mImagePath.AppendNum(iMapTileImageRow);
-    mImagePath.AppendNum(iMapTileImageCol);
-    mImagePath.Append(KFileExtn);   
-    
-    if( iFilePath )
-    {
-        iFilePath = iFilePath->ReAllocL(iFilePath->Length() + mImagePath.Length() );
-        iFilePath->Des().Append(mImagePath);    
-    }
-}
-
-// -----------------------------------------------------------------------------
-// CMapTileInterface::GeocodeComplete()
-// Geocode completion  notification
-// -----------------------------------------------------------------------------
-//
-void CMapTileInterface::GeocodingCompleted(TInt aErrorcode,
-        MAddressInfo& aAddressInfo)
-{
-    __TRACE_CALLSTACK;
-    TReal latitude, longitude;
-    latitude=aAddressInfo.GetLatitude();
-    longitude=aAddressInfo.GetLongitude();
-    
-    MYLOCLOGSTRING1("GeocodeCompleted() status-%d",aErrorcode);
-    MYLOCLOGSTRING1("GeocodeCompleted() latitude-%f",latitude );
-    MYLOCLOGSTRING1("GeocodeCompleted() longitude-%f",longitude );
-	
-    if (aErrorcode == KErrNone)
-    {
-        if ( latitude != KInvalidLatitudeLongitude
-                && longitude != KInvalidLatitudeLongitude)
-        {           
-            TRAP_IGNORE( SetLandMarkDetailsL(aAddressInfo) );
-			      TRAP_IGNORE( UpdateFilePathL( latitude, longitude ) );
-	      
-            iObserver->GeoCodefetchingCompleted(KErrNone,  latitude, longitude, iFilePath->Des());
-
-        }
-        else
-        {
-            iObserver->GeoCodefetchingCompleted(KErrGeneral,
-		      KInvalidLatitudeLongitude, KInvalidLatitudeLongitude, KNullDesC);
-        }        
-    }
-    else
-    {
-        iObserver->GeoCodefetchingCompleted(aErrorcode,
-		       KInvalidLatitudeLongitude, KInvalidLatitudeLongitude, KNullDesC );
-    }
-}
-
-// -----------------------------------------------------------------------------
-// CMapTileInterface::GetLandMarkDetails()
-// return pointer to CPosLandmark 
-// -----------------------------------------------------------------------------
-//
-CPosLandmark* CMapTileInterface::GetLandMarkDetails()
-{
-    return iLandmark;  
-               
-}
-// -----------------------------------------------------------------------------
-// CMapTileInterface::SetLandMarkDetails()
-// create CPosLandmark details from MAddressInfo 
-// -----------------------------------------------------------------------------
-//
-void CMapTileInterface::SetLandMarkDetailsL(MAddressInfo& aAddressInfo)
-{
-    if(iLandmark)
-    {
-        delete iLandmark;
-        iLandmark=NULL;
-    }
-    TReal latitude,longitude;
-    latitude=aAddressInfo.GetLatitude();
-    longitude=aAddressInfo.GetLongitude();    
-    TLocality position(TCoordinate(latitude,longitude),0);
-    iLandmark=CPosLandmark::NewL();
-    //latitude and longitude
-    iLandmark->SetPositionL(position);
-    
-    //street
-    TPtrC tempText=aAddressInfo.GetThoroughfareName();
-    if(tempText.Length()>0)
-    {
-        iStreetAvailable=ETrue;
-    }
-    iLandmark->SetPositionFieldL(EPositionFieldStreet, tempText);
-    //postal code
-    tempText.Set(aAddressInfo.GetPincode());
-    iLandmark->SetPositionFieldL(EPositionFieldPostalCode, tempText);
-    //city
-    tempText.Set(aAddressInfo.GetCity());
-    iLandmark->SetPositionFieldL(EPositionFieldCity, tempText);
-    //state
-    tempText.Set(aAddressInfo.GetState());
-    iLandmark->SetPositionFieldL(EPositionFieldState, tempText);
-    //country
-    tempText.Set(aAddressInfo.GetCountryName());
-    iLandmark->SetPositionFieldL(EPositionFieldCountry, tempText); 
-    
-}
-//end of line