How to import landmarks from file to database
Article Metadata
You can use class CPosLandmarkParser for parsing the landmark content, this functionality can be used for importing data from files. The type (e.g. the mime type) must be specified for creating instance of this class. You can use mime type "application/vnd.nokia.landmarkcollection+xml".
The following code snippet demonstrates how to import data from the XML-file to the specified local landmark database. It is necessary to include the following headers:
#include <epos_cposlmdatabasemanager.h>
#include <epos_hposlmdatabaseinfo.h>
#include <epos_cposlandmarkparser.h>
And link against:
LIBRARY eposlandmarks.lib
LIBRARY eposlmdbmanlib.lib
// db URI
_LIT( KNewDbUri, "file://C:new.ldb" );
TBuf<32> newDbUri( KNewDbUri );
// file with landmarks
_LIT( KSrcFile, "C:\\LmBackup\\my_lms.xml" );
// db manager
CPosLmDatabaseManager* dbManager = CPosLmDatabaseManager :: NewL();
CleanupStack :: PushL( dbManager );
// create database, if necessary
if( !dbManager->DatabaseExistsL( newDbUri ) )
{
HPosLmDatabaseInfo* dbInfo = HPosLmDatabaseInfo :: NewLC( newDbUri );
dbManager->CreateDatabaseL( *dbInfo );
CleanupStack :: PopAndDestroy( dbInfo );
}
// open DB and init it, if necessary
CPosLandmarkDatabase* db = CPosLandmarkDatabase :: OpenL( newDbUri );
CleanupStack :: PushL( db );
if( db->IsInitializingNeeded() )
ExecuteAndDeleteLD( db->InitializeL() );
// clear the database (batch mode)
ExecuteAndDeleteLD( db->RemoveAllLandmarksL() );
// MIME type for import & export
_LIT8( KPosMimeTypeLandmarkCollectionXml, "application/vnd.nokia.landmarkcollection+xml" );
// Create the parser to be used for importing landmarks
CPosLandmarkParser* parser = CPosLandmarkParser :: NewL( KPosMimeTypeLandmarkCollectionXml );
CleanupStack :: PushL( parser );
// import data (batch mode)
parser->SetInputFileL( KSrcFile );
ExecuteAndDeleteLD( db->ImportLandmarksL( *parser, CPosLandmarkDatabase::EDefaultOptions ) );
CleanupStack :: PopAndDestroy( 3 ); // parser db dbManager
Related Links:
- Landmarks/web client example using Carbide.c++ and UI designer
- How to use Landmarks API
- How to select and show a landmark
- How to compact local landmark databases
- How to export landmarks from database to file
- Execution of landmark operations
- How to obtain and save current location
- Retrieving location information
- How to manage landmark categories
- How to manage local landmark databases


(no comments yet)