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!");
}