1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
void Gspv::addFixes() // Calque des waypoints
{
waypoints = new GeometryLayer("Waypoints", mapadapter);
mc->addLayer(waypoints);
//Création de l'icone
QPixmap icone(38,38);
icone.fill(Qt::transparent);
QPainter pmp(&icone);
pmp.setRenderHint(QPainter::Antialiasing);
pmp.setBrush(Qt::cyan);
pmp.setPen(Qt::black);
static const QPoint triangle[3] = {
QPoint(15,0),
QPoint(3, 20),
QPoint(27,20)
};
pmp.drawPolygon(triangle, 3);
pmp.setFont(QFont("ArialBold",10));
QFile file(QCoreApplication::applicationDirPath() + "/data/Waypoints.txt");
if(!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
QMessageBox::information(0, "erreur lecture fichier : " + file.fileName(), file.errorString());
return;
}
//Parser du fichier Waypoints
QTextStream in(&file);
while(!in.atEnd()) {
QString line = in.readLine();
QStringList fields = line.split(",");
//Création du point et ajout au calque
QString str = fields.at(1);
double latitude = str.toDouble();
str = fields.at(2);
double longitude = str.toDouble();
str = fields.at(0);
//Ecriture du code de l'icone
pmp.drawText(0,31,str);
Point* pointCourant = new Point(longitude, latitude, icone, str);
//Effacement du texte précédent
pmp.eraseRect(0,20,38,15);
//Rajout du point de passage sur le layer
waypoints->addGeometry(pointCourant);
}
file.close();
} |
Partager