How to manage landmark categories
Article Metadata
The following code snippet demonstrates how to append selected categories to the specified landmark
It is necessary to include the following headers:
#include <clmkcategoryselectordlg.h>
#include <tlmkitemiddbcombiinfo.h>
And link against:
LIBRARY lmkcommonui.lib
LIBRARY eposlandmarks.lib
LIBRARY lbs.lib
Source:
CPosLandmark* lm = ... // specify your landmark
// prepare dialog
CLmkCategorySelectorDlg * selectCategoriesDlg = CLmkCategorySelectorDlg :: NewL( ETrue );
selectCategoriesDlg->SetMopParent( this );
RArray< TLmkItemIdDbCombiInfo > arrCategories;
CleanupClosePushL( arrCategories );
// select array of categories
if( selectCategoriesDlg->ExecuteLD( arrCategories ) != 0 )
{
for( int i = 0; i < arrCategories.Count(); i++ )
{
// get current category ID
TPosLmItemId categoryId = arrCategories[ i ].GetItemId();
if( categoryId != KPosLmNullItemId )
lm->AddCategoryL( categoryId );
}
delete arrCategories[0].GetLmDb(); // fixing memory leak
}
CleanupStack::PopAndDestroy(); // arrCategories
And the following code snippet demonstrates how to remove all categories from the specified landmark:
CPosLandmark* lm = ... // specify your landmark
RArray< TPosLmItemId > categories;
// read all landmark categories
lm->GetCategoriesL( categories );
for( int i = 0; i < categories.Count(); i++ )
{
TPosLmItemId categoryId = categories[ i ];
// remove current category
lm->RemoveCategory( categoryId );
}
categories.Close();
Internal Links
- How to select and show a landmark
- Archived:Landmarks category selector dialog leaks memory (Known Issue)
- Landmarks/web client example using Carbide.c++ and UI designer
- How to use Landmarks API
- How to compact local landmark databases
- How to export landmarks from database to file
- How to import landmarks from file to database
- Execution of landmark operations
- How to obtain and save current location
- Retrieving location information

