本文整理汇总了C++中GeoDataFolder::placemarkList方法的典型用法代码示例。如果您正苦于以下问题:C++ GeoDataFolder::placemarkList方法的具体用法?C++ GeoDataFolder::placemarkList怎么用?C++ GeoDataFolder::placemarkList使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类GeoDataFolder
的用法示例。
在下文中一共展示了GeoDataFolder::placemarkList方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: simpleParseTest
void TestGeoDataTrack::simpleParseTest()
{
GeoDataDocument* dataDocument = parseKml( simpleExampleContent );
GeoDataFolder *folder = dataDocument->folderList().at( 0 );
QCOMPARE( folder->placemarkList().size(), 1 );
GeoDataPlacemark* placemark = folder->placemarkList().at( 0 );
QCOMPARE( placemark->geometry()->geometryId(), GeoDataTrackId );
GeoDataTrack* track = static_cast<GeoDataTrack*>( placemark->geometry() );
QCOMPARE( track->size(), 7 );
{
QDateTime when = track->whenList().at( 0 );
QCOMPARE( when, QDateTime( QDate( 2010, 5, 28 ), QTime( 2, 2, 9 ), Qt::UTC ) );
}
{
GeoDataCoordinates coord = track->coordinatesList().at( 0 );
QCOMPARE( coord.longitude( GeoDataCoordinates::Degree ), -122.207881 );
QCOMPARE( coord.latitude( GeoDataCoordinates::Degree ), 37.371915 );
QCOMPARE( coord.altitude(), 156.000000 );
}
{
GeoDataCoordinates coord = track->coordinatesAt( QDateTime( QDate( 2010, 5, 28 ), QTime( 2, 2, 9 ), Qt::UTC ) );
QCOMPARE( coord.longitude( GeoDataCoordinates::Degree ), -122.207881 );
QCOMPARE( coord.latitude( GeoDataCoordinates::Degree ), 37.371915 );
QCOMPARE( coord.altitude(), 156.000000 );
}
delete dataDocument;
}
示例2: withoutTimeTest
void TestGeoDataTrack::withoutTimeTest()
{
//"Simple Example" from kmlreference; when elements emptied
QString content(
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
"<kml xmlns=\"http://www.opengis.net/kml/2.2\""
" xmlns:gx=\"http://www.google.com/kml/ext/2.2\">"
"<Folder>"
" <Placemark>"
" <gx:Track>"
" <when></when>"
" <when></when>"
" <when></when>"
" <when></when>"
" <when></when>"
" <when></when>"
" <when></when>"
" <gx:coord>-122.207881 37.371915 156.000000</gx:coord>"
" <gx:coord>-122.205712 37.373288 152.000000</gx:coord>"
" <gx:coord>-122.204678 37.373939 147.000000</gx:coord>"
" <gx:coord>-122.203572 37.374630 142.199997</gx:coord>"
" <gx:coord>-122.203451 37.374706 141.800003</gx:coord>"
" <gx:coord>-122.203329 37.374780 141.199997</gx:coord>"
" <gx:coord>-122.203207 37.374857 140.199997</gx:coord>"
" </gx:Track>"
" </Placemark>"
"</Folder>"
"</kml>" );
GeoDataDocument* dataDocument = parseKml( content );
GeoDataFolder *folder = dataDocument->folderList().at( 0 );
QCOMPARE( folder->placemarkList().size(), 1 );
GeoDataPlacemark* placemark = folder->placemarkList().at( 0 );
QCOMPARE( placemark->geometry()->geometryId(), GeoDataTrackId );
GeoDataTrack* track = static_cast<GeoDataTrack*>( placemark->geometry() );
QCOMPARE( track->size(), 7 );
{
GeoDataCoordinates coord = track->coordinatesList().at( 0 );
QCOMPARE( coord.longitude( GeoDataCoordinates::Degree ), -122.207881 );
QCOMPARE( coord.latitude( GeoDataCoordinates::Degree ), 37.371915 );
QCOMPARE( coord.altitude(), 156.000000 );
}
{
const GeoDataLineString *lineString = track->lineString();
QCOMPARE( lineString->size(), 7 );
GeoDataCoordinates coord = lineString->at( 0 );
QCOMPARE( coord.longitude( GeoDataCoordinates::Degree ), -122.207881 );
QCOMPARE( coord.latitude( GeoDataCoordinates::Degree ), 37.371915 );
QCOMPARE( coord.altitude(), 156.000000 );
}
delete dataDocument;
}
示例3: extendedDataParseTest
void TestGeoDataTrack::extendedDataParseTest()
{
//"Example of Track with Extended Data" from kmlreference
QString content(
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
"<kml xmlns=\"http://www.opengis.net/kml/2.2\" xmlns:gx=\"http://www.google.com/kml/ext/2.2\">"
" <Document>"
" <name>GPS device</name>"
" <Snippet>Created Wed Jun 2 15:33:39 2010</Snippet>"
" <Schema id=\"schema\">"
" <gx:SimpleArrayField name=\"heartrate\" type=\"int\">"
" <displayName>Heart Rate</displayName>"
" </gx:SimpleArrayField>"
" <gx:SimpleArrayField name=\"cadence\" type=\"int\">"
" <displayName>Cadence</displayName>"
" </gx:SimpleArrayField>"
" <gx:SimpleArrayField name=\"power\" type=\"float\">"
" <displayName>Power</displayName>"
" </gx:SimpleArrayField>"
" </Schema>"
" <Folder>"
" <name>Tracks</name>"
" <Placemark>"
" <name>2010-05-28T01:16:35.000Z</name>"
" <styleUrl>#multiTrack</styleUrl>"
" <gx:Track>"
" <when>2010-05-28T02:02:09Z</when>"
" <when>2010-05-28T02:02:35Z</when>"
" <when>2010-05-28T02:02:44Z</when>"
" <when>2010-05-28T02:02:53Z</when>"
" <when>2010-05-28T02:02:54Z</when>"
" <when>2010-05-28T02:02:55Z</when>"
" <when>2010-05-28T02:02:56Z</when>"
" <gx:coord>-122.207881 37.371915 156.000000</gx:coord>"
" <gx:coord>-122.205712 37.373288 152.000000</gx:coord>"
" <gx:coord>-122.204678 37.373939 147.000000</gx:coord>"
" <gx:coord>-122.203572 37.374630 142.199997</gx:coord>"
" <gx:coord>-122.203451 37.374706 141.800003</gx:coord>"
" <gx:coord>-122.203329 37.374780 141.199997</gx:coord>"
" <gx:coord>-122.203207 37.374857 140.199997</gx:coord>"
" <ExtendedData>"
" <SchemaData schemaUrl=\"#schema\">"
" <gx:SimpleArrayData name=\"cadence\">"
" <gx:value>86</gx:value>"
" <gx:value>103</gx:value>"
" <gx:value>108</gx:value>"
" <gx:value>113</gx:value>"
" <gx:value>113</gx:value>"
" <gx:value>113</gx:value>"
" <gx:value>113</gx:value>"
" </gx:SimpleArrayData>"
" <gx:SimpleArrayData name=\"heartrate\">"
" <gx:value>181</gx:value>"
" <gx:value>177</gx:value>"
" <gx:value>175</gx:value>"
" <gx:value>173</gx:value>"
" <gx:value>173</gx:value>"
" <gx:value>173</gx:value>"
" <gx:value>173</gx:value>"
" </gx:SimpleArrayData>"
" <gx:SimpleArrayData name=\"power\">"
" <gx:value>327.0</gx:value>"
" <gx:value>177.0</gx:value>"
" <gx:value>179.0</gx:value>"
" <gx:value>162.0</gx:value>"
" <gx:value>166.0</gx:value>"
" <gx:value>177.0</gx:value>"
" <gx:value>183.0</gx:value>"
" </gx:SimpleArrayData>"
" </SchemaData>"
" </ExtendedData>"
" </gx:Track>"
" </Placemark>"
" </Folder>"
" </Document>"
"</kml>" );
GeoDataDocument* dataDocument = parseKml( content );
GeoDataFolder *folder = dataDocument->folderList().at( 0 );
QCOMPARE( folder->placemarkList().size(), 1 );
GeoDataPlacemark* placemark = folder->placemarkList().at( 0 );
QCOMPARE( placemark->geometry()->geometryId(), GeoDataTrackId );
GeoDataTrack* track = static_cast<GeoDataTrack*>( placemark->geometry() );
QCOMPARE( track->size(), 7 );
{
GeoDataSimpleArrayData *cadence = track->extendedData().simpleArrayData( "cadence" );
QCOMPARE( cadence->size(), 7 );
QCOMPARE( cadence->valueAt( 0 ), QVariant( "86" ) );
QCOMPARE( cadence->valueAt( 6 ), QVariant( "113" ) );
}
{
GeoDataSimpleArrayData *hr = track->extendedData().simpleArrayData( "heartrate" );
QCOMPARE( hr->size(), 7 );
QCOMPARE( hr->valueAt( 0 ), QVariant( "181" ) );
QCOMPARE( hr->valueAt( 6 ), QVariant( "173" ) );
}
{
GeoDataSimpleArrayData *power = track->extendedData().simpleArrayData( "power" );
QCOMPARE( power->size(), 7 );
//.........这里部分代码省略.........
示例4: loadRoute
void RoutingManagerPrivate::loadRoute(const QString &filename)
{
QFile file( filename );
if ( !file.open( QIODevice::ReadOnly ) ) {
mDebug() << "Can not read route from " << file.fileName();
return;
}
GeoDataParser parser( GeoData_KML );
if ( !parser.read( &file ) ) {
mDebug() << "Could not parse file: " << parser.errorString();
return;
}
GeoDocument *doc = parser.releaseDocument();
file.close();
bool loaded = false;
GeoDataDocument* container = dynamic_cast<GeoDataDocument*>( doc );
if ( container && container->size() > 0 ) {
GeoDataFolder* viaPoints = dynamic_cast<GeoDataFolder*>( &container->first() );
if ( viaPoints ) {
loaded = true;
QVector<GeoDataPlacemark*> placemarks = viaPoints->placemarkList();
for( int i=0; i<placemarks.size(); ++i ) {
if ( i < m_routeRequest.size() ) {
m_routeRequest[i] = *placemarks[i];
} else {
m_routeRequest.append( *placemarks[i] );
}
}
// clear unneeded via points
const int viaPoints_needed = placemarks.size();
for ( int i = m_routeRequest.size(); i > viaPoints_needed; --i ) {
m_routeRequest.remove( viaPoints_needed );
}
} else {
mDebug() << "Expected a GeoDataDocument with at least one child, didn't get one though";
}
}
if ( container && container->size() == 2 ) {
GeoDataDocument* route = dynamic_cast<GeoDataDocument*>(&container->last());
if ( route ) {
loaded = true;
m_alternativeRoutesModel.clear();
m_alternativeRoutesModel.addRoute( route, AlternativeRoutesModel::Instant );
m_alternativeRoutesModel.setCurrentRoute( 0 );
m_state = RoutingManager::Retrieved;
emit q->stateChanged( m_state );
emit q->routeRetrieved( route );
} else {
mDebug() << "Expected a GeoDataDocument child, didn't get one though";
}
}
if ( !loaded ) {
mDebug() << "File " << filename << " is not a valid Marble route .kml file";
if ( container ) {
m_treeModel->addDocument( container );
}
}
}