From 54a48953a4f1c2210a3979aac5a3765a20b674da Mon Sep 17 00:00:00 2001 From: pip Date: Fri, 11 Jun 2010 15:58:42 +0000 Subject: [PATCH] git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@745 ebee16cc-31ac-478f-84a7-5cbb03baadba --- ground/src/libs/qmapcontrol/src/mapcontrol.h | 442 +++++++++--------- .../qmapcontrol/src/openaerialmapadapter.cpp | 3 +- .../libs/qmapcontrol/src/osmmapadapter.cpp | 3 +- .../libs/qmapcontrol/src/wmsmapadapter.cpp | 3 +- 4 files changed, 224 insertions(+), 227 deletions(-) diff --git a/ground/src/libs/qmapcontrol/src/mapcontrol.h b/ground/src/libs/qmapcontrol/src/mapcontrol.h index 27160db43..b9aa0c8be 100644 --- a/ground/src/libs/qmapcontrol/src/mapcontrol.h +++ b/ground/src/libs/qmapcontrol/src/mapcontrol.h @@ -52,167 +52,167 @@ namespace qmapcontrol */ class MapControl : public QWidget { - Q_OBJECT + Q_OBJECT public: - //! Declares what actions the mouse move has on the map - enum MouseMode - { - Panning, /*!< The map is moved */ - Dragging, /*!< A rectangular can be drawn */ - None, /*!< Mouse move events have no efect to the map */ - }; + //! Declares what actions the mouse move has on the map + enum MouseMode + { + Panning, /*!< The map is moved */ + Dragging, /*!< A rectangular can be drawn */ + None, /*!< Mouse move events have no efect to the map */ + }; - //! The constructor of MapControl - /*! - * The MapControl is the widget which displays the maps. - * The size describes the area, which gets filled with map data - * When you give no MouseMode, the mouse is moving the map. - * You can change the MouseMode on runtime, to e.g. Dragging, which lets the user drag a rectangular box. - * After the dragging a signal with the size of the box is emitted. - * The mousemode ´None´ can be used, to completely define the control of the map yourself. - * @param size the size which the widget should fill with map data - * @param mousemode the way mouseevents are handled - */ - MapControl ( QSize size, MouseMode mousemode = Panning ); + //! The constructor of MapControl + /*! + * The MapControl is the widget which displays the maps. + * The size describes the area, which gets filled with map data + * When you give no MouseMode, the mouse is moving the map. + * You can change the MouseMode on runtime, to e.g. Dragging, which lets the user drag a rectangular box. + * After the dragging a signal with the size of the box is emitted. + * The mousemode ´None´ can be used, to completely define the control of the map yourself. + * @param size the size which the widget should fill with map data + * @param mousemode the way mouseevents are handled + */ + MapControl ( QSize size, MouseMode mousemode = Panning ); - ~MapControl(); + ~MapControl(); - //! adds a layer - /*! - * If multiple layers are added, they are painted in the added order. - * @param layer the layer which should be added - */ - void addLayer ( Layer* layer ); + //! adds a layer + /*! + * If multiple layers are added, they are painted in the added order. + * @param layer the layer which should be added + */ + void addLayer ( Layer* layer ); - //! returns the layer with the given name - /*! - * @param layername name of the wanted layer - * @return the layer with the given name - */ - Layer* layer ( const QString& layername ) const; + //! returns the layer with the given name + /*! + * @param layername name of the wanted layer + * @return the layer with the given name + */ + Layer* layer ( const QString& layername ) const; - //! returns the names of all layers - /*! - * @return returns a QList with the names of all layers - */ - QList layers() const; + //! returns the names of all layers + /*! + * @return returns a QList with the names of all layers + */ + QList layers() const; - //! returns the number of existing layers - /*! - * @return returns the number of existing layers - */ - int numberOfLayers() const; + //! returns the number of existing layers + /*! + * @return returns the number of existing layers + */ + int numberOfLayers() const; - //! returns the coordinate of the center of the map - /*! - * @return returns the coordinate of the middle of the screen - */ - QPointF currentCoordinate() const; + //! returns the coordinate of the center of the map + /*! + * @return returns the coordinate of the middle of the screen + */ + QPointF currentCoordinate() const; - //! returns the current zoom level - /*! - * @return returns the current zoom level - */ - int currentZoom() const; + //! returns the current zoom level + /*! + * @return returns the current zoom level + */ + int currentZoom() const; - //! sets the middle of the map to the given coordinate - /*! - * @param coordinate the coordinate which the view´s middle should be set to - */ - void setView ( const QPointF& coordinate ) const; + //! sets the middle of the map to the given coordinate + /*! + * @param coordinate the coordinate which the view´s middle should be set to + */ + void setView ( const QPointF& coordinate ) const; - //! sets the view, so all coordinates are visible - /*! - * @param coordinates the Coorinates which should be visible - */ - void setView ( const QList coordinates ) const; + //! sets the view, so all coordinates are visible + /*! + * @param coordinates the Coorinates which should be visible + */ + void setView ( const QList coordinates ) const; - //! sets the view and zooms in, so all coordinates are visible - /*! - * The code of setting the view to multiple coordinates is "brute force" and pretty slow. - * Have to be reworked. - * @param coordinates the Coorinates which should be visible - */ - void setViewAndZoomIn ( const QList coordinates ) const; + //! sets the view and zooms in, so all coordinates are visible + /*! + * The code of setting the view to multiple coordinates is "brute force" and pretty slow. + * Have to be reworked. + * @param coordinates the Coorinates which should be visible + */ + void setViewAndZoomIn ( const QList coordinates ) const; - //! sets the view to the given Point - /*! - * - * @param point the geometric point the view should be set to - */ - void setView ( const Point* point ) const; + //! sets the view to the given Point + /*! + * + * @param point the geometric point the view should be set to + */ + void setView ( const Point* point ) const; - //! Keeps the center of the map on the Geometry, even when it moves - /*! - * To stop the following the method stopFollowing() have to be called - * @param geometry the Geometry which should stay centered. - */ - void followGeometry ( const Geometry* geometry ) const; + //! Keeps the center of the map on the Geometry, even when it moves + /*! + * To stop the following the method stopFollowing() have to be called + * @param geometry the Geometry which should stay centered. + */ + void followGeometry ( const Geometry* geometry ) const; - //TODO: - // void followGeometry(const QList) const; + //TODO: + // void followGeometry(const QList) const; - //! Stops the following of a Geometry - /*! - * if the view is set to follow a Geometry this method stops the trace. - * See followGeometry(). - * @param geometry the Geometry which should not followed anymore - */ - void stopFollowing ( Geometry* geometry ); + //! Stops the following of a Geometry + /*! + * if the view is set to follow a Geometry this method stops the trace. + * See followGeometry(). + * @param geometry the Geometry which should not followed anymore + */ + void stopFollowing ( Geometry* geometry ); - //! Smoothly moves the center of the view to the given Coordinate - /*! - * @param coordinate the Coordinate which the center of the view should moved to - */ - void moveTo ( QPointF coordinate ); + //! Smoothly moves the center of the view to the given Coordinate + /*! + * @param coordinate the Coordinate which the center of the view should moved to + */ + void moveTo ( QPointF coordinate ); - //! sets the Mouse Mode of the MapControl - /*! - * There are three MouseModes declard by an enum. - * The MouesMode Dragging draws an rectangular in the map while the MouseButton is pressed. - * When the Button is released a boxDragged() signal is emitted. - * - * The second MouseMode (the default) is Panning, which allows to drag the map around. - * @param mousemode the MouseMode - */ - void setMouseMode ( MouseMode mousemode ); + //! sets the Mouse Mode of the MapControl + /*! + * There are three MouseModes declard by an enum. + * The MouesMode Dragging draws an rectangular in the map while the MouseButton is pressed. + * When the Button is released a boxDragged() signal is emitted. + * + * The second MouseMode (the default) is Panning, which allows to drag the map around. + * @param mousemode the MouseMode + */ + void setMouseMode ( MouseMode mousemode ); - //! returns the current MouseMode - /*! - * For a explanation for the MouseModes see setMouseMode() - * @return the current MouseMode - */ - MapControl::MouseMode mouseMode(); + //! returns the current MouseMode + /*! + * For a explanation for the MouseModes see setMouseMode() + * @return the current MouseMode + */ + MapControl::MouseMode mouseMode(); - //int rotation; + //int rotation; - //! Enable persistent caching of map tiles - /*! - * Call this method to allow the QMapControl widget to save map tiles - * persistent (also over application restarts). - * Tiles are stored in the subdirectory "QMapControl.cache" within the - * user's home directory. This can be changed by giving a path. - * @param path the path to the cache directory - */ - void enablePersistentCache ( const QDir& path=QDir::homePath() + "/QMapControl.cache" ); + //! Enable persistent caching of map tiles + /*! + * Call this method to allow the QMapControl widget to save map tiles + * persistent (also over application restarts). + * Tiles are stored in the subdirectory "QMapControl.cache" within the + * user's home directory. This can be changed by giving a path. + * @param path the path to the cache directory + */ + void enablePersistentCache ( const QDir& path=QDir::homePath() + "/QMapControl.cache" ); - //! Sets the proxy for HTTP connections - /*! - * This method sets the proxy for HTTP connections. - * This is not provided by the current Qtopia version! - * @param host the proxy´s hostname or ip - * @param port the proxy´s port - */ - void setProxy ( QString host, int port ); + //! Sets the proxy for HTTP connections + /*! + * This method sets the proxy for HTTP connections. + * This is not provided by the current Qtopia version! + * @param host the proxy´s hostname or ip + * @param port the proxy´s port + */ + void setProxy ( QString host, int port ); - //! Displays the scale within the widget - /*! - * - * @param show true if the scale should be displayed - */ - void showScale ( bool show ); + //! Displays the scale within the widget + /*! + * + * @param show true if the scale should be displayed + */ + void showScale ( bool show ); // added by cathy // show/hide the center latitude & longitude coord @@ -224,122 +224,122 @@ namespace qmapcontrol void showLatLon(bool show); private: - LayerManager* layermanager; - QPoint screen_middle; // middle of the widget (half size) + LayerManager* layermanager; + QPoint screen_middle; // middle of the widget (half size) - QPoint pre_click_px; // used for scrolling (MouseMode Panning) - QPoint current_mouse_pos; // used for scrolling and dragging (MouseMode Panning/Dragging) + QPoint pre_click_px; // used for scrolling (MouseMode Panning) + QPoint current_mouse_pos; // used for scrolling and dragging (MouseMode Panning/Dragging) - QSize size; // size of the widget + QSize size; // size of the widget - bool mousepressed; - MouseMode mymousemode; + bool mousepressed; + MouseMode mymousemode; - bool scaleVisible; + bool scaleVisible; bool latLonVisible; - bool m_loadingFlag; + bool m_loadingFlag; - QMutex moveMutex; // used for method moveTo() - QPointF target; // used for method moveTo() - int steps; // used for method moveTo() + QMutex moveMutex; // used for method moveTo() + QPointF target; // used for method moveTo() + int steps; // used for method moveTo() - QPointF clickToWorldCoordinate ( QPoint click ); - MapControl& operator= ( const MapControl& rhs ); - MapControl ( const MapControl& old ); + QPointF clickToWorldCoordinate ( QPoint click ); + MapControl& operator= ( const MapControl& rhs ); + MapControl ( const MapControl& old ); protected: - void paintEvent ( QPaintEvent* evnt ); - void mousePressEvent ( QMouseEvent* evnt ); - void mouseReleaseEvent ( QMouseEvent* evnt ); - void mouseMoveEvent ( QMouseEvent* evnt ); + void paintEvent ( QPaintEvent* evnt ); + void mousePressEvent ( QMouseEvent* evnt ); + void mouseReleaseEvent ( QMouseEvent* evnt ); + void mouseMoveEvent ( QMouseEvent* evnt ); void wheelEvent(QWheelEvent *event); // added by cathy signals: - // void mouseEvent(const QMouseEvent* evnt); + // void mouseEvent(const QMouseEvent* evnt); - //! Emitted AFTER a MouseEvent occured - /*! - * This signals allows to receive click events within the MapWidget together with the world coordinate. - * It is emitted on MousePressEvents and MouseReleaseEvents. - * The kind of the event can be obtained by checking the events type. - * @param evnt the QMouseEvent that occured - * @param coordinate the corresponding world coordinate - */ - void mouseEventCoordinate ( const QMouseEvent* evnt, const QPointF coordinate ); + //! Emitted AFTER a MouseEvent occured + /*! + * This signals allows to receive click events within the MapWidget together with the world coordinate. + * It is emitted on MousePressEvents and MouseReleaseEvents. + * The kind of the event can be obtained by checking the events type. + * @param evnt the QMouseEvent that occured + * @param coordinate the corresponding world coordinate + */ + void mouseEventCoordinate ( const QMouseEvent* evnt, const QPointF coordinate ); - //! Emitted, after a Rectangular is dragged. - /*! - * It is possible to select a rectangular area in the map, if the MouseMode is set to Dragging. - * The coordinates are in world coordinates - * @param QRectF the dragged Rect - */ - void boxDragged ( const QRectF ); + //! Emitted, after a Rectangular is dragged. + /*! + * It is possible to select a rectangular area in the map, if the MouseMode is set to Dragging. + * The coordinates are in world coordinates + * @param QRectF the dragged Rect + */ + void boxDragged ( const QRectF ); - //! This signal is emitted, when a Geometry is clicked - /*! - * @param geometry The clicked Geometry object - * @param coord_px The coordinate in pixel coordinates - */ - void geometryClicked ( Geometry* geometry, QPoint coord_px ); + //! This signal is emitted, when a Geometry is clicked + /*! + * @param geometry The clicked Geometry object + * @param coord_px The coordinate in pixel coordinates + */ + void geometryClicked ( Geometry* geometry, QPoint coord_px ); - //! This signal is emitted, after the view have changed - /*! - * @param coordinate The current coordinate - * @param zoom The current zoom - */ - void viewChanged ( const QPointF &coordinate, int zoom ); + //! This signal is emitted, after the view have changed + /*! + * @param coordinate The current coordinate + * @param zoom The current zoom + */ + void viewChanged ( const QPointF &coordinate, int zoom ); public slots: - //! zooms in one step - void zoomIn(); + //! zooms in one step + void zoomIn(); - //! zooms out one step - void zoomOut(); + //! zooms out one step + void zoomOut(); - //! sets the given zoomlevel - /*! - * @param zoomlevel the zoomlevel - */ - void setZoom ( int zoomlevel ); + //! sets the given zoomlevel + /*! + * @param zoomlevel the zoomlevel + */ + void setZoom ( int zoomlevel ); - //! scrolls the view to the left - void scrollLeft ( int pixel=10 ); + //! scrolls the view to the left + void scrollLeft ( int pixel=10 ); - //! scrolls the view to the right - void scrollRight ( int pixel=10 ); + //! scrolls the view to the right + void scrollRight ( int pixel=10 ); - //! scrolls the view up - void scrollUp ( int pixel=10 ); + //! scrolls the view up + void scrollUp ( int pixel=10 ); - //! scrolls the view down - void scrollDown ( int pixel=10 ); + //! scrolls the view down + void scrollDown ( int pixel=10 ); - //! scrolls the view by the given point - void scroll ( const QPoint scroll ); + //! scrolls the view by the given point + void scroll ( const QPoint scroll ); - //! updates the map for the given rect - /*! - * @param rect the area which should be repainted - */ - void updateRequest ( QRect rect ); + //! updates the map for the given rect + /*! + * @param rect the area which should be repainted + */ + void updateRequest ( QRect rect ); - //! updates the hole map by creating a new offscreen image - /*! - * - */ - void updateRequestNew(); + //! updates the hole map by creating a new offscreen image + /*! + * + */ + void updateRequestNew(); - //! Resizes the map to the given size - /*! - * @param newSize The new size - */ - void resize(const QSize newSize); + //! Resizes the map to the given size + /*! + * @param newSize The new size + */ + void resize(const QSize newSize); private slots: - void tick(); - void loadingFinished(); - void positionChanged ( Geometry* geom ); + void tick(); + void loadingFinished(); + void positionChanged ( Geometry* geom ); }; } #endif diff --git a/ground/src/libs/qmapcontrol/src/openaerialmapadapter.cpp b/ground/src/libs/qmapcontrol/src/openaerialmapadapter.cpp index e6a631aa2..f6dd5edfd 100644 --- a/ground/src/libs/qmapcontrol/src/openaerialmapadapter.cpp +++ b/ground/src/libs/qmapcontrol/src/openaerialmapadapter.cpp @@ -27,8 +27,7 @@ namespace qmapcontrol { OpenAerialMapAdapter::OpenAerialMapAdapter() -// : TileMapAdapter("tile.openaerialmap.org", "/tiles/1.0.0/openaerialmap-900913/%1/%2/%3.png", 256, 0, 17) - : TileMapAdapter("tile.openaerialmap.org", "/tiles/1.0.0/openaerialmap-900913/%1/%2/%3.png", 256, 0, 22) // cmoss .. max_zoom increased + : TileMapAdapter("tile.openaerialmap.org", "/tiles/1.0.0/openaerialmap-900913/%1/%2/%3.png", 256, 0, 17) { } diff --git a/ground/src/libs/qmapcontrol/src/osmmapadapter.cpp b/ground/src/libs/qmapcontrol/src/osmmapadapter.cpp index fd5ab2462..f0d7af9a2 100644 --- a/ground/src/libs/qmapcontrol/src/osmmapadapter.cpp +++ b/ground/src/libs/qmapcontrol/src/osmmapadapter.cpp @@ -27,8 +27,7 @@ namespace qmapcontrol { OSMMapAdapter::OSMMapAdapter() -// : TileMapAdapter("tile.openstreetmap.org", "/%1/%2/%3.png", 256, 0, 17) - : TileMapAdapter("tile.openstreetmap.org", "/%1/%2/%3.png", 256, 0, 22) // cmoss .. max_zoom increased + : TileMapAdapter("tile.openstreetmap.org", "/%1/%2/%3.png", 256, 0, 17) { } diff --git a/ground/src/libs/qmapcontrol/src/wmsmapadapter.cpp b/ground/src/libs/qmapcontrol/src/wmsmapadapter.cpp index 42755ffcd..469734b7e 100644 --- a/ground/src/libs/qmapcontrol/src/wmsmapadapter.cpp +++ b/ground/src/libs/qmapcontrol/src/wmsmapadapter.cpp @@ -27,8 +27,7 @@ namespace qmapcontrol { WMSMapAdapter::WMSMapAdapter(QString host, QString serverPath, int tilesize) -// : MapAdapter(host, serverPath, tilesize, 0, 17) - : MapAdapter(host, serverPath, tilesize, 0, 22) // cmoss .. max_zoom increased + : MapAdapter(host, serverPath, tilesize, 0, 17) { // param1 = serverPath.indexOf("%1"); // param2 = serverPath.indexOf("%2");