Skip to content
MapWidget.cc 37.3 KiB
Newer Older
pixhawk's avatar
pixhawk committed
}

void MapWidget::hideEvent(QHideEvent* event)
{
    Q_UNUSED(event);
    QSettings settings;
    settings.beginGroup("QGC_MAPWIDGET");
    QPointF currentPos = mc->currentCoordinate();
    settings.setValue("LAST_LATITUDE", currentPos.y());
    settings.setValue("LAST_LONGITUDE", currentPos.x());
    settings.setValue("LAST_ZOOM", mc->currentZoom());
    settings.endGroup();
    settings.sync();
pixhawk's avatar
pixhawk committed

void MapWidget::changeEvent(QEvent *e)
{
    QWidget::changeEvent(e);
    switch (e->type()) {
    case QEvent::LanguageChange:
        m_ui->retranslateUi(this);
        break;
    default:
        break;
    }
}
pixhawk's avatar
pixhawk committed
    Q_UNUSED(uas);
pixhawk's avatar
pixhawk committed

    //mc->layer("Waypoints")->clearGeometries();
    foreach (Point* p, wpIcons)
    {
        mc->layer("Waypoints")->removeGeometry(p);
    }
    wpIcons.clear();

    // Get bounding box of this object BEFORE deleting the content
    QRect box = waypointPath->boundingBox().toRect();

    // Delete the content
    //delete waypointPath;
    //waypointPath = new
    //mc->layer("Waypoints")->addGeometry(waypointPath);
    //wpIndex.clear();
    if (isVisible()) mc->updateRequest(box);//(waypointPath->boundingBox().toRect());
pixhawk's avatar
pixhawk committed

pixhawk's avatar
pixhawk committed

pixhawk's avatar
pixhawk committed
    Q_UNUSED(uas);
    mc->layer("Tracking")->clearGeometries();
    foreach (qmapcontrol::LineString* ls, uasTrails)
    {
        QPen* linepen = ls->pen();
        delete ls;
        qmapcontrol::LineString* lsNew = new qmapcontrol::LineString(QList<qmapcontrol::Point*>(), "", linepen);
        mc->layer("Tracking")->addGeometry(lsNew);
    }
    // FIXME update this with update request only for bounding box of trails
    if (isVisible()) mc->updateRequestNew();//(QRect(0, 0, width(), height()));
void MapWidget::updateCameraPosition(double radio, double bearing, QString dir)
{
pixhawk's avatar
pixhawk committed
    Q_UNUSED(dir);
    Q_UNUSED(bearing);
pixhawk's avatar
pixhawk committed
    // FIXME Mariano
    //camPoints.clear();
    QPointF currentPos = mc->currentCoordinate();
    //    QPointF actualPos = getPointxBearing_Range(currentPos.y(),currentPos.x(),bearing,distance);
pixhawk's avatar
pixhawk committed

    //    qmapcontrol::Point* tempPoint1 = new qmapcontrol::Point(currentPos.x(), currentPos.y(),"inicial",qmapcontrol::Point::Middle);
    //    qmapcontrol::Point* tempPoint2 = new qmapcontrol::Point(actualPos.x(), actualPos.y(),"final",qmapcontrol::Point::Middle);
pixhawk's avatar
pixhawk committed

    //    camPoints.append(tempPoint1);
    //    camPoints.append(tempPoint2);
pixhawk's avatar
pixhawk committed

    //    camLine->setPoints(camPoints);
pixhawk's avatar
pixhawk committed

    QPen* camBorderPen = new QPen(QColor(255,0,0));
    camBorderPen->setWidth(2);
pixhawk's avatar
pixhawk committed

    //radio = mc->currentZoom()
pixhawk's avatar
pixhawk committed

    if(drawCamBorder)
    {
        //clear camera borders
        mc->layer("Camera")->clearGeometries();
pixhawk's avatar
pixhawk committed

        //create a camera borders
        qmapcontrol::CirclePoint* camBorder = new qmapcontrol::CirclePoint(currentPos.x(), currentPos.y(), radio, "camBorder", qmapcontrol::Point::Middle, camBorderPen);
pixhawk's avatar
pixhawk committed

        //camBorder->setCoordinate(currentPos);
pixhawk's avatar
pixhawk committed

        mc->layer("Camera")->addGeometry(camBorder);
        // mc->layer("Camera")->addGeometry(camLine);
        if (isVisible()) mc->updateRequestNew();
pixhawk's avatar
pixhawk committed

    else
    {
        //clear camera borders
        mc->layer("Camera")->clearGeometries();
        if (isVisible()) mc->updateRequestNew();
pixhawk's avatar
pixhawk committed

}

void MapWidget::drawBorderCamAtMap(bool status)
{
    drawCamBorder = status;
    updateCameraPosition(20,0,"no");
pixhawk's avatar
pixhawk committed

}

QPointF MapWidget::getPointxBearing_Range(double lat1, double lon1, double bearing, double distance)
{
    QPointF temp;
pixhawk's avatar
pixhawk committed

    double rad = M_PI/180;
pixhawk's avatar
pixhawk committed

    bearing = bearing*rad;
    temp.setX((lon1 + ((distance/60) * (sin(bearing)))));
    temp.setY((lat1 + ((distance/60) * (cos(bearing)))));
pixhawk's avatar
pixhawk committed