Subversion Repositories Projects

Compare Revisions

Ignore whitespace Rev 397 → Rev 398

/QMK-Groundstation/branches/own_com_lib/Classes/QMapControl/fixedimageoverlay.cpp
0,0 → 1,69
/*
*
* This file is part of QMapControl,
* an open-source cross-platform map widget
*
* Copyright (C) 2007 - 2009 Kai Winter
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with QMapControl. If not, see <http://www.gnu.org/licenses/>.
*
* Contact e-mail: kaiwinter@gmx.de
* Program URL : http://qmapcontrol.sourceforge.net/
*
*/
 
#include "fixedimageoverlay.h"
namespace qmapcontrol
{
FixedImageOverlay::FixedImageOverlay(qreal x_upperleft, qreal y_upperleft, qreal x_lowerright, qreal y_lowerright, QString filename, QString name)
: ImagePoint(x_upperleft, y_upperleft, filename, name, TopLeft),
x_lowerright(x_lowerright), y_lowerright(y_lowerright)
{
//qDebug() << "loading image: " << filename;
mypixmap = new QPixmap(filename);
size = mypixmap->size();
//qDebug() << "image size: " << size;
}
 
FixedImageOverlay::FixedImageOverlay(qreal x_upperleft, qreal y_upperleft, qreal x_lowerright, qreal y_lowerright, QPixmap* pixmap, QString name)
: ImagePoint(x_upperleft, y_upperleft, pixmap, name, TopLeft),
x_lowerright(x_lowerright), y_lowerright(y_lowerright)
{
mypixmap = pixmap;
size = mypixmap->size();
}
 
void FixedImageOverlay::draw(QPainter* painter, const MapAdapter* mapadapter, const QRect &viewport, const QPoint offset)
{
if (!visible)
return;
 
if (mypixmap !=0)
{
const QPointF c = QPointF(X, Y);
QPoint topleft = mapadapter->coordinateToDisplay(c);
 
const QPointF c2 = QPointF(x_lowerright, y_lowerright);
QPoint lowerright = mapadapter->coordinateToDisplay(c2);
 
painter->drawPixmap(topleft.x(), topleft.y(), lowerright.x()-topleft.x(), lowerright.y()-topleft.y(), *mypixmap);
}
 
 
}
 
FixedImageOverlay::~FixedImageOverlay()
{
}
}
/QMK-Groundstation/branches/own_com_lib/Classes/QMapControl/fixedimageoverlay.h
0,0 → 1,80
/*
*
* This file is part of QMapControl,
* an open-source cross-platform map widget
*
* Copyright (C) 2007 - 2009 Kai Winter
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with QMapControl. If not, see <http://www.gnu.org/licenses/>.
*
* Contact e-mail: kaiwinter@gmx.de
* Program URL : http://qmapcontrol.sourceforge.net/
*
*/
 
#ifndef FIXEDIMAGEOVERLAY_H
#define FIXEDIMAGEOVERLAY_H
 
#include "imagepoint.h"
 
namespace qmapcontrol
{
 
//! Draws a fixed image into the map.
/*!
* This class draws a image overlay onto a map, whose upper left and lower
* right corners lay always on the given coordinates. The methods
* setBaselevel, setMaxsize and setMinsize have no effect for this class.
*
* @author Kai Winter <kaiwinter@gmx.de>
*/
class FixedImageOverlay : public ImagePoint
{
public:
//! Creates an image overlay which loads and displays the given image file
/*!
* Use this contructor to load the given image file and let the point
* display it.
* When you want multiple points to display the same image, use the
* other contructor and pass a pointer to that image.
* @param x_upperleft the coordinate of the upper left corner where the image should be aligned
* @param y_upperleft the coordinate of the upper left corner where the image should be aligned
* @param x_lowerright the coordinate of the lower right corner where the image should be aligned
* @param y_lowerright the coordinate of the lower right corner where the image should be aligned
* @param filename the file which should be loaded and displayed
* @param name the name of the image point
*/
FixedImageOverlay(qreal x_upperleft, qreal y_upperleft, qreal x_lowerright, qreal y_lowerright, QString filename, QString name = QString());
 
//! Creates an image overlay which displays the given image
/*!
* Use this contructor to display the given image.
* @param x_upperleft the coordinate of the upper left corner where the image should be aligned
* @param y_upperleft the coordinate of the upper left corner where the image should be aligned
* @param x_lowerright the coordinate of the lower right corner where the image should be aligned
* @param y_lowerright the coordinate of the lower right corner where the image should be aligned
* @param pixmap pointer to the image pixmap
* @param name the name of the image point
*/
FixedImageOverlay(qreal x_upperleft, qreal y_upperleft, qreal x_lowerright, qreal y_lowerright, QPixmap* pixmap, QString name = QString());
 
virtual void draw(QPainter* painter, const MapAdapter* mapadapter, const QRect &viewport, const QPoint offset);
virtual ~FixedImageOverlay();
 
private:
qreal x_lowerright;
qreal y_lowerright;
};
}
#endif
/QMK-Groundstation/branches/own_com_lib/Classes/QMapControl/openaerialmapadapter.cpp
0,0 → 1,37
/*
*
* This file is part of QMapControl,
* an open-source cross-platform map widget
*
* Copyright (C) 2007 - 2009 Kai Winter
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with QMapControl. If not, see <http://www.gnu.org/licenses/>.
*
* Contact e-mail: kaiwinter@gmx.de
* Program URL : http://qmapcontrol.sourceforge.net/
*
*/
 
#include "openaerialmapadapter.h"
namespace qmapcontrol
{
OpenAerialMapAdapter::OpenAerialMapAdapter()
: TileMapAdapter("tile.openaerialmap.org", "/tiles/1.0.0/openaerialmap-900913/%1/%2/%3.png", 256, 0, 17)
{
}
 
OpenAerialMapAdapter::~OpenAerialMapAdapter()
{
}
}
/QMK-Groundstation/branches/own_com_lib/Classes/QMapControl/openaerialmapadapter.h
0,0 → 1,49
/*
*
* This file is part of QMapControl,
* an open-source cross-platform map widget
*
* Copyright (C) 2007 - 2009 Kai Winter
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with QMapControl. If not, see <http://www.gnu.org/licenses/>.
*
* Contact e-mail: kaiwinter@gmx.de
* Program URL : http://qmapcontrol.sourceforge.net/
*
*/
 
#ifndef OPENAERIALMAPADAPTER_H
#define OPENAERIALMAPADAPTER_H
 
#include "tilemapadapter.h"
namespace qmapcontrol
{
//! MapAdapter for OpenStreetMap
/*!
* This is a conveniece class, which extends and configures a TileMapAdapter. Source of maps is http://www.openaerialmap.org/
* @author Kai Winter <kaiwinter@gmx.de>
*/
class OpenAerialMapAdapter : public TileMapAdapter
{
Q_OBJECT
public:
//! constructor
/*!
* This construct a OpenAerialMap Adapter
*/
OpenAerialMapAdapter();
virtual ~OpenAerialMapAdapter();
};
}
#endif
/QMK-Groundstation/branches/own_com_lib/Classes/QMapControl/point.h
129,7 → 129,7
/*!
* @return the latitude of the point
*/
qreal latitude() const;
qreal latitude() const;
 
//! returns the coordinate of the point
/*!
137,7 → 137,7
* the y component the latitude
* @return the coordinate of a point
*/
QPointF coordinate() const;
QPointF coordinate() const;
 
virtual QList<Point*> points();
 
152,7 → 152,7
*/
QPixmap* pixmap();
 
//! Sets the zoom level on which the point´s pixmap gets displayed on full size
//! Sets the zoom level on which the point�s pixmap gets displayed on full size
/*!
* Use this method to set a zoom level on which the pixmap gets displayed with its real size.
* On zoomlevels below it will be displayed smaller, and on zoom levels thereover it will be displayed larger
163,7 → 163,7
 
//! sets a minimal size for the pixmap
/*!
* When the point´s pixmap should change its size on zooming, this method sets the minimal size.
* When the point's pixmap should change its size on zooming, this method sets the minimal size.
* @see setBaselevel
* @param minsize the minimal size which the pixmap should have
*/
/QMK-Groundstation/branches/own_com_lib/Forms/dlg_Map.cpp
26,8 → 26,8
 
cb_Maps->removeItem(5);
cb_Maps->removeItem(4);
cb_Maps->removeItem(3);
cb_Maps->removeItem(2);
// cb_Maps->removeItem(3);
// cb_Maps->removeItem(2);
 
pb_Add->setEnabled(false);
pb_Goto->setEnabled(false);
46,6 → 46,7
connect(pb_Delete, SIGNAL(clicked()), this, SLOT(slot_DeleteWayPoints()));
connect(pb_Goto, SIGNAL(clicked()), this, SLOT(slot_GotoTarget()));
connect(pb_SendWaypoints, SIGNAL(clicked()), this, SLOT(slot_SendWayPoints()));
connect(pb_LoadPic, SIGNAL(clicked()), this, SLOT(slot_LoadMapPic()));
 
connect(pb_Load, SIGNAL(clicked()), this, SLOT(slot_LoadWayPoints()));
connect(pb_Save, SIGNAL(clicked()), this, SLOT(slot_SaveWayPoints()));
422,10 → 423,43
}
 
o_Map->updateRequestNew();
 
// qDebug(QString("%1").arg(Coord.x()).toLatin1().data());
// qDebug(QString("%1").arg(Coord.y()).toLatin1().data());
}
 
 
void dlg_Map::slot_LoadMapPic()
{
QString Filename = QFileDialog::getOpenFileName(this, "Bild als Karte", o_Settings->DIR.Logging, "Bilddatei(*.jpg *.png *.gif);;Alle Dateien (*)");
 
if (!Filename.isEmpty())
{
QFile f_Points(Filename + ".pos");
 
if (f_Points.exists())
{
f_Points.open(QIODevice::ReadOnly | QIODevice::Text);
 
QString s_Points;
 
while (!f_Points.atEnd())
{
s_Points.append(f_Points.readLine());
}
 
f_Points.close();
 
QStringList s_Pos = s_Points.split(",");
 
FixedImageOverlay* fip = new FixedImageOverlay(s_Pos[0].toDouble(), s_Pos[1].toDouble(), s_Pos[2].toDouble(), s_Pos[3].toDouble(), Filename);
 
o_Layer->addGeometry(fip);
o_Map->updateRequestNew();
}
}
}
 
// auf Veränderung der Fenstergröße reagieren
void dlg_Map::resizeEvent ( QResizeEvent * event )
{
/QMK-Groundstation/branches/own_com_lib/Forms/dlg_Map.h
84,6 → 84,8
void slot_SendWayPoints();
void slot_ShowWayPoints(bool);
 
void slot_LoadMapPic();
 
void slot_GotoTarget();
void slot_Close();
 
/QMK-Groundstation/branches/own_com_lib/Forms/dlg_Map.ui
310,6 → 310,13
</item>
</widget>
</item>
<item>
<widget class="QPushButton" name="pb_LoadPic">
<property name="text">
<string>Bild laden</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
/QMK-Groundstation/branches/own_com_lib/QMapControl.pri
24,7 → 24,9
geometrylayer.h \
yahoomapadapter.h \
googlemapadapter.h \
googlesatmapadapter.h
googlesatmapadapter.h \
openaerialmapadapter.h \
fixedimageoverlay.h
SOURCES += curve.cpp \
geometry.cpp \
imagemanager.cpp \
45,6 → 47,8
geometrylayer.cpp \
yahoomapadapter.cpp \
googlemapadapter.cpp \
googlesatmapadapter.cpp
googlesatmapadapter.cpp \
openaerialmapadapter.cpp \
fixedimageoverlay.cpp
 
QT += network
/QMK-Groundstation/branches/own_com_lib/global.h
44,13 → 44,13
static const int MeterSize = 160;
#endif
 
static const QString QA_NAME = "QMK-Groundstation";
static const QString QA_VERSION_NR = "0.8.5 - own flight lib";
 
// sleep time - time to wait until next command is received
// FIXME: delete this / rewrite to use interrupts, mutex or something elsebetter than timeouts
static const int SLEEP = 500000;
 
static const QString QA_NAME = "QMK-Groundstation";
static const QString QA_VERSION_NR = "0.8.7 - own light lib";
 
#ifdef _BETA_
static const QString QA_VERSION = QA_VERSION_NR + " (BETA)";
static const QString QA_HWVERSION = "FlightCtrl v0.73d & NaviCtrl v0.15c";
/QMK-Groundstation/branches/own_com_lib/qmapcontrol.h
13,3 → 13,5
#include "Classes/QMapControl/yahoomapadapter.h"
#include "Classes/QMapControl/googlemapadapter.h"
#include "Classes/QMapControl/googlesatmapadapter.h"
#include "Classes/QMapControl//openaerialmapadapter.h"
#include "Classes/QMapControl//fixedimageoverlay.h"