/QMK-Groundstation/trunk/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/trunk/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/trunk/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/trunk/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/trunk/Classes/QMapControl/point.h |
---|
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/trunk/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/trunk/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/trunk/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/trunk/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/trunk/global.h |
---|
56,7 → 56,7 |
static const int SLEEP = 500000; |
static const QString QA_NAME = "QMK-Groundstation"; |
static const QString QA_VERSION_NR = "0.8.5"; |
static const QString QA_VERSION_NR = "0.8.7"; |
#ifdef _BETA_ |
static const QString QA_VERSION = QA_VERSION_NR + " (BETA)"; |
/QMK-Groundstation/trunk/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" |