marble 基本函数(一)

1. 标记    
GeoDataPlacemark *place = new GeoDataPlacemark( "Bucharest" );
    place->setCoordinate( 25.97, 44.43, 0.0, GeoDataCoordinates::Degree );
    place->setPopulation( 1877155 );
    place->setCountryCode ( "Romania" );
 
 
    GeoDataDocument *document = new GeoDataDocument;
    document->append( place );
 
    // Add the document to MarbleWidget's tree model
    mapWidget->model()->treeModel()->addDocument( document );

2. 初始位置
    GeoDataCoordinates home(112, 30.0, 10.0, GeoDataCoordinates::Degree);
    mapWidget->centerOn(home);

3.鼠标当前位置
        // Connect the map widget to the position label.
    QObject::connect(mapWidget, SIGNAL(mouseMoveGeoPosition(QString)),
        positionLabel, SLOT(setText(QString)));
4.设置投影
   
mapWidget->setProjection( Mercator );

5.获取设置控件
  
foreach ( AbstractFloatItem * floatItem, mapWidget->floatItems() )
        if ( floatItem && floatItem->nameId() == "compass" ) {
 
            // Put the compass onto the left hand side
            floatItem->setPosition( QPoint( 10, 10 ) );
            // Make the content size of the compass smaller
            floatItem->setContentSize( QSize( 50, 50 ) );
        }
 6.绘制标记

  void MyMarbleWidget::customPaint(GeoPainter* painter)
  {
    GeoDataCoordinates home(8.4, 49.0, 0.0, GeoDataCoordinates::Degree);
    painter->setPen(Qt::green);
    painter->drawEllipse(home, 17, 17);
    painter->setPen(Qt::red);
    painter->drawText(home, "Hello Marble!");
  }

 

 

posted @ 2015-10-12 15:16  20118281131  阅读(347)  评论(0编辑  收藏  举报