Select to view content in your preferred language

Methods and signals of EsriRuntimeQt::Layer don't work

2910
1
05-12-2013 09:52 PM
MarkusBrigl
Deactivated User
I tried the example the example created by the QtCreator wizard. The USCitiesStates.mpk provides 3 Layers, correctly shown on the map, but the dynamic.layers.length() returns always 0.
Even the signal "layerCreateComplete" is newer thrown

[INDENT]...
    // Local Dynamic Layer using: sdk/samples/data/mpks/USCitiesStates.mpk"
     QString localDynamicLayer = pathSampleData + "mpks" + QDir::separator() + "USCitiesStates.mpk";
     EsriRuntimeQt::ArcGISLocalDynamicMapServiceLayer dynamicLayer(localDynamicLayer);

     connect(&dynamicLayer, SIGNAL(layerCreateComplete(EsriRuntimeQt::Layer)), this, SLOT(layerCreateComplete(EsriRuntimeQt

     pMap->addLayer(dynamicLayer);
     qDebug(qPrintable(QString("%1").arg(dynamicLayer.layers().length())));
}


void MainWindow::layerCreateComplete(const EsriRuntimeQt::Layer &layer)
{
    qDebug(qPrintable(QString("%1").arg(layer.name())));
}[/INDENT]
0 Kudos
1 Reply
JeanneTrieu
Deactivated User
Hi,

Thank you for your post. In order to get the signal, the layer needs to be a member variable.

   QString localDynamicLayer = pathSampleData + "mpks" + QDir::separator() + "USCitiesStates.mpk";
     m_dynamicLayer = ArcGISLocalDynamicMapServiceLayer(localDynamicLayer);
     m_dynamicLayer.setName(localDynamicLayer);
     pMap->addLayer(m_dynamicLayer);

     connect(&m_dynamicLayer, SIGNAL(layerCreateComplete(EsriRuntimeQt::Layer)),
               this, SLOT(layerCreateComplete(EsriRuntimeQt::Layer)));

You can get the length of the layer after that it has been created:  m_dynamicLayer.layers().length();.
If this still does not work, this issue will be resolved in the 10.2 upcomming release.

Thanks,
0 Kudos