From e3c983903f6b8e592c6b68d5cd4963936ceee992 Mon Sep 17 00:00:00 2001 From: Alex Spataru Date: Mon, 6 Dec 2021 10:56:03 -0600 Subject: [PATCH] Add QMapControl --- libs/Libraries.pri | 1 + libs/QMapControl/COPYING | 340 ++++ libs/QMapControl/COPYING.LESSER | 165 ++ libs/QMapControl/Doxyfile | 1528 +++++++++++++++++ libs/QMapControl/QMapControl.pri | 62 + libs/QMapControl/QMapControl.tag | 1265 ++++++++++++++ libs/QMapControl/Samples/Citymap/Citymap.pro | 19 + libs/QMapControl/Samples/Citymap/Readme | 5 + .../Samples/Citymap/citymap.kdevelop | 219 +++ .../Samples/Citymap/src/citymap.cpp | 592 +++++++ .../QMapControl/Samples/Citymap/src/citymap.h | 112 ++ .../Samples/Citymap/src/dialogs.cpp | 20 + .../QMapControl/Samples/Citymap/src/dialogs.h | 21 + libs/QMapControl/Samples/Citymap/src/main.cpp | 14 + libs/QMapControl/Samples/GPS/GPS.kdevelop | 188 ++ libs/QMapControl/Samples/GPS/GPS.pro | 20 + libs/QMapControl/Samples/GPS/Readme | 12 + libs/QMapControl/Samples/GPS/src/gps.cpp | 125 ++ libs/QMapControl/Samples/GPS/src/gps.h | 33 + libs/QMapControl/Samples/GPS/src/gps_neo.cpp | 70 + libs/QMapControl/Samples/GPS/src/gps_neo.h | 36 + .../Samples/GPS/src/gps_simulation.cpp | 41 + .../Samples/GPS/src/gps_simulation.h | 30 + libs/QMapControl/Samples/GPS/src/main.cpp | 13 + .../LinesAndPoints/LinesAndPoints.kdevelop | 195 +++ .../LinesAndPoints/LinesAndPoints.kdevses | 100 ++ .../Samples/LinesAndPoints/LinesAndPoints.pro | 15 + .../QMapControl/Samples/LinesAndPoints/Readme | 16 + .../LinesAndPoints/src/linesandpoints.cpp | 176 ++ .../LinesAndPoints/src/linesandpoints.h | 30 + .../Samples/LinesAndPoints/src/main.cpp | 12 + .../Mapviewer.kdevelop | 195 +++ .../Mapviewer.pro | 13 + .../bin/sample.png | Bin 0 -> 116033 bytes .../src/main.cpp | 13 + .../src/mapviewer.cpp | 71 + .../src/mapviewer.h | 30 + .../Samples/Mapviewer/Mapviewer.kdevelop | 195 +++ .../Samples/Mapviewer/Mapviewer.pro | 16 + libs/QMapControl/Samples/Mapviewer/Readme | 9 + .../Samples/Mapviewer/src/main.cpp | 16 + .../Samples/Mapviewer/src/mapviewer.cpp | 68 + .../Samples/Mapviewer/src/mapviewer.h | 29 + .../Samples/Multidemo/Multidemo.kdevelop | 197 +++ .../Samples/Multidemo/Multidemo.pro | 16 + libs/QMapControl/Samples/Multidemo/Readme | 15 + .../Samples/Multidemo/src/gps_modul.cpp | 89 + .../Samples/Multidemo/src/gps_modul.h | 36 + .../Samples/Multidemo/src/main.cpp | 12 + .../Samples/Multidemo/src/multidemo.cpp | 298 ++++ .../Samples/Multidemo/src/multidemo.h | 60 + .../Samples/Phonebook/phonebook.kdevelop | 216 +++ .../Samples/Phonebook/phonebook.pro | 15 + .../Samples/Phonebook/src/main.cpp | 15 + .../Samples/Phonebook/src/phonebook.cpp | 131 ++ .../Samples/Phonebook/src/phonebook.h | 41 + libs/QMapControl/Samples/Samples.pro | 6 + .../Samples/bin/images/180-dom.jpg | Bin 0 -> 24133 bytes .../QMapControl/Samples/bin/images/180-lm.jpg | Bin 0 -> 7004 bytes .../Samples/bin/images/180-quintin.jpg | Bin 0 -> 17199 bytes .../Samples/bin/images/180-rgzm.jpg | Bin 0 -> 24005 bytes .../Samples/bin/images/180-stephan.jpg | Bin 0 -> 18293 bytes .../Samples/bin/images/bus_stop.png | Bin 0 -> 3511 bytes libs/QMapControl/Samples/bin/images/flag.png | Bin 0 -> 230 bytes .../Samples/bin/images/marker1.png | Bin 0 -> 238 bytes .../Samples/bin/images/marker2.png | Bin 0 -> 226 bytes .../Samples/bin/images/marker3.png | Bin 0 -> 1377 bytes libs/QMapControl/Samples/bin/images/note.png | Bin 0 -> 1244 bytes libs/QMapControl/Samples/bin/images/pub.png | Bin 0 -> 429 bytes libs/QMapControl/html/annotated.html | 87 + .../html/arrowpoint_8h_source.html | 122 ++ libs/QMapControl/html/bc_s.png | Bin 0 -> 676 bytes libs/QMapControl/html/bdwn.png | Bin 0 -> 147 bytes .../html/circlepoint_8h_source.html | 111 ++ .../html/citymap_8cpp-example.html | 536 ++++++ libs/QMapControl/html/classQObject.html | 89 + libs/QMapControl/html/classQObject.png | Bin 0 -> 6697 bytes libs/QMapControl/html/classQWidget.html | 70 + libs/QMapControl/html/classQWidget.png | Bin 0 -> 442 bytes libs/QMapControl/html/classes.html | 90 + ...lassqmapcontrol_1_1ArrowPoint-members.html | 99 ++ .../html/classqmapcontrol_1_1ArrowPoint.html | 958 +++++++++++ .../html/classqmapcontrol_1_1ArrowPoint.png | Bin 0 -> 704 bytes ...assqmapcontrol_1_1CirclePoint-members.html | 98 ++ .../html/classqmapcontrol_1_1CirclePoint.html | 978 +++++++++++ .../html/classqmapcontrol_1_1CirclePoint.png | Bin 0 -> 697 bytes .../classqmapcontrol_1_1Curve-members.html | 76 + .../html/classqmapcontrol_1_1Curve.html | 476 +++++ .../html/classqmapcontrol_1_1Curve.png | Bin 0 -> 714 bytes ...mapcontrol_1_1EmptyMapAdapter-members.html | 75 + .../classqmapcontrol_1_1EmptyMapAdapter.html | 444 +++++ .../classqmapcontrol_1_1EmptyMapAdapter.png | Bin 0 -> 762 bytes ...pcontrol_1_1FixedImageOverlay-members.html | 99 ++ ...classqmapcontrol_1_1FixedImageOverlay.html | 950 ++++++++++ .../classqmapcontrol_1_1FixedImageOverlay.png | Bin 0 -> 1063 bytes .../classqmapcontrol_1_1Geometry-members.html | 76 + .../html/classqmapcontrol_1_1Geometry.html | 427 +++++ .../html/classqmapcontrol_1_1Geometry.png | Bin 0 -> 2667 bytes ...sqmapcontrol_1_1GeometryLayer-members.html | 83 + .../classqmapcontrol_1_1GeometryLayer.html | 627 +++++++ .../classqmapcontrol_1_1GeometryLayer.png | Bin 0 -> 647 bytes ...apcontrol_1_1GoogleMapAdapter-members.html | 76 + .../classqmapcontrol_1_1GoogleMapAdapter.html | 422 +++++ .../classqmapcontrol_1_1GoogleMapAdapter.png | Bin 0 -> 995 bytes ...ontrol_1_1GoogleSatMapAdapter-members.html | 43 + ...assqmapcontrol_1_1GoogleSatMapAdapter.html | 303 ++++ ...lassqmapcontrol_1_1GoogleSatMapAdapter.png | Bin 0 -> 723 bytes ...lassqmapcontrol_1_1ImagePoint-members.html | 97 ++ .../html/classqmapcontrol_1_1ImagePoint.html | 936 ++++++++++ .../html/classqmapcontrol_1_1ImagePoint.png | Bin 0 -> 1070 bytes ...qmapcontrol_1_1InvisiblePoint-members.html | 98 ++ .../classqmapcontrol_1_1InvisiblePoint.html | 962 +++++++++++ .../classqmapcontrol_1_1InvisiblePoint.png | Bin 0 -> 693 bytes .../classqmapcontrol_1_1Layer-members.html | 82 + .../html/classqmapcontrol_1_1Layer.html | 541 ++++++ .../html/classqmapcontrol_1_1Layer.png | Bin 0 -> 913 bytes ...lassqmapcontrol_1_1LineString-members.html | 84 + .../html/classqmapcontrol_1_1LineString.html | 729 ++++++++ .../html/classqmapcontrol_1_1LineString.png | Bin 0 -> 709 bytes ...lassqmapcontrol_1_1MapAdapter-members.html | 74 + .../html/classqmapcontrol_1_1MapAdapter.html | 374 ++++ .../html/classqmapcontrol_1_1MapAdapter.png | Bin 0 -> 2465 bytes ...lassqmapcontrol_1_1MapControl-members.html | 115 ++ .../html/classqmapcontrol_1_1MapControl.html | 1315 ++++++++++++++ .../html/classqmapcontrol_1_1MapControl.png | Bin 0 -> 435 bytes .../classqmapcontrol_1_1MapLayer-members.html | 83 + .../html/classqmapcontrol_1_1MapLayer.html | 629 +++++++ .../html/classqmapcontrol_1_1MapLayer.png | Bin 0 -> 572 bytes ...lassqmapcontrol_1_1MapNetwork-members.html | 69 + .../html/classqmapcontrol_1_1MapNetwork.html | 162 ++ .../html/classqmapcontrol_1_1MapNetwork.png | Bin 0 -> 458 bytes ...sqmapcontrol_1_1OSMMapAdapter-members.html | 76 + .../classqmapcontrol_1_1OSMMapAdapter.html | 421 +++++ .../classqmapcontrol_1_1OSMMapAdapter.png | Bin 0 -> 959 bytes ...ntrol_1_1OpenAerialMapAdapter-members.html | 76 + ...ssqmapcontrol_1_1OpenAerialMapAdapter.html | 421 +++++ ...assqmapcontrol_1_1OpenAerialMapAdapter.png | Bin 0 -> 1114 bytes .../classqmapcontrol_1_1Point-members.html | 95 + .../html/classqmapcontrol_1_1Point.html | 921 ++++++++++ .../html/classqmapcontrol_1_1Point.png | Bin 0 -> 2139 bytes ...qmapcontrol_1_1TileMapAdapter-members.html | 75 + .../classqmapcontrol_1_1TileMapAdapter.html | 465 +++++ .../classqmapcontrol_1_1TileMapAdapter.png | Bin 0 -> 2170 bytes ...sqmapcontrol_1_1WMSMapAdapter-members.html | 75 + .../classqmapcontrol_1_1WMSMapAdapter.html | 450 +++++ .../classqmapcontrol_1_1WMSMapAdapter.png | Bin 0 -> 742 bytes ...mapcontrol_1_1YahooMapAdapter-members.html | 76 + .../classqmapcontrol_1_1YahooMapAdapter.html | 421 +++++ .../classqmapcontrol_1_1YahooMapAdapter.png | Bin 0 -> 967 bytes libs/QMapControl/html/closed.png | Bin 0 -> 132 bytes libs/QMapControl/html/curve_8h_source.html | 115 ++ .../dir_68267d1309a1af8e8297ef4c3efbcdba.html | 155 ++ libs/QMapControl/html/doxygen.css | 1440 ++++++++++++++++ libs/QMapControl/html/doxygen.png | Bin 0 -> 3779 bytes libs/QMapControl/html/dynsections.js | 97 ++ .../html/emptymapadapter_8h_source.html | 120 ++ libs/QMapControl/html/examples.html | 32 + libs/QMapControl/html/files.html | 57 + .../html/fixedimageoverlay_8h_source.html | 112 ++ libs/QMapControl/html/ftv2blank.png | Bin 0 -> 86 bytes libs/QMapControl/html/ftv2doc.png | Bin 0 -> 746 bytes libs/QMapControl/html/ftv2folderclosed.png | Bin 0 -> 616 bytes libs/QMapControl/html/ftv2folderopen.png | Bin 0 -> 597 bytes libs/QMapControl/html/ftv2lastnode.png | Bin 0 -> 86 bytes libs/QMapControl/html/ftv2link.png | Bin 0 -> 746 bytes libs/QMapControl/html/ftv2mlastnode.png | Bin 0 -> 246 bytes libs/QMapControl/html/ftv2mnode.png | Bin 0 -> 246 bytes libs/QMapControl/html/ftv2node.png | Bin 0 -> 86 bytes libs/QMapControl/html/ftv2plastnode.png | Bin 0 -> 229 bytes libs/QMapControl/html/ftv2pnode.png | Bin 0 -> 229 bytes libs/QMapControl/html/ftv2splitbar.png | Bin 0 -> 314 bytes libs/QMapControl/html/ftv2vertline.png | Bin 0 -> 86 bytes libs/QMapControl/html/functions.html | 566 ++++++ libs/QMapControl/html/functions_enum.html | 73 + libs/QMapControl/html/functions_eval.html | 100 ++ libs/QMapControl/html/functions_func.html | 525 ++++++ libs/QMapControl/html/geometry_8h_source.html | 167 ++ .../html/geometrylayer_8h_source.html | 104 ++ .../html/googlemapadapter_8h_source.html | 113 ++ .../html/googlesatmapadapter_8h_source.html | 92 + libs/QMapControl/html/gps_8cpp-example.html | 95 + libs/QMapControl/html/gps_8h_source.html | 54 + .../html/gps__position_8h_source.html | 103 ++ libs/QMapControl/html/hierarchy.html | 86 + .../html/imagepoint_8h_source.html | 106 ++ libs/QMapControl/html/index.html | 51 + .../html/invisiblepoint_8h_source.html | 108 ++ libs/QMapControl/html/jquery.js | 31 + libs/QMapControl/html/layer_8h_source.html | 197 +++ .../html/linesandpoints_8cpp-example.html | 180 ++ .../html/linestring_8h_source.html | 142 ++ .../html/mapadapter_8h_source.html | 182 ++ .../html/mapcontrol_8h_source.html | 303 ++++ libs/QMapControl/html/maplayer_8h_source.html | 104 ++ .../html/mapnetwork_8h_source.html | 139 ++ .../html/mapviewer_8cpp-example.html | 97 ++ .../QMapControl/html/mapviewer_8h_source.html | 58 + .../html/multidemo_8cpp-example.html | 305 ++++ .../html/namespaceqmapcontrol.html | 136 ++ libs/QMapControl/html/namespaces.html | 61 + libs/QMapControl/html/nav_f.png | Bin 0 -> 153 bytes libs/QMapControl/html/nav_g.png | Bin 0 -> 95 bytes libs/QMapControl/html/nav_h.png | Bin 0 -> 98 bytes libs/QMapControl/html/open.png | Bin 0 -> 123 bytes .../html/openaerialmapadapter_8h_source.html | 101 ++ .../html/osmmapadapter_8h_source.html | 101 ++ libs/QMapControl/html/point_8h_source.html | 203 +++ .../html/qmapcontrol_8h_source.html | 46 + .../html/qmapcontrol__global_8h_source.html | 62 + libs/QMapControl/html/sample_citymap.png | Bin 0 -> 79852 bytes libs/QMapControl/html/sample_gps.png | Bin 0 -> 87768 bytes .../html/sample_linesandpoints.png | Bin 0 -> 169047 bytes libs/QMapControl/html/sample_mapviewer.png | Bin 0 -> 278839 bytes libs/QMapControl/html/sample_multidemo.png | Bin 0 -> 163282 bytes libs/QMapControl/html/sync_off.png | Bin 0 -> 853 bytes libs/QMapControl/html/sync_on.png | Bin 0 -> 845 bytes libs/QMapControl/html/tab_a.png | Bin 0 -> 142 bytes libs/QMapControl/html/tab_b.gif | Bin 0 -> 35 bytes libs/QMapControl/html/tab_b.png | Bin 0 -> 169 bytes libs/QMapControl/html/tab_h.png | Bin 0 -> 177 bytes libs/QMapControl/html/tab_l.gif | Bin 0 -> 706 bytes libs/QMapControl/html/tab_r.gif | Bin 0 -> 2585 bytes libs/QMapControl/html/tab_s.png | Bin 0 -> 184 bytes libs/QMapControl/html/tabs.css | 60 + .../html/tilemapadapter_8h_source.html | 120 ++ .../html/wmsmapadapter_8h_source.html | 121 ++ .../html/yahoomapadapter_8h_source.html | 109 ++ libs/QMapControl/images/sample_citymap.png | Bin 0 -> 79852 bytes libs/QMapControl/images/sample_gps.png | Bin 0 -> 87768 bytes .../images/sample_linesandpoints.png | Bin 0 -> 169047 bytes libs/QMapControl/images/sample_mapviewer.png | Bin 0 -> 278839 bytes libs/QMapControl/images/sample_multidemo.png | Bin 0 -> 163282 bytes libs/QMapControl/src/arrowpoint.cpp | 95 + libs/QMapControl/src/arrowpoint.h | 88 + libs/QMapControl/src/bingapimapadapter.cpp | 157 ++ libs/QMapControl/src/bingapimapadapter.h | 73 + libs/QMapControl/src/circlepoint.cpp | 71 + libs/QMapControl/src/circlepoint.h | 80 + libs/QMapControl/src/curve.cpp | 41 + libs/QMapControl/src/curve.h | 66 + libs/QMapControl/src/emptymapadapter.cpp | 125 ++ libs/QMapControl/src/emptymapadapter.h | 74 + libs/QMapControl/src/fixedimageoverlay.cpp | 66 + libs/QMapControl/src/fixedimageoverlay.h | 81 + libs/QMapControl/src/geometry.cpp | 87 + libs/QMapControl/src/geometry.h | 157 ++ libs/QMapControl/src/geometrylayer.cpp | 38 + libs/QMapControl/src/geometrylayer.h | 66 + libs/QMapControl/src/googleapimapadapter.cpp | 266 +++ libs/QMapControl/src/googleapimapadapter.h | 96 ++ libs/QMapControl/src/googlemapadapter.cpp | 52 + libs/QMapControl/src/googlemapadapter.h | 61 + libs/QMapControl/src/gps_position.cpp | 33 + libs/QMapControl/src/gps_position.h | 53 + libs/QMapControl/src/imagemanager.cpp | 183 ++ libs/QMapControl/src/imagemanager.h | 123 ++ libs/QMapControl/src/imagepoint.cpp | 49 + libs/QMapControl/src/imagepoint.h | 71 + libs/QMapControl/src/invisiblepoint.cpp | 52 + libs/QMapControl/src/invisiblepoint.h | 77 + libs/QMapControl/src/layer.cpp | 386 +++++ libs/QMapControl/src/layer.h | 221 +++ libs/QMapControl/src/layermanager.cpp | 602 +++++++ libs/QMapControl/src/layermanager.h | 257 +++ libs/QMapControl/src/linestring.cpp | 224 +++ libs/QMapControl/src/linestring.h | 127 ++ libs/QMapControl/src/mapadapter.cpp | 90 + libs/QMapControl/src/mapadapter.h | 178 ++ libs/QMapControl/src/mapcontrol.cpp | 607 +++++++ libs/QMapControl/src/mapcontrol.h | 437 +++++ libs/QMapControl/src/maplayer.cpp | 38 + libs/QMapControl/src/maplayer.h | 66 + libs/QMapControl/src/mapnetwork.cpp | 214 +++ libs/QMapControl/src/mapnetwork.h | 105 ++ libs/QMapControl/src/openaerialmapadapter.cpp | 37 + libs/QMapControl/src/openaerialmapadapter.h | 50 + libs/QMapControl/src/osmmapadapter.cpp | 37 + libs/QMapControl/src/osmmapadapter.h | 50 + libs/QMapControl/src/point.cpp | 372 ++++ libs/QMapControl/src/point.h | 228 +++ libs/QMapControl/src/qmapcontrol_global.h | 7 + libs/QMapControl/src/tilemapadapter.cpp | 189 ++ libs/QMapControl/src/tilemapadapter.h | 77 + libs/QMapControl/src/wmsmapadapter.cpp | 212 +++ libs/QMapControl/src/wmsmapadapter.h | 76 + 285 files changed, 39311 insertions(+) create mode 100644 libs/QMapControl/COPYING create mode 100644 libs/QMapControl/COPYING.LESSER create mode 100644 libs/QMapControl/Doxyfile create mode 100644 libs/QMapControl/QMapControl.pri create mode 100644 libs/QMapControl/QMapControl.tag create mode 100644 libs/QMapControl/Samples/Citymap/Citymap.pro create mode 100644 libs/QMapControl/Samples/Citymap/Readme create mode 100644 libs/QMapControl/Samples/Citymap/citymap.kdevelop create mode 100644 libs/QMapControl/Samples/Citymap/src/citymap.cpp create mode 100644 libs/QMapControl/Samples/Citymap/src/citymap.h create mode 100644 libs/QMapControl/Samples/Citymap/src/dialogs.cpp create mode 100644 libs/QMapControl/Samples/Citymap/src/dialogs.h create mode 100644 libs/QMapControl/Samples/Citymap/src/main.cpp create mode 100644 libs/QMapControl/Samples/GPS/GPS.kdevelop create mode 100644 libs/QMapControl/Samples/GPS/GPS.pro create mode 100644 libs/QMapControl/Samples/GPS/Readme create mode 100644 libs/QMapControl/Samples/GPS/src/gps.cpp create mode 100644 libs/QMapControl/Samples/GPS/src/gps.h create mode 100644 libs/QMapControl/Samples/GPS/src/gps_neo.cpp create mode 100644 libs/QMapControl/Samples/GPS/src/gps_neo.h create mode 100644 libs/QMapControl/Samples/GPS/src/gps_simulation.cpp create mode 100644 libs/QMapControl/Samples/GPS/src/gps_simulation.h create mode 100644 libs/QMapControl/Samples/GPS/src/main.cpp create mode 100644 libs/QMapControl/Samples/LinesAndPoints/LinesAndPoints.kdevelop create mode 100644 libs/QMapControl/Samples/LinesAndPoints/LinesAndPoints.kdevses create mode 100644 libs/QMapControl/Samples/LinesAndPoints/LinesAndPoints.pro create mode 100644 libs/QMapControl/Samples/LinesAndPoints/Readme create mode 100644 libs/QMapControl/Samples/LinesAndPoints/src/linesandpoints.cpp create mode 100644 libs/QMapControl/Samples/LinesAndPoints/src/linesandpoints.h create mode 100644 libs/QMapControl/Samples/LinesAndPoints/src/main.cpp create mode 100644 libs/QMapControl/Samples/Mapview_FixedOverlayOnEmptyMap/Mapviewer.kdevelop create mode 100644 libs/QMapControl/Samples/Mapview_FixedOverlayOnEmptyMap/Mapviewer.pro create mode 100644 libs/QMapControl/Samples/Mapview_FixedOverlayOnEmptyMap/bin/sample.png create mode 100644 libs/QMapControl/Samples/Mapview_FixedOverlayOnEmptyMap/src/main.cpp create mode 100644 libs/QMapControl/Samples/Mapview_FixedOverlayOnEmptyMap/src/mapviewer.cpp create mode 100644 libs/QMapControl/Samples/Mapview_FixedOverlayOnEmptyMap/src/mapviewer.h create mode 100644 libs/QMapControl/Samples/Mapviewer/Mapviewer.kdevelop create mode 100644 libs/QMapControl/Samples/Mapviewer/Mapviewer.pro create mode 100644 libs/QMapControl/Samples/Mapviewer/Readme create mode 100644 libs/QMapControl/Samples/Mapviewer/src/main.cpp create mode 100644 libs/QMapControl/Samples/Mapviewer/src/mapviewer.cpp create mode 100644 libs/QMapControl/Samples/Mapviewer/src/mapviewer.h create mode 100644 libs/QMapControl/Samples/Multidemo/Multidemo.kdevelop create mode 100644 libs/QMapControl/Samples/Multidemo/Multidemo.pro create mode 100644 libs/QMapControl/Samples/Multidemo/Readme create mode 100644 libs/QMapControl/Samples/Multidemo/src/gps_modul.cpp create mode 100644 libs/QMapControl/Samples/Multidemo/src/gps_modul.h create mode 100644 libs/QMapControl/Samples/Multidemo/src/main.cpp create mode 100644 libs/QMapControl/Samples/Multidemo/src/multidemo.cpp create mode 100644 libs/QMapControl/Samples/Multidemo/src/multidemo.h create mode 100644 libs/QMapControl/Samples/Phonebook/phonebook.kdevelop create mode 100644 libs/QMapControl/Samples/Phonebook/phonebook.pro create mode 100644 libs/QMapControl/Samples/Phonebook/src/main.cpp create mode 100644 libs/QMapControl/Samples/Phonebook/src/phonebook.cpp create mode 100644 libs/QMapControl/Samples/Phonebook/src/phonebook.h create mode 100644 libs/QMapControl/Samples/Samples.pro create mode 100644 libs/QMapControl/Samples/bin/images/180-dom.jpg create mode 100644 libs/QMapControl/Samples/bin/images/180-lm.jpg create mode 100644 libs/QMapControl/Samples/bin/images/180-quintin.jpg create mode 100644 libs/QMapControl/Samples/bin/images/180-rgzm.jpg create mode 100644 libs/QMapControl/Samples/bin/images/180-stephan.jpg create mode 100644 libs/QMapControl/Samples/bin/images/bus_stop.png create mode 100644 libs/QMapControl/Samples/bin/images/flag.png create mode 100644 libs/QMapControl/Samples/bin/images/marker1.png create mode 100644 libs/QMapControl/Samples/bin/images/marker2.png create mode 100644 libs/QMapControl/Samples/bin/images/marker3.png create mode 100644 libs/QMapControl/Samples/bin/images/note.png create mode 100644 libs/QMapControl/Samples/bin/images/pub.png create mode 100644 libs/QMapControl/html/annotated.html create mode 100644 libs/QMapControl/html/arrowpoint_8h_source.html create mode 100644 libs/QMapControl/html/bc_s.png create mode 100644 libs/QMapControl/html/bdwn.png create mode 100644 libs/QMapControl/html/circlepoint_8h_source.html create mode 100644 libs/QMapControl/html/citymap_8cpp-example.html create mode 100644 libs/QMapControl/html/classQObject.html create mode 100644 libs/QMapControl/html/classQObject.png create mode 100644 libs/QMapControl/html/classQWidget.html create mode 100644 libs/QMapControl/html/classQWidget.png create mode 100644 libs/QMapControl/html/classes.html create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1ArrowPoint-members.html create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1ArrowPoint.html create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1ArrowPoint.png create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1CirclePoint-members.html create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1CirclePoint.html create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1CirclePoint.png create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1Curve-members.html create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1Curve.html create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1Curve.png create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1EmptyMapAdapter-members.html create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1EmptyMapAdapter.html create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1EmptyMapAdapter.png create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1FixedImageOverlay-members.html create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1FixedImageOverlay.html create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1FixedImageOverlay.png create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1Geometry-members.html create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1Geometry.html create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1Geometry.png create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1GeometryLayer-members.html create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1GeometryLayer.html create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1GeometryLayer.png create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1GoogleMapAdapter-members.html create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1GoogleMapAdapter.html create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1GoogleMapAdapter.png create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1GoogleSatMapAdapter-members.html create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1GoogleSatMapAdapter.html create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1GoogleSatMapAdapter.png create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1ImagePoint-members.html create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1ImagePoint.html create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1ImagePoint.png create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1InvisiblePoint-members.html create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1InvisiblePoint.html create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1InvisiblePoint.png create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1Layer-members.html create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1Layer.html create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1Layer.png create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1LineString-members.html create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1LineString.html create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1LineString.png create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1MapAdapter-members.html create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1MapAdapter.html create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1MapAdapter.png create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1MapControl-members.html create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1MapControl.html create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1MapControl.png create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1MapLayer-members.html create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1MapLayer.html create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1MapLayer.png create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1MapNetwork-members.html create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1MapNetwork.html create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1MapNetwork.png create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1OSMMapAdapter-members.html create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1OSMMapAdapter.html create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1OSMMapAdapter.png create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1OpenAerialMapAdapter-members.html create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1OpenAerialMapAdapter.html create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1OpenAerialMapAdapter.png create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1Point-members.html create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1Point.html create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1Point.png create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1TileMapAdapter-members.html create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1TileMapAdapter.html create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1TileMapAdapter.png create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1WMSMapAdapter-members.html create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1WMSMapAdapter.html create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1WMSMapAdapter.png create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1YahooMapAdapter-members.html create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1YahooMapAdapter.html create mode 100644 libs/QMapControl/html/classqmapcontrol_1_1YahooMapAdapter.png create mode 100644 libs/QMapControl/html/closed.png create mode 100644 libs/QMapControl/html/curve_8h_source.html create mode 100644 libs/QMapControl/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html create mode 100644 libs/QMapControl/html/doxygen.css create mode 100644 libs/QMapControl/html/doxygen.png create mode 100644 libs/QMapControl/html/dynsections.js create mode 100644 libs/QMapControl/html/emptymapadapter_8h_source.html create mode 100644 libs/QMapControl/html/examples.html create mode 100644 libs/QMapControl/html/files.html create mode 100644 libs/QMapControl/html/fixedimageoverlay_8h_source.html create mode 100644 libs/QMapControl/html/ftv2blank.png create mode 100644 libs/QMapControl/html/ftv2doc.png create mode 100644 libs/QMapControl/html/ftv2folderclosed.png create mode 100644 libs/QMapControl/html/ftv2folderopen.png create mode 100644 libs/QMapControl/html/ftv2lastnode.png create mode 100644 libs/QMapControl/html/ftv2link.png create mode 100644 libs/QMapControl/html/ftv2mlastnode.png create mode 100644 libs/QMapControl/html/ftv2mnode.png create mode 100644 libs/QMapControl/html/ftv2node.png create mode 100644 libs/QMapControl/html/ftv2plastnode.png create mode 100644 libs/QMapControl/html/ftv2pnode.png create mode 100644 libs/QMapControl/html/ftv2splitbar.png create mode 100644 libs/QMapControl/html/ftv2vertline.png create mode 100644 libs/QMapControl/html/functions.html create mode 100644 libs/QMapControl/html/functions_enum.html create mode 100644 libs/QMapControl/html/functions_eval.html create mode 100644 libs/QMapControl/html/functions_func.html create mode 100644 libs/QMapControl/html/geometry_8h_source.html create mode 100644 libs/QMapControl/html/geometrylayer_8h_source.html create mode 100644 libs/QMapControl/html/googlemapadapter_8h_source.html create mode 100644 libs/QMapControl/html/googlesatmapadapter_8h_source.html create mode 100644 libs/QMapControl/html/gps_8cpp-example.html create mode 100644 libs/QMapControl/html/gps_8h_source.html create mode 100644 libs/QMapControl/html/gps__position_8h_source.html create mode 100644 libs/QMapControl/html/hierarchy.html create mode 100644 libs/QMapControl/html/imagepoint_8h_source.html create mode 100644 libs/QMapControl/html/index.html create mode 100644 libs/QMapControl/html/invisiblepoint_8h_source.html create mode 100644 libs/QMapControl/html/jquery.js create mode 100644 libs/QMapControl/html/layer_8h_source.html create mode 100644 libs/QMapControl/html/linesandpoints_8cpp-example.html create mode 100644 libs/QMapControl/html/linestring_8h_source.html create mode 100644 libs/QMapControl/html/mapadapter_8h_source.html create mode 100644 libs/QMapControl/html/mapcontrol_8h_source.html create mode 100644 libs/QMapControl/html/maplayer_8h_source.html create mode 100644 libs/QMapControl/html/mapnetwork_8h_source.html create mode 100644 libs/QMapControl/html/mapviewer_8cpp-example.html create mode 100644 libs/QMapControl/html/mapviewer_8h_source.html create mode 100644 libs/QMapControl/html/multidemo_8cpp-example.html create mode 100644 libs/QMapControl/html/namespaceqmapcontrol.html create mode 100644 libs/QMapControl/html/namespaces.html create mode 100644 libs/QMapControl/html/nav_f.png create mode 100644 libs/QMapControl/html/nav_g.png create mode 100644 libs/QMapControl/html/nav_h.png create mode 100644 libs/QMapControl/html/open.png create mode 100644 libs/QMapControl/html/openaerialmapadapter_8h_source.html create mode 100644 libs/QMapControl/html/osmmapadapter_8h_source.html create mode 100644 libs/QMapControl/html/point_8h_source.html create mode 100644 libs/QMapControl/html/qmapcontrol_8h_source.html create mode 100644 libs/QMapControl/html/qmapcontrol__global_8h_source.html create mode 100644 libs/QMapControl/html/sample_citymap.png create mode 100644 libs/QMapControl/html/sample_gps.png create mode 100644 libs/QMapControl/html/sample_linesandpoints.png create mode 100644 libs/QMapControl/html/sample_mapviewer.png create mode 100644 libs/QMapControl/html/sample_multidemo.png create mode 100644 libs/QMapControl/html/sync_off.png create mode 100644 libs/QMapControl/html/sync_on.png create mode 100644 libs/QMapControl/html/tab_a.png create mode 100644 libs/QMapControl/html/tab_b.gif create mode 100644 libs/QMapControl/html/tab_b.png create mode 100644 libs/QMapControl/html/tab_h.png create mode 100644 libs/QMapControl/html/tab_l.gif create mode 100644 libs/QMapControl/html/tab_r.gif create mode 100644 libs/QMapControl/html/tab_s.png create mode 100644 libs/QMapControl/html/tabs.css create mode 100644 libs/QMapControl/html/tilemapadapter_8h_source.html create mode 100644 libs/QMapControl/html/wmsmapadapter_8h_source.html create mode 100644 libs/QMapControl/html/yahoomapadapter_8h_source.html create mode 100755 libs/QMapControl/images/sample_citymap.png create mode 100644 libs/QMapControl/images/sample_gps.png create mode 100644 libs/QMapControl/images/sample_linesandpoints.png create mode 100644 libs/QMapControl/images/sample_mapviewer.png create mode 100644 libs/QMapControl/images/sample_multidemo.png create mode 100644 libs/QMapControl/src/arrowpoint.cpp create mode 100644 libs/QMapControl/src/arrowpoint.h create mode 100644 libs/QMapControl/src/bingapimapadapter.cpp create mode 100644 libs/QMapControl/src/bingapimapadapter.h create mode 100644 libs/QMapControl/src/circlepoint.cpp create mode 100644 libs/QMapControl/src/circlepoint.h create mode 100644 libs/QMapControl/src/curve.cpp create mode 100644 libs/QMapControl/src/curve.h create mode 100644 libs/QMapControl/src/emptymapadapter.cpp create mode 100644 libs/QMapControl/src/emptymapadapter.h create mode 100644 libs/QMapControl/src/fixedimageoverlay.cpp create mode 100644 libs/QMapControl/src/fixedimageoverlay.h create mode 100644 libs/QMapControl/src/geometry.cpp create mode 100644 libs/QMapControl/src/geometry.h create mode 100644 libs/QMapControl/src/geometrylayer.cpp create mode 100644 libs/QMapControl/src/geometrylayer.h create mode 100644 libs/QMapControl/src/googleapimapadapter.cpp create mode 100644 libs/QMapControl/src/googleapimapadapter.h create mode 100644 libs/QMapControl/src/googlemapadapter.cpp create mode 100644 libs/QMapControl/src/googlemapadapter.h create mode 100644 libs/QMapControl/src/gps_position.cpp create mode 100644 libs/QMapControl/src/gps_position.h create mode 100644 libs/QMapControl/src/imagemanager.cpp create mode 100644 libs/QMapControl/src/imagemanager.h create mode 100644 libs/QMapControl/src/imagepoint.cpp create mode 100644 libs/QMapControl/src/imagepoint.h create mode 100644 libs/QMapControl/src/invisiblepoint.cpp create mode 100644 libs/QMapControl/src/invisiblepoint.h create mode 100644 libs/QMapControl/src/layer.cpp create mode 100644 libs/QMapControl/src/layer.h create mode 100644 libs/QMapControl/src/layermanager.cpp create mode 100644 libs/QMapControl/src/layermanager.h create mode 100644 libs/QMapControl/src/linestring.cpp create mode 100644 libs/QMapControl/src/linestring.h create mode 100644 libs/QMapControl/src/mapadapter.cpp create mode 100644 libs/QMapControl/src/mapadapter.h create mode 100644 libs/QMapControl/src/mapcontrol.cpp create mode 100644 libs/QMapControl/src/mapcontrol.h create mode 100644 libs/QMapControl/src/maplayer.cpp create mode 100644 libs/QMapControl/src/maplayer.h create mode 100644 libs/QMapControl/src/mapnetwork.cpp create mode 100644 libs/QMapControl/src/mapnetwork.h create mode 100644 libs/QMapControl/src/openaerialmapadapter.cpp create mode 100644 libs/QMapControl/src/openaerialmapadapter.h create mode 100644 libs/QMapControl/src/osmmapadapter.cpp create mode 100644 libs/QMapControl/src/osmmapadapter.h create mode 100644 libs/QMapControl/src/point.cpp create mode 100644 libs/QMapControl/src/point.h create mode 100644 libs/QMapControl/src/qmapcontrol_global.h create mode 100644 libs/QMapControl/src/tilemapadapter.cpp create mode 100644 libs/QMapControl/src/tilemapadapter.h create mode 100644 libs/QMapControl/src/wmsmapadapter.cpp create mode 100644 libs/QMapControl/src/wmsmapadapter.h diff --git a/libs/Libraries.pri b/libs/Libraries.pri index c644690c..9a5494c9 100644 --- a/libs/Libraries.pri +++ b/libs/Libraries.pri @@ -39,6 +39,7 @@ INCLUDEPATH += $$PWD include($$PWD/qwt/qwt.pri) include($$PWD/qtcsv/qtcsv.pri) include($$PWD/qmqtt/qmqtt.pri) +include($$PWD/QMapControl/QMapControl.pri) include($$PWD/QRealFourier/QRealFourier.pri) include($$PWD/QSimpleUpdater/QSimpleUpdater.pri) diff --git a/libs/QMapControl/COPYING b/libs/QMapControl/COPYING new file mode 100644 index 00000000..5b6e7c66 --- /dev/null +++ b/libs/QMapControl/COPYING @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/libs/QMapControl/COPYING.LESSER b/libs/QMapControl/COPYING.LESSER new file mode 100644 index 00000000..853047cf --- /dev/null +++ b/libs/QMapControl/COPYING.LESSER @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/libs/QMapControl/Doxyfile b/libs/QMapControl/Doxyfile new file mode 100644 index 00000000..9266916d --- /dev/null +++ b/libs/QMapControl/Doxyfile @@ -0,0 +1,1528 @@ +# Doxyfile 1.5.9 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project +# +# All text after a hash (#) is considered a comment and will be ignored +# The format is: +# TAG = value [value, ...] +# For lists items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (" ") + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# This tag specifies the encoding used for all characters in the config file +# that follow. The default is UTF-8 which is also the encoding used for all +# text before the first occurrence of this tag. Doxygen uses libiconv (or the +# iconv built into libc) for the transcoding. See +# http://www.gnu.org/software/libiconv for the list of possible encodings. + +DOXYFILE_ENCODING = UTF-8 + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded +# by quotes) that should identify the project. + +PROJECT_NAME = QMapControl + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. +# This could be handy for archiving the generated documentation or +# if some version control system is used. + +PROJECT_NUMBER = 0.9.7.4 + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) +# base path where the generated documentation will be put. +# If a relative path is entered, it will be relative to the location +# where doxygen was started. If left blank the current directory will be used. + +OUTPUT_DIRECTORY = + +# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create +# 4096 sub-directories (in 2 levels) under the output directory of each output +# format and will distribute the generated files over these directories. +# Enabling this option can be useful when feeding doxygen a huge amount of +# source files, where putting all generated files in the same directory would +# otherwise cause performance problems for the file system. + +CREATE_SUBDIRS = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# The default language is English, other supported languages are: +# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, +# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, +# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English +# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, +# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak, +# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. + +OUTPUT_LANGUAGE = English + +# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will +# include brief member descriptions after the members that are listed in +# the file and class documentation (similar to JavaDoc). +# Set to NO to disable this. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend +# the brief description of a member or function before the detailed description. +# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. + +REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator +# that is used to form the text in various listings. Each string +# in this list, if found as the leading text of the brief description, will be +# stripped from the text and the result after processing the whole list, is +# used as the annotated text. Otherwise, the brief description is used as-is. +# If left blank, the following values are used ("$name" is automatically +# replaced with the name of the entity): "The $name class" "The $name widget" +# "The $name file" "is" "provides" "specifies" "contains" +# "represents" "a" "an" "the" + +ABBREVIATE_BRIEF = "The $name class" \ + "The $name widget" \ + "The $name file" \ + is \ + provides \ + specifies \ + contains \ + represents \ + a \ + an \ + the + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# Doxygen will generate a detailed section even if there is only a brief +# description. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# inherited members of a class in the documentation of that class as if those +# members were ordinary class members. Constructors, destructors and assignment +# operators of the base classes will not be shown. + +INLINE_INHERITED_MEMB = YES + +# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full +# path before files name in the file list and in the header files. If set +# to NO the shortest path that makes the file name unique will be used. + +FULL_PATH_NAMES = NO + +# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag +# can be used to strip a user-defined part of the path. Stripping is +# only done if one of the specified strings matches the left-hand part of +# the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the +# path to strip. + +STRIP_FROM_PATH = . + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of +# the path mentioned in the documentation of a class, which tells +# the reader which header file to include in order to use a class. +# If left blank only the name of the header file containing the class +# definition is used. Otherwise one should specify the include paths that +# are normally passed to the compiler using the -I flag. + +STRIP_FROM_INC_PATH = + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter +# (but less readable) file names. This can be useful is your file systems +# doesn't support long names like on DOS, Mac, or CD-ROM. + +SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen +# will interpret the first line (until the first dot) of a JavaDoc-style +# comment as the brief description. If set to NO, the JavaDoc +# comments will behave just like regular Qt-style comments +# (thus requiring an explicit @brief command for a brief description.) + +JAVADOC_AUTOBRIEF = NO + +# If the QT_AUTOBRIEF tag is set to YES then Doxygen will +# interpret the first line (until the first dot) of a Qt-style +# comment as the brief description. If set to NO, the comments +# will behave just like regular Qt-style comments (thus requiring +# an explicit \brief command for a brief description.) + +QT_AUTOBRIEF = NO + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen +# treat a multi-line C++ special comment block (i.e. a block of //! or /// +# comments) as a brief description. This used to be the default behaviour. +# The new default is to treat a multi-line C++ comment block as a detailed +# description. Set this tag to YES if you prefer the old behaviour instead. + +MULTILINE_CPP_IS_BRIEF = NO + +# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented +# member inherits the documentation from any documented member that it +# re-implements. + +INHERIT_DOCS = YES + +# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce +# a new page for each member. If set to NO, the documentation of a member will +# be part of the file/class/namespace that contains it. + +SEPARATE_MEMBER_PAGES = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. +# Doxygen uses this value to replace tabs by spaces in code fragments. + +TAB_SIZE = 8 + +# This tag can be used to specify a number of aliases that acts +# as commands in the documentation. An alias has the form "name=value". +# For example adding "sideeffect=\par Side Effects:\n" will allow you to +# put the command \sideeffect (or @sideeffect) in the documentation, which +# will result in a user-defined paragraph with heading "Side Effects:". +# You can put \n's in the value part of an alias to insert newlines. + +ALIASES = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C +# sources only. Doxygen will then generate output that is more tailored for C. +# For instance, some of the names that are used will be different. The list +# of all members will be omitted, etc. + +OPTIMIZE_OUTPUT_FOR_C = NO + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java +# sources only. Doxygen will then generate output that is more tailored for +# Java. For instance, namespaces will be presented as packages, qualified +# scopes will look different, etc. + +OPTIMIZE_OUTPUT_JAVA = NO + +# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran +# sources only. Doxygen will then generate output that is more tailored for +# Fortran. + +OPTIMIZE_FOR_FORTRAN = NO + +# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL +# sources. Doxygen will then generate output that is tailored for +# VHDL. + +OPTIMIZE_OUTPUT_VHDL = NO + +# Doxygen selects the parser to use depending on the extension of the files it parses. +# With this tag you can assign which parser to use for a given extension. +# Doxygen has a built-in mapping, but you can override or extend it using this tag. +# The format is ext=language, where ext is a file extension, and language is one of +# the parsers supported by doxygen: IDL, Java, Javascript, C#, C, C++, D, PHP, +# Objective-C, Python, Fortran, VHDL, C, C++. For instance to make doxygen treat +# .inc files as Fortran files (default is PHP), and .f files as C (default is Fortran), +# use: inc=Fortran f=C. Note that for custom extensions you also need to set +# FILE_PATTERNS otherwise the files are not read by doxygen. + +EXTENSION_MAPPING = + +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want +# to include (a tag file for) the STL sources as input, then you should +# set this tag to YES in order to let doxygen match functions declarations and +# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. +# func(std::string) {}). This also make the inheritance and collaboration +# diagrams that involve STL classes more complete and accurate. + +BUILTIN_STL_SUPPORT = NO + +# If you use Microsoft's C++/CLI language, you should set this option to YES to +# enable parsing support. + +CPP_CLI_SUPPORT = NO + +# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. +# Doxygen will parse them like normal C++ but will assume all classes use public +# instead of private inheritance when no explicit protection keyword is present. + +SIP_SUPPORT = NO + +# For Microsoft's IDL there are propget and propput attributes to indicate getter +# and setter methods for a property. Setting this option to YES (the default) +# will make doxygen to replace the get and set methods by a property in the +# documentation. This will only work if the methods are indeed getting or +# setting a simple type. If this is not the case, or you want to show the +# methods anyway, you should set this option to NO. + +IDL_PROPERTY_SUPPORT = YES + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES, then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. + +DISTRIBUTE_GROUP_DOC = NO + +# Set the SUBGROUPING tag to YES (the default) to allow class member groups of +# the same type (for instance a group of public functions) to be put as a +# subgroup of that type (e.g. under the Public Functions section). Set it to +# NO to prevent subgrouping. Alternatively, this can be done per class using +# the \nosubgrouping command. + +SUBGROUPING = YES + +# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum +# is documented as struct, union, or enum with the name of the typedef. So +# typedef struct TypeS {} TypeT, will appear in the documentation as a struct +# with name TypeT. When disabled the typedef will appear as a member of a file, +# namespace, or class. And the struct will be named TypeS. This can typically +# be useful for C code in case the coding convention dictates that all compound +# types are typedef'ed and only the typedef is referenced, never the tag name. + +TYPEDEF_HIDES_STRUCT = NO + +# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to +# determine which symbols to keep in memory and which to flush to disk. +# When the cache is full, less often used symbols will be written to disk. +# For small to medium size projects (<1000 input files) the default value is +# probably good enough. For larger projects a too small cache size can cause +# doxygen to be busy swapping symbols to and from disk most of the time +# causing a significant performance penality. +# If the system has enough physical memory increasing the cache will improve the +# performance by keeping more symbols in memory. Note that the value works on +# a logarithmic scale so increasing the size by one will rougly double the +# memory usage. The cache size is given by this formula: +# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, +# corresponding to a cache size of 2^16 = 65536 symbols + +SYMBOL_CACHE_SIZE = 0 + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in +# documentation are documented, even if no documentation was available. +# Private class members and static file members will be hidden unless +# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES + +EXTRACT_ALL = NO + +# If the EXTRACT_PRIVATE tag is set to YES all private members of a class +# will be included in the documentation. + +EXTRACT_PRIVATE = NO + +# If the EXTRACT_STATIC tag is set to YES all static members of a file +# will be included in the documentation. + +EXTRACT_STATIC = NO + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) +# defined locally in source files will be included in the documentation. +# If set to NO only classes defined in header files are included. + +EXTRACT_LOCAL_CLASSES = YES + +# This flag is only useful for Objective-C code. When set to YES local +# methods, which are defined in the implementation section but not in +# the interface are included in the documentation. +# If set to NO (the default) only methods in the interface are included. + +EXTRACT_LOCAL_METHODS = NO + +# If this flag is set to YES, the members of anonymous namespaces will be +# extracted and appear in the documentation as a namespace called +# 'anonymous_namespace{file}', where file will be replaced with the base +# name of the file that contains the anonymous namespace. By default +# anonymous namespace are hidden. + +EXTRACT_ANON_NSPACES = NO + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all +# undocumented members of documented classes, files or namespaces. +# If set to NO (the default) these members will be included in the +# various overviews, but no documentation section is generated. +# This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_MEMBERS = YES + +# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. +# If set to NO (the default) these classes will be included in the various +# overviews. This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_CLASSES = NO + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all +# friend (class|struct|union) declarations. +# If set to NO (the default) these declarations will be included in the +# documentation. + +HIDE_FRIEND_COMPOUNDS = YES + +# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any +# documentation blocks found inside the body of a function. +# If set to NO (the default) these blocks will be appended to the +# function's detailed documentation block. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation +# that is typed after a \internal command is included. If the tag is set +# to NO (the default) then the documentation will be excluded. +# Set it to YES to include the internal documentation. + +INTERNAL_DOCS = NO + +# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate +# file names in lower-case letters. If set to YES upper-case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# and Mac users are advised to set this option to NO. + +CASE_SENSE_NAMES = YES + +# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen +# will show members with their full class and namespace scopes in the +# documentation. If set to YES the scope will be hidden. + +HIDE_SCOPE_NAMES = YES + +# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen +# will put a list of the files that are included by a file in the documentation +# of that file. + +SHOW_INCLUDE_FILES = YES + +# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] +# is inserted in the documentation for inline members. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen +# will sort the (detailed) documentation of file and class members +# alphabetically by member name. If set to NO the members will appear in +# declaration order. + +SORT_MEMBER_DOCS = YES + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the +# brief documentation of file, namespace and class members alphabetically +# by member name. If set to NO (the default) the members will appear in +# declaration order. + +SORT_BRIEF_DOCS = YES + +# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the +# hierarchy of group names into alphabetical order. If set to NO (the default) +# the group names will appear in their defined order. + +SORT_GROUP_NAMES = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be +# sorted by fully-qualified names, including namespaces. If set to +# NO (the default), the class list will be sorted only by class name, +# not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the +# alphabetical list. + +SORT_BY_SCOPE_NAME = NO + +# The GENERATE_TODOLIST tag can be used to enable (YES) or +# disable (NO) the todo list. This list is created by putting \todo +# commands in the documentation. + +GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or +# disable (NO) the test list. This list is created by putting \test +# commands in the documentation. + +GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or +# disable (NO) the bug list. This list is created by putting \bug +# commands in the documentation. + +GENERATE_BUGLIST = YES + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or +# disable (NO) the deprecated list. This list is created by putting +# \deprecated commands in the documentation. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional +# documentation sections, marked by \if sectionname ... \endif. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines +# the initial value of a variable or define consists of for it to appear in +# the documentation. If the initializer consists of more lines than specified +# here it will be hidden. Use a value of 0 to hide initializers completely. +# The appearance of the initializer of individual variables and defines in the +# documentation can be controlled using \showinitializer or \hideinitializer +# command in the documentation regardless of this setting. + +MAX_INITIALIZER_LINES = 26 + +# If the sources in your project are distributed over multiple directories +# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy +# in the documentation. The default is NO. + +SHOW_DIRECTORIES = NO + +# Set the SHOW_FILES tag to NO to disable the generation of the Files page. +# This will remove the Files entry from the Quick Index and from the +# Folder Tree View (if specified). The default is YES. + +SHOW_FILES = NO + +# Set the SHOW_NAMESPACES tag to NO to disable the generation of the +# Namespaces page. This will remove the Namespaces entry from the Quick Index +# and from the Folder Tree View (if specified). The default is YES. + +SHOW_NAMESPACES = YES + +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# doxygen should invoke to get the current version for each file (typically from +# the version control system). Doxygen will invoke the program by executing (via +# popen()) the command , where is the value of +# the FILE_VERSION_FILTER tag, and is the name of an input file +# provided by doxygen. Whatever the program writes to standard output +# is used as the file version. See the manual for examples. + +FILE_VERSION_FILTER = + +# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed by +# doxygen. The layout file controls the global structure of the generated output files +# in an output format independent way. The create the layout file that represents +# doxygen's defaults, run doxygen with the -l option. You can optionally specify a +# file name after the option, if omitted DoxygenLayout.xml will be used as the name +# of the layout file. + +LAYOUT_FILE = + +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated +# by doxygen. Possible values are YES and NO. If left blank NO is used. + +QUIET = NO + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated by doxygen. Possible values are YES and NO. If left blank +# NO is used. + +WARNINGS = YES + +# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings +# for undocumented members. If EXTRACT_ALL is set to YES then this flag will +# automatically be disabled. + +WARN_IF_UNDOCUMENTED = NO + +# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some +# parameters in a documented function, or documenting parameters that +# don't exist or using markup commands wrongly. + +WARN_IF_DOC_ERROR = YES + +# This WARN_NO_PARAMDOC option can be abled to get warnings for +# functions that are documented, but have no documentation for their parameters +# or return value. If set to NO (the default) doxygen will only warn about +# wrong or incomplete parameter documentation, but not about the absence of +# documentation. + +WARN_NO_PARAMDOC = NO + +# The WARN_FORMAT tag determines the format of the warning messages that +# doxygen can produce. The string should contain the $file, $line, and $text +# tags, which will be replaced by the file and line number from which the +# warning originated and the warning text. Optionally the format may contain +# $version, which will be replaced by the version of the file (if it could +# be obtained via FILE_VERSION_FILTER) + +WARN_FORMAT = "$file:$line: $text" + +# The WARN_LOGFILE tag can be used to specify a file to which warning +# and error messages should be written. If left blank the output is written +# to stderr. + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag can be used to specify the files and/or directories that contain +# documented source files. You may enter file names like "myfile.cpp" or +# directories like "/usr/src/myproject". Separate the files or directories +# with spaces. + +INPUT = . + +# This tag can be used to specify the character encoding of the source files +# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is +# also the default input encoding. Doxygen uses libiconv (or the iconv built +# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for +# the list of possible encodings. + +INPUT_ENCODING = UTF-8 + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank the following patterns are tested: +# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx +# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90 + +FILE_PATTERNS = *.cpp \ + *.h + +# The RECURSIVE tag can be used to turn specify whether or not subdirectories +# should be searched for input files as well. Possible values are YES and NO. +# If left blank NO is used. + +RECURSIVE = YES + +# The EXCLUDE tag can be used to specify files and/or directories that should +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. + +EXCLUDE = ./src/layermanager.cpp \ + ./src/layermanager.h \ + ./src/imagemanager.h \ + ./Samples/Mapviewer/src/mapviewer.h \ + ./Samples/Multidemo/src/gps_modul.cpp \ + ./Samples/Multidemo/src/gps_modul.h \ + ./Samples/Multidemo/src/multidemo.h \ + ./Samples/GPS/src/gps_neo.cpp \ + ./Samples/GPS/src/gps_neo.h \ + ./Samples/Citymap/src/citymap.h \ + ./Samples/Citymap/src/dialogs.h \ + ./Samples/Citymap/src/dialogs.cpp \ + ./Samples/Phonebook/src/phonebook.h \ + ./Samples/LinesAndPoints/src/linesandpoints.h + +# The EXCLUDE_SYMLINKS tag can be used select whether or not files or +# directories that are symbolic links (a Unix filesystem feature) are excluded +# from the input. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. Note that the wildcards are matched +# against the file with absolute path, so to exclude all test directories +# for example use the pattern */test/* + +EXCLUDE_PATTERNS = + +# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names +# (namespaces, classes, functions, etc.) that should be excluded from the +# output. The symbol name can be a fully qualified name, a word, or if the +# wildcard * is used, a substring. Examples: ANamespace, AClass, +# AClass::ANamespace, ANamespace::*Test + +EXCLUDE_SYMBOLS = QDumper \ + GPS_Position + +# The EXAMPLE_PATH tag can be used to specify one or more files or +# directories that contain example code fragments that are included (see +# the \include command). + +EXAMPLE_PATH = ./Samples + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank all files are included. + +EXAMPLE_PATTERNS = * + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude +# commands irrespective of the value of the RECURSIVE tag. +# Possible values are YES and NO. If left blank NO is used. + +EXAMPLE_RECURSIVE = YES + +# The IMAGE_PATH tag can be used to specify one or more files or +# directories that contain image that are included in the documentation (see +# the \image command). + +IMAGE_PATH = ./images + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command , where +# is the value of the INPUT_FILTER tag, and is the name of an +# input file. Doxygen will then use the output that the filter program writes +# to standard output. If FILTER_PATTERNS is specified, this tag will be +# ignored. + +INPUT_FILTER = + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. The filters are a list of the form: +# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further +# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER +# is applied to all files. + +FILTER_PATTERNS = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will be used to filter the input files when producing source +# files to browse (i.e. when SOURCE_BROWSER is set to YES). + +FILTER_SOURCE_FILES = NO + +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will +# be generated. Documented entities will be cross-referenced with these sources. +# Note: To get rid of all source code in the generated output, make sure also +# VERBATIM_HEADERS is set to NO. + +SOURCE_BROWSER = NO + +# Setting the INLINE_SOURCES tag to YES will include the body +# of functions and classes directly in the documentation. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct +# doxygen to hide any special comment blocks from generated source code +# fragments. Normal C and C++ comments will always remain visible. + +STRIP_CODE_COMMENTS = YES + +# If the REFERENCED_BY_RELATION tag is set to YES +# then for each documented function all documented +# functions referencing it will be listed. + +REFERENCED_BY_RELATION = YES + +# If the REFERENCES_RELATION tag is set to YES +# then for each documented function all documented entities +# called/used by that function will be listed. + +REFERENCES_RELATION = YES + +# If the REFERENCES_LINK_SOURCE tag is set to YES (the default) +# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from +# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will +# link to the source code. Otherwise they will link to the documentation. + +REFERENCES_LINK_SOURCE = YES + +# If the USE_HTAGS tag is set to YES then the references to source code +# will point to the HTML generated by the htags(1) tool instead of doxygen +# built-in source browser. The htags tool is part of GNU's global source +# tagging system (see http://www.gnu.org/software/global/global.html). You +# will need version 4.8.6 or higher. + +USE_HTAGS = NO + +# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen +# will generate a verbatim copy of the header file for each class for +# which an include is specified. Set to NO to disable this. + +VERBATIM_HEADERS = YES + +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index +# of all compounds will be generated. Enable this if the project +# contains a lot of classes, structs, unions or interfaces. + +ALPHABETICAL_INDEX = NO + +# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then +# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns +# in which this list will be split (can be a number in the range [1..20]) + +COLS_IN_ALPHA_INDEX = 5 + +# In case all classes in a project start with a common prefix, all +# classes will be put under the same header in the alphabetical index. +# The IGNORE_PREFIX tag can be used to specify one or more prefixes that +# should be ignored while generating the index headers. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES (the default) Doxygen will +# generate HTML output. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `html' will be used as the default path. + +HTML_OUTPUT = html + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for +# each generated HTML page (for example: .htm,.php,.asp). If it is left blank +# doxygen will generate files with .html extension. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a personal HTML header for +# each generated HTML page. If it is left blank doxygen will generate a +# standard header. + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a personal HTML footer for +# each generated HTML page. If it is left blank doxygen will generate a +# standard footer. + +HTML_FOOTER = + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading +# style sheet that is used by each HTML page. It can be used to +# fine-tune the look of the HTML output. If the tag is left blank doxygen +# will generate a default style sheet. Note that doxygen will try to copy +# the style sheet file to the HTML output directory, so don't put your own +# stylesheet in the HTML output directory as well, or it will be erased! + +HTML_STYLESHEET = + +# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, +# files or namespaces will be aligned in HTML using tables. If set to +# NO a bullet list will be used. + +HTML_ALIGN_MEMBERS = YES + +# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML +# documentation will contain sections that can be hidden and shown after the +# page has loaded. For this to work a browser that supports +# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox +# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). + +HTML_DYNAMIC_SECTIONS = NO + +# If the GENERATE_DOCSET tag is set to YES, additional index files +# will be generated that can be used as input for Apple's Xcode 3 +# integrated development environment, introduced with OSX 10.5 (Leopard). +# To create a documentation set, doxygen will generate a Makefile in the +# HTML output directory. Running make will produce the docset in that +# directory and running "make install" will install the docset in +# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find +# it at startup. +# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html for more information. + +GENERATE_DOCSET = NO + +# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the +# feed. A documentation feed provides an umbrella under which multiple +# documentation sets from a single provider (such as a company or product suite) +# can be grouped. + +DOCSET_FEEDNAME = "Doxygen generated docs" + +# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that +# should uniquely identify the documentation set bundle. This should be a +# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen +# will append .docset to the name. + +DOCSET_BUNDLE_ID = org.doxygen.Project + +# If the GENERATE_HTMLHELP tag is set to YES, additional index files +# will be generated that can be used as input for tools like the +# Microsoft HTML help workshop to generate a compiled HTML help file (.chm) +# of the generated HTML documentation. + +GENERATE_HTMLHELP = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can +# be used to specify the file name of the resulting .chm file. You +# can add a path in front of the file if the result should not be +# written to the html output directory. + +CHM_FILE = + +# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can +# be used to specify the location (absolute path including file name) of +# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run +# the HTML help compiler on the generated index.hhp. + +HHC_LOCATION = + +# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag +# controls if a separate .chi index file is generated (YES) or that +# it should be included in the master .chm file (NO). + +GENERATE_CHI = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING +# is used to encode HtmlHelp index (hhk), content (hhc) and project file +# content. + +CHM_INDEX_ENCODING = + +# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag +# controls whether a binary table of contents is generated (YES) or a +# normal table of contents (NO) in the .chm file. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members +# to the contents of the HTML help documentation and to the tree view. + +TOC_EXPAND = NO + +# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and QHP_VIRTUAL_FOLDER +# are set, an additional index file will be generated that can be used as input for +# Qt's qhelpgenerator to generate a Qt Compressed Help (.qch) of the generated +# HTML documentation. + +GENERATE_QHP = NO + +# If the QHG_LOCATION tag is specified, the QCH_FILE tag can +# be used to specify the file name of the resulting .qch file. +# The path specified is relative to the HTML output folder. + +QCH_FILE = + +# The QHP_NAMESPACE tag specifies the namespace to use when generating +# Qt Help Project output. For more information please see +# http://doc.trolltech.com/qthelpproject.html#namespace + +QHP_NAMESPACE = + +# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating +# Qt Help Project output. For more information please see +# http://doc.trolltech.com/qthelpproject.html#virtual-folders + +QHP_VIRTUAL_FOLDER = doc + +# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to add. +# For more information please see +# http://doc.trolltech.com/qthelpproject.html#custom-filters + +QHP_CUST_FILTER_NAME = + +# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the custom filter to add.For more information please see +# Qt Help Project / Custom Filters. + +QHP_CUST_FILTER_ATTRS = + +# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this project's +# filter section matches. +# Qt Help Project / Filter Attributes. + +QHP_SECT_FILTER_ATTRS = + +# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can +# be used to specify the location of Qt's qhelpgenerator. +# If non-empty doxygen will try to run qhelpgenerator on the generated +# .qhp file. + +QHG_LOCATION = + +# The DISABLE_INDEX tag can be used to turn on/off the condensed index at +# top of each HTML page. The value NO (the default) enables the index and +# the value YES disables it. + +DISABLE_INDEX = NO + +# This tag can be used to set the number of enum values (range [1..20]) +# that doxygen will group on one line in the generated HTML documentation. + +ENUM_VALUES_PER_LINE = 4 + +# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index +# structure should be generated to display hierarchical information. +# If the tag value is set to FRAME, a side panel will be generated +# containing a tree-like index structure (just like the one that +# is generated for HTML Help). For this to work a browser that supports +# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, +# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are +# probably better off using the HTML help feature. Other possible values +# for this tag are: HIERARCHIES, which will generate the Groups, Directories, +# and Class Hierarchy pages using a tree view instead of an ordered list; +# ALL, which combines the behavior of FRAME and HIERARCHIES; and NONE, which +# disables this behavior completely. For backwards compatibility with previous +# releases of Doxygen, the values YES and NO are equivalent to FRAME and NONE +# respectively. + +GENERATE_TREEVIEW = NO + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be +# used to set the initial width (in pixels) of the frame in which the tree +# is shown. + +TREEVIEW_WIDTH = 250 + +# Use this tag to change the font size of Latex formulas included +# as images in the HTML documentation. The default is 10. Note that +# when you change the font size after a successful doxygen run you need +# to manually remove any form_*.png images from the HTML output directory +# to force them to be regenerated. + +FORMULA_FONTSIZE = 10 + +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- + +# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will +# generate Latex output. + +GENERATE_LATEX = NO + +# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `latex' will be used as the default path. + +LATEX_OUTPUT = latex + +# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be +# invoked. If left blank `latex' will be used as the default command name. + +LATEX_CMD_NAME = latex + +# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to +# generate index for LaTeX. If left blank `makeindex' will be used as the +# default command name. + +MAKEINDEX_CMD_NAME = makeindex + +# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact +# LaTeX documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_LATEX = NO + +# The PAPER_TYPE tag can be used to set the paper type that is used +# by the printer. Possible values are: a4, a4wide, letter, legal and +# executive. If left blank a4wide will be used. + +PAPER_TYPE = a4wide + +# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX +# packages that should be included in the LaTeX output. + +EXTRA_PACKAGES = + +# The LATEX_HEADER tag can be used to specify a personal LaTeX header for +# the generated latex document. The header should contain everything until +# the first chapter. If it is left blank doxygen will generate a +# standard header. Notice: only use this tag if you know what you are doing! + +LATEX_HEADER = + +# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated +# is prepared for conversion to pdf (using ps2pdf). The pdf file will +# contain links (just like the HTML output) instead of page references +# This makes the output suitable for online browsing using a pdf viewer. + +PDF_HYPERLINKS = NO + +# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of +# plain latex in the generated Makefile. Set this option to YES to get a +# higher quality PDF documentation. + +USE_PDFLATEX = NO + +# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. +# command to the generated LaTeX files. This will instruct LaTeX to keep +# running if errors occur, instead of asking the user for help. +# This option is also used when generating formulas in HTML. + +LATEX_BATCHMODE = NO + +# If LATEX_HIDE_INDICES is set to YES then doxygen will not +# include the index chapters (such as File Index, Compound Index, etc.) +# in the output. + +LATEX_HIDE_INDICES = NO + +# If LATEX_SOURCE_CODE is set to YES then doxygen will include +# source code with syntax highlighting in the LaTeX output. +# Note that which sources are shown also depends on other settings +# such as SOURCE_BROWSER. + +LATEX_SOURCE_CODE = NO + +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- + +# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output +# The RTF output is optimized for Word 97 and may not look very pretty with +# other RTF readers or editors. + +GENERATE_RTF = NO + +# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `rtf' will be used as the default path. + +RTF_OUTPUT = rtf + +# If the COMPACT_RTF tag is set to YES Doxygen generates more compact +# RTF documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_RTF = NO + +# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated +# will contain hyperlink fields. The RTF file will +# contain links (just like the HTML output) instead of page references. +# This makes the output suitable for online browsing using WORD or other +# programs which support those fields. +# Note: wordpad (write) and others do not support links. + +RTF_HYPERLINKS = NO + +# Load stylesheet definitions from file. Syntax is similar to doxygen's +# config file, i.e. a series of assignments. You only have to provide +# replacements, missing definitions are set to their default value. + +RTF_STYLESHEET_FILE = + +# Set optional variables used in the generation of an rtf document. +# Syntax is similar to doxygen's config file. + +RTF_EXTENSIONS_FILE = + +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- + +# If the GENERATE_MAN tag is set to YES (the default) Doxygen will +# generate man pages + +GENERATE_MAN = NO + +# The MAN_OUTPUT tag is used to specify where the man pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `man' will be used as the default path. + +MAN_OUTPUT = man + +# The MAN_EXTENSION tag determines the extension that is added to +# the generated man pages (default is the subroutine's section .3) + +MAN_EXTENSION = .3 + +# If the MAN_LINKS tag is set to YES and Doxygen generates man output, +# then it will generate one additional man file for each entity +# documented in the real man page(s). These additional files +# only source the real man page, but without them the man command +# would be unable to find the correct page. The default is NO. + +MAN_LINKS = NO + +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- + +# If the GENERATE_XML tag is set to YES Doxygen will +# generate an XML file that captures the structure of +# the code including all documentation. + +GENERATE_XML = NO + +# The XML_OUTPUT tag is used to specify where the XML pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `xml' will be used as the default path. + +XML_OUTPUT = xml + +# The XML_SCHEMA tag can be used to specify an XML schema, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_SCHEMA = + +# The XML_DTD tag can be used to specify an XML DTD, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_DTD = + +# If the XML_PROGRAMLISTING tag is set to YES Doxygen will +# dump the program listings (including syntax highlighting +# and cross-referencing information) to the XML output. Note that +# enabling this will significantly increase the size of the XML output. + +XML_PROGRAMLISTING = YES + +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- + +# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will +# generate an AutoGen Definitions (see autogen.sf.net) file +# that captures the structure of the code including all +# documentation. Note that this feature is still experimental +# and incomplete at the moment. + +GENERATE_AUTOGEN_DEF = NO + +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- + +# If the GENERATE_PERLMOD tag is set to YES Doxygen will +# generate a Perl module file that captures the structure of +# the code including all documentation. Note that this +# feature is still experimental and incomplete at the +# moment. + +GENERATE_PERLMOD = NO + +# If the PERLMOD_LATEX tag is set to YES Doxygen will generate +# the necessary Makefile rules, Perl scripts and LaTeX code to be able +# to generate PDF and DVI output from the Perl module output. + +PERLMOD_LATEX = NO + +# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be +# nicely formatted so it can be parsed by a human reader. This is useful +# if you want to understand what is going on. On the other hand, if this +# tag is set to NO the size of the Perl module output will be much smaller +# and Perl will parse it just the same. + +PERLMOD_PRETTY = YES + +# The names of the make variables in the generated doxyrules.make file +# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. +# This is useful so different doxyrules.make files included by the same +# Makefile don't overwrite each other's variables. + +PERLMOD_MAKEVAR_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- + +# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will +# evaluate all C-preprocessor directives found in the sources and include +# files. + +ENABLE_PREPROCESSING = YES + +# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro +# names in the source code. If set to NO (the default) only conditional +# compilation will be performed. Macro expansion can be done in a controlled +# way by setting EXPAND_ONLY_PREDEF to YES. + +MACRO_EXPANSION = NO + +# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES +# then the macro expansion is limited to the macros specified with the +# PREDEFINED and EXPAND_AS_DEFINED tags. + +EXPAND_ONLY_PREDEF = NO + +# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files +# in the INCLUDE_PATH (see below) will be search if a #include is found. + +SEARCH_INCLUDES = YES + +# The INCLUDE_PATH tag can be used to specify one or more directories that +# contain include files that are not input files but should be processed by +# the preprocessor. + +INCLUDE_PATH = + +# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard +# patterns (like *.h and *.hpp) to filter out the header-files in the +# directories. If left blank, the patterns specified with FILE_PATTERNS will +# be used. + +INCLUDE_FILE_PATTERNS = + +# The PREDEFINED tag can be used to specify one or more macro names that +# are defined before the preprocessor is started (similar to the -D option of +# gcc). The argument of the tag is a list of macros of the form: name +# or name=definition (no spaces). If the definition and the = are +# omitted =1 is assumed. To prevent a macro definition from being +# undefined via #undef or recursively expanded use the := operator +# instead of the = operator. + +PREDEFINED = + +# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then +# this tag can be used to specify a list of macro names that should be expanded. +# The macro definition that is found in the sources will be used. +# Use the PREDEFINED tag if you want to use a different macro definition. + +EXPAND_AS_DEFINED = + +# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then +# doxygen's preprocessor will remove all function-like macros that are alone +# on a line, have an all uppercase name, and do not end with a semicolon. Such +# function macros are typically used for boiler-plate code, and will confuse +# the parser if not removed. + +SKIP_FUNCTION_MACROS = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- + +# The TAGFILES option can be used to specify one or more tagfiles. +# Optionally an initial location of the external documentation +# can be added for each tagfile. The format of a tag file without +# this location is as follows: +# TAGFILES = file1 file2 ... +# Adding location for the tag files is done as follows: +# TAGFILES = file1=loc1 "file2 = loc2" ... +# where "loc1" and "loc2" can be relative or absolute paths or +# URLs. If a location is present for each tag, the installdox tool +# does not have to be run to correct the links. +# Note that each tag file must have a unique name +# (where the name does NOT include the path) +# If a tag file is not located in the directory in which doxygen +# is run, you must also specify the path to the tagfile here. + +TAGFILES = + +# When a file name is specified after GENERATE_TAGFILE, doxygen will create +# a tag file that is based on the input files it reads. + +GENERATE_TAGFILE = QMapControl.tag + +# If the ALLEXTERNALS tag is set to YES all external classes will be listed +# in the class index. If set to NO only the inherited external classes +# will be listed. + +ALLEXTERNALS = NO + +# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed +# in the modules index. If set to NO, only the current project's groups will +# be listed. + +EXTERNAL_GROUPS = YES + +# The PERL_PATH should be the absolute path and name of the perl script +# interpreter (i.e. the result of `which perl'). + +PERL_PATH = /usr/bin/perl + +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- + +# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will +# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base +# or super classes. Setting the tag to NO turns the diagrams off. Note that +# this option is superseded by the HAVE_DOT option below. This is only a +# fallback. It is recommended to install and use dot, since it yields more +# powerful graphs. + +CLASS_DIAGRAMS = YES + +# You can define message sequence charts within doxygen comments using the \msc +# command. Doxygen will then run the mscgen tool (see +# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the +# documentation. The MSCGEN_PATH tag allows you to specify the directory where +# the mscgen tool resides. If left empty the tool is assumed to be found in the +# default search path. + +MSCGEN_PATH = + +# If set to YES, the inheritance and collaboration graphs will hide +# inheritance and usage relations if the target is undocumented +# or is not a class. + +HIDE_UNDOC_RELATIONS = NO + +# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is +# available from the path. This tool is part of Graphviz, a graph visualization +# toolkit from AT&T and Lucent Bell Labs. The other options in this section +# have no effect if this option is set to NO (the default) + +HAVE_DOT = NO + +# By default doxygen will write a font called FreeSans.ttf to the output +# directory and reference it in all dot files that doxygen generates. This +# font does not include all possible unicode characters however, so when you need +# these (or just want a differently looking font) you can specify the font name +# using DOT_FONTNAME. You need need to make sure dot is able to find the font, +# which can be done by putting it in a standard location or by setting the +# DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory +# containing the font. + +DOT_FONTNAME = FreeSans + +# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. +# The default size is 10pt. + +DOT_FONTSIZE = 10 + +# By default doxygen will tell dot to use the output directory to look for the +# FreeSans.ttf font (which doxygen will put there itself). If you specify a +# different font using DOT_FONTNAME you can set the path where dot +# can find it using this tag. + +DOT_FONTPATH = + +# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect inheritance relations. Setting this tag to YES will force the +# the CLASS_DIAGRAMS tag to NO. + +CLASS_GRAPH = YES + +# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect implementation dependencies (inheritance, containment, and +# class references variables) of the class with other documented classes. + +COLLABORATION_GRAPH = NO + +# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for groups, showing the direct groups dependencies + +GROUP_GRAPHS = YES + +# If the UML_LOOK tag is set to YES doxygen will generate inheritance and +# collaboration diagrams in a style similar to the OMG's Unified Modeling +# Language. + +UML_LOOK = NO + +# If set to YES, the inheritance and collaboration graphs will show the +# relations between templates and their instances. + +TEMPLATE_RELATIONS = NO + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT +# tags are set to YES then doxygen will generate a graph for each documented +# file showing the direct and indirect include dependencies of the file with +# other documented files. + +INCLUDE_GRAPH = YES + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and +# HAVE_DOT tags are set to YES then doxygen will generate a graph for each +# documented header file showing the documented files that directly or +# indirectly include this file. + +INCLUDED_BY_GRAPH = YES + +# If the CALL_GRAPH and HAVE_DOT options are set to YES then +# doxygen will generate a call dependency graph for every global function +# or class method. Note that enabling this option will significantly increase +# the time of a run. So in most cases it will be better to enable call graphs +# for selected functions only using the \callgraph command. + +CALL_GRAPH = NO + +# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then +# doxygen will generate a caller dependency graph for every global function +# or class method. Note that enabling this option will significantly increase +# the time of a run. So in most cases it will be better to enable caller +# graphs for selected functions only using the \callergraph command. + +CALLER_GRAPH = NO + +# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen +# will graphical hierarchy of all classes instead of a textual one. + +GRAPHICAL_HIERARCHY = YES + +# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES +# then doxygen will show the dependencies a directory has on other directories +# in a graphical way. The dependency relations are determined by the #include +# relations between the files in the directories. + +DIRECTORY_GRAPH = YES + +# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images +# generated by dot. Possible values are png, jpg, or gif +# If left blank png will be used. + +DOT_IMAGE_FORMAT = png + +# The tag DOT_PATH can be used to specify the path where the dot tool can be +# found. If left blank, it is assumed the dot tool can be found in the path. + +DOT_PATH = + +# The DOTFILE_DIRS tag can be used to specify one or more directories that +# contain dot files that are included in the documentation (see the +# \dotfile command). + +DOTFILE_DIRS = + +# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of +# nodes that will be shown in the graph. If the number of nodes in a graph +# becomes larger than this value, doxygen will truncate the graph, which is +# visualized by representing a node as a red box. Note that doxygen if the +# number of direct children of the root node in a graph is already larger than +# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note +# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. + +DOT_GRAPH_MAX_NODES = 50 + +# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the +# graphs generated by dot. A depth value of 3 means that only nodes reachable +# from the root by following a path via at most 3 edges will be shown. Nodes +# that lay further from the root node will be omitted. Note that setting this +# option to 1 or 2 may greatly reduce the computation time needed for large +# code bases. Also note that the size of a graph can be further restricted by +# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. + +MAX_DOT_GRAPH_DEPTH = 1000 + +# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent +# background. This is disabled by default, because dot on Windows does not +# seem to support this out of the box. Warning: Depending on the platform used, +# enabling this option may lead to badly anti-aliased labels on the edges of +# a graph (i.e. they become hard to read). + +DOT_TRANSPARENT = YES + +# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output +# files in one run (i.e. multiple -o and -T options on the command line). This +# makes dot run faster, but since only newer versions of dot (>1.8.10) +# support this, this feature is disabled by default. + +DOT_MULTI_TARGETS = NO + +# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will +# generate a legend page explaining the meaning of the various boxes and +# arrows in the dot generated graphs. + +GENERATE_LEGEND = NO + +# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will +# remove the intermediate dot files that are used to generate +# the various graphs. + +DOT_CLEANUP = YES + +#--------------------------------------------------------------------------- +# Options related to the search engine +#--------------------------------------------------------------------------- + +# The SEARCHENGINE tag specifies whether or not a search engine should be +# used. If set to NO the values of all tags below this one will be ignored. + +SEARCHENGINE = NO diff --git a/libs/QMapControl/QMapControl.pri b/libs/QMapControl/QMapControl.pri new file mode 100644 index 00000000..c6d086b1 --- /dev/null +++ b/libs/QMapControl/QMapControl.pri @@ -0,0 +1,62 @@ +QT += gui +QT += network +QT += widgets + +VERSION = 0.9.7.9 + +INCLUDEPATH += $$PWD/src + +HEADERS += $$PWD/src/curve.h \ + $$PWD/src/geometry.h \ + $$PWD/src/imagemanager.h \ + $$PWD/src/layer.h \ + $$PWD/src/layermanager.h \ + $$PWD/src/linestring.h \ + $$PWD/src/mapadapter.h \ + $$PWD/src/mapcontrol.h \ + $$PWD/src/mapnetwork.h \ + $$PWD/src/point.h \ + $$PWD/src/tilemapadapter.h \ + $$PWD/src/wmsmapadapter.h \ + $$PWD/src/circlepoint.h \ + $$PWD/src/imagepoint.h \ + $$PWD/src/gps_position.h \ + $$PWD/src/osmmapadapter.h \ + $$PWD/src/maplayer.h \ + $$PWD/src/geometrylayer.h \ + $$PWD/src/googlemapadapter.h \ + $$PWD/src/openaerialmapadapter.h \ + $$PWD/src/fixedimageoverlay.h \ + $$PWD/src/emptymapadapter.h \ + $$PWD/src/arrowpoint.h \ + $$PWD/src/invisiblepoint.h \ + $$PWD/src/qmapcontrol_global.h \ + $$PWD/src/bingapimapadapter.h \ + $$PWD/src/googleapimapadapter.h + +SOURCES += $$PWD/src/curve.cpp \ + $$PWD/src/geometry.cpp \ + $$PWD/src/imagemanager.cpp \ + $$PWD/src/layer.cpp \ + $$PWD/src/layermanager.cpp \ + $$PWD/src/linestring.cpp \ + $$PWD/src/mapadapter.cpp \ + $$PWD/src/mapcontrol.cpp \ + $$PWD/src/mapnetwork.cpp \ + $$PWD/src/point.cpp \ + $$PWD/src/tilemapadapter.cpp \ + $$PWD/src/wmsmapadapter.cpp \ + $$PWD/src/circlepoint.cpp \ + $$PWD/src/imagepoint.cpp \ + $$PWD/src/gps_position.cpp \ + $$PWD/src/osmmapadapter.cpp \ + $$PWD/src/maplayer.cpp \ + $$PWD/src/geometrylayer.cpp \ + $$PWD/src/googlemapadapter.cpp \ + $$PWD/src/openaerialmapadapter.cpp \ + $$PWD/src/fixedimageoverlay.cpp \ + $$PWD/src/arrowpoint.cpp \ + $$PWD/src/invisiblepoint.cpp \ + $$PWD/src/emptymapadapter.cpp \ + $$PWD/src/bingapimapadapter.cpp \ + $$PWD/src/googleapimapadapter.cpp diff --git a/libs/QMapControl/QMapControl.tag b/libs/QMapControl/QMapControl.tag new file mode 100644 index 00000000..ba0a2638 --- /dev/null +++ b/libs/QMapControl/QMapControl.tag @@ -0,0 +1,1265 @@ + + + + QObject + classQObject.html + + + QWidget + classQWidget.html + + + qmapcontrol + namespaceqmapcontrol.html + qmapcontrol::ArrowPoint + qmapcontrol::CirclePoint + qmapcontrol::Curve + qmapcontrol::EmptyMapAdapter + qmapcontrol::FixedImageOverlay + qmapcontrol::Geometry + qmapcontrol::GeometryLayer + qmapcontrol::GoogleMapAdapter + qmapcontrol::GPS_Position + qmapcontrol::ImagePoint + qmapcontrol::InvisiblePoint + qmapcontrol::Layer + qmapcontrol::LineString + qmapcontrol::MapAdapter + qmapcontrol::MapControl + qmapcontrol::MapLayer + qmapcontrol::MapNetwork + qmapcontrol::OpenAerialMapAdapter + qmapcontrol::OSMMapAdapter + qmapcontrol::Point + qmapcontrol::TileMapAdapter + qmapcontrol::WMSMapAdapter + qmapcontrol::YahooMapAdapter + + + qmapcontrol::ArrowPoint + classqmapcontrol_1_1ArrowPoint.html + qmapcontrol::Point + + + Alignment + classqmapcontrol_1_1Point.html + acdfaca60ec19c0265bac2692d7982726 + + + + @ + TopLeft + classqmapcontrol_1_1Point.html + acdfaca60ec19c0265bac2692d7982726a61f66ddc6702462a94d3e231f02b9017 + + + + @ + TopRight + classqmapcontrol_1_1Point.html + acdfaca60ec19c0265bac2692d7982726a7e42a96f07eab63a8c9fa8a0526f34f4 + + + + @ + TopMiddle + classqmapcontrol_1_1Point.html + acdfaca60ec19c0265bac2692d7982726aaf2dc2d869f46c11d4c97c6649b2087a + + + + @ + BottomLeft + classqmapcontrol_1_1Point.html + acdfaca60ec19c0265bac2692d7982726ae61b9b6ea2fa75ca500d5bb1eaf6f6fc + + + + @ + BottomRight + classqmapcontrol_1_1Point.html + acdfaca60ec19c0265bac2692d7982726a1640f649d644701a2f4633e6bd88b20c + + + + @ + BottomMiddle + classqmapcontrol_1_1Point.html + acdfaca60ec19c0265bac2692d7982726a6165fc7e37a746212ab2911513d3781f + + + + @ + Middle + classqmapcontrol_1_1Point.html + acdfaca60ec19c0265bac2692d7982726a673e6efef9aafe98078c5552e99c923c + + + + void + geometryClicked + classqmapcontrol_1_1Geometry.html + a685dcab83356e5cc449475f177bb487d + (Geometry *geometry, QPoint point) + + + void + positionChanged + classqmapcontrol_1_1Geometry.html + a807f9cfb1b9d680ca76cf825cc9cf46a + (Geometry *geom) + + + + ArrowPoint + classqmapcontrol_1_1ArrowPoint.html + a841a287c3d99b6e796442168cbc96cc8 + (qreal x, qreal y, int sideLength, qreal heading, QString name=QString(), Alignment alignment=Middle, QPen *pen=0) + + + virtual QRectF + boundingBox + classqmapcontrol_1_1Point.html + acbb256b5f9f888e9cd3bb475108ece24 + () + + + QPointF + coordinate + classqmapcontrol_1_1Point.html + a2fbb44b2ed047287d715484d2fda7299 + () const + + + bool + Equals + classqmapcontrol_1_1Geometry.html + a029a8b50c439c719aac173bffe4cfb71 + (Geometry *geom) + + + qreal + getHeading + classqmapcontrol_1_1ArrowPoint.html + a5c08ef7caea74bc61c2fee079f45be43 + () const + + + bool + isVisible + classqmapcontrol_1_1Geometry.html + a08422ee75ab02691943c1ca87e2bc563 + () const + + + qreal + latitude + classqmapcontrol_1_1Point.html + a6311aabecac471455760aae4790cff91 + () const + + + qreal + longitude + classqmapcontrol_1_1Point.html + a2b0f7ec9068af09bcf151af61a785845 + () const + + + QString + name + classqmapcontrol_1_1Geometry.html + a2b0a198f837184bf6fff555cee3ce770 + () const + + + Geometry * + parentGeometry + classqmapcontrol_1_1Geometry.html + a771cc513dc079219d5da2c4b81019d7c + () const + + + QPen * + pen + classqmapcontrol_1_1Geometry.html + aed7be2fcd2c1d7bccb55f5ac73d7a662 + () const + + + QPixmap + pixmap + classqmapcontrol_1_1Point.html + ae781b15ef7d46695b2a7d2855b3f670f + () + + + void + setBaselevel + classqmapcontrol_1_1Point.html + a91f1496833bfda9f7a7ec5fcb02a1895 + (int zoomlevel) + + + void + setHeading + classqmapcontrol_1_1ArrowPoint.html + a553a63cdc0e822aaf3f324d23b86cec7 + (qreal heading) + + + void + setMaxsize + classqmapcontrol_1_1Point.html + adc2724c4e195727b823ff55c940283de + (QSize maxsize) + + + void + setMinsize + classqmapcontrol_1_1Point.html + ac40b3e44f54fab1330b9309ac7bd84d2 + (QSize minsize) + + + void + setName + classqmapcontrol_1_1Geometry.html + a6220fae15759fd0fa7d75e415df34e83 + (QString name) + + + virtual void + setPen + classqmapcontrol_1_1ArrowPoint.html + aa92f0f1b5d2fd424196a33012ffe8ea1 + (QPen *pen) + + + QString + toString + classqmapcontrol_1_1Geometry.html + a3a013a6edb6d10a71297978bc31a796b + () + + + QWidget * + widget + classqmapcontrol_1_1Point.html + ad1eaabeb2b227cd055ccf4b4e2818480 + () + + + virtual bool + Touches + classqmapcontrol_1_1Point.html + a7dee2100a2d2056511aca25c9390d253 + (Point *click, const MapAdapter *mapadapter) + + + + qmapcontrol::CirclePoint + classqmapcontrol_1_1CirclePoint.html + qmapcontrol::Point + + + CirclePoint + classqmapcontrol_1_1CirclePoint.html + aa0dd3496708e507c8185d5ae5f5e79ad + (qreal x, qreal y, QString name=QString(), Alignment alignment=Middle, QPen *pen=0) + + + + CirclePoint + classqmapcontrol_1_1CirclePoint.html + a13300765d52da11cc8cbb4384e8e9e23 + (qreal x, qreal y, int radius=10, QString name=QString(), Alignment alignment=Middle, QPen *pen=0) + + + virtual void + setPen + classqmapcontrol_1_1CirclePoint.html + aa92f0f1b5d2fd424196a33012ffe8ea1 + (QPen *pen) + + + + qmapcontrol::Curve + classqmapcontrol_1_1Curve.html + qmapcontrol::Geometry + + virtual void + setVisible + classqmapcontrol_1_1Geometry.html + a18e44e30b31525a243960ca3928125aa + (bool visible) + + + virtual QRectF + boundingBox + classqmapcontrol_1_1Geometry.html + af92c4fa46f711bea92efe5ab80f9084d + ()=0 + + + + qmapcontrol::EmptyMapAdapter + classqmapcontrol_1_1EmptyMapAdapter.html + qmapcontrol::MapAdapter + + virtual void + changeHostAddress + classqmapcontrol_1_1MapAdapter.html + a7807022d8586d6d050541d2344eb12cb + (const QString qHost, const QString qServerPath=QString()) + + + virtual QPoint + coordinateToDisplay + classqmapcontrol_1_1EmptyMapAdapter.html + a94134b06e350d302f5b3a63f0016aa60 + (const QPointF &) const + + + int + currentZoom + classqmapcontrol_1_1MapAdapter.html + a8c7b803b9faa35db237e40c361e1c036 + () const + + + virtual QPointF + displayToCoordinate + classqmapcontrol_1_1EmptyMapAdapter.html + a601b4631d9d891eabffb063c510cc088 + (const QPoint &) const + + + + EmptyMapAdapter + classqmapcontrol_1_1EmptyMapAdapter.html + a9208e1a9da209564f85a50318cda7310 + (int tileSize=256, int minZoom=0, int maxZoom=17) + + + QString + host + classqmapcontrol_1_1MapAdapter.html + a7ee8388c7880d8a3466967464f5034b6 + () const + + + int + maxZoom + classqmapcontrol_1_1MapAdapter.html + a3a33e897bc474405772d17a7c81f8747 + () const + + + int + minZoom + classqmapcontrol_1_1MapAdapter.html + a7457f51db57914a85bbefcc8c9fa97b4 + () const + + + virtual QString + serverPath + classqmapcontrol_1_1MapAdapter.html + a12436fe3d5d3cac5930f5b50fb508d36 + () const + + + int + tilesize + classqmapcontrol_1_1MapAdapter.html + af105c5a0cf588a3f60d67744bd353391 + () const + + + + qmapcontrol::FixedImageOverlay + classqmapcontrol_1_1FixedImageOverlay.html + qmapcontrol::ImagePoint + + + FixedImageOverlay + classqmapcontrol_1_1FixedImageOverlay.html + a621806ec022f1b35a2383b64787a5827 + (qreal x_upperleft, qreal y_upperleft, qreal x_lowerright, qreal y_lowerright, QString filename, QString name=QString()) + + + + FixedImageOverlay + classqmapcontrol_1_1FixedImageOverlay.html + aa5c420b6584232328fc12d8bc699129c + (qreal x_upperleft, qreal y_upperleft, qreal x_lowerright, qreal y_lowerright, QPixmap pixmap, QString name=QString()) + + + + qmapcontrol::Geometry + classqmapcontrol_1_1Geometry.html + QObject + + + qmapcontrol::GeometryLayer + classqmapcontrol_1_1GeometryLayer.html + qmapcontrol::Layer + + + LayerType + classqmapcontrol_1_1Layer.html + a56943a0946e5f15e5e58054b8e7a04a4 + + + + @ + MapLayer + classqmapcontrol_1_1Layer.html + a56943a0946e5f15e5e58054b8e7a04a4afe7df421203e4175d260b8dabcbe3002 + + + + @ + GeometryLayer + classqmapcontrol_1_1Layer.html + a56943a0946e5f15e5e58054b8e7a04a4a6c04bd58c42df8a7539aba782503fee0 + + + + void + setVisible + classqmapcontrol_1_1Layer.html + a18e44e30b31525a243960ca3928125aa + (bool visible) + + + void + geometryClicked + classqmapcontrol_1_1Layer.html + a685dcab83356e5cc449475f177bb487d + (Geometry *geometry, QPoint point) + + + void + addGeometry + classqmapcontrol_1_1Layer.html + ab692d7d08414ed2b744946b88872827f + (Geometry *geometry) + + + void + clearGeometries + classqmapcontrol_1_1Layer.html + acb2413f25e560a0cfadb7128d5af99b0 + (bool qDeleteObject=false) + + + bool + containsGeometry + classqmapcontrol_1_1Layer.html + a0b0b1de1c0e21dbec196d11b336628f4 + (Geometry *geometry) + + + + GeometryLayer + classqmapcontrol_1_1GeometryLayer.html + a64e2ab047db14f0d86424bee947c94af + (QString layername, MapAdapter *mapadapter, bool takeevents=true) + + + QList< Geometry * > & + getGeometries + classqmapcontrol_1_1Layer.html + ae5f0dce6ce743e714b314f95a6305908 + () + + + bool + isVisible + classqmapcontrol_1_1Layer.html + a08422ee75ab02691943c1ca87e2bc563 + () const + + + QString + layername + classqmapcontrol_1_1Layer.html + a414e94fdd70490d75ddccb6923ae3410 + () const + + + Layer::LayerType + layertype + classqmapcontrol_1_1Layer.html + a1cfbd8a5c27cf9cb400fa458a1f70ba5 + () const + + + MapAdapter * + mapadapter + classqmapcontrol_1_1Layer.html + a732b5e9de3b67ed69aa7dd165c9778d6 + () + + + void + removeGeometry + classqmapcontrol_1_1Layer.html + af2a2f7fec3f6e5fbf623f466a961bfb7 + (Geometry *geometry, bool qDeleteObject=false) + + + void + sendGeometryToBack + classqmapcontrol_1_1Layer.html + a4a6d2f001e34be8d424ccfb45b8d7622 + (Geometry *geometry) + + + void + sendGeometryToFront + classqmapcontrol_1_1Layer.html + a42afc531c673c3adc2e38fae58f87d52 + (Geometry *geometry) + + + + qmapcontrol::GoogleMapAdapter + classqmapcontrol_1_1GoogleMapAdapter.html + qmapcontrol::TileMapAdapter + + virtual QPoint + coordinateToDisplay + classqmapcontrol_1_1TileMapAdapter.html + a94134b06e350d302f5b3a63f0016aa60 + (const QPointF &) const + + + virtual QPointF + displayToCoordinate + classqmapcontrol_1_1TileMapAdapter.html + a601b4631d9d891eabffb063c510cc088 + (const QPoint &) const + + + + GoogleMapAdapter + classqmapcontrol_1_1GoogleMapAdapter.html + a95b487b1cc18726c8adcba0450209a31 + (googleLayerType qLayerType=maps) + + + + qmapcontrol::ImagePoint + classqmapcontrol_1_1ImagePoint.html + qmapcontrol::Point + + + ImagePoint + classqmapcontrol_1_1ImagePoint.html + aa5121dbb37cf1b8924a376e4c7edd728 + (qreal x, qreal y, QString filename, QString name=QString(), Alignment alignment=Middle) + + + + ImagePoint + classqmapcontrol_1_1ImagePoint.html + a5859a1a7467f65a24ef7009acb927446 + (qreal x, qreal y, QPixmap pixmap, QString name=QString(), Alignment alignment=Middle) + + + + qmapcontrol::InvisiblePoint + classqmapcontrol_1_1InvisiblePoint.html + qmapcontrol::Point + + + InvisiblePoint + classqmapcontrol_1_1InvisiblePoint.html + a85a9b75f7ffc4fdf3552632ac093bac4 + (qreal x, qreal y, QString name=QString()) + + + + InvisiblePoint + classqmapcontrol_1_1InvisiblePoint.html + a87487e17524b00f90d27ac2b097f057a + (qreal x, qreal y, int width=10, int height=10, QString name=QString()) + + + + InvisiblePoint + classqmapcontrol_1_1InvisiblePoint.html + a7285bca61d6639979ee51aae1584c286 + (qreal x, qreal y, int sideLength=10, QString name=QString()) + + + + qmapcontrol::Layer + classqmapcontrol_1_1Layer.html + QObject + + + Layer + classqmapcontrol_1_1Layer.html + a7ffb001076dc500ad13e523836bda23d + (QString layername, MapAdapter *mapadapter, enum LayerType layertype, bool takeevents=true) + + + + qmapcontrol::LineString + classqmapcontrol_1_1LineString.html + qmapcontrol::Curve + + void + addPoint + classqmapcontrol_1_1LineString.html + a8694ab9a03b0ed4986c98ad727755f8a + (Point *point) + + + virtual QRectF + boundingBox + classqmapcontrol_1_1LineString.html + acbb256b5f9f888e9cd3bb475108ece24 + () + + + virtual QList< Geometry * > & + clickedPoints + classqmapcontrol_1_1LineString.html + a3dc2e4e852bf89971b5e2660720745f4 + () + + + virtual bool + hasClickedPoints + classqmapcontrol_1_1LineString.html + a3f7357f0362b6bee75f8c8c623fb528e + () const + + + virtual bool + hasPoints + classqmapcontrol_1_1LineString.html + ac3fc4ac8c80b5bf64c0bf095d7fde94b + () const + + + + LineString + classqmapcontrol_1_1LineString.html + ad8efdad1cc0ff6c63357cb72180c3a0a + (QList< Point * > const points, QString name=QString(), QPen *pen=0) + + + int + numberOfPoints + classqmapcontrol_1_1LineString.html + a06b5ac0b597b8d1cb7e8817f7e66c2eb + () const + + + QList< Point * > + points + classqmapcontrol_1_1LineString.html + a18d4d26904bca7c54fb9d2a1b054c2fb + () + + + void + setPoints + classqmapcontrol_1_1LineString.html + a6af8f478f54e6704e87dcf184a258a8c + (QList< Point * > points) + + + + qmapcontrol::MapAdapter + classqmapcontrol_1_1MapAdapter.html + QObject + + virtual QPoint + coordinateToDisplay + classqmapcontrol_1_1MapAdapter.html + a0a7f30d12395e615eec9440070795349 + (const QPointF &coordinate) const =0 + + + virtual QPointF + displayToCoordinate + classqmapcontrol_1_1MapAdapter.html + aa26c33260233907672b1b23f4b1fd033 + (const QPoint &point) const =0 + + + + qmapcontrol::MapControl + classqmapcontrol_1_1MapControl.html + QWidget + + + MouseMode + classqmapcontrol_1_1MapControl.html + a034ae8169a2202325de4ef39ffd3e431 + + + + @ + Panning + classqmapcontrol_1_1MapControl.html + a034ae8169a2202325de4ef39ffd3e431ae105bcd8daf776fd01704a7186c49608 + + + + @ + Dragging + classqmapcontrol_1_1MapControl.html + a034ae8169a2202325de4ef39ffd3e431aea74c0c82481d6d724a43536424e3977 + + + + @ + None + classqmapcontrol_1_1MapControl.html + a034ae8169a2202325de4ef39ffd3e431ac9d3e887722f2bc482bcca9d41c512af + + + + void + resize + classqmapcontrol_1_1MapControl.html + a148f8aec7ea97e2e465cf2bd979846ab + (const QSize newSize) + + + void + scroll + classqmapcontrol_1_1MapControl.html + a527394cb8e8aa2d77f7a50a07b9e9f3e + (const QPoint scroll) + + + void + scrollDown + classqmapcontrol_1_1MapControl.html + a51db121d79cb0a651a7441b98bb7d7a9 + (int pixel=10) + + + void + scrollLeft + classqmapcontrol_1_1MapControl.html + a02f3bf431288e7ed34ecc59f7b8de996 + (int pixel=10) + + + void + scrollRight + classqmapcontrol_1_1MapControl.html + a216e70011cb465e61e2992d761f568df + (int pixel=10) + + + void + scrollUp + classqmapcontrol_1_1MapControl.html + aed27d1373fd9e05fb86fa319df4fe375 + (int pixel=10) + + + void + setZoom + classqmapcontrol_1_1MapControl.html + abb4bd8d8137d16816838c97d32407f39 + (int zoomlevel) + + + void + updateRequest + classqmapcontrol_1_1MapControl.html + a5cb68a198a28000fec8b7de1064d0a41 + (QRect rect) + + + void + updateRequestNew + classqmapcontrol_1_1MapControl.html + acf37bc294477796509e00e8f546fbd44 + () + + + void + zoomIn + classqmapcontrol_1_1MapControl.html + a7d7e315e34a66d9a66022d31635e7aca + () + + + void + zoomOut + classqmapcontrol_1_1MapControl.html + a72d29d38d8dd2c091cdd7078e1364f25 + () + + + void + boxDragged + classqmapcontrol_1_1MapControl.html + a1fd82da86a16f8932d45f4a0cadb60d1 + (const QRectF) + + + void + geometryClicked + classqmapcontrol_1_1MapControl.html + acc9ddd8e1721682682f85e73dae5f768 + (Geometry *geometry, QPoint coord_px) + + + void + mouseEventCoordinate + classqmapcontrol_1_1MapControl.html + aa463d9dfa43fa385b48aab115d374637 + (const QMouseEvent *evnt, const QPointF coordinate) + + + void + viewChanged + classqmapcontrol_1_1MapControl.html + a2c7862f1cb1b73192e3f4922eaac248d + (const QPointF &coordinate, int zoom) const + + + void + addLayer + classqmapcontrol_1_1MapControl.html + a87c6ef3c45ee9c21e173db2aa16cf567 + (Layer *layer) + + + QPointF + currentCoordinate + classqmapcontrol_1_1MapControl.html + a010c83996ab94a3db104aecf0550d480 + () const + + + int + currentZoom + classqmapcontrol_1_1MapControl.html + a8c7b803b9faa35db237e40c361e1c036 + () const + + + void + enableMouseWheelEvents + classqmapcontrol_1_1MapControl.html + a0020f498f44618941e35c9cd7368dcd7 + (bool enabled=true) + + + void + enablePersistentCache + classqmapcontrol_1_1MapControl.html + a47398dba0f1da60f1e80bcdd4286765a + (int tileExpiry=-1, const QDir &path=QDir::homePath()+"/QMapControl.cache") + + + void + followGeometry + classqmapcontrol_1_1MapControl.html + a6f7a69381097c74928af4ab3aa970386 + (const Geometry *geometry) const + + + QRectF + getBoundingBox + classqmapcontrol_1_1MapControl.html + ab06601b3a0eddcb0bf4d56deb74d8a3d + () + + + QRectF + getViewport + classqmapcontrol_1_1MapControl.html + ac8185831c1b2df6c0db6b19897be0450 + () + + + bool + isBoundingBoxEnabled + classqmapcontrol_1_1MapControl.html + a74f59e58143713bc1776b111f3bf9baa + () + + + bool + isGeometryVisible + classqmapcontrol_1_1MapControl.html + a81804b97ecc3e2fff3a64314ff866587 + (Geometry *geometry) + + + Layer * + layer + classqmapcontrol_1_1MapControl.html + a8e22ad201cb035fda7d7fefd8f348b11 + (const QString &layername) const + + + QList< QString > + layers + classqmapcontrol_1_1MapControl.html + aee9467ec4674af32aed2fbeb1175e0b5 + () const + + + int + loadingQueueSize + classqmapcontrol_1_1MapControl.html + a719be06d19c5beef2f271438e40b2651 + () + + + + MapControl + classqmapcontrol_1_1MapControl.html + a7850f3ec2dfcc0f8e436c8253e479222 + (QWidget *parent=0, Qt::WindowFlags windowFlags=0) + + + + MapControl + classqmapcontrol_1_1MapControl.html + a1a23dc4a4eb95a63ba65e3b4a79b410d + (QSize size, MouseMode mousemode=Panning, bool showScale=false, bool showCrosshairs=true, QWidget *parent=0, Qt::WindowFlags windowFlags=0) + + + MapControl::MouseMode + mouseMode + classqmapcontrol_1_1MapControl.html + a9106ab9dcac042b57fc4e797c94d84dc + () + + + bool + mouseWheelEventsEnabled + classqmapcontrol_1_1MapControl.html + a39f5b4d70b45b5e61167f7554598b41d + () + + + void + moveTo + classqmapcontrol_1_1MapControl.html + af7e3575f01f98a4096ccf48ac6bd4a50 + (QPointF coordinate) + + + int + numberOfLayers + classqmapcontrol_1_1MapControl.html + af3950823abbdf717124c279a386ca280 + () const + + + void + removeLayer + classqmapcontrol_1_1MapControl.html + ae329061c3d6e1a3ae29d047f0ddc68de + (Layer *layer) + + + void + setBoundingBox + classqmapcontrol_1_1MapControl.html + a852552cdefde98119bd73178df0abd64 + (QRectF &rect) + + + void + setMouseMode + classqmapcontrol_1_1MapControl.html + a346037e336da8525fe41ec30bf216d82 + (MouseMode mousemode) + + + void + setProxy + classqmapcontrol_1_1MapControl.html + a85482ec99b8367726541cfdb51994e98 + (QString host, int port, const QString username=QString(), const QString password=QString()) + + + void + setUseBoundingBox + classqmapcontrol_1_1MapControl.html + adce5194636e5ffd37ddc2ce5cd8e6e5d + (bool usebounds) + + + void + setView + classqmapcontrol_1_1MapControl.html + ab10ff3e8fed3a535de2a435ab1db48fb + (const QPointF &coordinate) const + + + void + setView + classqmapcontrol_1_1MapControl.html + ac837e5df11959daca31bd1d01d12b94c + (const QList< QPointF > coordinates) const + + + void + setView + classqmapcontrol_1_1MapControl.html + a4ea85421ec8df905fba209510c909e2c + (const Point *point) const + + + void + setViewAndZoomIn + classqmapcontrol_1_1MapControl.html + ae8c52337a968729d53c1ba57bfd65ea4 + (const QList< QPointF > coordinates) const + + + void + showScale + classqmapcontrol_1_1MapControl.html + aed8a66d91a8f5fe5e6d02c4e4327eaa8 + (bool visible) + + + void + stopFollowing + classqmapcontrol_1_1MapControl.html + ab95e8ed0a669d1669000786f880d16a3 + (const Geometry *geometry) const + + + void + updateView + classqmapcontrol_1_1MapControl.html + ab43fe107b5cec09d559630d5a6a789e2 + () const + + + + qmapcontrol::MapLayer + classqmapcontrol_1_1MapLayer.html + qmapcontrol::Layer + + + MapLayer + classqmapcontrol_1_1MapLayer.html + ac50a4fcff04c6859ce5601543b8ac821 + (QString layername, MapAdapter *mapadapter, bool takeevents=true) + + + + qmapcontrol::MapNetwork + classqmapcontrol_1_1MapNetwork.html + QObject + + void + abortLoading + classqmapcontrol_1_1MapNetwork.html + a882eed9a0b1403a74d494d0a50c0ea61 + () + + + bool + imageIsLoading + classqmapcontrol_1_1MapNetwork.html + a8a715c8ceb27e448bd81606ab33e4bb4 + (QString url) + + + int + loadQueueSize + classqmapcontrol_1_1MapNetwork.html + ae759808f4d89e825b69945dc72130058 + () const + + + QNetworkAccessManager * + nextFreeHttp + classqmapcontrol_1_1MapNetwork.html + a5dae61e2e5fabf9e40d933768101da18 + () + + + + qmapcontrol::OpenAerialMapAdapter + classqmapcontrol_1_1OpenAerialMapAdapter.html + qmapcontrol::TileMapAdapter + + + OpenAerialMapAdapter + classqmapcontrol_1_1OpenAerialMapAdapter.html + a8b9f8f912aa1bf34e1b4d11e7dfec394 + () + + + + qmapcontrol::OSMMapAdapter + classqmapcontrol_1_1OSMMapAdapter.html + qmapcontrol::TileMapAdapter + + + OSMMapAdapter + classqmapcontrol_1_1OSMMapAdapter.html + ab6f5dd078b96030385b14d2a5d777092 + () + + + + qmapcontrol::Point + classqmapcontrol_1_1Point.html + qmapcontrol::Geometry + + + Point + classqmapcontrol_1_1Point.html + a47257eee92b14e7c7f9b778c67bcb9a5 + (qreal x, qreal y, QString name=QString(), enum Alignment alignment=Middle) + + + + Point + classqmapcontrol_1_1Point.html + aa1767675df0bc3c13c75b3a48241125e + (qreal x, qreal y, QWidget *widget, QString name=QString(), enum Alignment alignment=Middle) + + + + Point + classqmapcontrol_1_1Point.html + a2a5d75301b8d2fd2ed406bddd0835740 + (qreal x, qreal y, QPixmap pixmap, QString name=QString(), enum Alignment alignment=Middle) + + + + qmapcontrol::TileMapAdapter + classqmapcontrol_1_1TileMapAdapter.html + qmapcontrol::MapAdapter + + + TileMapAdapter + classqmapcontrol_1_1TileMapAdapter.html + a1233007f4393d3ae476a5284f9294e8c + (const QString &host, const QString &serverPath, int tilesize, int minZoom=0, int maxZoom=17) + + + + qmapcontrol::WMSMapAdapter + classqmapcontrol_1_1WMSMapAdapter.html + qmapcontrol::MapAdapter + + virtual void + changeHostAddress + classqmapcontrol_1_1WMSMapAdapter.html + a7807022d8586d6d050541d2344eb12cb + (const QString qHost, const QString qServerPath=QString()) + + + virtual QPoint + coordinateToDisplay + classqmapcontrol_1_1WMSMapAdapter.html + a94134b06e350d302f5b3a63f0016aa60 + (const QPointF &) const + + + virtual QPointF + displayToCoordinate + classqmapcontrol_1_1WMSMapAdapter.html + a601b4631d9d891eabffb063c510cc088 + (const QPoint &) const + + + virtual QString + serverPath + classqmapcontrol_1_1WMSMapAdapter.html + a12436fe3d5d3cac5930f5b50fb508d36 + () const + + + + WMSMapAdapter + classqmapcontrol_1_1WMSMapAdapter.html + a0bfce681fddbae34a9fae6fc8c2f0a38 + (QString host, QString serverPath, int tilesize=256) + + + + qmapcontrol::YahooMapAdapter + classqmapcontrol_1_1YahooMapAdapter.html + qmapcontrol::TileMapAdapter + + + YahooMapAdapter + classqmapcontrol_1_1YahooMapAdapter.html + a9755050f27b44221d3e473b1cebd70cf + () + + + + src + D:/Dev/QMapControl/QMapControl/src/ + dir_68267d1309a1af8e8297ef4c3efbcdba.html + arrowpoint.cpp + arrowpoint.h + circlepoint.cpp + circlepoint.h + curve.cpp + curve.h + emptymapadapter.cpp + emptymapadapter.h + fixedimageoverlay.cpp + fixedimageoverlay.h + geometry.cpp + geometry.h + geometrylayer.cpp + geometrylayer.h + googlemapadapter.cpp + googlemapadapter.h + gps_position.cpp + gps_position.h + imagemanager.cpp + imagepoint.cpp + imagepoint.h + invisiblepoint.cpp + invisiblepoint.h + layer.cpp + layer.h + linestring.cpp + linestring.h + mapadapter.cpp + mapadapter.h + mapcontrol.cpp + mapcontrol.h + maplayer.cpp + maplayer.h + mapnetwork.cpp + mapnetwork.h + openaerialmapadapter.cpp + openaerialmapadapter.h + osmmapadapter.cpp + osmmapadapter.h + point.cpp + point.h + qmapcontrol_global.h + tilemapadapter.cpp + tilemapadapter.h + wmsmapadapter.cpp + wmsmapadapter.h + yahoomapadapter.cpp + yahoomapadapter.h + + diff --git a/libs/QMapControl/Samples/Citymap/Citymap.pro b/libs/QMapControl/Samples/Citymap/Citymap.pro new file mode 100644 index 00000000..23356ace --- /dev/null +++ b/libs/QMapControl/Samples/Citymap/Citymap.pro @@ -0,0 +1,19 @@ +include(../../QMapControl.pri) +DEPENDPATH += src +MOC_DIR = tmp +OBJECTS_DIR = obj +DESTDIR = ../bin +TARGET = Citymap + +QT+=network +QT+=gui + +greaterThan(QT_MAJOR_VERSION, 4): QT += widgets +greaterThan(QT_MAJOR_VERSION, 4): cache() + +# Input +SOURCES += src/citymap.cpp \ + src/main.cpp \ + src/dialogs.cpp +HEADERS += src/citymap.h \ + src/dialogs.h diff --git a/libs/QMapControl/Samples/Citymap/Readme b/libs/QMapControl/Samples/Citymap/Readme new file mode 100644 index 00000000..5103e98f --- /dev/null +++ b/libs/QMapControl/Samples/Citymap/Readme @@ -0,0 +1,5 @@ +This demo appclication shows more features of the QMapControl. It shows images, which changes its size when changing the zoomlevel. You can display/hide layers and choose different map providers. Also it demonstrates more possibilities for user interaction: + +- notes can be added to any coordinate (a QTextEdit is used for editing the note) +- the user can measure distances between two points + diff --git a/libs/QMapControl/Samples/Citymap/citymap.kdevelop b/libs/QMapControl/Samples/Citymap/citymap.kdevelop new file mode 100644 index 00000000..b9802ef2 --- /dev/null +++ b/libs/QMapControl/Samples/Citymap/citymap.kdevelop @@ -0,0 +1,219 @@ + + + + Kai Winter + kaiwinter@gmx.de + 0.9.3 + KDevTrollProject + C++ + + Qt + + + Citymap + . + false + + + + + + + + + + + false + false + + + false + *.o,*.lo,CVS + + + + + true + 4 + 4 + ExternalDesigner + /usr/lib/qt4/bin/qmake + /usr/lib/qt4/bin + /usr/lib/qt4 + + + + false + true + true + 250 + 400 + 250 + false + 0 + true + true + false + std=_GLIBCXX_STD;__gnu_cxx=std + true + false + false + false + false + true + true + false + .; + + + + set + m_,_ + theValue + true + true + + + false + true + Vertical + + + QMapControl + Qt4 + + + + + bash + bash_bugs + clanlib + fortran_bugs_gcc + gnome1 + gnustep + gtk + gtk_bugs + haskell + haskell_bugs_ghc + java_bugs_gcc + java_bugs_sun + kde2book + opengl + pascal_bugs_fp + php + php_bugs + perl + perl_bugs + python + python_bugs + qt-kdev3 + ruby + ruby_bugs + sdl + stl + sw + w3c-dom-level2-html + w3c-svg + w3c-uaag10 + wxwidgets_bugs + + + KDE Libraries (Doxygen) + + + + + + + + /usr/bin/gdb + true + false + false + + + + false + + + false + true + 10 + + + + + + ./bin/Citymap + + executable + + ./bin/ + true + false + false + false + false + + + + + + + true + false + 1 + false + + 0 + + + + 2 + false + true + false + + + + + + + + + + + + + + + + + + Doxygen Documentation Collection + citymap.tag + + + + + Citymap + citymap + Citymap + CITYMAP + Kai Winter + /usr/lib/qt4/bin + kaiwinter@gmx.de + GPL + COPYING + /usr/lib/qt4/bin + 0.9.3 + 2008 + . + + + + .h + .cpp + + + diff --git a/libs/QMapControl/Samples/Citymap/src/citymap.cpp b/libs/QMapControl/Samples/Citymap/src/citymap.cpp new file mode 100644 index 00000000..80d563b7 --- /dev/null +++ b/libs/QMapControl/Samples/Citymap/src/citymap.cpp @@ -0,0 +1,592 @@ +/*! + * \example citymap.cpp + * This demo appclication shows more features of the QMapControl. + * It shows images, which changes its size when changing the zoomlevel. + * You can display/hide layers and choose different map providers. + * Also it demonstrates more possibilities for user interaction:
+ * - notes can be added to any coordinate (a QTextEdit is used for editing the note)
+ * - the user can measure distances between two points + * + * \image html sample_citymap.png "screenshot" + */ + +#include "citymap.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +Citymap::Citymap(QWidget*) +{ + // create MapControl + mc = new MapControl(QSize(380,540)); + mc->showScale(true); + // display the MapControl in the application + QVBoxLayout* layout = new QVBoxLayout; + layout->addWidget(mc); + layout->setContentsMargins(0,0,0,0); + + QWidget* w = new QWidget(); + w->setLayout(layout); + setCentralWidget(w); + + notepixmap = new QPixmap(QApplication::applicationDirPath() + "/images/note.png"); + + coord1 = QPointF(); + coord2 = QPointF(); + mapadapter = new OSMMapAdapter(); + + // create a layer with the mapadapter and type MapLayer + l = new MapLayer("Custom Layer", mapadapter); + + mc->addLayer(l); + + notes = new GeometryLayer("Notes", mapadapter); + + createTours(); + addSights(); + addPubs(); + addMuseums(); + + addZoomButtons(); + createActions(); + createMenus(); + + connect(mc, SIGNAL(viewChanged(QPointF,int)), this, SLOT(mapControlZoomChanged(QPointF,int)), Qt::QueuedConnection); + + mc->addLayer(notes); + connect(notes, SIGNAL(geometryClicked(Geometry*, QPoint)), + this, SLOT(editNote(Geometry*, QPoint))); + + mc->setView(QPointF(8.26,50)); + mc->setZoom(13); + + ignoreClicks = false; + addingNote = false; + noteID = 0; + + notetextedit = new QTextEdit(mc); + notetextedit->setGeometry(0,0,200,100); + notepoint = new Point(0, 0, notetextedit, ".", Point::TopLeft); + notepoint->setVisible(false); + notes->addGeometry(notepoint); + + statusBar = new QStatusBar( this ); + setStatusBar(statusBar); + + loadingProgress = new QLabel(""); + statusBar->addWidget( loadingProgress ); + loadingProgressTimer = new QTimer(this); + connect(loadingProgressTimer, SIGNAL(timeout()), this, SLOT(updateProgress()), Qt::QueuedConnection ); + loadingProgressTimer->start( 500 ); //update every 500ms + + cacheTiles(true); +} + +void Citymap::updateProgress() +{ + QString progressText = QString(" %1 tiles remaining").arg(mc->loadingQueueSize()); + + loadingProgress->setText( progressText ); +} + +void Citymap::cacheTiles(bool qEnabled) +{ + if (qEnabled) + { + mc->enablePersistentCache(); + } + else + { + mc->enablePersistentCache(QDir()); + } +} + +void Citymap::createTours() +{ + QPen* pen = new QPen(QColor(0,0,255,100)); + pen->setWidth(5); + + QList points; + points << new Point(8.2606, 50.0051); + points << new Point(8.2602, 50.0050); + points << new Point(8.2598, 50.0044); + points << new Point(8.2569, 50.0057); + points << new Point(8.2595, 50.0083); + points << new Point(8.2587, 50.0086); + points << new Point(8.2589, 50.0100); + points << new Point(8.2590, 50.0105); + pub_tour = new LineString(points, "", pen); + notes->addGeometry(pub_tour); + + points.clear(); + points << new Point(8.25987, 50.0018); + points << new Point(8.26192, 50.0019); + points << new Point(8.26301, 50.0031); + points << new Point(8.26459, 50.0026); + points << new Point(8.26601, 50.004); + points << new Point(8.26781, 50.0033); + points << new Point(8.27052, 50.0054); + points << new Point(8.2697, 50.0059); + museum_tour = new LineString(points, "", pen); + notes->addGeometry(museum_tour); + + points.clear(); + points << new Point(8.26015, 50.0015); + points << new Point(8.2617, 50.0012); + points << new Point(8.26423, 50.0002); + points << new Point(8.26698, 50.0024); + points << new Point(8.27065, 50.0012); + points << new Point(8.27152, 50.0016); + points << new Point(8.27225, 50.0004); + points << new Point(8.27333, 49.9994); + points << new Point(8.26946, 49.9983); + points << new Point(8.27105, 49.9973); + points << new Point(8.27024, 49.9972); + points << new Point(8.26833, 49.9958); + sights_tour = new LineString(points, "", pen); + notes->addGeometry(sights_tour); +} + +void Citymap::addSights() +{ + sights = new GeometryLayer("Sehenswürdigkeiten", mapadapter); + mc->addLayer(sights); + Point* dom = new ImagePoint(8.274167, 49.998889, QCoreApplication::applicationDirPath() + "/images/180-dom.jpg", "Mainzer Dom"); + dom->setBaselevel(17); + sights->addGeometry(dom); + + Point* stephan = new ImagePoint(8.268611, 49.995556, QCoreApplication::applicationDirPath() + "/images/180-stephan.jpg","St. Stephan"); + stephan->setBaselevel(17); + sights->addGeometry(stephan); + + Point* quitin = new ImagePoint(8.272222, 50.000833, QCoreApplication::applicationDirPath() + "/images/180-quintin.jpg","St. Quintin"); + quitin->setBaselevel(17); + sights->addGeometry(quitin); + connect(sights, SIGNAL(geometryClicked(Geometry*, QPoint)), + this, SLOT(geometryClicked(Geometry*, QPoint))); +} +void Citymap::addPubs() +{ + pubs = new GeometryLayer("Kneipe", mapadapter); + mc->addLayer(pubs); + + Point* bagatelle = new Point(8.2606, 50.0052, QPixmap(QCoreApplication::applicationDirPath() + "/images/pub.png"), "Bagatelle"); + pubs->addGeometry(bagatelle); + + Point* nirgendwo = new Point(8.2595, 50.0048, QPixmap(QCoreApplication::applicationDirPath() + "/images/pub.png"), "Nirgendwo"); + pubs->addGeometry(nirgendwo); + + Point* krokodil = new Point(8.2594,50.0106, QPixmap(QCoreApplication::applicationDirPath() + "/images/pub.png"), "Krokodil"); + pubs->addGeometry(krokodil); + + connect(pubs, SIGNAL(geometryClicked(Geometry*, QPoint)), + this, SLOT(geometryClickEventKneipe(Geometry*, QPoint))); +} +void Citymap::addMuseums() +{ + museum = new GeometryLayer("Museen", mapadapter); + mc->addLayer(museum); + Point* rgzm = new ImagePoint(8.269722, 50.006111, QCoreApplication::applicationDirPath() + "/images/180-rgzm.jpg", "rgzm"); + rgzm->setBaselevel(17); + museum->addGeometry(rgzm); + + Point* lm= new ImagePoint(8.26778, 50.00385, QCoreApplication::applicationDirPath() + "/images/180-lm.jpg", "lm"); + lm ->setBaselevel(17); + museum->addGeometry(lm); + + connect(museum, SIGNAL(geometryClicked(Geometry*, QPoint)), + this, SLOT(geometryClicked(Geometry*, QPoint))); +} + +void Citymap::geometryClicked(Geometry* geometry, QPoint) +{ + if (ignoreClicks || addingNote) + return; + + InfoDialog* infodialog = new InfoDialog(this); + infodialog->setWindowTitle(geometry->name()); + + if (geometry->name() == "Mainzer Dom") + { + infodialog->setInfotext("

Mainzer Dom

Der Hohe Dom zu Mainz ist die Bischofskirche der Diözese Mainz und steht unter dem Patrozinium des heiligen Martin von Tours. Der Ostchor ist dem Hl. Stephan geweiht. Der zu den Kaiserdomen zählende Bau ist in seiner heutigen Form eine dreischiffige romanische Säulenbasilika, die in ihren Anbauten sowohl gotische als auch barocke Elemente aufweist.

"); + + } else if (geometry->name() == "St. Stephan") + { + infodialog->setInfotext("

St. Stephan

Die katholische Pfarrkirche Sankt Stephan in Mainz wurde 990 von Erzbischof Willigis auf der höchsten Erhebung der Stadt gegründet. Auftraggeberin war höchstwahrscheinlich die Kaiserwitwe Theophanu. Willigis wollte mit ihr die Gebetsstätte des Reiches schaffen. In der Kirche war ursprünglich ein Stift untergebracht. Der Propst des Stiftes verwaltete eines der Archidiakonate (mittelalterliche Organisationseinheit, ähnlich den heutigen Dekanaten) des Erzbistums.

"); + } else if (geometry->name() == "St. Quintin") + { + infodialog->setInfotext("

St. Quintin

Die Kirche St. Quintin in Mainz ist die Pfarrkirche der ältesten nachgewiesenen Pfarrei der Stadt."); + } else if (geometry->name() == "rgzm") + { + infodialog->setInfotext("

Römisch-Germanisches Zentralmuseum

Das Römisch-Germanische Zentralmuseum (RGZM) in Mainz ist ein Forschungsinstitut für Vor- und Frühgeschichte, das von Bund und Ländern getragen wird und zur Leibniz-Gemeinschaft deutscher Forschungseinrichtungen gehört. Gegliedert in mehrere Abteilungen, arbeitet das Institut im Bereich der Alten Welt sowie seiner Kontaktzonen von der Altsteinzeit bis ins Mittelalter."); + } else if (geometry->name() == "lm") + { + infodialog->setInfotext("

Landesmuseum Mainz

Das Landesmuseum Mainz ist eines der ältesten Museen in Deutschland. Eine seiner Vorgängerinstitutionen, die Städtische Gemäldesammlung, wurde bereits 1803 von Jean-Antoine Chaptal auf Veranlassung Napoléon Bonapartes durch eine Schenkung von 36 Gemälden gegründet. Das Museum, welches sich heute im ehemaligen kurfürstlichen Marstall befindet, gehört zusammen mit dem Römisch-Germanischen Zentralmuseum und dem Gutenbergmuseum zu den bedeutenden Museen in Mainz. Seine kunst- und kulturgeschichtliche Sammlung erstreckt sich von der Vorgeschichte über die römische Zeit, dem Mittelalter und Barock bis hin zur Jugendstilzeit und der Kunst des 20. Jahrhunderts."); + } + if (geometry->name() != "") + infodialog->showMaximized(); +} + +void Citymap::geometryClickEventKneipe(Geometry* geometry, QPoint) +{ + if (ignoreClicks || addingNote) + return; + InfoDialog* infodialog = new InfoDialog(this); + infodialog->setWindowTitle(geometry->name()); + infodialog->setInfotext("

" + geometry->name() + "

"); + infodialog->showNormal(); +} + +void Citymap::addZoomButtons() +{ + // create buttons as controls for zoom + QPushButton* zoomin = new QPushButton("+"); + QPushButton* zoomout = new QPushButton("-"); + zoomin->setMaximumWidth(50); + zoomout->setMaximumWidth(50); + + connect(zoomin, SIGNAL(clicked(bool)), + mc, SLOT(zoomIn())); + connect(zoomout, SIGNAL(clicked(bool)), + mc, SLOT(zoomOut())); + + // add zoom buttons to the layout of the MapControl + QVBoxLayout* innerlayout = new QVBoxLayout; + innerlayout->addWidget(zoomin); + innerlayout->addWidget(zoomout); + mc->setLayout(innerlayout); +} + +void Citymap::createActions() +{ + toggleSights = new QAction(tr("Show Sights"), this); + toggleSights->setCheckable(true); + toggleSights->setChecked(true); + connect(toggleSights, SIGNAL(triggered(bool)), + sights, SLOT(setVisible(bool))); + + togglePub = new QAction(tr("Show Pubs"), this); + togglePub->setCheckable(true); + togglePub->setChecked(true); + connect(togglePub, SIGNAL(triggered(bool)), + pubs, SLOT(setVisible(bool))); + + toggleMuseum = new QAction(tr("Show Museums"), this); + toggleMuseum->setCheckable(true); + toggleMuseum->setChecked(true); + connect(toggleMuseum, SIGNAL(triggered(bool)), + museum, SLOT(setVisible(bool))); + + + toggleSightTour = new QAction(tr("Show Sight Tour"), this); + toggleSightTour->setCheckable(true); + toggleSightTour->setChecked(true); + connect(toggleSightTour, SIGNAL(triggered(bool)), + sights_tour, SLOT(setVisible(bool))); + + togglePubTour = new QAction(tr("Show Pub Tour"), this); + togglePubTour->setCheckable(true); + togglePubTour->setChecked(true); + connect(togglePubTour, SIGNAL(triggered(bool)), + pub_tour, SLOT(setVisible(bool))); + + toggleMuseumTour = new QAction(tr("Show Museum Tour"), this); + toggleMuseumTour->setCheckable(true); + toggleMuseumTour->setChecked(true); + connect(toggleMuseumTour, SIGNAL(triggered(bool)), + museum_tour, SLOT(setVisible(bool))); + + addNoteAction = new QAction(tr("Add Note"), this); + connect(addNoteAction, SIGNAL(triggered(bool)), + this, SLOT(addNote())); + + toolsDistance = new QAction(tr("Calculate Distance"), this); + connect(toolsDistance, SIGNAL(triggered(bool)), + this, SLOT(calcDistance())); + + toolsLocalDiskCache = new QAction(tr("Cache Tiles Locally"), this); + toolsLocalDiskCache->setCheckable(true); + toolsLocalDiskCache->setChecked(true); + connect(toolsLocalDiskCache, SIGNAL(triggered(bool)), + this, SLOT(cacheTiles(bool))); + + QActionGroup* mapproviderGroup = new QActionGroup(this); + osmAction = new QAction(tr("OpenStreetMap"), mapproviderGroup); + googleActionMap = new QAction(tr("Google: Roadmap (default)"), mapproviderGroup); + googleActionSatellite = new QAction(tr("Google: Satellite"), mapproviderGroup); + + googleActionSatellite = new QAction(tr("Google: Satellite"), mapproviderGroup); + googleActionTerrain = new QAction(tr("Google: Terrain"), mapproviderGroup); + googleActionHybrid = new QAction(tr("Google: Hybrid"), mapproviderGroup); + + osmAction->setCheckable(true); + googleActionMap->setCheckable(true); + googleActionSatellite->setCheckable(true); + googleActionTerrain->setCheckable(true); + googleActionHybrid->setCheckable(true); + osmAction->setChecked(true); + connect(mapproviderGroup, SIGNAL(triggered(QAction*)), + this, SLOT(mapproviderSelected(QAction*))); + + QActionGroup* mapZoomGroup = new QActionGroup(this); + + for( int i=0; i <= 17; ++i ) + { + QString title = QString("Zoom %1").arg(i); + QAction* action = new QAction(title, mapZoomGroup); + action->setCheckable(true); + zoomActions << action; + } + connect(mapZoomGroup, SIGNAL(triggered(QAction*)), + this, SLOT(mapZoomSelected(QAction*))); +} + +void Citymap::createMenus() +{ + layerMenu = menuBar()->addMenu(tr("&Layer")); + layerMenu->addAction(toggleSights); + layerMenu->addAction(togglePub); + layerMenu->addAction(toggleMuseum); + + tourMenu = menuBar()->addMenu(tr("T&ours")); + tourMenu->addAction(toggleSightTour); + tourMenu->addAction(togglePubTour); + tourMenu->addAction(toggleMuseumTour); + + toolsMenu = menuBar()->addMenu(tr("&Tools")); + toolsMenu->addAction(addNoteAction); + toolsMenu->addAction(toolsDistance); + toolsMenu->addAction(toolsLocalDiskCache); + + mapMenu = menuBar()->addMenu(tr("&Map Provider")); + mapMenu->addAction(osmAction); + mapMenu->addAction(googleActionMap); + mapMenu->addAction(googleActionSatellite); + mapMenu->addAction(googleActionTerrain); + mapMenu->addAction(googleActionHybrid); + + zoomMenu = menuBar()->addMenu(tr("&Zoom Level")); + foreach( QAction* action, zoomActions ) + { + zoomMenu->addAction(action); + } + +} + +void Citymap::addNote() +{ + addingNote = true; + connect(mc, SIGNAL(mouseEventCoordinate(const QMouseEvent*, const QPointF)), + this, SLOT(writeNote(const QMouseEvent*, const QPointF))); +} + +void Citymap::writeNote(const QMouseEvent*, const QPointF coord) +{ + Point* p = new Point(coord.x(), coord.y(), *notepixmap, QString::number(++noteID), Point::BottomLeft); + currentnoteID = noteID; + p->setBaselevel(16); + p->setMinsize(QSize(12, 10)); + p->setMaxsize(QSize(47, 40)); + notes->addGeometry(p); + + notetextedit->clear(); + + notepoint->setCoordinate(coord); + notepoint->setVisible(true); + + mc->updateRequestNew(); + + disconnect(mc, SIGNAL(mouseEventCoordinate(const QMouseEvent*, const QPointF)), + this, SLOT(writeNote(const QMouseEvent*, const QPointF))); + + connect(mc, SIGNAL(mouseEventCoordinate(const QMouseEvent*, const QPointF)), + this, SLOT(hideNote(const QMouseEvent*, const QPointF))); +} + +void Citymap::hideNote(const QMouseEvent* evnt, const QPointF) +{ + if (addingNote && evnt->type() == QEvent::MouseButtonDblClick) + { + addingNote = false; + notepoint->setVisible(false); + + mc->updateRequestNew(); + + // save text + notestext[currentnoteID] = notetextedit->toPlainText(); + + disconnect(mc, SIGNAL(mouseEventCoordinate(const QMouseEvent*, const QPointF)), + this, SLOT(hideNote(const QMouseEvent*, const QPointF))); + } +} + +void Citymap::editNote(Geometry* geom, QPoint) +{ + addingNote = true; + currentnoteID = QVariant(geom->name()).toInt(); + notetextedit->setPlainText(notestext[currentnoteID]); + notepoint->setCoordinate(geom->points().at(0)->coordinate()); + notepoint->setVisible(true); + + mc->updateRequestNew(); + connect(mc, SIGNAL(mouseEventCoordinate(const QMouseEvent*, const QPointF)), + this, SLOT(hideNote(const QMouseEvent*, const QPointF))); +} + +void Citymap::resizeEvent(QResizeEvent *qEvent) +{ + Q_UNUSED( qEvent ); + if (mc) + { + mc->resize(size()); + } +} + +void Citymap::calcDistance() +{ + ignoreClicks = true; + connect(mc, SIGNAL(mouseEventCoordinate( const QMouseEvent*, const QPointF )), + this, SLOT(calcDistanceClick(const QMouseEvent*, const QPointF))); +} +void Citymap::calcDistanceClick(const QMouseEvent* evnt, const QPointF coord) +{ + if (coord1 == QPointF() && evnt->type() == QEvent::MouseButtonPress) + { + coord1 = coord; + l->addGeometry(new ImagePoint(coord1.x(), coord1.y(), QCoreApplication::applicationDirPath() + "/images/flag.png", "", Point::BottomRight)); + mc->updateRequestNew(); + } + else if (coord2 == QPointF() && evnt->type() == QEvent::MouseButtonPress) + { + coord2 = coord; + double PI = acos(-1.0); + double a1 = coord1.x()* (PI/180.0);; + double b1 = coord1.y()* (PI/180.0);; + double a2 = coord2.x()* (PI/180.0);; + double b2 = coord2.y()* (PI/180.0);; + double r = 6378; + + double km = acos(cos(a1)*cos(b1)*cos(a2)*cos(b2) + cos(a1)*sin(b1)*cos(a2)*sin(b2) + sin(a1)*sin(a2)) * r; + + QList points; + points.append(new Point(coord1.x(), coord1.y())); + QPixmap* pixm = new QPixmap(100,20); + pixm->fill(Qt::transparent); + QPainter pain(pixm); + pain.setFont(QFont("Helvetiva", 6)); + pain.drawText(pixm->rect(), QString().setNum(km, 'f', 3) + " km"); + pain.end(); + points.append(new Point(coord2.x(), coord2.y(), *pixm, "", Point::BottomLeft)); + l->addGeometry(new LineString(points)); + mc->updateRequestNew(); + coord1 = QPointF(); + coord2 = QPointF(); + ignoreClicks = false; + disconnect(mc, SIGNAL(mouseEventCoordinate( const QMouseEvent*, const QPointF)), + this, SLOT(calcDistanceClick(const QMouseEvent*, const QPointF))); + + } +} + +void Citymap::mapControlZoomChanged(const QPointF &coordinate, int zoom) const +{ + Q_UNUSED(coordinate); + if ( zoomActions.at(zoom) ) + { + zoomActions.at(zoom)->setChecked( true ); + } +} + +void Citymap::mapZoomSelected(QAction* action) +{ + mc->setZoom( zoomActions.indexOf(action) ); +} + +void Citymap::mapproviderSelected(QAction* action) +{ + if (action == osmAction) + { + int zoom = mapadapter->adaptedZoom(); + mc->setZoom(0); + + mapadapter = new OSMMapAdapter(); + l->setMapAdapter(mapadapter); + sights->setMapAdapter(mapadapter); + museum->setMapAdapter(mapadapter); + pubs->setMapAdapter(mapadapter); + notes->setMapAdapter(mapadapter); + mc->updateRequestNew(); + mc->setZoom(zoom); + } + else if (action == googleActionMap) + { + int zoom = mapadapter->adaptedZoom(); + mc->setZoom(0); + mapadapter = new GoogleMapAdapter(); + l->setMapAdapter(mapadapter); + sights->setMapAdapter(mapadapter); + museum->setMapAdapter(mapadapter); + pubs->setMapAdapter(mapadapter); + notes->setMapAdapter(mapadapter); + mc->updateRequestNew(); + mc->setZoom(zoom); + } + else if (action == googleActionSatellite) + { + int zoom = mapadapter->adaptedZoom(); + mc->setZoom(0); + mapadapter = new GoogleMapAdapter(GoogleMapAdapter::satellite); + l->setMapAdapter(mapadapter); + sights->setMapAdapter(mapadapter); + museum->setMapAdapter(mapadapter); + pubs->setMapAdapter(mapadapter); + notes->setMapAdapter(mapadapter); + mc->updateRequestNew(); + mc->setZoom(zoom); + } + else if (action == googleActionTerrain) + { + int zoom = mapadapter->adaptedZoom(); + mc->setZoom(0); + mapadapter = new GoogleMapAdapter(GoogleMapAdapter::terrain); + l->setMapAdapter(mapadapter); + sights->setMapAdapter(mapadapter); + museum->setMapAdapter(mapadapter); + pubs->setMapAdapter(mapadapter); + notes->setMapAdapter(mapadapter); + mc->updateRequestNew(); + mc->setZoom(zoom); + } + else if (action == googleActionHybrid) + { + int zoom = mapadapter->adaptedZoom(); + mc->setZoom(0); + mapadapter = new GoogleMapAdapter(GoogleMapAdapter::hybrid); + l->setMapAdapter(mapadapter); + sights->setMapAdapter(mapadapter); + museum->setMapAdapter(mapadapter); + pubs->setMapAdapter(mapadapter); + notes->setMapAdapter(mapadapter); + mc->updateRequestNew(); + mc->setZoom(zoom); + } +} + +Citymap::~Citymap() +{ + delete mc; + delete mapadapter; + delete notepixmap; + delete sights; + delete notes; + delete pubs; + delete museum; +} + diff --git a/libs/QMapControl/Samples/Citymap/src/citymap.h b/libs/QMapControl/Samples/Citymap/src/citymap.h new file mode 100644 index 00000000..47260809 --- /dev/null +++ b/libs/QMapControl/Samples/Citymap/src/citymap.h @@ -0,0 +1,112 @@ +#ifndef CITYMAP_H +#define CITYMAP_H + +#include +#include +#include +#include +#include +#include +#include +#include "dialogs.h" +#include + +class QLabel; + +using namespace qmapcontrol; +class Citymap: public QMainWindow +{ + Q_OBJECT + public: + Citymap(QWidget* parent = 0); + + ~Citymap(); + + private: + MapControl* mc; + MapAdapter* mapadapter; + + QPixmap* notepixmap; + + Layer* sights; + Layer* museum; + Layer* pubs; + Layer* notes; + + void addZoomButtons(); + + void createTours(); + void createActions(); + void createMenus(); + + QMenu* layerMenu; + QMenu* tourMenu; + QMenu* toolsMenu; + QMenu* mapMenu; + QMenu* zoomMenu; + + QAction* toggleSights; + QAction* togglePub; + QAction* toggleMuseum; + + QAction* togglePubTour; + QAction* toggleMuseumTour; + QAction* toggleSightTour; + + QAction* addNoteAction; + QAction* toolsDistance; + QAction* toolsLocalDiskCache; + + QAction* osmAction; + QAction* googleActionMap; + QAction* googleActionSatellite; + QAction* googleActionTerrain; + QAction* googleActionHybrid; + + QList zoomActions; + + QStatusBar* statusBar; + + bool ignoreClicks; + bool addingNote; + + void addSights(); + void addPubs(); + void addMuseums(); + + QPointF coord1; + QPointF coord2; + + Layer* l; + + LineString* pub_tour; + LineString* museum_tour; + LineString* sights_tour; + + QTextEdit* notetextedit; + Point* notepoint; + int noteID; + int currentnoteID; + QHash notestext; + QLabel* loadingProgress; + QTimer* loadingProgressTimer; + + public slots: + void hideNote(const QMouseEvent* evnt, const QPointF coordinate); + void geometryClicked(Geometry* geometry, QPoint point); + void geometryClickEventKneipe(Geometry* geometry, QPoint point); + void addNote(); + void writeNote(const QMouseEvent*, const QPointF); + void calcDistance(); + void calcDistanceClick(const QMouseEvent*, const QPointF); + void mapControlZoomChanged(const QPointF &coordinate, int zoom ) const; + + void mapproviderSelected(QAction*); + void mapZoomSelected(QAction*); + void editNote(Geometry* geom, QPoint point); + void resizeEvent(QResizeEvent *qEvent); + void updateProgress(); + void cacheTiles(bool qEnabled); +}; + +#endif diff --git a/libs/QMapControl/Samples/Citymap/src/dialogs.cpp b/libs/QMapControl/Samples/Citymap/src/dialogs.cpp new file mode 100644 index 00000000..8d537bfa --- /dev/null +++ b/libs/QMapControl/Samples/Citymap/src/dialogs.cpp @@ -0,0 +1,20 @@ +#include "dialogs.h" +#include + +InfoDialog::InfoDialog(QWidget* parent) + : QDialog(parent) +{ + setWindowFlags(Qt::Dialog | Qt::WindowStaysOnTopHint); + infotext = new QTextEdit(); + infotext->setReadOnly(true); + + QHBoxLayout* layout = new QHBoxLayout(); + setLayout(layout); + + layout->addWidget(infotext); +} + +void InfoDialog::setInfotext(QString text) +{ + infotext->setHtml(text); +} diff --git a/libs/QMapControl/Samples/Citymap/src/dialogs.h b/libs/QMapControl/Samples/Citymap/src/dialogs.h new file mode 100644 index 00000000..0a8386f6 --- /dev/null +++ b/libs/QMapControl/Samples/Citymap/src/dialogs.h @@ -0,0 +1,21 @@ +#ifndef DIALOGS_H +#define DIALOGS_H + +#include +#include + +/** + @author Kai Winter +*/ +class InfoDialog : public QDialog +{ + Q_OBJECT + public: + InfoDialog(QWidget* parent=0); + void setInfotext(QString text); + + private: + QTextEdit* infotext; +}; + +#endif diff --git a/libs/QMapControl/Samples/Citymap/src/main.cpp b/libs/QMapControl/Samples/Citymap/src/main.cpp new file mode 100644 index 00000000..d92be7e9 --- /dev/null +++ b/libs/QMapControl/Samples/Citymap/src/main.cpp @@ -0,0 +1,14 @@ +#include +#include "citymap.h" + +int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + Citymap * mw = new Citymap(); + + mw->resize(400,590); + mw->setWindowTitle("City Map Mainz"); + mw->show(); + return app.exec(); +} + diff --git a/libs/QMapControl/Samples/GPS/GPS.kdevelop b/libs/QMapControl/Samples/GPS/GPS.kdevelop new file mode 100644 index 00000000..a33c6521 --- /dev/null +++ b/libs/QMapControl/Samples/GPS/GPS.kdevelop @@ -0,0 +1,188 @@ + + + + Kai Winter + kaiwinter@gmx.de + 1 + KDevTrollProject + C++ + + Qt + + GPS + + . + false + + + + + + + + + + false + false + + + *.o,*.lo,CVS + false + + + + + bash + bash_bugs + clanlib + w3c-dom-level2-html + fortran_bugs_gcc + gnome1 + gnustep + gtk + gtk_bugs + haskell + haskell_bugs_ghc + java_bugs_gcc + java_bugs_sun + kde2book + opengl + pascal_bugs_fp + php + php_bugs + perl + perl_bugs + python + python_bugs + qt-kdev3 + ruby + ruby_bugs + sdl + stl + w3c-svg + sw + w3c-uaag10 + wxwidgets_bugs + + + KDE Libraries (Doxygen) + + + + + + + + + + true + false + false + false + + + false + true + 10 + + + + + 4 + true + 4 + ExternalDesigner + /usr/lib/qt4 + /usr/lib/qt4/bin/qmake-qt4 + /usr/lib/qt4/bin/designer-qt4 + + + + false + true + true + 250 + 400 + 250 + false + 0 + true + true + false + std=_GLIBCXX_STD;__gnu_cxx=std + true + false + false + false + false + true + true + false + .; + + + + set + m_,_ + theValue + true + true + + + false + true + Vertical + + + QMapControl + Qt4 + + + + + + + + + + + + + + + + executable + ./bin/GPS + + + ./bin/ + false + false + false + false + false + + + + true + false + 1 + false + + 0 + + + + 2 + false + true + false + + + + + .h + .cpp + + + diff --git a/libs/QMapControl/Samples/GPS/GPS.pro b/libs/QMapControl/Samples/GPS/GPS.pro new file mode 100644 index 00000000..c55e36c3 --- /dev/null +++ b/libs/QMapControl/Samples/GPS/GPS.pro @@ -0,0 +1,20 @@ +include(../../QMapControl.pri) +DEPENDPATH += src +MOC_DIR = tmp +OBJECTS_DIR = obj +DESTDIR = ../bin +TARGET = GPS + +QT+=network +QT+=gui +greaterThan(QT_MAJOR_VERSION, 4): QT += widgets +greaterThan(QT_MAJOR_VERSION, 4): cache() + +# Input +SOURCES += src/gps.cpp \ +src/main.cpp \ +src/gps_neo.cpp \ + src/gps_simulation.cpp +HEADERS += src/gps.h \ +src/gps_neo.h \ + src/gps_simulation.h diff --git a/libs/QMapControl/Samples/GPS/Readme b/libs/QMapControl/Samples/GPS/Readme new file mode 100644 index 00000000..e0f60286 --- /dev/null +++ b/libs/QMapControl/Samples/GPS/Readme @@ -0,0 +1,12 @@ +/*! + * \example gps.cpp + * This sample application uses GPS data from the gllin service, which you have to start manually before using this application. + * The file /tmp/nmeaNP is read in for the posiitons. + * + * The application receives positions from the GPS_Neo class and writes it into a label. + * You can toggle a button to set the view to the received coordinate. + * + * You can find this example here: MapAPI/Samples/GPS + * \image html sample_gps.png "screenshot" + * @see http://3rdparty.downloads.openmoko.org + */ \ No newline at end of file diff --git a/libs/QMapControl/Samples/GPS/src/gps.cpp b/libs/QMapControl/Samples/GPS/src/gps.cpp new file mode 100644 index 00000000..94cbf94b --- /dev/null +++ b/libs/QMapControl/Samples/GPS/src/gps.cpp @@ -0,0 +1,125 @@ +#include "gps.h" + +/*! + * \example gps.cpp + * This sample application uses GPS data from the gllin service, which you have to start manually before using this application. + * The file /tmp/nmeaNP is read in for the posiitons. + * + * The application receives positions from the GPS_Neo class and writes it into a label. + * You can toggle a button to set the view to the received coordinate. + * + * You can find this example here: MapAPI/Samples/GPS + * \image html sample_gps.png "screenshot" + * @see http://3rdparty.downloads.openmoko.org + */ + +#include +#include +#include + +GPS::GPS() +{ + // create MapControl + mc = new MapControl(QSize(480,640)); +// ImageManager::instance()->setProxy("www-cache", 8080); + + // create MapAdapter to get maps from + TileMapAdapter* mapadapter = new TileMapAdapter("tile.openstreetmap.org", "/%1/%2/%3.png", 256, 0, 17); + + // create a layer with the mapadapter and type MapLayer + Layer* l = new Layer("Custom Layer", mapadapter, Layer::MapLayer); + + //current GPS Location + gpsDot = new CirclePoint(0,0, "GPS", CirclePoint::Middle, new QPen( Qt::darkBlue )); + l->addGeometry( gpsDot ); + + // add Layer to the MapControl + mc->addLayer(l); + + // display the MapControl in the application + QHBoxLayout* layout = new QHBoxLayout; + layout->addWidget(mc); + setLayout(layout); + + // create buttons as controls for zoom + QPushButton* zoomin = new QPushButton("+"); + QPushButton* zoomout = new QPushButton("-"); + + followgps = new QPushButton("Follow"); + followgps->setCheckable(true); + simulategps = new QPushButton("Simulate"); + simulategps->setCheckable(true); + gpsposition = new QLabel(); + zoomin->setMaximumWidth(50); + zoomout->setMaximumWidth(50); + followgps->setMaximumWidth(50); + simulategps->setMaximumWidth(50); + gpsposition->setFont(QFont("Arial", 10)); + + connect(zoomin, SIGNAL(clicked(bool)), + mc, SLOT(zoomIn())); + connect(zoomout, SIGNAL(clicked(bool)), + mc, SLOT(zoomOut())); + + connect(simulategps, SIGNAL(clicked(bool)), + this, SLOT(simulategps_checked())); + + // add zoom buttons to the layout of the MapControl + QVBoxLayout* innerlayout = new QVBoxLayout; + innerlayout->addWidget(zoomin); + innerlayout->addWidget(zoomout); + innerlayout->addWidget(followgps); + innerlayout->addWidget(simulategps); + innerlayout->addWidget(gpsposition); + mc->setLayout(innerlayout); + + GPS_Neo* gm = new GPS_Neo(); + connect(gm, SIGNAL(new_position(float, QPointF)), + this, SLOT(updatePosition(float, QPointF))); + + gpsSim = new GPS_Simulation(this); + connect(gpsSim, SIGNAL(newPosition(float,QPointF)), + this, SLOT(updatePosition(float, QPointF))); + + mc->setView(QPointF(0, 0)); + + gm->start(); +} + +GPS::~GPS() +{ +} + +void GPS::updatePosition(float time, QPointF coordinate) +{ + gpsposition->setText(QString::number(time) + " / " + QString::number(coordinate.x()) + " / " + QString::number(coordinate.y())); + if (followgps->isChecked()) + { + mc->setView(coordinate); + } + + //update the gps dot location on map + gpsDot->setCoordinate(coordinate); +} + +void GPS::resizeEvent(QResizeEvent *qEvent) +{ + Q_UNUSED( qEvent ); + if (mc) + { + mc->resize(size()); + } +} + +void GPS::simulategps_checked() +{ + if ( simulategps->isChecked() ) + { + gpsSim->start(); + } + else + { + gpsSim->stop(); + } +} + diff --git a/libs/QMapControl/Samples/GPS/src/gps.h b/libs/QMapControl/Samples/GPS/src/gps.h new file mode 100644 index 00000000..96848828 --- /dev/null +++ b/libs/QMapControl/Samples/GPS/src/gps.h @@ -0,0 +1,33 @@ +#ifndef GPS_H +#define GPS_H + +#include +#include +#include +#include "gps_neo.h" +#include "gps_simulation.h" +#include "circlepoint.h" + +using namespace qmapcontrol; +class GPS: public QWidget +{ + Q_OBJECT + public: + GPS(); + ~GPS(); + + private: + QPushButton* followgps; + QPushButton* simulategps; + QLabel* gpsposition; + MapControl* mc; + GPS_Simulation* gpsSim; + CirclePoint* gpsDot; + + public slots: + void updatePosition(float time, QPointF coordinate); + void resizeEvent(QResizeEvent *qEvent); + void simulategps_checked(); +}; + +#endif diff --git a/libs/QMapControl/Samples/GPS/src/gps_neo.cpp b/libs/QMapControl/Samples/GPS/src/gps_neo.cpp new file mode 100644 index 00000000..b1871c7f --- /dev/null +++ b/libs/QMapControl/Samples/GPS/src/gps_neo.cpp @@ -0,0 +1,70 @@ +#include "gps_neo.h" + +GPS_Neo::GPS_Neo(QObject *parent) + : QObject(parent) +{ + running = false; +} + + +GPS_Neo::~GPS_Neo() +{ +} + +void GPS_Neo::start() +{ + if (!running) + { + running = true; + QTimer::singleShot(1000, this, SLOT(tick())); + } +} +void GPS_Neo::stop() +{ + running = false; +} + +void GPS_Neo::tick() +{ + QFile file("/tmp/nmeaNP"); + if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) + { +// qDebug() << file.error(); + return; + } + + QByteArray line; + while (!file.atEnd()) + { + line = file.readLine(); + if (line.contains("GPRMC")) + { + break; + } + } + file.close(); + + GPS_Position pos = process_line(line); + + emit(new_position(pos.time, QPointF(pos.longitude, pos.latitude))); + + if (running) + { + QTimer::singleShot(1000, this, SLOT(tick())); + } +} + +GPS_Position GPS_Neo::process_line(QByteArray line) +{ + line.chop(1); + + QList elems = line.split(','); + + float time = QString(elems.at(1)).toFloat(); + float latitude = elems.at(3).toFloat()/100; + QString latitude_dir = elems.at(4); + float longitude = elems.at(5).toFloat()/100; + QString longitude_dir = elems.at(6); + + return GPS_Position(time, longitude, longitude_dir, latitude, latitude_dir); +} diff --git a/libs/QMapControl/Samples/GPS/src/gps_neo.h b/libs/QMapControl/Samples/GPS/src/gps_neo.h new file mode 100644 index 00000000..9e28e736 --- /dev/null +++ b/libs/QMapControl/Samples/GPS/src/gps_neo.h @@ -0,0 +1,36 @@ +#ifndef GPS_NEO_H +#define GPS_NEO_H + +#include +#include +#include +//! A parser for the NMEA data format +/*! + * This class parses gps data from the Neo´s gllin service, which you have to start manually + * It reads the device file every seconds and emits a signal which contains a GPS_Position. + * @see http://3rdparty.downloads.openmoko.org + * @author Kai Winter +*/ +using namespace qmapcontrol; +class GPS_Neo: public QObject +{ + Q_OBJECT + public: + GPS_Neo(QObject *parent = 0); + ~GPS_Neo(); + void start(); + void stop(); + + private: + QList positions; + GPS_Position process_line(QByteArray line); + bool running; + + signals: + void new_position(float, QPointF); + + public slots: + void tick(); +}; + +#endif diff --git a/libs/QMapControl/Samples/GPS/src/gps_simulation.cpp b/libs/QMapControl/Samples/GPS/src/gps_simulation.cpp new file mode 100644 index 00000000..f85d4cce --- /dev/null +++ b/libs/QMapControl/Samples/GPS/src/gps_simulation.cpp @@ -0,0 +1,41 @@ +#include "gps_simulation.h" +#include +#include +#include + +GPS_Simulation::GPS_Simulation(QObject *parent) : + QObject(parent), + timer(new QTimer(this)), + mLat(40.748817f), //new york lat + mLong(-73.985428f) //new york lat +{ + bool connected = connect( timer, SIGNAL(timeout()), this, SLOT(tick()), Qt::QueuedConnection ); + Q_ASSERT( connected ); +} + +GPS_Simulation::~GPS_Simulation() +{ +} + +void GPS_Simulation::start() +{ + timer->start(1000); //1 sec updates +} + +void GPS_Simulation::stop() +{ + timer->stop(); +} + +void GPS_Simulation::tick() +{ + static float faketime = qrand() % 5000; + + float lTempLat = qrand() % 2 - 1; //gives a number between -1 and 1 + float lTempLong = qrand() % 2 - 1; //gives a number between -1 and 1 + + mLat = qBound(float(-90), (mLat + (lTempLat/10)), float(90)); + mLong = qBound(float(-180), (mLat + (lTempLong/10)), float(180)); + + emit newPosition( ++faketime, QPointF(mLong, mLat) ); +} diff --git a/libs/QMapControl/Samples/GPS/src/gps_simulation.h b/libs/QMapControl/Samples/GPS/src/gps_simulation.h new file mode 100644 index 00000000..9d9caf90 --- /dev/null +++ b/libs/QMapControl/Samples/GPS/src/gps_simulation.h @@ -0,0 +1,30 @@ +#ifndef GPS_SIMULATION_H +#define GPS_SIMULATION_H + +#include +#include +#include + +class GPS_Simulation : public QObject +{ + Q_OBJECT +public: + explicit GPS_Simulation(QObject *parent = 0); + ~GPS_Simulation(); + + void start(); + void stop(); + +signals: + void newPosition(float time, QPointF coordinate); + +public slots: + void tick(); + +private: + QTimer* timer; + float mLat; + float mLong; +}; + +#endif // GPS_SIMULATION_H diff --git a/libs/QMapControl/Samples/GPS/src/main.cpp b/libs/QMapControl/Samples/GPS/src/main.cpp new file mode 100644 index 00000000..48a47e60 --- /dev/null +++ b/libs/QMapControl/Samples/GPS/src/main.cpp @@ -0,0 +1,13 @@ +#include +#include "gps.h" +int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + + GPS ta; + ta.resize(480, 640); + + ta.setWindowTitle("GPS Demo"); + ta.show(); + return app.exec(); +} diff --git a/libs/QMapControl/Samples/LinesAndPoints/LinesAndPoints.kdevelop b/libs/QMapControl/Samples/LinesAndPoints/LinesAndPoints.kdevelop new file mode 100644 index 00000000..59140c74 --- /dev/null +++ b/libs/QMapControl/Samples/LinesAndPoints/LinesAndPoints.kdevelop @@ -0,0 +1,195 @@ + + + + Kai Winter + kaiwinter@gmx.de + 1 + KDevTrollProject + C++ + + Qt + + LinesAndPoints + + . + false + + + + + + + + + + + false + false + + + *.o,*.lo,CVS + false + + + + + bash + bash_bugs + clanlib + w3c-dom-level2-html + fortran_bugs_gcc + gnome1 + gnustep + gtk + gtk_bugs + haskell + haskell_bugs_ghc + java_bugs_gcc + java_bugs_sun + kde2book + opengl + pascal_bugs_fp + php + php_bugs + perl + perl_bugs + python + python_bugs + qt-kdev3 + ruby + ruby_bugs + sdl + stl + w3c-svg + sw + w3c-uaag10 + wxwidgets_bugs + + + KDE Libraries (Doxygen) + + + + + + + + + + true + false + false + false + + + false + true + 10 + + + + + 4 + true + 4 + ExternalDesigner + /usr/lib/qt4 + /usr/lib/qt4/bin/qmake-qt4 + /usr/lib/qt4/bin/designer-qt4 + + + + false + true + true + 250 + 400 + 250 + false + 0 + true + true + false + std=_GLIBCXX_STD;__gnu_cxx=std + true + false + true + false + false + true + true + false + .; + + + + set + m_,_ + theValue + true + true + + + false + true + Vertical + + + Qt4 + + + + + + + + + + + + + + + + executable + ./bin/Linesandpoints + + + ./bin/ + true + false + false + false + false + + + + true + false + 1 + false + + 0 + + + + 2 + false + true + false + + + + + .h + .cpp + + + + + + + + + + diff --git a/libs/QMapControl/Samples/LinesAndPoints/LinesAndPoints.kdevses b/libs/QMapControl/Samples/LinesAndPoints/LinesAndPoints.kdevses new file mode 100644 index 00000000..0368b203 --- /dev/null +++ b/libs/QMapControl/Samples/LinesAndPoints/LinesAndPoints.kdevses @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/libs/QMapControl/Samples/LinesAndPoints/LinesAndPoints.pro b/libs/QMapControl/Samples/LinesAndPoints/LinesAndPoints.pro new file mode 100644 index 00000000..337cb53a --- /dev/null +++ b/libs/QMapControl/Samples/LinesAndPoints/LinesAndPoints.pro @@ -0,0 +1,15 @@ +include(../../QMapControl.pri) +QT+=network +QT+=gui +greaterThan(QT_MAJOR_VERSION, 4): QT += widgets +greaterThan(QT_MAJOR_VERSION, 4): cache() +DEPENDPATH += src +MOC_DIR = tmp +OBJECTS_DIR = obj +DESTDIR = ../bin +TARGET = Linesandpoints + +# Input +HEADERS += src/linesandpoints.h +SOURCES += src/linesandpoints.cpp src/main.cpp + diff --git a/libs/QMapControl/Samples/LinesAndPoints/Readme b/libs/QMapControl/Samples/LinesAndPoints/Readme new file mode 100644 index 00000000..79a2e128 --- /dev/null +++ b/libs/QMapControl/Samples/LinesAndPoints/Readme @@ -0,0 +1,16 @@ +/*! + * \example linesandpoints.cpp + * This application demonstrates how to use Geometry objects and how to add them to a layer. + * + * Here are used three different point types: + * - One which displays a image + * - One which draws a plain circle + * - One which uses a QPen to draw a circle + * - One which has no markers + * Then these Points were added to a LineString + * + * Also there is a keylistener. + * + * You can find this example here: MapAPI/Samples/LinesAndPoints + * \image html sample_linesandpoints.png "screenshot" + */ \ No newline at end of file diff --git a/libs/QMapControl/Samples/LinesAndPoints/src/linesandpoints.cpp b/libs/QMapControl/Samples/LinesAndPoints/src/linesandpoints.cpp new file mode 100644 index 00000000..58328220 --- /dev/null +++ b/libs/QMapControl/Samples/LinesAndPoints/src/linesandpoints.cpp @@ -0,0 +1,176 @@ +#include "linesandpoints.h" +/*! + * \example linesandpoints.cpp + * This application demonstrates how to use Geometry objects and how to add them to a layer. + * + * Here are used three different point types: + * - One which displays a image + * - One which draws a plain circle + * - One which uses a QPen to draw a circle + * - One which has no markers + * Then these Points were added to a LineString + * + * Also there is a keylistener. + * + * You can find this example here: MapAPI/Samples/LinesAndPoints + * \image html sample_linesandpoints.png "screenshot" + */ + +#include +#include +#include +#include + +LinesAndPoints::LinesAndPoints(QWidget *parent) + : QWidget(parent) +{ + // the size which the QMapControl should fill + QSize size = QSize(480,640); + + mc = new MapControl(size); + // create layout + QHBoxLayout* layout = new QHBoxLayout; + layout->addWidget(mc); + setLayout(layout); + + // create layer + MapAdapter* mapadapter = new OSMMapAdapter(); + Layer* l = new MapLayer("Custom Layer", mapadapter); + + mc->addLayer(l); + + // create a LineString + QList points; + // Points with image + points.append(new ImagePoint(8.259959, 50.001781, "images/bus_stop.png", "Mainz, Hauptbahnhof", Point::BottomLeft)); + points.append(new ImagePoint(8.263758, 49.998917, "images/bus_stop.png", "Mainz, Münsterplatz", Point::BottomLeft)); + points.append(new ImagePoint(8.265812, 50.001952, "images/bus_stop.png","Mainz, Neubrunnenplatz", Point::BottomLeft)); + // Points with a circle + points.append(new CirclePoint(8.2688, 50.004015, "Mainz, Bauhofstraße LRP", Point::Middle)); + points.append(new CirclePoint(8.272845, 50.00495, "Mainz, Landtag", Point::Middle)); + points.append(new CirclePoint(8.280349, 50.008173, "Mainz, Brückenkopf", Point::Middle)); + // A QPen can be used to customize the + QPen* pointpen = new QPen(QColor(0,255,0)); + pointpen->setWidth(3); + points.append(new CirclePoint(8.273573, 50.016315, 15, "Wiesbaden-Mainz-Kastel, Eleonorenstraße", Point::Middle, pointpen)); + points.append(new CirclePoint(8.275145, 50.016992, 15, "Wiesbaden-Mainz-Kastel, Johannes-Goßner-Straße", Point::Middle, pointpen)); + points.append(new CirclePoint(8.270476, 50.021426, 15, "Wiesbaden-Mainz-Kastel, Ruthof", Point::Middle, pointpen)); + // "Blind" Points + points.append(new Point(8.266445, 50.025913, "Wiesbaden-Mainz-Kastel, Mudra Kaserne")); + points.append(new Point(8.260378, 50.030345, "Wiesbaden-Mainz-Amoneburg, Dyckerhoffstraße")); + + // A QPen also can use transparency + QPen* linepen = new QPen(QColor(0, 0, 255, 100)); + linepen->setWidth(5); + // Add the Points and the QPen to a LineString + LineString* ls = new LineString(points, "Busline 54", linepen); + + // Add the LineString to the layer + l->addGeometry(ls); + + // Connect click events of the layer to this object + connect(l, SIGNAL(geometryClicked(Geometry*, QPoint)), + this, SLOT(geometryClicked(Geometry*, QPoint))); + + // Sets the view to the interesting area + mc->setView(QPointF(8.259959, 50.001781)); + mc->setZoom(11); + + addZoomButtons(); +} + +void LinesAndPoints::addZoomButtons() +{ + // create buttons as controls for zoom + QPushButton* zoomin = new QPushButton("+"); + QPushButton* zoomout = new QPushButton("-"); + zoomin->setMaximumWidth(50); + zoomout->setMaximumWidth(50); + + connect(zoomin, SIGNAL(clicked(bool)), + mc, SLOT(zoomIn())); + connect(zoomout, SIGNAL(clicked(bool)), + mc, SLOT(zoomOut())); + + // add zoom buttons to the layout of the MapControl + QVBoxLayout* innerlayout = new QVBoxLayout; + innerlayout->addWidget(zoomin); + innerlayout->addWidget(zoomout); + mc->setLayout(innerlayout); +} + +void LinesAndPoints::geometryClicked(Geometry* geom, QPoint) +{ + qDebug() << "parent: " << geom->parentGeometry(); + qDebug() << "Element clicked: " << geom->name(); + if (geom->hasClickedPoints()) + { + QList pp = geom->clickedPoints(); + qDebug() << "number of child elements: " << pp.size(); + for (int i=0; iname(), pp.at(i)->name()); + } + } + else if (geom->GeometryType == "Point") + { + QMessageBox::information(this, geom->name(), "just a point"); + } +} + +LinesAndPoints::~LinesAndPoints() +{ +} + +void LinesAndPoints::resizeEvent(QResizeEvent *qEvent) +{ + Q_UNUSED( qEvent ); + if (mc) + { + mc->resize(size()); + } +} + +void LinesAndPoints::keyPressEvent(QKeyEvent* evnt) +{ + if (evnt->key() == 49 || evnt->key() == 17825792) // tastatur '1' + { + mc->zoomIn(); + } + else if (evnt->key() == 50) + { + mc->moveTo(QPointF(8.25, 60)); + } + else if (evnt->key() == 51 || evnt->key() == 16777313) // tastatur '3' + { + mc->zoomOut(); + } + else if (evnt->key() == 54) // 6 + { + mc->setView(QPointF(8,50)); + } + else if (evnt->key() == 16777234) // left + { + mc->scrollLeft(); + } + else if (evnt->key() == 16777236) // right + { + mc->scrollRight(); + } + else if (evnt->key() == 16777235 ) // up + { + mc->scrollUp(); + } + else if (evnt->key() == 16777237) // down + { + mc->scrollDown(); + } + else if (evnt->key() == 48 || evnt->key() == 17825797) // 0 + { + emit(close()); + } + else + { + qDebug() << evnt->key() << endl; + } +} diff --git a/libs/QMapControl/Samples/LinesAndPoints/src/linesandpoints.h b/libs/QMapControl/Samples/LinesAndPoints/src/linesandpoints.h new file mode 100644 index 00000000..b83e6424 --- /dev/null +++ b/libs/QMapControl/Samples/LinesAndPoints/src/linesandpoints.h @@ -0,0 +1,30 @@ +#ifndef LINESANDPOINTS_H +#define LINESANDPOINTS_H + +#include +#include +#include +#include +#include +#include +using namespace qmapcontrol; +class LinesAndPoints : public QWidget +{ + Q_OBJECT + public: + LinesAndPoints(QWidget *parent = 0); + ~LinesAndPoints(); + + private: + MapControl* mc; + void addZoomButtons(); + + public slots: + void geometryClicked(Geometry* geom, QPoint coord_px); + void resizeEvent(QResizeEvent *qEvent); + + protected: + void keyPressEvent(QKeyEvent* evnt); +}; + +#endif diff --git a/libs/QMapControl/Samples/LinesAndPoints/src/main.cpp b/libs/QMapControl/Samples/LinesAndPoints/src/main.cpp new file mode 100644 index 00000000..65f1f243 --- /dev/null +++ b/libs/QMapControl/Samples/LinesAndPoints/src/main.cpp @@ -0,0 +1,12 @@ +#include +#include "linesandpoints.h" +int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + + LinesAndPoints ta; + ta.resize(480,640); + ta.setWindowTitle("QMapControl Demo"); + ta.show(); + return app.exec(); +} diff --git a/libs/QMapControl/Samples/Mapview_FixedOverlayOnEmptyMap/Mapviewer.kdevelop b/libs/QMapControl/Samples/Mapview_FixedOverlayOnEmptyMap/Mapviewer.kdevelop new file mode 100644 index 00000000..4f8a36ee --- /dev/null +++ b/libs/QMapControl/Samples/Mapview_FixedOverlayOnEmptyMap/Mapviewer.kdevelop @@ -0,0 +1,195 @@ + + + + Kai Winter + kaiwinter@gmx.de + 1 + KDevTrollProject + C++ + + Qt + + Mapviewer + + . + false + + + + + + + + + + + false + false + + + *.o,*.lo,CVS + false + + + + + bash + bash_bugs + clanlib + w3c-dom-level2-html + fortran_bugs_gcc + gnome1 + gnustep + gtk + gtk_bugs + haskell + haskell_bugs_ghc + java_bugs_gcc + java_bugs_sun + kde2book + opengl + pascal_bugs_fp + php + php_bugs + perl + perl_bugs + python + python_bugs + qt-kdev3 + ruby + ruby_bugs + sdl + stl + w3c-svg + sw + w3c-uaag10 + wxwidgets_bugs + + + KDE Libraries (Doxygen) + + + + + + + + + + true + false + false + false + + + false + true + 10 + + + + + 4 + true + 4 + ExternalDesigner + /usr/lib/qt4 + /usr/lib/qt4/bin/qmake-qt4 + /usr/lib/qt4/bin/designer-qt4 + + + + false + true + true + 250 + 400 + 250 + false + 0 + true + true + false + std=_GLIBCXX_STD;__gnu_cxx=std + true + false + false + false + false + true + true + false + .; + + + + set + m_,_ + theValue + true + true + + + false + true + Vertical + + + Qt4 + + + + + + + + + + + + + + + + executable + ./bin/Mapviewer + + + ./bin + true + false + false + false + false + + + + true + false + 1 + false + + 0 + + + + 2 + false + true + false + + + + + .h + .cpp + + + + + + + + + + diff --git a/libs/QMapControl/Samples/Mapview_FixedOverlayOnEmptyMap/Mapviewer.pro b/libs/QMapControl/Samples/Mapview_FixedOverlayOnEmptyMap/Mapviewer.pro new file mode 100644 index 00000000..ce9d0f7b --- /dev/null +++ b/libs/QMapControl/Samples/Mapview_FixedOverlayOnEmptyMap/Mapviewer.pro @@ -0,0 +1,13 @@ +include(../../QMapControl.pri) +MOC_DIR = tmp +OBJECTS_DIR = obj +DESTDIR = bin +TARGET = Mapviewer +DEPENDPATH += . ../../src +INCLUDEPATH += . ../../src + +# Input +HEADERS += src/mapviewer.h +SOURCES += src/main.cpp src/mapviewer.cpp + +QT+=network diff --git a/libs/QMapControl/Samples/Mapview_FixedOverlayOnEmptyMap/bin/sample.png b/libs/QMapControl/Samples/Mapview_FixedOverlayOnEmptyMap/bin/sample.png new file mode 100644 index 0000000000000000000000000000000000000000..70c336ddddd4aa9a581642862ad2baa886b6e94a GIT binary patch literal 116033 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 Noa|jmH75d-{{sP`yX*h} literal 0 HcmV?d00001 diff --git a/libs/QMapControl/Samples/Mapview_FixedOverlayOnEmptyMap/src/main.cpp b/libs/QMapControl/Samples/Mapview_FixedOverlayOnEmptyMap/src/main.cpp new file mode 100644 index 00000000..40c10e66 --- /dev/null +++ b/libs/QMapControl/Samples/Mapview_FixedOverlayOnEmptyMap/src/main.cpp @@ -0,0 +1,13 @@ +#include +#include "mapviewer.h" +int main(int argc, char *argv[]) +{ + + QApplication app(argc, argv); + + Mapviewer ta; + ta.resize(380, 565); + ta.setWindowTitle("Mapviewer"); + ta.show(); + return app.exec(); +} diff --git a/libs/QMapControl/Samples/Mapview_FixedOverlayOnEmptyMap/src/mapviewer.cpp b/libs/QMapControl/Samples/Mapview_FixedOverlayOnEmptyMap/src/mapviewer.cpp new file mode 100644 index 00000000..e6d00c5f --- /dev/null +++ b/libs/QMapControl/Samples/Mapview_FixedOverlayOnEmptyMap/src/mapviewer.cpp @@ -0,0 +1,71 @@ +#include "mapviewer.h" +Mapviewer::Mapviewer(QWidget *parent) + : QMainWindow(parent) +{ + // create MapControl + mc = new MapControl(QSize(380, 540)); + mc->showScale(true); + + // create mapadapter, for mainlayer and overlay + mapadapter = new EmptyMapAdapter(512); + + // create a layer with the mapadapter and type MapLayer + mainlayer = new MapLayer("", mapadapter); + + // add Layer to the MapControl + mc->addLayer(mainlayer); + + addZoomButtons(); + + // show mapcontrol in mainwindow + setCentralWidget(mc); + + FixedImageOverlay* fip = new FixedImageOverlay(-36, 66, 37, 23, QCoreApplication::applicationDirPath() + "/sample.png"); + + mc->setView(QPointF(10,50)); + mc->zoomIn(); + + mainlayer->addGeometry(fip); + + connect(mc, SIGNAL(mouseEventCoordinate(const QMouseEvent*, const QPointF)), + this, SLOT(coordinateClicked(const QMouseEvent*, const QPointF))); + +} +void Mapviewer::addZoomButtons() +{ + // create buttons as controls for zoom + QPushButton* zoomin = new QPushButton("+"); + QPushButton* zoomout = new QPushButton("-"); + zoomin->setMaximumWidth(50); + zoomout->setMaximumWidth(50); + + connect(zoomin, SIGNAL(clicked(bool)), + mc, SLOT(zoomIn())); + connect(zoomout, SIGNAL(clicked(bool)), + mc, SLOT(zoomOut())); + + // add zoom buttons to the layout of the MapControl + QVBoxLayout* innerlayout = new QVBoxLayout; + innerlayout->addWidget(zoomin); + innerlayout->addWidget(zoomout); + mc->setLayout(innerlayout); +} + + +Mapviewer::~Mapviewer() +{ +} + +// resize the widget +void Mapviewer::resizeEvent ( QResizeEvent * event ) +{ + mc->resize(event->size()); +} + +void Mapviewer::coordinateClicked(const QMouseEvent * evnt, const QPointF coordinate) +{ + if (evnt->type()==QEvent::MouseButtonPress) + { + qDebug() << coordinate << ": " << evnt->x() << " / " << evnt->y(); + } +} diff --git a/libs/QMapControl/Samples/Mapview_FixedOverlayOnEmptyMap/src/mapviewer.h b/libs/QMapControl/Samples/Mapview_FixedOverlayOnEmptyMap/src/mapviewer.h new file mode 100644 index 00000000..21b8d4d4 --- /dev/null +++ b/libs/QMapControl/Samples/Mapview_FixedOverlayOnEmptyMap/src/mapviewer.h @@ -0,0 +1,30 @@ +#ifndef MAPVIEWER_H +#define MAPVIEWER_H + +#include +#include "../../../qmapcontrol.h" +using namespace qmapcontrol; +class Mapviewer : public QMainWindow +{ + Q_OBJECT + +public: + Mapviewer(QWidget *parent = 0); + + ~Mapviewer(); + +private: + MapControl* mc; + MapAdapter* mapadapter; + Layer* mainlayer; + + void addZoomButtons(); + +public slots: + void coordinateClicked(const QMouseEvent* evnt, const QPointF coordinate); + +protected: + virtual void resizeEvent ( QResizeEvent * event ); +}; + +#endif diff --git a/libs/QMapControl/Samples/Mapviewer/Mapviewer.kdevelop b/libs/QMapControl/Samples/Mapviewer/Mapviewer.kdevelop new file mode 100644 index 00000000..4f8a36ee --- /dev/null +++ b/libs/QMapControl/Samples/Mapviewer/Mapviewer.kdevelop @@ -0,0 +1,195 @@ + + + + Kai Winter + kaiwinter@gmx.de + 1 + KDevTrollProject + C++ + + Qt + + Mapviewer + + . + false + + + + + + + + + + + false + false + + + *.o,*.lo,CVS + false + + + + + bash + bash_bugs + clanlib + w3c-dom-level2-html + fortran_bugs_gcc + gnome1 + gnustep + gtk + gtk_bugs + haskell + haskell_bugs_ghc + java_bugs_gcc + java_bugs_sun + kde2book + opengl + pascal_bugs_fp + php + php_bugs + perl + perl_bugs + python + python_bugs + qt-kdev3 + ruby + ruby_bugs + sdl + stl + w3c-svg + sw + w3c-uaag10 + wxwidgets_bugs + + + KDE Libraries (Doxygen) + + + + + + + + + + true + false + false + false + + + false + true + 10 + + + + + 4 + true + 4 + ExternalDesigner + /usr/lib/qt4 + /usr/lib/qt4/bin/qmake-qt4 + /usr/lib/qt4/bin/designer-qt4 + + + + false + true + true + 250 + 400 + 250 + false + 0 + true + true + false + std=_GLIBCXX_STD;__gnu_cxx=std + true + false + false + false + false + true + true + false + .; + + + + set + m_,_ + theValue + true + true + + + false + true + Vertical + + + Qt4 + + + + + + + + + + + + + + + + executable + ./bin/Mapviewer + + + ./bin + true + false + false + false + false + + + + true + false + 1 + false + + 0 + + + + 2 + false + true + false + + + + + .h + .cpp + + + + + + + + + + diff --git a/libs/QMapControl/Samples/Mapviewer/Mapviewer.pro b/libs/QMapControl/Samples/Mapviewer/Mapviewer.pro new file mode 100644 index 00000000..b2980761 --- /dev/null +++ b/libs/QMapControl/Samples/Mapviewer/Mapviewer.pro @@ -0,0 +1,16 @@ +include(../../QMapControl.pri) +QT+=network +QT+=gui +greaterThan(QT_MAJOR_VERSION, 4): QT += widgets +greaterThan(QT_MAJOR_VERSION, 4): cache() + +DEPENDPATH += src +MOC_DIR = tmp +OBJECTS_DIR = obj +DESTDIR = ../bin +TARGET = Mapviewer + +# Input +HEADERS += src/mapviewer.h +SOURCES += src/main.cpp src/mapviewer.cpp + diff --git a/libs/QMapControl/Samples/Mapviewer/Readme b/libs/QMapControl/Samples/Mapviewer/Readme new file mode 100644 index 00000000..240ea16a --- /dev/null +++ b/libs/QMapControl/Samples/Mapviewer/Readme @@ -0,0 +1,9 @@ +/*! + * \example mapviewer.cpp + * This application is just a simple map viewer. A Mapadapter is created (OpenStreetmaps) + * and added to a layer. The layer is given to the MapControl. + * Two Buttons are available to adjust the zoom level. + * + * You can find this example here: MapAPI/Samples/Mapviewer + * \image html sample_mapviewer.png "screenshot" + */ \ No newline at end of file diff --git a/libs/QMapControl/Samples/Mapviewer/src/main.cpp b/libs/QMapControl/Samples/Mapviewer/src/main.cpp new file mode 100644 index 00000000..fe591c38 --- /dev/null +++ b/libs/QMapControl/Samples/Mapviewer/src/main.cpp @@ -0,0 +1,16 @@ +#include +#include + +#include "mapviewer.h" + +int main(int argc, char *argv[]) +{ + + QApplication app(argc, argv); + + Mapviewer ta; + ta.resize(380, 565); + ta.setWindowTitle("Mapviewer"); + ta.show(); + return app.exec(); +} diff --git a/libs/QMapControl/Samples/Mapviewer/src/mapviewer.cpp b/libs/QMapControl/Samples/Mapviewer/src/mapviewer.cpp new file mode 100644 index 00000000..62f020db --- /dev/null +++ b/libs/QMapControl/Samples/Mapviewer/src/mapviewer.cpp @@ -0,0 +1,68 @@ +#include "mapviewer.h" + +#include +#include + +/*! + * \example mapviewer.cpp + * This application is just a simple map viewer. A Mapadapter is created (OpenStreetmaps) + * and added to a layer. The layer is given to the MapControl. + * Two Buttons are available to adjust the zoom level. If the window is + * resized the map widget will adjust its size. + * + * You can find this example here: QMapControl/Samples/Mapviewer + * \image html sample_mapviewer.png "screenshot" + */ +Mapviewer::Mapviewer(QWidget *parent) + : QMainWindow(parent) +{ + // create MapControl + mc = new MapControl(QSize(380, 540)); + mc->showScale(true); + + // create mapadapter, for mainlayer and overlay + mapadapter = new OSMMapAdapter(); + + // create a layer with the mapadapter and type MapLayer + mainlayer = new MapLayer("OpenStreetMap-Layer", mapadapter); + + // add Layer to the MapControl + mc->addLayer(mainlayer); + + addZoomButtons(); + + mc->setView(QPointF(0,0)); + mc->setZoom(2); + // show mapcontrol in mainwindow + setCentralWidget(mc); +} + +void Mapviewer::addZoomButtons() +{ + // create buttons as controls for zoom + QPushButton* zoomin = new QPushButton("+"); + QPushButton* zoomout = new QPushButton("-"); + zoomin->setMaximumWidth(50); + zoomout->setMaximumWidth(50); + + connect(zoomin, SIGNAL(clicked(bool)), + mc, SLOT(zoomIn())); + connect(zoomout, SIGNAL(clicked(bool)), + mc, SLOT(zoomOut())); + + // add zoom buttons to the layout of the MapControl + QVBoxLayout* innerlayout = new QVBoxLayout; + innerlayout->addWidget(zoomin); + innerlayout->addWidget(zoomout); + mc->setLayout(innerlayout); +} + +Mapviewer::~Mapviewer() +{ +} + +// resize the widget +void Mapviewer::resizeEvent ( QResizeEvent * event ) +{ + mc->resize(event->size()); +} diff --git a/libs/QMapControl/Samples/Mapviewer/src/mapviewer.h b/libs/QMapControl/Samples/Mapviewer/src/mapviewer.h new file mode 100644 index 00000000..136e8177 --- /dev/null +++ b/libs/QMapControl/Samples/Mapviewer/src/mapviewer.h @@ -0,0 +1,29 @@ +#ifndef MAPVIEWER_H +#define MAPVIEWER_H +#include +#include +#include +#include +#include +using namespace qmapcontrol; +class Mapviewer : public QMainWindow +{ + Q_OBJECT + +public: + Mapviewer(QWidget *parent = 0); + + ~Mapviewer(); + +private: + MapControl* mc; + MapAdapter* mapadapter; + Layer* mainlayer; + + void addZoomButtons(); + +protected: + virtual void resizeEvent ( QResizeEvent * event ); +}; + +#endif diff --git a/libs/QMapControl/Samples/Multidemo/Multidemo.kdevelop b/libs/QMapControl/Samples/Multidemo/Multidemo.kdevelop new file mode 100644 index 00000000..d15ab5f6 --- /dev/null +++ b/libs/QMapControl/Samples/Multidemo/Multidemo.kdevelop @@ -0,0 +1,197 @@ + + + + Kai Winter + kaiwinter@gmx.de + 1 + KDevTrollProject + C++ + + Qt + + Multidemo + + . + false + + + + + + + + + + + false + false + + + *.o,*.lo,CVS + false + + + + + bash + bash_bugs + clanlib + w3c-dom-level2-html + fortran_bugs_gcc + gnome1 + gnustep + gtk + gtk_bugs + haskell + haskell_bugs_ghc + java_bugs_gcc + java_bugs_sun + kde2book + opengl + pascal_bugs_fp + php + php_bugs + perl + perl_bugs + python + python_bugs + qt-kdev3 + ruby + ruby_bugs + sdl + stl + w3c-svg + sw + w3c-uaag10 + wxwidgets_bugs + + + KDE Libraries (Doxygen) + + + + + + + + + + true + false + false + false + + + false + true + 10 + + + + + 4 + true + 4 + ExternalDesigner + /usr/lib/qt4 + /usr/lib/qt4/bin/qmake-qt4 + /usr/lib/qt4/bin/designer-qt4 + + + + false + true + true + 250 + 400 + 250 + false + 0 + true + true + false + std=_GLIBCXX_STD;__gnu_cxx=std + true + false + false + false + false + true + true + false + .; + + + + set + m_,_ + theValue + true + true + + + false + true + Vertical + + + QMapControl + Qt4 + + + + + + + + + + + + + + + + + executable + ./bin/Multidemo + + + ./bin + true + false + false + false + false + + + + true + false + 1 + false + + 0 + + + + 2 + false + true + false + + + + + .h + .cpp + + + + + + + + + + diff --git a/libs/QMapControl/Samples/Multidemo/Multidemo.pro b/libs/QMapControl/Samples/Multidemo/Multidemo.pro new file mode 100644 index 00000000..14d61f11 --- /dev/null +++ b/libs/QMapControl/Samples/Multidemo/Multidemo.pro @@ -0,0 +1,16 @@ +include(../../QMapControl.pri) +QT+=network +DEPENDPATH += src +MOC_DIR = tmp +OBJECTS_DIR = obj +DESTDIR = ../bin +TARGET = Multidemo + +QT+=network +QT+=gui +greaterThan(QT_MAJOR_VERSION, 4): QT += widgets +greaterThan(QT_MAJOR_VERSION, 4): cache() + +# Input +HEADERS += src/multidemo.h src/gps_modul.h +SOURCES += src/multidemo.cpp src/main.cpp src/gps_modul.cpp diff --git a/libs/QMapControl/Samples/Multidemo/Readme b/libs/QMapControl/Samples/Multidemo/Readme new file mode 100644 index 00000000..86e120a3 --- /dev/null +++ b/libs/QMapControl/Samples/Multidemo/Readme @@ -0,0 +1,15 @@ +/*! + * \example multidemo.cpp + * This is a bit complexer application, which lets you play around. + * There are the following buttons configured: + * - Add Point: adds a Point to the coordinate you click (this point will be clickable) + * - Drag Rect: lets to drag a rectangular into which will be zoomed in + * - Move To Click: moves the view middle to the clicked coordinate + * - GPS: starts a "pseudo" GPS receiver which emits new positions, these are connected to the ImagePoint + * - Follow Geom: Follows the ImagePoint, when it moves because of new GPS positions + * + * A overview map lefts you see where you are. You can even click on it to change your position. + * + * You can find this example here: MapAPI/Samples/Multimap + * \image html sample_multidemo.png "screenshot" + */ \ No newline at end of file diff --git a/libs/QMapControl/Samples/Multidemo/src/gps_modul.cpp b/libs/QMapControl/Samples/Multidemo/src/gps_modul.cpp new file mode 100644 index 00000000..dcc73c28 --- /dev/null +++ b/libs/QMapControl/Samples/Multidemo/src/gps_modul.cpp @@ -0,0 +1,89 @@ +#include "gps_modul.h" + +double x = 1.0; +double y = 1.0; +GPS_Modul::GPS_Modul(QObject *parent) + : QObject(parent) +{ +// qDebug() << "GPS_Modul()"; + loadFile(); + + running = false; +} + + +GPS_Modul::~GPS_Modul() +{ +} + +void GPS_Modul::start() +{ + + if (!running) + { + running = true; + QTimer::singleShot(1000/25, this, SLOT(tick())); + } +} +void GPS_Modul::stop() +{ + running = false; +} + +void GPS_Modul::tick() +{ +// qDebug() << "GPS_Modul::tick()"; + +// GPS_Position pos = positions.takeFirst(); +// x = pos.longitude; +// y = pos.latitude; + +// qDebug() << pos.latitude << ", " << pos.longitude; + x += .1; + y += .1; + emit(new_position(QPointF(x,y))); +// emit(changed()); + +// if (running && !positions.isEmpty()) + if (running) + QTimer::singleShot(1000/25, this, SLOT(tick())); +} + +void GPS_Modul::loadFile() +{ + QFile file("/home/kai/kwint001/trunk/code/MapAPI/src/mainz_gps.nme"); +// qDebug() << file.exists(); + if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) + { + qDebug() << file.error(); + return; + } + while (!file.atEnd()) + { + QByteArray line = file.readLine(); + process_line(line); + } +} + +void GPS_Modul::process_line(QByteArray line) +{ + if (!line.contains("GPRMC")) + return; + + line.chop(1); +// qDebug() << line; + + // get time + QList elems = line.split(','); + + float time = QString(elems.at(1)).toFloat(); + float latitude = elems.at(3).toFloat()/100; + QString latitude_dir = elems.at(4); + float longitude = elems.at(5).toFloat()/100; + QString longitude_dir = elems.at(6); + + positions.append(GPS_Position(time, longitude, longitude_dir, latitude, latitude_dir)); + + +// qDebug() << elems.at(6) << " | " << latitude; +} diff --git a/libs/QMapControl/Samples/Multidemo/src/gps_modul.h b/libs/QMapControl/Samples/Multidemo/src/gps_modul.h new file mode 100644 index 00000000..11cddd8b --- /dev/null +++ b/libs/QMapControl/Samples/Multidemo/src/gps_modul.h @@ -0,0 +1,36 @@ +#ifndef GPS_MODUL_H +#define GPS_MODUL_H + +#include +#include +#include + +/** + @author Kai Winter +*/ +using namespace qmapcontrol; +class GPS_Modul : public QObject +{ + Q_OBJECT + public: + GPS_Modul(QObject *parent = 0); + ~GPS_Modul(); + void start(); + void stop(); + + private: + QList positions; + void loadFile(); + void process_line(QByteArray line); + bool running; + + signals: + void new_position(QPointF); + void changed(); + + public slots: + void tick(); + +}; + +#endif diff --git a/libs/QMapControl/Samples/Multidemo/src/main.cpp b/libs/QMapControl/Samples/Multidemo/src/main.cpp new file mode 100644 index 00000000..9b401673 --- /dev/null +++ b/libs/QMapControl/Samples/Multidemo/src/main.cpp @@ -0,0 +1,12 @@ +#include +#include "multidemo.h" +int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + + Multidemo ta; + ta.resize(480,640); + ta.setWindowTitle("QMapControl Demo"); + ta.show(); + return app.exec(); +} diff --git a/libs/QMapControl/Samples/Multidemo/src/multidemo.cpp b/libs/QMapControl/Samples/Multidemo/src/multidemo.cpp new file mode 100644 index 00000000..1e7d5f63 --- /dev/null +++ b/libs/QMapControl/Samples/Multidemo/src/multidemo.cpp @@ -0,0 +1,298 @@ +#include "multidemo.h" + +#include +#include +#include + +/*! + * \example multidemo.cpp + * This is a bit complexer application, which lets you play around. + * There are the following buttons configured: + * - Add Point: adds a Point to the coordinate you click (this point will be clickable) + * - Drag Rect: lets to drag a rectangular into which will be zoomed in + * - Move To Click: moves the view middle to the clicked coordinate + * - GPS: starts a "pseudo" GPS receiver which emits new positions, these are connected to the ImagePoint + * - Follow Geom: Follows the ImagePoint, when it moves because of new GPS positions + * + * A overview map lefts you see where you are. You can even click on it to change your position. + * + * You can find this example here: MapAPI/Samples/Multimap + * \image html sample_multidemo.png "screenshot" + */ +Multidemo::Multidemo(QWidget *parent) + : QWidget(parent) +{ + setupMaps(); + createLayout(); + + gm = new GPS_Modul(); + connect(gm, SIGNAL(new_position(QPointF)), + ip, SLOT(setCoordinate(QPointF))); + +} + +void Multidemo::setupMaps() +{ + QSize size = QSize(480,640); + + // main map control + mc = new MapControl(size); + MapAdapter* mapadapter = new WMSMapAdapter("www2.demis.nl", "/wms/wms.asp?wms=WorldMap&LAYERS=Countries,Borders,Cities,Rivers,Settlements,Hillshading,Waterbodies,Railroads,Highways,Roads&FORMAT=image/png&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&STYLES=&EXCEPTIONS=application/vnd.ogc.se_inimage&SRS=EPSG:4326&TRANSPARENT=FALSE", 256); + + // maplayer + Layer* l = new MapLayer("Custom Layer", mapadapter); + mc->addLayer(l); + // Geometry layer + Layer* l2 = new GeometryLayer("Geom Layer", mapadapter); + mc->addLayer(l2); + + + // "minimap" control + mc2 = new MapControl(QSize(150,150), MapControl::None); + MapAdapter* mapadapter_mini = new OSMMapAdapter(); + Layer* layer_mini = new MapLayer("Custom Layer", mapadapter_mini); + mc2->addLayer(layer_mini); + + // create points + QPen* pen = new QPen(QColor(255, 0, 0, 100)); + pen->setWidth(5); + QList points; + points.append(new CirclePoint(8.259959, 50.001781, "Mainz, Hauptbahnhof", Point::Middle, pen)); + points.append(new CirclePoint(8.263758, 49.998917, "Mainz, Münsterplatz", Point::Middle, pen)); + points.append(new CirclePoint(8.265812, 50.001952, "Mainz, Neubrunnenplatz", Point::Middle, pen)); + points.append(new CirclePoint(8.2688, 50.004015, "Mainz, Bauhofstraße LRP", Point::Middle, pen)); + points.append(new CirclePoint(8.272845, 50.00495, "Mainz, Landtag", Point::Middle, pen)); + points.append(new CirclePoint(8.272845, 50.00495, "Mainz, Brückenplatz", Point::Middle, pen)); + points.append(new CirclePoint(8.280349, 50.008173, "Mainz, Brückenkopf", Point::Middle, pen)); + points.append(new CirclePoint(8.273573, 50.016315, "Wiesbaden-Mainz-Kastel, Eleonorenstraße", Point::Middle, pen)); + points.append(new CirclePoint(8.275145, 50.016992, "Wiesbaden-Mainz-Kastel, Johannes-Goßner-Straße", Point::Middle, pen)); + points.append(new CirclePoint(8.270476, 50.021426, "Wiesbaden-Mainz-Kastel, Ruthof", Point::Middle, pen)); + points.append(new CirclePoint(8.266445, 50.025913, "Wiesbaden-Mainz-Kastel, Mudra Kaserne", Point::Middle, pen)); + points.append(new CirclePoint(8.260378, 50.030345, "Wiesbaden-Mainz-Amoneburg, Dyckerhoffstraße", Point::Middle, pen)); + + // add points to linestring + pen = new QPen(QColor(0, 0, 255, 100)); + pen->setWidth(5); + LineString* ls = new LineString(points, "Busline 54", pen); + // the linestring is added to the MapLayer l, since it doenst change its points + l->addGeometry(ls); + + // this point receives position changes from the "gps modul" + ip = new ImagePoint(0,0, QCoreApplication::applicationDirPath() + "/images/marker1.png", "image point", Point::TopRight); + + // so if have to be added to the GeometryLayer l2 + l2->addGeometry(ip); + QPushButton* pb = new QPushButton("test button", mc); + + // widget example + Point* wpoint = new Point(-20,-20, pb, ".", Point::TopLeft); + wpoint->setBaselevel(3); + l->addGeometry(wpoint); + pb->setGeometry(0,0,100,50); + + connect(l, SIGNAL(geometryClicked(Geometry*, QPoint)), + this, SLOT(geometryClickEvent(Geometry*, QPoint))); + connect(l2, SIGNAL(geometryClicked(Geometry*, QPoint)), + this, SLOT(geometryClickEvent(Geometry*, QPoint))); + connect(mc, SIGNAL(boxDragged(const QRectF)), + this, SLOT(draggedRect(QRectF))); + connect(mc, SIGNAL(mouseEventCoordinate(const QMouseEvent*, const QPointF)), + this, SLOT(mouseEventCoordinate(const QMouseEvent*, const QPointF))); + connect(mc, SIGNAL(mouseEventCoordinate(const QMouseEvent*, const QPointF)), + this, SLOT(coordinateClicked(const QMouseEvent*, const QPointF))); + connect(mc2, SIGNAL(mouseEventCoordinate(const QMouseEvent*, const QPointF)), + this, SLOT(coordinateClicked_mc2(const QMouseEvent*, const QPointF))); +} + +void Multidemo::createLayout() +{ + btn1 = new QPushButton("Add Point"); + btn1->setCheckable(true); + btn1->setMaximumWidth(80); + btn1->setMaximumHeight(20); + btn1->setFont(QFont("Verdana", 5)); + + btn2 = new QPushButton("Drag Rect"); + btn2->setCheckable(true); + btn2->setMaximumHeight(20); + btn2->setFont(QFont("Verdana", 5)); + btn2->setMaximumWidth(80); + + btn3 = new QPushButton("Move to Click"); + btn3->setCheckable(true); + btn3->setMaximumHeight(20); + btn3->setFont(QFont("Verdana", 5)); + btn3->setMaximumWidth(80); + + btn4 = new QPushButton("Follow Geom"); + btn4->setCheckable(true); + btn4->setMaximumHeight(20); + btn4->setFont(QFont("Verdana", 5)); + btn4->setMaximumWidth(80); + + btn5 = new QPushButton("GPS"); + btn5->setCheckable(true); + btn5->setMaximumHeight(20); + btn5->setFont(QFont("Verdana", 5)); + btn5->setMaximumWidth(80); + btn1->setFocusPolicy(Qt::NoFocus); + btn2->setFocusPolicy(Qt::NoFocus); + btn3->setFocusPolicy(Qt::NoFocus); + btn4->setFocusPolicy(Qt::NoFocus); + btn5->setFocusPolicy(Qt::NoFocus); + + QHBoxLayout* layout = new QHBoxLayout; + QVBoxLayout* layoutinner = new QVBoxLayout; + + layoutinner->addWidget(mc2); + layoutinner->addWidget(btn1); + layoutinner->addWidget(btn2); + layoutinner->addWidget(btn3); + layoutinner->addWidget(btn4); + layoutinner->addWidget(btn5); + layoutinner->addSpacing(70); + layout->addLayout(layoutinner); + + QHBoxLayout* mclayout = new QHBoxLayout; + mclayout->addWidget(mc); + mclayout->setMargin(0); + setLayout(mclayout); + + mc->setLayout(layoutinner); + + connect(btn2, SIGNAL(toggled( bool )), + this, SLOT(buttonToggled(bool))); + + connect(btn4, SIGNAL(toggled( bool )), + this, SLOT(toggleFollow(bool))); + + connect(btn5, SIGNAL(toggled( bool )), + this, SLOT(toggleGPS(bool))); +} + +void Multidemo::coordinateClicked(const QMouseEvent* evnt, const QPointF coord) +{ + if (btn1->isChecked() && evnt->type()==QEvent::MouseButtonPress) + { + mc->layer("Geom Layer")->addGeometry(new CirclePoint(coord.x(), coord.y(), 10, "added point")); + mc->updateRequestNew(); + } +} + +void Multidemo::geometryClickEvent(Geometry* geom, QPoint) +{ + if (geom->hasClickedPoints()) + { + QList pp = geom->clickedPoints(); + for (int i=0; iname(), pp.at(i)->name()); + } + } + else if (geom->GeometryType == "Point") + { + QMessageBox::information(this, geom->name(), QString("Position: ").append(QString().setNum(((Point*)geom)->longitude())).append(QString("/")).append(QString().setNum(((Point*)geom)->latitude()))); + } + +} + +Multidemo::~Multidemo() +{ +} + +void Multidemo::keyPressEvent(QKeyEvent* evnt) +{ + if (evnt->key() == 49 || evnt->key() == 17825792) // keyboard '1' + { + mc->zoomIn(); + } + else if (evnt->key() == 50) + { + mc->moveTo(QPointF(8.25, 60)); + } + else if (evnt->key() == 51 || evnt->key() == 16777313) // keyboard '3' + { + mc->zoomOut(); + } + else if (evnt->key() == 52) //4 + { + mc->updateRequestNew(); + } + else if (evnt->key() == 16777234) // left + { + mc->scrollLeft(); + } + else if (evnt->key() == 16777236) // right + { + mc->scrollRight(); + } + else if (evnt->key() == 16777235 ) // up + { + mc->scrollUp(); + } + else if (evnt->key() == 16777237) // down + { + mc->scrollDown(); + } + else if (evnt->key() == 48 || evnt->key() == 17825797) // 0 + { + emit(close()); + } +} + +void Multidemo::resizeEvent(QResizeEvent *event) +{ + mc->resize(event->size()); +} + +void Multidemo::buttonToggled(bool active) +{ + if (active) + mc->setMouseMode(MapControl::Dragging); + else + mc->setMouseMode(MapControl::Panning); +} +void Multidemo::toggleFollow(bool follow) +{ + if (follow) + mc->followGeometry(ip); + else + mc->stopFollowing(ip); +} +void Multidemo::toggleGPS(bool gps) +{ + if (gps) + gm->start(); + else + gm->stop(); + +} + +void Multidemo::draggedRect(QRectF rect) +{ + QList coords; + coords.append(rect.topLeft()); + coords.append(rect.bottomRight()); + mc->setViewAndZoomIn(coords); +} + +void Multidemo::mouseEventCoordinate(const QMouseEvent* evnt, const QPointF coordinate) +{ + if (evnt->type() == QEvent::MouseButtonPress && btn3->isChecked()) + { + mc->moveTo(coordinate); + } + //update mini-window + else if(evnt->type() == QEvent::MouseButtonRelease) + { + mc2->setView(mc->currentCoordinate()); + } +} +void Multidemo::coordinateClicked_mc2(const QMouseEvent* evnt, const QPointF coordinate) +{ + if (evnt->type() == QEvent::MouseButtonPress) + { + mc2->moveTo(coordinate); + mc->setView(coordinate); + } +} diff --git a/libs/QMapControl/Samples/Multidemo/src/multidemo.h b/libs/QMapControl/Samples/Multidemo/src/multidemo.h new file mode 100644 index 00000000..b8a5ae4a --- /dev/null +++ b/libs/QMapControl/Samples/Multidemo/src/multidemo.h @@ -0,0 +1,60 @@ +#ifndef MULTIDEMO_H +#define MULTIDEMO_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include "gps_modul.h" +using namespace qmapcontrol; +class Multidemo : public QWidget +{ + Q_OBJECT + public: + Multidemo(QWidget *parent = 0); + + ~Multidemo(); + + private: + MapControl* mc; + MapControl* mc2; + QPushButton* btn1; + QPushButton* btn2; + QPushButton* btn3; + QPushButton* btn4; + QPushButton* btn5; + ImagePoint* ip; + GPS_Modul* gm; + + void setupMaps(); + void createLayout(); + Layer* l; + + public slots: + void geometryClickEvent(Geometry* geom, QPoint coord_px); + void coordinateClicked(const QMouseEvent*, const QPointF); + void coordinateClicked_mc2(const QMouseEvent*, const QPointF); + void buttonToggled(bool); + void toggleFollow(bool); + void toggleGPS(bool); + + void draggedRect(QRectF); + void mouseEventCoordinate(const QMouseEvent*, const QPointF); + + protected: + void keyPressEvent(QKeyEvent* evnt); + virtual void resizeEvent ( QResizeEvent * event ); + + signals: + void setX(int); + void setY(int); + void zoomIn(); + void zoomOut(); + +}; + +#endif diff --git a/libs/QMapControl/Samples/Phonebook/phonebook.kdevelop b/libs/QMapControl/Samples/Phonebook/phonebook.kdevelop new file mode 100644 index 00000000..6582b812 --- /dev/null +++ b/libs/QMapControl/Samples/Phonebook/phonebook.kdevelop @@ -0,0 +1,216 @@ + + + + Kai Winter + kaiwinter@gmx.de + 0.9 + KDevTrollProject + C++ + + Qt + + + Phonebook + . + false + + + + + + + + + + false + false + + + false + *.o,*.lo,CVS + + + + + true + 4 + 4 + ExternalDesigner + /usr/lib/qt4/bin/qmake + /usr/lib/qt4/bin/designer + /usr/lib/qt4 + + + + false + true + true + 250 + 400 + 250 + false + 0 + true + true + false + std=_GLIBCXX_STD;__gnu_cxx=std + true + false + false + false + false + true + true + false + .; + + + + set + m_,_ + theValue + true + true + + + false + true + Vertical + + + QMapControl + Qt4 + + + + + bash + bash_bugs + clanlib + fortran_bugs_gcc + gnome1 + gnustep + gtk + gtk_bugs + haskell + haskell_bugs_ghc + java_bugs_gcc + java_bugs_sun + kde2book + opengl + pascal_bugs_fp + php + php_bugs + perl + perl_bugs + python + python_bugs + qt-kdev3 + ruby + ruby_bugs + sdl + stl + sw + w3c-dom-level2-html + w3c-svg + w3c-uaag10 + wxwidgets_bugs + + + KDE Libraries (Doxygen) + + + + + + + + /usr/bin/gdb + true + false + false + + + + false + + + false + true + 10 + + + + + + ./bin/Phonebook + + executable + + ./bin/ + true + false + false + false + false + + + + + + + true + false + 1 + false + + 0 + + + + 2 + false + true + false + + + + + + + + + + + + + + + + + Doxygen Documentation Collection + phonebook.tag + + + + Phonebook + phonebook + Phonebook + PHONEBOOK + Kai Winter + /usr/lib/qt4/bin/designer + kaiwinter@gmx.de + GPL + COPYING + /usr/lib/qt4/bin/qmake + 0.9 + 2008 + /home/kai/kwint001/trunk/code/MapAPI/Samples/Phonebook + + + + .h + .cpp + + + diff --git a/libs/QMapControl/Samples/Phonebook/phonebook.pro b/libs/QMapControl/Samples/Phonebook/phonebook.pro new file mode 100644 index 00000000..da86aafa --- /dev/null +++ b/libs/QMapControl/Samples/Phonebook/phonebook.pro @@ -0,0 +1,15 @@ +include(../../QMapControl.pri) +MOC_DIR = tmp +OBJECTS_DIR = obj +DESTDIR = bin +TARGET = Phonebook +DEPENDPATH += . ../../src +INCLUDEPATH += . ../../src + +# Input +SOURCES += phonebook.cpp \ + main.cpp +HEADERS += phonebook.h + +QT+=network + diff --git a/libs/QMapControl/Samples/Phonebook/src/main.cpp b/libs/QMapControl/Samples/Phonebook/src/main.cpp new file mode 100644 index 00000000..e36dc06d --- /dev/null +++ b/libs/QMapControl/Samples/Phonebook/src/main.cpp @@ -0,0 +1,15 @@ +#include +#include "phonebook.h" + +int main(int argc, char *argv[]) +{ + + QApplication app(argc, argv); + + Phonebook pb; + pb.resize(480, 500); + pb.setWindowTitle("Phonebook Demo"); + pb.show(); + return app.exec(); +} + diff --git a/libs/QMapControl/Samples/Phonebook/src/phonebook.cpp b/libs/QMapControl/Samples/Phonebook/src/phonebook.cpp new file mode 100644 index 00000000..abfb7aac --- /dev/null +++ b/libs/QMapControl/Samples/Phonebook/src/phonebook.cpp @@ -0,0 +1,131 @@ +#include "phonebook.h" + +Phonebook::Phonebook(QWidget* parent) +{ + mc = new MapControl(QSize(480, 540)); + MapAdapter* mapadapter = new OSMMapAdapter(); + Layer* map = new MapLayer("Karte", mapadapter); + friends = new GeometryLayer("Friends", mapadapter); + + friendpoint = new CirclePoint(0.,0., 10); + friends->addGeometry(friendpoint); + + mc->addLayer(map); + mc->addLayer(friends); + + + QListWidget* list = new QListWidget(); + QStringList strlist; + strlist << "Kai" << "2"; + list->addItems(strlist); + connect(list, SIGNAL(itemClicked( QListWidgetItem* )), + this, SLOT(selectedName(QListWidgetItem*))); + + + QSlider* slider = new QSlider(Qt::Horizontal); + slider->setMinimum(0); + slider->setMaximum(17); + connect(slider, SIGNAL(valueChanged(int)), + mc, SLOT(setZoom(int))); + + mc->setMinimumWidth(480); + QVBoxLayout* maplayout = new QVBoxLayout; + maplayout->addWidget(mc); + maplayout->addWidget(slider); + + QHBoxLayout* layout = new QHBoxLayout; + layout->addWidget(list); + layout->addLayout(maplayout); + + QWidget* w = new QWidget; + + w->setLayout(layout); + setCentralWidget(w); + + + createActions(); + createMenus(); +} + +void Phonebook::selectedName(QListWidgetItem* item) +{ + if (item->text() == "Kai") + { + friendpoint->setCoordinate(QPointF(8.26, 50)); + friendpoint->setName("Kai"); + mc->setView(friendpoint); + } + else if (item->text() == "2") + { + friendpoint->setCoordinate(QPointF(6.43, 40)); + mc->setView(friendpoint); + } +} + + +void Phonebook::createActions() +{ +// newAct = new QAction(QIcon(":/filenew.xpm"), tr("&New"), this); +// newAct->setShortcut(tr("Ctrl+N")); +// newAct->setStatusTip(tr("Create a new file")); +// connect(newAct, SIGNAL(triggered()), this, SLOT(newFile())); +// +// openAct = new QAction(QIcon(":/fileopen.xpm"), tr("&Open..."), this); +// openAct->setShortcut(tr("Ctrl+O")); +// openAct->setStatusTip(tr("Open an existing file")); +// connect(openAct, SIGNAL(triggered()), this, SLOT(open())); +// +// saveAct = new QAction(QIcon(":/filesave.xpm"), tr("&Save"), this); +// saveAct->setShortcut(tr("Ctrl+S")); +// saveAct->setStatusTip(tr("Save the document to disk")); +// connect(saveAct, SIGNAL(triggered()), this, SLOT(save())); +// +// saveAsAct = new QAction(tr("Save &As..."), this); +// saveAsAct->setStatusTip(tr("Save the document under a new name")); +// connect(saveAsAct, SIGNAL(triggered()), this, SLOT(saveAs())); +// +// exitAct = new QAction(tr("E&xit"), this); +// exitAct->setShortcut(tr("Ctrl+Q")); +// exitAct->setStatusTip(tr("Exit the application")); +// connect(exitAct, SIGNAL(triggered()), this, SLOT(close())); +// +// aboutAct = new QAction(tr("&About"), this); +// aboutAct->setStatusTip(tr("Show the application's About box")); +// connect(aboutAct, SIGNAL(triggered()), this, SLOT(about())); +// +// aboutQtAct = new QAction(tr("About &Qt"), this); +// aboutQtAct->setStatusTip(tr("Show the Qt library's About box")); +// connect(aboutQtAct, SIGNAL(triggered()), qApp, SLOT(aboutQt())); +// +// cutAct->setEnabled(false); +// copyAct->setEnabled(false); + +} + +void Phonebook::createMenus() +{ + fileMenu = menuBar()->addMenu(tr("&File")); +// fileMenu->addAction(newAct); +// fileMenu->addAction(openAct); +// fileMenu->addAction(saveAct); +// fileMenu->addAction(saveAsAct); +// fileMenu->addSeparator(); +// fileMenu->addAction(exitAct); + + editMenu = menuBar()->addMenu(tr("&Edit")); +// editMenu->addAction(cutAct); +// editMenu->addAction(copyAct); +// editMenu->addAction(pasteAct); + + menuBar()->addSeparator(); + + helpMenu = menuBar()->addMenu(tr("&Help")); +// helpMenu->addAction(aboutAct); +// helpMenu->addAction(aboutQtAct); +} + +Phonebook::~Phonebook() +{ + +} + diff --git a/libs/QMapControl/Samples/Phonebook/src/phonebook.h b/libs/QMapControl/Samples/Phonebook/src/phonebook.h new file mode 100644 index 00000000..25a6d1ce --- /dev/null +++ b/libs/QMapControl/Samples/Phonebook/src/phonebook.h @@ -0,0 +1,41 @@ +#ifndef PHONEBOOK_H +#define PHONEBOOK_H + +#include +#include "../../../qmapcontrol.h" +using namespace qmapcontrol; +class Phonebook: public QMainWindow +{ + Q_OBJECT + public: + Phonebook(QWidget* parent = 0); + ~Phonebook(); + +private: + MapControl* mc; + Layer* friends; + Point* friendpoint; + void createActions(); + void createMenus(); + + QMenu *fileMenu; + QMenu *editMenu; + QMenu *helpMenu; + QToolBar *fileToolBar; + QToolBar *editToolBar; + QAction *newAct; + QAction *openAct; + QAction *saveAct; + QAction *saveAsAct; + QAction *exitAct; + QAction *cutAct; + QAction *copyAct; + QAction *pasteAct; + QAction *aboutAct; + QAction *aboutQtAct; + + public slots: + void selectedName(QListWidgetItem* item); +}; + +#endif diff --git a/libs/QMapControl/Samples/Samples.pro b/libs/QMapControl/Samples/Samples.pro new file mode 100644 index 00000000..b92f0401 --- /dev/null +++ b/libs/QMapControl/Samples/Samples.pro @@ -0,0 +1,6 @@ +SUBDIRS += Mapviewer \ + LinesAndPoints \ + GPS \ + Multidemo \ + Citymap +TEMPLATE = subdirs diff --git a/libs/QMapControl/Samples/bin/images/180-dom.jpg b/libs/QMapControl/Samples/bin/images/180-dom.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3d43e5f6d8161d4cb92b4e705884c679f20b5630 GIT binary patch literal 24133 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 jg?(pL1$XMun^q>sDfl#J9&V-Vk{q`-*-K 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 literal 0 HcmV?d00001 diff --git a/libs/QMapControl/Samples/bin/images/180-stephan.jpg b/libs/QMapControl/Samples/bin/images/180-stephan.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5469034342a9763fba58308f1c3d9c3d90b02c72 GIT binary patch literal 18293 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 K`kKn3&;QxDPUeUJ literal 0 HcmV?d00001 diff --git a/libs/QMapControl/Samples/bin/images/bus_stop.png b/libs/QMapControl/Samples/bin/images/bus_stop.png new file mode 100644 index 0000000000000000000000000000000000000000..e028bca6902a4c93eb7ed299ad453090f6ac5cd2 GIT binary patch literal 3511 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 literal 0 HcmV?d00001 diff --git a/libs/QMapControl/Samples/bin/images/flag.png b/libs/QMapControl/Samples/bin/images/flag.png new file mode 100644 index 0000000000000000000000000000000000000000..67ae00fa96bb45153941711a21fb38f8f1804edc GIT binary patch literal 230 zcmeAS@N?(olHy`uVBq!ia0vp^!ayv^!3HERpB7yOq!^2X+?^QKos)S9vL>4nJ za069w3o|mznj--eWH0gbb!ET7$jU3g$$aq2F`!U|r;B5V#p&c9|Nq-FFP+hzc-2sm zt*zRJCxk^r`q=3mza)CjI`t?eF>;&o9DL>L#gmi(1PiY)q#OWhsh`9oDV~tbFF`xbN@4&2 literal 0 HcmV?d00001 diff --git a/libs/QMapControl/Samples/bin/images/marker1.png b/libs/QMapControl/Samples/bin/images/marker1.png new file mode 100644 index 0000000000000000000000000000000000000000..60b2f9e3c200cf817c78a7bef11ad51598930b91 GIT binary patch literal 238 zcmeAS@N?(olHy`uVBq!ia0vp^{2QL70(Y)*K0-AbW|YuPgg?Zb3d4u1kB{&H#n-JY5_^G|n%b z9LRS-fx|g>^Y8edZ%_9K9FhFpF4mDNYM`c4>&ob`v92gt&E?3$1{NOA65rL1c8br9 z`?>F!GryX0ZkEqF|NBz0AN{6e#BU1@_0YP#%DP;-jPrBf1>VnD%_>DQ{k88Fz20xX b;t;pa$zaKCaV$zen;AS^{an^LB{Ts5XKhag literal 0 HcmV?d00001 diff --git a/libs/QMapControl/Samples/bin/images/marker2.png b/libs/QMapControl/Samples/bin/images/marker2.png new file mode 100644 index 0000000000000000000000000000000000000000..7ea3fa10f58d3987787cbd27c4372f71e1286883 GIT binary patch literal 226 zcmeAS@N?(olHy`uVBq!ia0vp^{2QL70(Y)*K0-AbW|YuPgg?Zb3d4xfAI@8-YSeo-U3d8t0Er z_U3Ca;BZNodRPDSxtnm(64RqDW>14(IIuIXI%3wa`bU8CocL{LwG@>*C67$ipZ9Cc zo9cyuj=S~J{@!l%OtO}~U|IMn^5xCzO|qh!@BOJggTe~DWM4fLD@~= literal 0 HcmV?d00001 diff --git a/libs/QMapControl/Samples/bin/images/marker3.png b/libs/QMapControl/Samples/bin/images/marker3.png new file mode 100644 index 0000000000000000000000000000000000000000..2aa2817652df9e6bd6133f34653b5bdbc8998e00 GIT binary patch literal 1377 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 X>FGB+5aW)&00000NkvXXu0mjfY=*SA literal 0 HcmV?d00001 diff --git a/libs/QMapControl/html/annotated.html b/libs/QMapControl/html/annotated.html new file mode 100644 index 00000000..bb0221dd --- /dev/null +++ b/libs/QMapControl/html/annotated.html @@ -0,0 +1,87 @@ + + + + + + +QMapControl: Class List + + + + + + + +
+
+
Class List
+
+
+
Here are the classes, structs, unions and interfaces with brief descriptions:
+
[detail level 12]
+ + + + + + + + + + + + + + + + + + + + + + + + + +
 NqmapcontrolQMapControl namespace
 CArrowPointDraws a directed arrow (showing orientation) into the map
 CCirclePointDraws a circle into the map
 CCurveA Curve Geometry, implemented to fullfil OGC Spec
 CEmptyMapAdapterMapAdapter which do not load map tiles
 CFixedImageOverlayDraws a fixed image into the map
 CGeometryMain class for objects that should be painted in maps
 CGeometryLayerGeometryLayer class
 CGoogleMapAdapterMapAdapter for Google
 CImagePointDraws an image into the map
 CInvisiblePointDraws an invisible point into the map
 CLayerLayer class
 CLineStringA collection of Point objects to describe a line
 CMapAdapterUsed to fit map servers into QMapControl
 CMapControlThe control element of the widget and also the widget itself
 CMapLayerMapLayer class
 CMapNetwork
 COpenAerialMapAdapterMapAdapter for OpenStreetMap
 COSMMapAdapterMapAdapter for OpenStreetMap
 CPointA geometric point to draw objects into maps
 CTileMapAdapterMapAdapter for servers with image tiles
 CWMSMapAdapterMapAdapter for WMS servers
 CYahooMapAdapterMapAdapter for Yahoo Maps
 CQObject
 CQWidget
+
+
+ + + + diff --git a/libs/QMapControl/html/arrowpoint_8h_source.html b/libs/QMapControl/html/arrowpoint_8h_source.html new file mode 100644 index 00000000..f262a25d --- /dev/null +++ b/libs/QMapControl/html/arrowpoint_8h_source.html @@ -0,0 +1,122 @@ + + + + + + +QMapControl: arrowpoint.h Source File + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + +
+
+
+
arrowpoint.h
+
+
+
1 /*
+
2 *
+
3 * This file is part of QMapControl,
+
4 * an open-source cross-platform map widget
+
5 *
+
6 * Copyright (C) 2010 Jeffery MacEachern
+
7 * Based on CirclePoint code by Kai Winter
+
8 *
+
9 * This program is free software: you can redistribute it and/or modify
+
10 * it under the terms of the GNU Lesser General Public License as published by
+
11 * the Free Software Foundation, either version 3 of the License, or
+
12 * (at your option) any later version.
+
13 *
+
14 * This program is distributed in the hope that it will be useful,
+
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
+
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+
17 * GNU Lesser General Public License for more details.
+
18 *
+
19 * You should have received a copy of the GNU Lesser General Public License
+
20 * along with QMapControl. If not, see <http://www.gnu.org/licenses/>.
+
21 *
+
22 * Contact e-mail: kaiwinter@gmx.de
+
23 * Program URL : http://qmapcontrol.sourceforge.net/
+
24 *
+
25 */
+
26 
+
27 #ifndef ARROWPOINT_H
+
28 #define ARROWPOINT_H
+
29 
+
30 #include <QBrush>
+
31 
+
32 #include "qmapcontrol_global.h"
+
33 #include "math.h"
+
34 #include "point.h"
+
35 
+
36 namespace qmapcontrol
+
37 {
+
39 
+
45  class QMAPCONTROL_EXPORT ArrowPoint : public Point
+
46  {
+
47  public:
+
49 
+
59  ArrowPoint(qreal x, qreal y, int sideLength, qreal heading, QString name = QString(), Alignment alignment = Middle, QPen* pen=0);
+
60  virtual ~ArrowPoint();
+
61 
+
63 
+
68  virtual void setPen(QPen* pen);
+
69 
+
71 
+
74  void setHeading(qreal heading);
+
75 
+
77  qreal getHeading() const;
+
78  private:
+
79  void drawArrow();
+
80 
+
81  // Heading
+
82  qreal h;
+
83 
+
84  // Brush to fill the arrow with - solid colour, same as pen
+
85  QBrush mybrush;
+
86  };
+
87 }
+
88 #endif
+
Alignment
sets where the point should be aligned
Definition: point.h:75
+
A geometric point to draw objects into maps.
Definition: point.h:66
+
Draws a directed arrow (showing orientation) into the map.
Definition: arrowpoint.h:45
+
QMapControl namespace.
Definition: arrowpoint.cpp:28
+
+ + + + diff --git a/libs/QMapControl/html/bc_s.png b/libs/QMapControl/html/bc_s.png new file mode 100644 index 0000000000000000000000000000000000000000..224b29aa9847d5a4b3902efd602b7ddf7d33e6c2 GIT binary patch literal 676 zcmV;V0$crwP)y__>=_9%My z{n931IS})GlGUF8K#6VIbs%684A^L3@%PlP2>_sk`UWPq@f;rU*V%rPy_ekbhXT&s z(GN{DxFv}*vZp`F>S!r||M`I*nOwwKX+BC~3P5N3-)Y{65c;ywYiAh-1*hZcToLHK ztpl1xomJ+Yb}K(cfbJr2=GNOnT!UFA7Vy~fBz8?J>XHsbZoDad^8PxfSa0GDgENZS zuLCEqzb*xWX2CG*b&5IiO#NzrW*;`VC9455M`o1NBh+(k8~`XCEEoC1Ybwf;vr4K3 zg|EB<07?SOqHp9DhLpS&bzgo70I+ghB_#)K7H%AMU3v}xuyQq9&Bm~++VYhF09a+U zl7>n7Jjm$K#b*FONz~fj;I->Bf;ule1prFN9FovcDGBkpg>)O*-}eLnC{6oZHZ$o% zXKW$;0_{8hxHQ>l;_*HATI(`7t#^{$(zLe}h*mqwOc*nRY9=?Sx4OOeVIfI|0V(V2 zBrW#G7Ss9wvzr@>H*`r>zE z+e8bOBgqIgldUJlG(YUDviMB`9+DH8n-s9SXRLyJHO1!=wY^79WYZMTa(wiZ!zP66 zA~!21vmF3H2{ngD;+`6j#~6j;$*f*G_2ZD1E;9(yaw7d-QnSCpK(cR1zU3qU0000< KMNUMnLSTYoA~SLT literal 0 HcmV?d00001 diff --git a/libs/QMapControl/html/bdwn.png b/libs/QMapControl/html/bdwn.png new file mode 100644 index 0000000000000000000000000000000000000000..940a0b950443a0bb1b216ac03c45b8a16c955452 GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^>_E)H!3HEvS)PKZC{Gv1kP61Pb5HX&C2wk~_T + + + + + +QMapControl: circlepoint.h Source File + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + +
+
+
+
circlepoint.h
+
+
+
1 /*
+
2 *
+
3 * This file is part of QMapControl,
+
4 * an open-source cross-platform map widget
+
5 *
+
6 * Copyright (C) 2007 - 2008 Kai Winter
+
7 *
+
8 * This program is free software: you can redistribute it and/or modify
+
9 * it under the terms of the GNU Lesser General Public License as published by
+
10 * the Free Software Foundation, either version 3 of the License, or
+
11 * (at your option) any later version.
+
12 *
+
13 * This program is distributed in the hope that it will be useful,
+
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
+
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+
16 * GNU Lesser General Public License for more details.
+
17 *
+
18 * You should have received a copy of the GNU Lesser General Public License
+
19 * along with QMapControl. If not, see <http://www.gnu.org/licenses/>.
+
20 *
+
21 * Contact e-mail: kaiwinter@gmx.de
+
22 * Program URL : http://qmapcontrol.sourceforge.net/
+
23 *
+
24 */
+
25 
+
26 #ifndef CIRCLEPOINT_H
+
27 #define CIRCLEPOINT_H
+
28 
+
29 #include "qmapcontrol_global.h"
+
30 #include "point.h"
+
31 
+
32 namespace qmapcontrol
+
33 {
+
35 
+
41  class QMAPCONTROL_EXPORT CirclePoint : public Point
+
42  {
+
43  public:
+
45 
+
53  CirclePoint(qreal x, qreal y, QString name = QString(), Alignment alignment = Middle, QPen* pen=0);
+
54 
+
56 
+
65  CirclePoint(qreal x, qreal y, int radius = 10, QString name = QString(), Alignment alignment = Middle, QPen* pen=0);
+
66  virtual ~CirclePoint();
+
67 
+
69 
+
74  virtual void setPen(QPen* pen);
+
75 
+
76  private:
+
77  void drawCircle();
+
78  };
+
79 }
+
80 #endif
+
Draws a circle into the map.
Definition: circlepoint.h:41
+
Alignment
sets where the point should be aligned
Definition: point.h:75
+
A geometric point to draw objects into maps.
Definition: point.h:66
+
QMapControl namespace.
Definition: arrowpoint.cpp:28
+
+ + + + diff --git a/libs/QMapControl/html/citymap_8cpp-example.html b/libs/QMapControl/html/citymap_8cpp-example.html new file mode 100644 index 00000000..d4674f89 --- /dev/null +++ b/libs/QMapControl/html/citymap_8cpp-example.html @@ -0,0 +1,536 @@ + + +QMapControl: citymap.cpp + + + + + +
+

citymap.cpp

This demo appclication shows more features of the QMapControl. It shows images, which changes its size when changing the zoomlevel. You can display/hide layers and choose different map providers. Also it demonstrates more possibilities for user interaction:
+
    +
  • notes can be added to any coordinate (a QTextEdit is used for editing the note)
    +
  • the user can measure distances between two points
+

+

+sample_citymap.png +

screenshot

+
+#include "citymap.h"
+
+Citymap::Citymap(QWidget*)
+{
+        // create MapControl
+        mc = new MapControl(QSize(380,540));
+    mc->showScale(true);
+        // display the MapControl in the application
+        QVBoxLayout* layout = new QVBoxLayout;
+        layout->addWidget(mc);
+        
+        QWidget* w = new QWidget();
+        w->setLayout(layout);
+        setCentralWidget(w);
+
+        
+        notepixmap = new QPixmap(QCoreApplication::applicationDirPath() + "/images/note.png");
+        
+        coord1 = QPointF();
+        coord2 = QPointF();
+        mapadapter = new OSMMapAdapter();
+        MapAdapter* mapadapter_overlay = new YahooMapAdapter("us.maps3.yimg.com", "/aerial.maps.yimg.com/png?v=2.2&t=h&s=256&x=%2&y=%3&z=%1");
+
+        // create a layer with the mapadapter and type MapLayer
+        l = new MapLayer("Custom Layer", mapadapter);
+        overlay = new MapLayer("Overlay", mapadapter_overlay);
+        overlay->setVisible(false);
+
+        mc->addLayer(l);
+        mc->addLayer(overlay);
+                
+        notes = new GeometryLayer("Notes", mapadapter);
+        
+        
+        createTours();
+        addSights();
+        addPubs();
+        addMuseums();
+        
+        addZoomButtons();
+        createActions();
+        createMenus();
+        
+        mc->addLayer(notes);
+        connect(notes, SIGNAL(geometryClicked(Geometry*, QPoint)),
+                          this, SLOT(editNote(Geometry*, QPoint)));
+
+        
+        mc->setView(QPointF(8.26,50));
+        mc->setZoom(13);
+        
+        ignoreClicks = false;
+        addingNote = false;
+        noteID = 0;
+        
+        notetextedit = new QTextEdit(mc);
+        notetextedit->setGeometry(0,0,200,100);
+        notepoint = new Point(0, 0, notetextedit, ".", Point::TopLeft);
+        notepoint->setVisible(false);
+        notes->addGeometry(notepoint);
+        
+}
+
+void Citymap::createTours()
+{
+        QPen* pen = new QPen(QColor(0,0,255,100));
+        pen->setWidth(5);
+        
+        QList<Point*> points;
+        points << new Point(8.2606, 50.0051);
+        points << new Point(8.2602, 50.0050);
+        points << new Point(8.2598, 50.0044);
+        points << new Point(8.2569, 50.0057);
+        points << new Point(8.2595, 50.0083);
+        points << new Point(8.2587, 50.0086);
+        points << new Point(8.2589, 50.0100);
+        points << new Point(8.2590, 50.0105);
+        pub_tour = new LineString(points, "", pen);
+        notes->addGeometry(pub_tour);
+        
+        points.clear();
+        points << new Point(8.25987, 50.0018);
+        points << new Point(8.26192, 50.0019);
+        points << new Point(8.26301, 50.0031);
+        points << new Point(8.26459, 50.0026);
+        points << new Point(8.26601, 50.004);
+        points << new Point(8.26781, 50.0033);
+        points << new Point(8.27052, 50.0054);
+        points << new Point(8.2697, 50.0059);
+        museum_tour = new LineString(points, "", pen);
+        notes->addGeometry(museum_tour);
+        
+        points.clear();
+        points << new Point(8.26015, 50.0015);
+        points << new Point(8.2617, 50.0012);
+        points << new Point(8.26423, 50.0002);
+        points << new Point(8.26698, 50.0024);
+        points << new Point(8.27065, 50.0012);
+        points << new Point(8.27152, 50.0016);
+        points << new Point(8.27225, 50.0004);
+        points << new Point(8.27333, 49.9994);
+        points << new Point(8.26946, 49.9983);
+        points << new Point(8.27105, 49.9973);
+        points << new Point(8.27024, 49.9972);
+        points << new Point(8.26833, 49.9958);
+        sights_tour = new LineString(points, "", pen);
+        notes->addGeometry(sights_tour);
+}
+
+void Citymap::addSights()
+{
+        sights = new GeometryLayer("Sehenswürdigkeiten", mapadapter);
+        mc->addLayer(sights);
+        Point* dom = new ImagePoint(8.274167, 49.998889, QCoreApplication::applicationDirPath() + "/images/180-dom.jpg", "Mainzer Dom");
+        dom->setBaselevel(17);
+        sights->addGeometry(dom);
+        
+        Point* stephan = new ImagePoint(8.268611, 49.995556, QCoreApplication::applicationDirPath() + "/images/180-stephan.jpg","St. Stephan");
+        stephan->setBaselevel(17);
+        sights->addGeometry(stephan);
+        
+        Point* quitin = new ImagePoint(8.272222, 50.000833, QCoreApplication::applicationDirPath() + "/images/180-quintin.jpg","St. Quintin");
+        quitin->setBaselevel(17);
+        sights->addGeometry(quitin);    
+        connect(sights, SIGNAL(geometryClicked(Geometry*, QPoint)),
+                          this, SLOT(geometryClicked(Geometry*, QPoint)));
+}
+void Citymap::addPubs()
+{
+        pubs = new GeometryLayer("Kneipe", mapadapter);
+        mc->addLayer(pubs);
+        QPixmap* pub = new QPixmap(QCoreApplication::applicationDirPath() + "/images/pub.png");
+        
+        Point* bagatelle = new Point(8.2606, 50.0052, pub, "Bagatelle");
+        pubs->addGeometry(bagatelle);
+        
+        Point* nirgendwo = new Point(8.2595, 50.0048, pub, "Nirgendwo");
+        pubs->addGeometry(nirgendwo);
+        
+        Point* krokodil = new Point(8.2594,50.0106, pub, "Krokodil");
+        pubs->addGeometry(krokodil);
+        
+        connect(pubs, SIGNAL(geometryClicked(Geometry*, QPoint)),
+                          this, SLOT(geometryClickEventKneipe(Geometry*, QPoint)));
+}
+void Citymap::addMuseums()
+{
+        museum = new GeometryLayer("Museen", mapadapter);
+        mc->addLayer(museum);
+        Point* rgzm = new ImagePoint(8.269722, 50.006111, QCoreApplication::applicationDirPath() + "/images/180-rgzm.jpg", "rgzm");
+        rgzm->setBaselevel(17);
+        museum->addGeometry(rgzm);
+        
+        Point* lm= new ImagePoint(8.26778, 50.00385, QCoreApplication::applicationDirPath() + "/images/180-lm.jpg", "lm");
+        lm ->setBaselevel(17);
+        museum->addGeometry(lm);        
+        
+        connect(museum, SIGNAL(geometryClicked(Geometry*, QPoint)),
+                          this, SLOT(geometryClicked(Geometry*, QPoint)));
+}
+
+void Citymap::geometryClicked(Geometry* geometry, QPoint)
+{
+        if (ignoreClicks || addingNote)
+                return;
+        
+        InfoDialog* infodialog = new InfoDialog(this);
+        infodialog->setWindowTitle(geometry->name());
+        
+        if (geometry->name() == "Mainzer Dom")
+        {
+                infodialog->setInfotext("<h1>Mainzer Dom</h1><p><img src=\"images/180-dom.jpg\" align=\"left\"/>Der Hohe Dom zu Mainz ist die Bischofskirche der Diözese Mainz und steht unter dem Patrozinium des heiligen Martin von Tours. Der Ostchor ist dem Hl. Stephan geweiht. Der zu den Kaiserdomen zählende Bau ist in seiner heutigen Form eine dreischiffige romanische Säulenbasilika, die in ihren Anbauten sowohl gotische als auch barocke Elemente aufweist.</p>");
+                
+        } else if (geometry->name() == "St. Stephan")
+        {
+                infodialog->setInfotext("<h1>St. Stephan</h1><p><img src=\"images/180-stephan.jpg\" align=\"left\"/>Die katholische Pfarrkirche Sankt Stephan in Mainz wurde 990 von Erzbischof Willigis auf der höchsten Erhebung der Stadt gegründet. Auftraggeberin war höchstwahrscheinlich die Kaiserwitwe Theophanu. Willigis wollte mit ihr die Gebetsstätte des Reiches schaffen. In der Kirche war ursprünglich ein Stift untergebracht. Der Propst des Stiftes verwaltete eines der Archidiakonate (mittelalterliche Organisationseinheit, ähnlich den heutigen Dekanaten) des Erzbistums.</p>");
+        } else if (geometry->name() == "St. Quintin")
+        {
+                infodialog->setInfotext("<h1>St. Quintin</h1><p><img src=\"images/180-quintin.jpg\" align=\"left\"/>Die Kirche St. Quintin in Mainz ist die Pfarrkirche der ältesten nachgewiesenen Pfarrei der Stadt.");
+        } else if (geometry->name() == "rgzm")
+        {
+                infodialog->setInfotext("<h1>Römisch-Germanisches Zentralmuseum</h1><p><img src=\"images/180-rgzm.jpg\" align=\"left\"/>Das Römisch-Germanische Zentralmuseum (RGZM) in Mainz ist ein Forschungsinstitut für Vor- und Frühgeschichte, das von Bund und Ländern getragen wird und zur Leibniz-Gemeinschaft deutscher Forschungseinrichtungen gehört. Gegliedert in mehrere Abteilungen, arbeitet das Institut im Bereich der Alten Welt sowie seiner Kontaktzonen von der Altsteinzeit bis ins Mittelalter.");
+        } else if (geometry->name() == "lm")
+        {
+                infodialog->setInfotext("<h1>Landesmuseum Mainz</h1><p><img src=\"images/180-lm.jpg\" align=\"left\"/>Das Landesmuseum Mainz ist eines der ältesten Museen in Deutschland. Eine seiner Vorgängerinstitutionen, die Städtische Gemäldesammlung, wurde bereits 1803 von Jean-Antoine Chaptal auf Veranlassung Napoléon Bonapartes durch eine Schenkung von 36 Gemälden gegründet. Das Museum, welches sich heute im ehemaligen kurfürstlichen Marstall befindet, gehört zusammen mit dem Römisch-Germanischen Zentralmuseum und dem Gutenbergmuseum zu den bedeutenden Museen in Mainz. Seine kunst- und kulturgeschichtliche Sammlung erstreckt sich von der Vorgeschichte über die römische Zeit, dem Mittelalter und Barock bis hin zur Jugendstilzeit und der Kunst des 20. Jahrhunderts.");
+        }
+        if (geometry->name() != "")
+                infodialog->showMaximized();
+}
+
+void Citymap::geometryClickEventKneipe(Geometry* geometry, QPoint)
+{
+        if (ignoreClicks || addingNote)
+                return;
+        InfoDialog* infodialog = new InfoDialog(this);
+        infodialog->setWindowTitle(geometry->name());
+        infodialog->setInfotext("<h1>" + geometry->name() + "</h1>");
+        infodialog->showNormal();
+}
+
+void Citymap::addZoomButtons()
+{
+        // create buttons as controls for zoom
+        QPushButton* zoomin = new QPushButton("+");
+        QPushButton* zoomout = new QPushButton("-");
+        zoomin->setMaximumWidth(50);
+        zoomout->setMaximumWidth(50);
+        
+        connect(zoomin, SIGNAL(clicked(bool)),
+                          mc, SLOT(zoomIn()));
+        connect(zoomout, SIGNAL(clicked(bool)),
+                          mc, SLOT(zoomOut()));
+        
+        // add zoom buttons to the layout of the MapControl
+        QVBoxLayout* innerlayout = new QVBoxLayout;
+        innerlayout->addWidget(zoomin);
+        innerlayout->addWidget(zoomout);
+        mc->setLayout(innerlayout);
+}
+
+void Citymap::createActions()
+{
+        toggleSights = new QAction(tr("Show Sights"), this);
+        toggleSights->setCheckable(true);
+        toggleSights->setChecked(true);
+        connect(toggleSights, SIGNAL(triggered(bool)),
+                          sights, SLOT(setVisible(bool)));
+        
+        togglePub = new QAction(tr("Show Pubs"), this);
+        togglePub->setCheckable(true);
+        togglePub->setChecked(true);
+        connect(togglePub, SIGNAL(triggered(bool)),
+                          pubs, SLOT(setVisible(bool)));
+        
+        toggleMuseum = new QAction(tr("Show Museums"), this);
+        toggleMuseum->setCheckable(true);
+        toggleMuseum->setChecked(true);
+        connect(toggleMuseum, SIGNAL(triggered(bool)),
+                          museum, SLOT(setVisible(bool)));
+        
+        
+        toggleSightTour = new QAction(tr("Show Sight Tour"), this);
+        toggleSightTour->setCheckable(true);
+        toggleSightTour->setChecked(true);
+        connect(toggleSightTour, SIGNAL(triggered(bool)),
+                          sights_tour, SLOT(setVisible(bool)));
+        
+        togglePubTour = new QAction(tr("Show Pub Tour"), this);
+        togglePubTour->setCheckable(true);
+        togglePubTour->setChecked(true);
+        connect(togglePubTour, SIGNAL(triggered(bool)),
+                          pub_tour, SLOT(setVisible(bool)));
+        
+        toggleMuseumTour = new QAction(tr("Show Museum Tour"), this);
+        toggleMuseumTour->setCheckable(true);
+        toggleMuseumTour->setChecked(true);
+        connect(toggleMuseumTour, SIGNAL(triggered(bool)),
+                          museum_tour, SLOT(setVisible(bool)));
+        
+        addNoteAction = new QAction(tr("Add Note"), this);
+        connect(addNoteAction, SIGNAL(triggered(bool)),
+                          this, SLOT(addNote()));
+        
+        toolsDistance = new QAction(tr("Calculate Distance"), this);
+        connect(toolsDistance, SIGNAL(triggered(bool)),
+                          this, SLOT(calcDistance()));
+        
+        QActionGroup* mapproviderGroup = new QActionGroup(this);
+        osmAction = new QAction(tr("OpenStreetMap"), mapproviderGroup);
+        yahooActionMap = new QAction(tr("Yahoo: Map"), mapproviderGroup);
+        yahooActionSatellite = new QAction(tr("Yahoo: Satellite"), mapproviderGroup);
+        googleActionMap = new QAction(tr("Google: Map"), mapproviderGroup);
+        osmAction->setCheckable(true);
+        yahooActionMap->setCheckable(true);
+        yahooActionSatellite->setCheckable(true);
+        googleActionMap->setCheckable(true);
+        osmAction->setChecked(true);
+        connect(mapproviderGroup, SIGNAL(triggered(QAction*)),
+                          this, SLOT(mapproviderSelected(QAction*)));
+        
+        yahooActionOverlay = new QAction(tr("Yahoo: street overlay"), this);
+        yahooActionOverlay->setCheckable(true);
+        yahooActionOverlay->setEnabled(false);
+        connect(yahooActionOverlay, SIGNAL(toggled(bool)),
+                          overlay, SLOT(setVisible(bool)));
+}
+
+void Citymap::createMenus()
+{
+        layerMenu = menuBar()->addMenu(tr("&Layer"));
+        layerMenu->addAction(toggleSights);
+        layerMenu->addAction(togglePub);
+        layerMenu->addAction(toggleMuseum);
+
+        tourMenu = menuBar()->addMenu(tr("T&ours"));
+        tourMenu->addAction(toggleSightTour);
+        tourMenu->addAction(togglePubTour);
+        tourMenu->addAction(toggleMuseumTour);
+        
+        toolsMenu = menuBar()->addMenu(tr("&Tools"));
+        toolsMenu->addAction(addNoteAction);
+        toolsMenu->addAction(toolsDistance);
+        
+        mapMenu = menuBar()->addMenu(tr("&Map Provider"));
+        mapMenu->addAction(osmAction);
+        mapMenu->addAction(yahooActionMap);
+        mapMenu->addAction(yahooActionSatellite);
+        mapMenu->addAction(googleActionMap);
+        mapMenu->addSeparator();
+        mapMenu->addAction(yahooActionOverlay);
+        
+}
+
+void Citymap::addNote()
+{
+        addingNote = true;
+        connect(mc, SIGNAL(mouseEventCoordinate(const QMouseEvent*, const QPointF)),
+                          this, SLOT(writeNote(const QMouseEvent*, const QPointF)));
+}
+
+void Citymap::writeNote(const QMouseEvent*, const QPointF coord)
+{
+        Point* p = new Point(coord.x(), coord.y(), notepixmap, QString::number(++noteID), Point::BottomLeft);
+        currentnoteID = noteID;
+        p->setBaselevel(16);
+        p->setMinsize(QSize(12, 10));
+        p->setMaxsize(QSize(47, 40));
+        notes->addGeometry(p);
+        
+        notetextedit->clear();
+        
+        notepoint->setCoordinate(coord);
+        notepoint->setVisible(true);
+        
+        mc->updateRequestNew();
+        
+        disconnect(mc, SIGNAL(mouseEventCoordinate(const QMouseEvent*, const QPointF)),
+                          this, SLOT(writeNote(const QMouseEvent*, const QPointF)));
+        
+        connect(mc, SIGNAL(mouseEventCoordinate(const QMouseEvent*, const QPointF)),
+                          this, SLOT(hideNote(const QMouseEvent*, const QPointF)));
+}
+
+void Citymap::hideNote(const QMouseEvent* evnt, const QPointF)
+{
+        if (addingNote && evnt->type() == QEvent::MouseButtonDblClick)
+        {
+                addingNote = false;
+                notepoint->setVisible(false);
+
+                mc->updateRequestNew();
+                
+                // save text
+                notestext[currentnoteID] = notetextedit->toPlainText();
+                
+                disconnect(mc, SIGNAL(mouseEventCoordinate(const QMouseEvent*, const QPointF)),
+                                  this, SLOT(hideNote(const QMouseEvent*, const QPointF)));
+        }
+}
+
+void Citymap::editNote(Geometry* geom, QPoint)
+{
+        addingNote = true;
+        currentnoteID = QVariant(geom->name()).toInt();
+        notetextedit->setPlainText(notestext[currentnoteID]);
+        notepoint->setCoordinate(geom->points().at(0)->coordinate());
+        notepoint->setVisible(true);
+        
+        mc->updateRequestNew();
+        connect(mc, SIGNAL(mouseEventCoordinate(const QMouseEvent*, const QPointF)),
+                          this, SLOT(hideNote(const QMouseEvent*, const QPointF)));
+}
+
+void Citymap::calcDistance()
+{
+        ignoreClicks = true;
+        connect(mc, SIGNAL(mouseEventCoordinate( const QMouseEvent*, const QPointF )),
+                          this, SLOT(calcDistanceClick(const QMouseEvent*, const QPointF)));
+}
+void Citymap::calcDistanceClick(const QMouseEvent* evnt, const QPointF coord)
+{
+        if (coord1 == QPointF() && evnt->type() == QEvent::MouseButtonPress)
+        {
+                coord1 = coord;
+                l->addGeometry(new ImagePoint(coord1.x(), coord1.y(), QCoreApplication::applicationDirPath() + "/images/flag.png", "", Point::BottomRight));
+                mc->updateRequestNew();
+        }
+        else if (coord2 == QPointF() && evnt->type() == QEvent::MouseButtonPress)
+        {
+                coord2 = coord;
+                double PI = acos(-1.0);
+                double a1 = coord1.x()* (PI/180.0);;
+                double b1 = coord1.y()* (PI/180.0);;
+                double a2 = coord2.x()* (PI/180.0);;
+                double b2 = coord2.y()* (PI/180.0);;
+                double r = 6378;
+                
+                double km = acos(cos(a1)*cos(b1)*cos(a2)*cos(b2) + cos(a1)*sin(b1)*cos(a2)*sin(b2) + sin(a1)*sin(a2)) * r;
+                
+                
+                QList<Point*> points;
+                points.append(new Point(coord1.x(), coord1.y()));
+                QPixmap* pixm = new QPixmap(100,20);
+                pixm->fill(Qt::transparent);
+                QPainter pain(pixm);
+                pain.setFont(QFont("Helvetiva", 6));
+                pain.drawText(pixm->rect(), QString().setNum(km, 'f', 3) + " km");
+                pain.end();
+                points.append(new Point(coord2.x(), coord2.y(), pixm, "", Point::BottomLeft));
+                l->addGeometry(new LineString(points));
+                mc->updateRequestNew();
+                coord1 = QPointF();
+                coord2 = QPointF();
+                ignoreClicks = false;
+                disconnect(mc, SIGNAL(mouseEventCoordinate( const QMouseEvent*, const QPointF)),
+                                          this, SLOT(calcDistanceClick(const QMouseEvent*, const QPointF)));
+                
+        }
+}
+
+void Citymap::mapproviderSelected(QAction* action)
+{
+        if (action == osmAction)
+        {
+                int zoom = mapadapter->adaptedZoom();
+                mc->setZoom(0);
+                
+                mapadapter = new OSMMapAdapter();
+                l->setMapAdapter(mapadapter);
+                sights->setMapAdapter(mapadapter);
+                museum->setMapAdapter(mapadapter);
+                pubs->setMapAdapter(mapadapter);
+                notes->setMapAdapter(mapadapter);
+                
+                mc->updateRequestNew();
+                mc->setZoom(zoom);
+                yahooActionOverlay->setEnabled(false);
+                overlay->setVisible(false);
+                yahooActionOverlay->setChecked(false);
+                
+        } else if (action == yahooActionMap)
+        {
+                int zoom = mapadapter->adaptedZoom();
+                mc->setZoom(0);
+                
+                mapadapter = new YahooMapAdapter();
+                l->setMapAdapter(mapadapter);
+                sights->setMapAdapter(mapadapter);
+                museum->setMapAdapter(mapadapter);
+                pubs->setMapAdapter(mapadapter);
+                notes->setMapAdapter(mapadapter);
+        
+                mc->updateRequestNew();
+                mc->setZoom(zoom);
+                yahooActionOverlay->setEnabled(false);
+                overlay->setVisible(false);
+                yahooActionOverlay->setChecked(false);
+        } else if (action == yahooActionSatellite)
+        {
+                int zoom = mapadapter->adaptedZoom();
+                QPointF a = mc->currentCoordinate();
+                mc->setZoom(0);
+                
+                mapadapter = new YahooMapAdapter("us.maps3.yimg.com", "/aerial.maps.yimg.com/png?v=1.7&t=a&s=256&x=%2&y=%3&z=%1");
+                l->setMapAdapter(mapadapter);
+                sights->setMapAdapter(mapadapter);
+                museum->setMapAdapter(mapadapter);
+                pubs->setMapAdapter(mapadapter);
+                notes->setMapAdapter(mapadapter);
+                
+                mc->updateRequestNew();
+                mc->setZoom(zoom);
+                yahooActionOverlay->setEnabled(true);
+        } else if (action == googleActionMap)
+        {
+                int zoom = mapadapter->adaptedZoom();
+                mc->setZoom(0);
+                mapadapter = new GoogleMapAdapter();
+                l->setMapAdapter(mapadapter);
+                sights->setMapAdapter(mapadapter);
+                museum->setMapAdapter(mapadapter);
+                pubs->setMapAdapter(mapadapter);
+                notes->setMapAdapter(mapadapter);
+                mc->updateRequestNew();
+                mc->setZoom(zoom);
+                yahooActionOverlay->setEnabled(false);
+                overlay->setVisible(false);
+                yahooActionOverlay->setChecked(false);
+        }
+}
+
+Citymap::~Citymap()
+{
+        delete mc;
+        delete mapadapter;
+        delete notepixmap;
+        delete sights;
+        delete notes;
+        delete pubs;
+        delete museum;
+}
+
+
+
Generated on Wed Jul 29 12:38:09 2009 for QMapControl by  + +doxygen 1.5.9
+ + diff --git a/libs/QMapControl/html/classQObject.html b/libs/QMapControl/html/classQObject.html new file mode 100644 index 00000000..8f49fe4e --- /dev/null +++ b/libs/QMapControl/html/classQObject.html @@ -0,0 +1,89 @@ + + + + + + +QMapControl: QObject Class Reference + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + +
+
+
+
QObject Class Reference
+
+
+
+Inheritance diagram for QObject:
+
+
+ + +Geometry +Layer +MapAdapter +MapNetwork +Curve +Point +GeometryLayer +MapLayer +EmptyMapAdapter +TileMapAdapter +WMSMapAdapter +LineString +ArrowPoint +CirclePoint +ImagePoint +InvisiblePoint +GoogleMapAdapter +OpenAerialMapAdapter +OSMMapAdapter +YahooMapAdapter + +
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/libs/QMapControl/html/classQObject.png b/libs/QMapControl/html/classQObject.png new file mode 100644 index 0000000000000000000000000000000000000000..330bfdab34641068f28d431cbe62ac301ecd01ee GIT binary patch literal 6697 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⩔3o^nVnoSg`Ha+&i{}6_8njkVp9H z1#Dk%{?^L9_PchKv^BhN4M{tepX{YIdtdP9tA$WehQTtj%ZK;fbKBjhJ9e1!$r?YO zK{vFe{jO8C7|qBQp93#Wr&)BwI&50k_V(YQ3sEYxH?@D;8`DPA`&-}?4*#abM%y%| zw6lv#QCVFBBVCg%FIujk!jD1c?u5bKuw~kH?@T}RVOrATO}klc6&T2d$ilwvUi=bfOrY!#A_ckV<%9;|g9m%3gbTSin z7jjFnEGw`6bf&GpL+b@v{a%|uM^2xPSska+a{hMkHliN501a%x)-CoX$n~tBM?}!N z;#T@Fs=OWvkb=!FI~`oS$2+vh>JR&W8q(etO+lgyUce;y;f=j5wZG`dn=6l<1l#F*;j5-j%VMhlhlml zxvF1}v>)NA{{piBs@pK~IKxf^yrv7J%Doq#5grRL@aEx}J20-rCAo3|Yj|bJTW58q z{}BdlOi?m|H~PVR?bypeFX=5#8SeNhMP%=X8Y)3oPh=Hw5$?~ZIskU?;_ASIC1Xp& zBl9gIH?T?eOd^B@x>+y}S8gB)!^gLCVex3P!(uxpP@UZxM5ErS_P}=UjMA3Of8K@6 z7d`?QB!icg+*A6&n8#?+6gLk)EYAwqa4H+{mICyK1{9T_45k9ERKL;GYx3-ZAR4S}uUflk*h|KEr4`d0uex9ncn}~s zHw?tUXEMPfPYsZsxpRi50E6EZnKy#>(L2CNl+S5q&!0vv%c`|wH7d^h$-gJ0oO##3 zC;lI4zslMFJ*4690HpE9l`lsbVsU+>YY$zzG}Xuh&t#A^@ntQpP~1J=So$6Z6yGEOe?3l!#O7Xzl;Da4 zYkFM^QT!AL-bP;1terM+;kSU5k|8bXPiMX`Uu%qcN@&91isnPU2IQu59O!OwTZ3?< z0nZs$-5#9|Q5KEXw>8GZB^dJGfrmy&aZ>6LlA@g^-6Gf(>yPC2oM4j^p9AAss~Yp{ zt65<2gOI}rQpv!~xjRn+CQ0c^(2*?MrV{K{hGXvpYzTW;0~|_*_;4RCQ=XMTE-f3t zHKXQFb3Tcjy~rrz4UUWUpU66QL%U2}N|A1>@5++(mA=A~4ALx44c-GR)*6zQ@7>%W zY~T7I#>BZ%*BJVHq42**U>}u`19%$uZ&0s@m=4E3O4Bp}|LbUw4m%ure8BDMUjYj0 B^u7Q9 literal 0 HcmV?d00001 diff --git a/libs/QMapControl/html/classQWidget.html b/libs/QMapControl/html/classQWidget.html new file mode 100644 index 00000000..85857e65 --- /dev/null +++ b/libs/QMapControl/html/classQWidget.html @@ -0,0 +1,70 @@ + + + + + + +QMapControl: QWidget Class Reference + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + +
+
+
+
QWidget Class Reference
+
+
+
+Inheritance diagram for QWidget:
+
+
+ + +MapControl + +
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/libs/QMapControl/html/classQWidget.png b/libs/QMapControl/html/classQWidget.png new file mode 100644 index 0000000000000000000000000000000000000000..573c3fbaa2b2fe65343a3b3daf23a3ba8c9f99c3 GIT binary patch literal 442 zcmeAS@N?(olHy`uVBq!ia0vp^en1?+!3-oDR%|{3q$C1-LR|m<{|{uoc=NTi|Ih>= z3ycpOIKbL@M;^%KC<*clW&kPzfvcxNj2IXgJw06t|mT{m3}7VvYLTy)V-4#ojBQ z{;Fzj@3ZywqK{SkOTX@8TlN0)E4}FQzmAMG{rmM=1nw~GIL!8-eSO~TnA&~2?ml~2 zeC_YYb9%A|RJ_>@j$dLt19FRw>;V~X_6rGVWzA>LyfL1kQn|5YlF9Lf+?F4tx|QFw ztAv_Ntf_hxl(6N4P~8IWt1UG_VU;b9Yv#|p_${$GZ>^m literal 0 HcmV?d00001 diff --git a/libs/QMapControl/html/classes.html b/libs/QMapControl/html/classes.html new file mode 100644 index 00000000..d4fdd234 --- /dev/null +++ b/libs/QMapControl/html/classes.html @@ -0,0 +1,90 @@ + + + + + + +QMapControl: Class Index + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + +
+
+
+
Class Index
+
+
+
A | C | E | F | G | I | L | M | O | P | Q | T | W | Y
+ + + + + + + + + + + + + + + +
  A  
+
  G  
+
LineString (qmapcontrol)   
  P  
+
  Y  
+
  M  
+
ArrowPoint (qmapcontrol)   Geometry (qmapcontrol)   Point (qmapcontrol)   YahooMapAdapter (qmapcontrol)   
  C  
+
GeometryLayer (qmapcontrol)   MapAdapter (qmapcontrol)   
  Q  
+
GoogleMapAdapter (qmapcontrol)   MapControl (qmapcontrol)   
CirclePoint (qmapcontrol)   
  I  
+
MapLayer (qmapcontrol)   QObject   
Curve (qmapcontrol)   MapNetwork (qmapcontrol)   QWidget   
  E  
+
ImagePoint (qmapcontrol)   
  O  
+
  T  
+
InvisiblePoint (qmapcontrol)   
EmptyMapAdapter (qmapcontrol)   
  L  
+
OpenAerialMapAdapter (qmapcontrol)   TileMapAdapter (qmapcontrol)   
  F  
+
OSMMapAdapter (qmapcontrol)   
  W  
+
Layer (qmapcontrol)   
FixedImageOverlay (qmapcontrol)   WMSMapAdapter (qmapcontrol)   
+
A | C | E | F | G | I | L | M | O | P | Q | T | W | Y
+
+ + + + diff --git a/libs/QMapControl/html/classqmapcontrol_1_1ArrowPoint-members.html b/libs/QMapControl/html/classqmapcontrol_1_1ArrowPoint-members.html new file mode 100644 index 00000000..aed03cec --- /dev/null +++ b/libs/QMapControl/html/classqmapcontrol_1_1ArrowPoint-members.html @@ -0,0 +1,99 @@ + + + + + + +QMapControl: Member List + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + + +
+
+
+
ArrowPoint Member List
+
+
+ +

This is the complete list of members for ArrowPoint, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Alignment enum namePoint
ArrowPoint(qreal x, qreal y, int sideLength, qreal heading, QString name=QString(), Alignment alignment=Middle, QPen *pen=0)ArrowPoint
BottomLeft enum valuePoint
BottomMiddle enum valuePoint
BottomRight enum valuePoint
boundingBox()Pointvirtual
coordinate() const Point
Equals(Geometry *geom)Geometry
geometryClicked(Geometry *geometry, QPoint point)Geometrysignal
getHeading() const ArrowPoint
isVisible() const Geometry
latitude() const Point
longitude() const Point
Middle enum valuePoint
name() const Geometry
parentGeometry() const Geometry
pen() const Geometry
pixmap()Point
Point(qreal x, qreal y, QString name=QString(), enum Alignment alignment=Middle)Point
Point(qreal x, qreal y, QWidget *widget, QString name=QString(), enum Alignment alignment=Middle)Point
Point(qreal x, qreal y, QPixmap pixmap, QString name=QString(), enum Alignment alignment=Middle)Point
positionChanged(Geometry *geom)Geometrysignal
setBaselevel(int zoomlevel)Point
setHeading(qreal heading)ArrowPoint
setMaxsize(QSize maxsize)Point
setMinsize(QSize minsize)Point
setName(QString name)Geometry
setPen(QPen *pen)ArrowPointvirtual
TopLeft enum valuePoint
TopMiddle enum valuePoint
TopRight enum valuePoint
toString()Geometry
Touches(Point *click, const MapAdapter *mapadapter)Pointprotectedvirtual
widget()Point
+ + + + diff --git a/libs/QMapControl/html/classqmapcontrol_1_1ArrowPoint.html b/libs/QMapControl/html/classqmapcontrol_1_1ArrowPoint.html new file mode 100644 index 00000000..f1df8f6b --- /dev/null +++ b/libs/QMapControl/html/classqmapcontrol_1_1ArrowPoint.html @@ -0,0 +1,958 @@ + + + + + + +QMapControl: ArrowPoint Class Reference + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + + +
+ +
+ +

Draws a directed arrow (showing orientation) into the map. + More...

+ +

#include <arrowpoint.h>

+
+Inheritance diagram for ArrowPoint:
+
+
+ + +Point +Geometry +QObject + +
+ + + + + +

+Public Types

enum  Alignment {
+  TopLeft, +TopRight, +TopMiddle, +BottomLeft, +
+  BottomRight, +BottomMiddle, +Middle +
+ }
 sets where the point should be aligned More...
 
+ + + + + + + +

+Signals

void geometryClicked (Geometry *geometry, QPoint point)
 This signal is emitted when a Geometry is clicked. More...
 
void positionChanged (Geometry *geom)
 A Geometry emits this signal, when its position gets changed. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 ArrowPoint (qreal x, qreal y, int sideLength, qreal heading, QString name=QString(), Alignment alignment=Middle, QPen *pen=0)
 
virtual QRectF boundingBox ()
 returns the bounding box of the point More...
 
QPointF coordinate () const
 returns the coordinate of the point More...
 
bool Equals (Geometry *geom)
 
+qreal getHeading () const
 gets the current heading of the arrow
 
bool isVisible () const
 returns true if this Geometry is visible More...
 
qreal latitude () const
 returns the latitude of the point More...
 
qreal longitude () const
 returns the longitude of the point More...
 
QString name () const
 returns the name of this Geometry More...
 
GeometryparentGeometry () const
 returns the parent Geometry of this Geometry More...
 
QPen * pen () const
 returns the QPen which is used on drawing More...
 
QPixmap pixmap ()
 returns the pixmap of the point More...
 
void setBaselevel (int zoomlevel)
 Sets the zoom level on which the points pixmap gets displayed on full size. More...
 
void setHeading (qreal heading)
 sets the heading of the arrow and redraws it in the new orientation More...
 
void setMaxsize (QSize maxsize)
 sets a maximal size for the pixmap More...
 
void setMinsize (QSize minsize)
 sets a minimal size for the pixmap More...
 
void setName (QString name)
 sets the name of the geometry More...
 
virtual void setPen (QPen *pen)
 sets the QPen which is used for drawing the arrow More...
 
QString toString ()
 returns a String representation of this Geometry More...
 
QWidgetwidget ()
 returns the widget of the point More...
 
+ + + + +

+Protected Member Functions

virtual bool Touches (Point *click, const MapAdapter *mapadapter)
 returns true if the given Point touches this Point More...
 
+

Detailed Description

+

Draws a directed arrow (showing orientation) into the map.

+

This is a convenience class for Point. It configures the pixmap of a Point to draw an arrow in a specific direction. A QPen could be used to change the color or line-width of the arrow

+
Author
Jeffery MacEachern j.mac.nosp@m.each.nosp@m.ern@g.nosp@m.mail.nosp@m..com
+

Member Enumeration Documentation

+ +
+
+ + + + + +
+ + + + +
enum Alignment
+
+inherited
+
+ +

sets where the point should be aligned

+ + + + + + + + +
Enumerator
TopLeft  +

Align on TopLeft

+
TopRight  +

Align on TopRight

+
TopMiddle  +

Align on TopLeft

+
BottomLeft  +

Align on BottomLeft

+
BottomRight  +

Align on BottomRight

+
BottomMiddle  +

Align on BottomMiddle

+
Middle  +

Align on Middle

+
+ +
+
+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ArrowPoint (qreal x,
qreal y,
int sideLength,
qreal heading,
QString name = QString(),
Alignment alignment = Middle,
QPen * pen = 0 
)
+
+
Parameters
+ + + + + + + + +
xlongitude
ylatitude
sideLengthside length of the arrow's bounding box (square)
headingcompass heading determining direction that arrow faces, measured in degrees clockwise from North
namename of the arrow point
alignmentalignment (Middle or TopLeft)
penQPen for drawing
+
+
+ +

References Geometry::pen().

+ +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + +
QRectF boundingBox ()
+
+virtualinherited
+
+ +

returns the bounding box of the point

+

The Bounding contains the coordinate of the point and its size. The size is set, if the point contains a pixmap or a widget

Returns
the bounding box of the point
+ +

Implements Geometry.

+ +

References Point::latitude(), and Point::longitude().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QPointF coordinate () const
+
+inherited
+
+ +

returns the coordinate of the point

+

The x component of the returned QPointF is the longitude value, the y component the latitude

Returns
the coordinate of a point
+ +

Referenced by MapControl::setView(), and Point::Touches().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
bool Equals (Geometrygeom)
+
+inherited
+
+

returns true if the given Geometry is equal to this Geometry not implemented yet!

Parameters
+ + +
geomThe Geometry to be tested
+
+
+
Returns
true if the given Geometry is equal to this
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void geometryClicked (Geometrygeometry,
QPoint point 
)
+
+signalinherited
+
+ +

This signal is emitted when a Geometry is clicked.

+

A Geometry is clickable, if the containing layer is clickable. The objects emits a signal if it gets clicked

Parameters
+ + + +
geometryThe clicked Geometry
point-unused-
+
+
+ +

Referenced by Point::Touches().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
bool isVisible () const
+
+inherited
+
+ +

returns true if this Geometry is visible

+
Returns
true if this Geometry is visible
+ +

Referenced by Point::Touches().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
qreal latitude () const
+
+inherited
+
+ +

returns the latitude of the point

+
Returns
the latitude of the point
+ +

Referenced by LineString::boundingBox(), and Point::boundingBox().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
qreal longitude () const
+
+inherited
+
+ +

returns the longitude of the point

+
Returns
the longitude of the point
+ +

Referenced by LineString::boundingBox(), and Point::boundingBox().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QString name () const
+
+inherited
+
+ +

returns the name of this Geometry

+
Returns
the name of this Geometry
+ +

Referenced by Geometry::setName().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
Geometry * parentGeometry () const
+
+inherited
+
+ +

returns the parent Geometry of this Geometry

+

A LineString is a composition of many Points. This methods returns the parent (the LineString) of a Point

Returns
the parent Geometry of this Geometry
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QPen * pen () const
+
+inherited
+
+ +

returns the QPen which is used on drawing

+

The pen is set depending on the Geometry. A CirclePoint for example takes one with the constructor.

Returns
the QPen which is used for drawing
+ +

Referenced by ArrowPoint::ArrowPoint(), CirclePoint::CirclePoint(), LineString::LineString(), ArrowPoint::setPen(), and CirclePoint::setPen().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QPixmap pixmap ()
+
+inherited
+
+ +

returns the pixmap of the point

+
Returns
the pixmap of the point
+ +

Referenced by FixedImageOverlay::FixedImageOverlay(), and ImagePoint::ImagePoint().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void positionChanged (Geometrygeom)
+
+signalinherited
+
+ +

A Geometry emits this signal, when its position gets changed.

+
Parameters
+ + +
geomthe Geometry
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void setBaselevel (int zoomlevel)
+
+inherited
+
+ +

Sets the zoom level on which the points 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

See also
setMinsize, setMaxsize
+
Parameters
+ + +
zoomlevelthe zoomlevel on which the point will be displayed on full size
+
+
+ +
+
+ +
+
+ + + + + + + + +
void setHeading (qreal heading)
+
+ +

sets the heading of the arrow and redraws it in the new orientation

+
Parameters
+ + +
headingnew heading
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void setMaxsize (QSize maxsize)
+
+inherited
+
+ +

sets a maximal size for the pixmap

+

When the point´s pixmap should change its size on zooming, this method sets the maximal size.

See also
setBaselevel
+
Parameters
+ + +
maxsizethe maximal size which the pixmap should have
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void setMinsize (QSize minsize)
+
+inherited
+
+ +

sets a minimal size for the pixmap

+

When the point's pixmap should change its size on zooming, this method sets the minimal size.

See also
setBaselevel
+
Parameters
+ + +
minsizethe minimal size which the pixmap should have
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void setName (QString name)
+
+inherited
+
+ +

sets the name of the geometry

+
Parameters
+ + +
namethe new name of the geometry
+
+
+ +

References Geometry::name().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void setPen (QPen * pen)
+
+virtual
+
+ +

sets the QPen which is used for drawing the arrow

+

A QPen can be used to modify the look of the drawn arrow

Parameters
+ + +
penthe QPen which should be used for drawing
+
+
+
See also
http://doc.trolltech.com/4.3/qpen.html
+ +

Reimplemented from Geometry.

+ +

References Geometry::pen().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QString toString ()
+
+inherited
+
+ +

returns a String representation of this Geometry

+

not implemented yet!

Returns
a String representation of this Geometry
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool Touches (Pointclick,
const MapAdaptermapadapter 
)
+
+protectedvirtualinherited
+
+ +

returns true if the given Point touches this Point

+

The collision detection checks for the bounding rectangulars.

Parameters
+ + + +
geomthe other point which should be tested on collision
mapadapterthe mapadapter which is used for calculations
+
+
+
Returns
+ +

Implements Geometry.

+ +

References Point::coordinate(), MapAdapter::coordinateToDisplay(), Geometry::geometryClicked(), and Geometry::isVisible().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QWidget * widget ()
+
+inherited
+
+ +

returns the widget of the point

+
Returns
the widget of the point
+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/libs/QMapControl/html/classqmapcontrol_1_1ArrowPoint.png b/libs/QMapControl/html/classqmapcontrol_1_1ArrowPoint.png new file mode 100644 index 0000000000000000000000000000000000000000..6a4bb0bb3666875fb18a6a061a8f8b2a88e68d98 GIT binary patch literal 704 zcmeAS@N?(olHy`uVBq!ia0vp^-aveSgBeIxKhHZ1q$C1-LR|m<{|{uoc=NTi|Ih>= z3ycpOIKbL@M;^%KC<*clW&kPzfvcxNj2IZ0{5@S9Ln;{G&VAUoMuEqTKVJC$|B37Q zx*oiUNT2;iZTlK`mX8q{kN+J#qr>4d$;o57%1_I}sXKeZqk}IM$XMNr{eAiE7q!A& z-z0vm4zJO_<}rQM(f=nxqqFZv*!I6Z@^sGQe|KiDUiP>#J95G69eTpAPd}didh5GY zy3x@y(ks{Oz5n+2>fCRq*I9?w?N@opcu>!HvjoGtnG8)FCBDIPbS{{#K9n+Xo&D_N zC5$!-u?%&WSRbgvsI@a@vNn1KalD+QV$U8vvslJHf$!G6ddu#Ufbzj#uueRQGN;rJ(u@y1>3wNLWbF6gEE4gra|JY6Z zm0!+(-28fLRPNPpHt)3W?SH$&x^CNh=Gb=M-@?}m|3ClkJ?Rh2?lWhS7dJ{M#kNY59Y=H*w0&V+~nvZQ4q#gUOi5g1-o z*XM41_A2E^)zzJO&NX-Kq>JBHUH!VHWn)R$tkrGd?zxBAu75l8x=i-+yZ&`*x7_v~ z-Maf%SmWP_>)9{t%X77>-%8!DdV6bG&9hbYg6kUdW22k;z^?mwo2|lS7sDT&_}(Bd c&WG{~m*~$ + + + + + +QMapControl: Member List + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + + +
+
+
+
CirclePoint Member List
+
+
+ +

This is the complete list of members for CirclePoint, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Alignment enum namePoint
BottomLeft enum valuePoint
BottomMiddle enum valuePoint
BottomRight enum valuePoint
boundingBox()Pointvirtual
CirclePoint(qreal x, qreal y, QString name=QString(), Alignment alignment=Middle, QPen *pen=0)CirclePoint
CirclePoint(qreal x, qreal y, int radius=10, QString name=QString(), Alignment alignment=Middle, QPen *pen=0)CirclePoint
coordinate() const Point
Equals(Geometry *geom)Geometry
geometryClicked(Geometry *geometry, QPoint point)Geometrysignal
isVisible() const Geometry
latitude() const Point
longitude() const Point
Middle enum valuePoint
name() const Geometry
parentGeometry() const Geometry
pen() const Geometry
pixmap()Point
Point(qreal x, qreal y, QString name=QString(), enum Alignment alignment=Middle)Point
Point(qreal x, qreal y, QWidget *widget, QString name=QString(), enum Alignment alignment=Middle)Point
Point(qreal x, qreal y, QPixmap pixmap, QString name=QString(), enum Alignment alignment=Middle)Point
positionChanged(Geometry *geom)Geometrysignal
setBaselevel(int zoomlevel)Point
setMaxsize(QSize maxsize)Point
setMinsize(QSize minsize)Point
setName(QString name)Geometry
setPen(QPen *pen)CirclePointvirtual
TopLeft enum valuePoint
TopMiddle enum valuePoint
TopRight enum valuePoint
toString()Geometry
Touches(Point *click, const MapAdapter *mapadapter)Pointprotectedvirtual
widget()Point
+ + + + diff --git a/libs/QMapControl/html/classqmapcontrol_1_1CirclePoint.html b/libs/QMapControl/html/classqmapcontrol_1_1CirclePoint.html new file mode 100644 index 00000000..6f24f63c --- /dev/null +++ b/libs/QMapControl/html/classqmapcontrol_1_1CirclePoint.html @@ -0,0 +1,978 @@ + + + + + + +QMapControl: CirclePoint Class Reference + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + + +
+ +
+ +

Draws a circle into the map. + More...

+ +

#include <circlepoint.h>

+
+Inheritance diagram for CirclePoint:
+
+
+ + +Point +Geometry +QObject + +
+ + + + + +

+Public Types

enum  Alignment {
+  TopLeft, +TopRight, +TopMiddle, +BottomLeft, +
+  BottomRight, +BottomMiddle, +Middle +
+ }
 sets where the point should be aligned More...
 
+ + + + + + + +

+Signals

void geometryClicked (Geometry *geometry, QPoint point)
 This signal is emitted when a Geometry is clicked. More...
 
void positionChanged (Geometry *geom)
 A Geometry emits this signal, when its position gets changed. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual QRectF boundingBox ()
 returns the bounding box of the point More...
 
 CirclePoint (qreal x, qreal y, QString name=QString(), Alignment alignment=Middle, QPen *pen=0)
 
 CirclePoint (qreal x, qreal y, int radius=10, QString name=QString(), Alignment alignment=Middle, QPen *pen=0)
 
QPointF coordinate () const
 returns the coordinate of the point More...
 
bool Equals (Geometry *geom)
 
bool isVisible () const
 returns true if this Geometry is visible More...
 
qreal latitude () const
 returns the latitude of the point More...
 
qreal longitude () const
 returns the longitude of the point More...
 
QString name () const
 returns the name of this Geometry More...
 
GeometryparentGeometry () const
 returns the parent Geometry of this Geometry More...
 
QPen * pen () const
 returns the QPen which is used on drawing More...
 
QPixmap pixmap ()
 returns the pixmap of the point More...
 
void setBaselevel (int zoomlevel)
 Sets the zoom level on which the points pixmap gets displayed on full size. More...
 
void setMaxsize (QSize maxsize)
 sets a maximal size for the pixmap More...
 
void setMinsize (QSize minsize)
 sets a minimal size for the pixmap More...
 
void setName (QString name)
 sets the name of the geometry More...
 
virtual void setPen (QPen *pen)
 sets the QPen which is used for drawing the circle More...
 
QString toString ()
 returns a String representation of this Geometry More...
 
QWidgetwidget ()
 returns the widget of the point More...
 
+ + + + +

+Protected Member Functions

virtual bool Touches (Point *click, const MapAdapter *mapadapter)
 returns true if the given Point touches this Point More...
 
+

Detailed Description

+

Draws a circle into the map.

+

This is a conveniece class for Point. It configures the pixmap of a Point to draw a circle. A QPen could be used to change the color or line-width of the circle

+
Author
Kai Winter kaiwi.nosp@m.nter.nosp@m.@gmx..nosp@m.de
+

Member Enumeration Documentation

+ +
+
+ + + + + +
+ + + + +
enum Alignment
+
+inherited
+
+ +

sets where the point should be aligned

+ + + + + + + + +
Enumerator
TopLeft  +

Align on TopLeft

+
TopRight  +

Align on TopRight

+
TopMiddle  +

Align on TopLeft

+
BottomLeft  +

Align on BottomLeft

+
BottomRight  +

Align on BottomRight

+
BottomMiddle  +

Align on BottomMiddle

+
Middle  +

Align on Middle

+
+ +
+
+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CirclePoint (qreal x,
qreal y,
QString name = QString(),
Alignment alignment = Middle,
QPen * pen = 0 
)
+
+
Parameters
+ + + + + + +
xlongitude
ylatitude
namename of the circle point
alignmentalignment (Middle or TopLeft)
penQPen for drawing
+
+
+ +

References Geometry::pen().

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CirclePoint (qreal x,
qreal y,
int radius = 10,
QString name = QString(),
Alignment alignment = Middle,
QPen * pen = 0 
)
+
+
Parameters
+ + + + + + + +
xlongitude
ylatitude
radiusthe radius of the circle
namename of the circle point
alignmentalignment (Middle or TopLeft)
penQPen for drawing
+
+
+ +

References Geometry::pen().

+ +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + +
QRectF boundingBox ()
+
+virtualinherited
+
+ +

returns the bounding box of the point

+

The Bounding contains the coordinate of the point and its size. The size is set, if the point contains a pixmap or a widget

Returns
the bounding box of the point
+ +

Implements Geometry.

+ +

References Point::latitude(), and Point::longitude().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QPointF coordinate () const
+
+inherited
+
+ +

returns the coordinate of the point

+

The x component of the returned QPointF is the longitude value, the y component the latitude

Returns
the coordinate of a point
+ +

Referenced by MapControl::setView(), and Point::Touches().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
bool Equals (Geometrygeom)
+
+inherited
+
+

returns true if the given Geometry is equal to this Geometry not implemented yet!

Parameters
+ + +
geomThe Geometry to be tested
+
+
+
Returns
true if the given Geometry is equal to this
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void geometryClicked (Geometrygeometry,
QPoint point 
)
+
+signalinherited
+
+ +

This signal is emitted when a Geometry is clicked.

+

A Geometry is clickable, if the containing layer is clickable. The objects emits a signal if it gets clicked

Parameters
+ + + +
geometryThe clicked Geometry
point-unused-
+
+
+ +

Referenced by Point::Touches().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
bool isVisible () const
+
+inherited
+
+ +

returns true if this Geometry is visible

+
Returns
true if this Geometry is visible
+ +

Referenced by Point::Touches().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
qreal latitude () const
+
+inherited
+
+ +

returns the latitude of the point

+
Returns
the latitude of the point
+ +

Referenced by LineString::boundingBox(), and Point::boundingBox().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
qreal longitude () const
+
+inherited
+
+ +

returns the longitude of the point

+
Returns
the longitude of the point
+ +

Referenced by LineString::boundingBox(), and Point::boundingBox().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QString name () const
+
+inherited
+
+ +

returns the name of this Geometry

+
Returns
the name of this Geometry
+ +

Referenced by Geometry::setName().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
Geometry * parentGeometry () const
+
+inherited
+
+ +

returns the parent Geometry of this Geometry

+

A LineString is a composition of many Points. This methods returns the parent (the LineString) of a Point

Returns
the parent Geometry of this Geometry
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QPen * pen () const
+
+inherited
+
+ +

returns the QPen which is used on drawing

+

The pen is set depending on the Geometry. A CirclePoint for example takes one with the constructor.

Returns
the QPen which is used for drawing
+ +

Referenced by ArrowPoint::ArrowPoint(), CirclePoint::CirclePoint(), LineString::LineString(), ArrowPoint::setPen(), and CirclePoint::setPen().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QPixmap pixmap ()
+
+inherited
+
+ +

returns the pixmap of the point

+
Returns
the pixmap of the point
+ +

Referenced by FixedImageOverlay::FixedImageOverlay(), and ImagePoint::ImagePoint().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void positionChanged (Geometrygeom)
+
+signalinherited
+
+ +

A Geometry emits this signal, when its position gets changed.

+
Parameters
+ + +
geomthe Geometry
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void setBaselevel (int zoomlevel)
+
+inherited
+
+ +

Sets the zoom level on which the points 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

See also
setMinsize, setMaxsize
+
Parameters
+ + +
zoomlevelthe zoomlevel on which the point will be displayed on full size
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void setMaxsize (QSize maxsize)
+
+inherited
+
+ +

sets a maximal size for the pixmap

+

When the point´s pixmap should change its size on zooming, this method sets the maximal size.

See also
setBaselevel
+
Parameters
+ + +
maxsizethe maximal size which the pixmap should have
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void setMinsize (QSize minsize)
+
+inherited
+
+ +

sets a minimal size for the pixmap

+

When the point's pixmap should change its size on zooming, this method sets the minimal size.

See also
setBaselevel
+
Parameters
+ + +
minsizethe minimal size which the pixmap should have
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void setName (QString name)
+
+inherited
+
+ +

sets the name of the geometry

+
Parameters
+ + +
namethe new name of the geometry
+
+
+ +

References Geometry::name().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void setPen (QPen * pen)
+
+virtual
+
+ +

sets the QPen which is used for drawing the circle

+

A QPen can be used to modify the look of the drawn circle

Parameters
+ + +
penthe QPen which should be used for drawing
+
+
+
See also
http://doc.trolltech.com/4.3/qpen.html
+ +

Reimplemented from Geometry.

+ +

References Geometry::pen().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QString toString ()
+
+inherited
+
+ +

returns a String representation of this Geometry

+

not implemented yet!

Returns
a String representation of this Geometry
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool Touches (Pointclick,
const MapAdaptermapadapter 
)
+
+protectedvirtualinherited
+
+ +

returns true if the given Point touches this Point

+

The collision detection checks for the bounding rectangulars.

Parameters
+ + + +
geomthe other point which should be tested on collision
mapadapterthe mapadapter which is used for calculations
+
+
+
Returns
+ +

Implements Geometry.

+ +

References Point::coordinate(), MapAdapter::coordinateToDisplay(), Geometry::geometryClicked(), and Geometry::isVisible().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QWidget * widget ()
+
+inherited
+
+ +

returns the widget of the point

+
Returns
the widget of the point
+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/libs/QMapControl/html/classqmapcontrol_1_1CirclePoint.png b/libs/QMapControl/html/classqmapcontrol_1_1CirclePoint.png new file mode 100644 index 0000000000000000000000000000000000000000..8f7a8048163d87f05b56c2a6910a3aeef5af46c9 GIT binary patch literal 697 zcmeAS@N?(olHy`uVBq!ia0vp^UO;?+gBeIpQDyxLq$C1-LR|m<{|{uoc=NTi|Ih>= z3ycpOIKbL@M;^%KC<*clW&kPzfvcxNj2IZ0JUm?-Ln;{G&b_#9wG|Jm`e~v6|4)i@ zOqk$QxLfzG*YS=_4-dBFXZJ7O74S1|gKl-;Rj(hR-bL>g@6uhly6OJYtlPfT zbH6F9*NSl8f9q}e?br38wlhC{_nI{4$f`4EoER$7m^u{wOnnpASzOKODq>w#x20(% zQ^6!H2KkjtA0|SnRbLH^yBQ}h;RsUov||gM$?sWp`fShUthrxad|Gj9j_!_IQ=YoL zzTR(jD|>zD?In9>hRg2Sn|U|->bEnKS6S~qCKy`VzPZra|M2nb{o%duZ!UVZc;(Ao z>lgfIy}#<3kE~?2XwJ!Z@@6^R``>=ExLUdXpR4JcUw`&aQjy=NWxQE{VcyS^_P;W@ zijS^L3!b7K@O81Mk7&c>5XK)Kq7D5pYHj<>NS+xgt`oF8KNYUmI(@NJf1OI{bLp#h zH`%YqDlksncW3t`lMidGY(l?;hD5Kk3N7}&biz60f77b<4<^=nN}XK4S>>n4RF$7I zLetU|8EigJuK#jbsmE$zW zg>%=|hVI&Bxa!(B(<6yTuUhx461!t}tLe=l+tTNm$M-~EwaTA;FP8Ui?k(q#yDiDN z)6ZN_w+Ov@QT=Q7)yiXwvwV)ec`{@P1bjIN6>gTe~DWM4fmPJgE literal 0 HcmV?d00001 diff --git a/libs/QMapControl/html/classqmapcontrol_1_1Curve-members.html b/libs/QMapControl/html/classqmapcontrol_1_1Curve-members.html new file mode 100644 index 00000000..eb94c967 --- /dev/null +++ b/libs/QMapControl/html/classqmapcontrol_1_1Curve-members.html @@ -0,0 +1,76 @@ + + + + + + +QMapControl: Member List + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + + +
+
+
+
Curve Member List
+
+
+ +

This is the complete list of members for Curve, including all inherited members.

+ + + + + + + + + + + + +
boundingBox()=0Geometrypure virtual
Equals(Geometry *geom)Geometry
geometryClicked(Geometry *geometry, QPoint point)Geometrysignal
isVisible() const Geometry
name() const Geometry
parentGeometry() const Geometry
pen() const Geometry
positionChanged(Geometry *geom)Geometrysignal
setName(QString name)Geometry
setVisible(bool visible)Geometryvirtualslot
toString()Geometry
+ + + + diff --git a/libs/QMapControl/html/classqmapcontrol_1_1Curve.html b/libs/QMapControl/html/classqmapcontrol_1_1Curve.html new file mode 100644 index 00000000..d18179b4 --- /dev/null +++ b/libs/QMapControl/html/classqmapcontrol_1_1Curve.html @@ -0,0 +1,476 @@ + + + + + + +QMapControl: Curve Class Reference + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + + +
+
+ +
+
Curve Class Referenceabstract
+
+
+ +

A Curve Geometry, implemented to fullfil OGC Spec. + More...

+ +

#include <curve.h>

+
+Inheritance diagram for Curve:
+
+
+ + +Geometry +QObject +LineString + +
+ + + + + +

+Public Slots

virtual void setVisible (bool visible)
 if visible is true, the layer is made visible More...
 
+ + + + + + + +

+Signals

void geometryClicked (Geometry *geometry, QPoint point)
 This signal is emitted when a Geometry is clicked. More...
 
void positionChanged (Geometry *geom)
 A Geometry emits this signal, when its position gets changed. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual QRectF boundingBox ()=0
 returns the BoundingBox More...
 
bool Equals (Geometry *geom)
 
bool isVisible () const
 returns true if this Geometry is visible More...
 
QString name () const
 returns the name of this Geometry More...
 
GeometryparentGeometry () const
 returns the parent Geometry of this Geometry More...
 
QPen * pen () const
 returns the QPen which is used on drawing More...
 
void setName (QString name)
 sets the name of the geometry More...
 
QString toString ()
 returns a String representation of this Geometry More...
 
+

Detailed Description

+

A Curve Geometry, implemented to fullfil OGC Spec.

+

The Curve class is used by LineString as parent class. This class could not be used directly.

+

From the OGC Candidate Implementation Specification: "A Curve is a 1-dimensional geometric object usually stored as a sequence of Points, with the subtype of Curve specifying the form of the interpolation between Points. This specification defines only one subclass of Curve, LineString, which uses a linear interpolation between Points."

Author
Kai Winter kaiwi.nosp@m.nter.nosp@m.@gmx..nosp@m.de
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + +
virtual QRectF boundingBox ()
+
+pure virtualinherited
+
+ +

returns the BoundingBox

+

The bounding box in world coordinates

Returns
the BoundingBox
+ +

Implemented in Point, and LineString.

+ +

Referenced by Layer::addGeometry(), MapControl::isGeometryVisible(), Layer::removeGeometry(), and Geometry::setVisible().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
bool Equals (Geometrygeom)
+
+inherited
+
+

returns true if the given Geometry is equal to this Geometry not implemented yet!

Parameters
+ + +
geomThe Geometry to be tested
+
+
+
Returns
true if the given Geometry is equal to this
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void geometryClicked (Geometrygeometry,
QPoint point 
)
+
+signalinherited
+
+ +

This signal is emitted when a Geometry is clicked.

+

A Geometry is clickable, if the containing layer is clickable. The objects emits a signal if it gets clicked

Parameters
+ + + +
geometryThe clicked Geometry
point-unused-
+
+
+ +

Referenced by Point::Touches().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
bool isVisible () const
+
+inherited
+
+ +

returns true if this Geometry is visible

+
Returns
true if this Geometry is visible
+ +

Referenced by Point::Touches().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QString name () const
+
+inherited
+
+ +

returns the name of this Geometry

+
Returns
the name of this Geometry
+ +

Referenced by Geometry::setName().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
Geometry * parentGeometry () const
+
+inherited
+
+ +

returns the parent Geometry of this Geometry

+

A LineString is a composition of many Points. This methods returns the parent (the LineString) of a Point

Returns
the parent Geometry of this Geometry
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QPen * pen () const
+
+inherited
+
+ +

returns the QPen which is used on drawing

+

The pen is set depending on the Geometry. A CirclePoint for example takes one with the constructor.

Returns
the QPen which is used for drawing
+ +

Referenced by ArrowPoint::ArrowPoint(), CirclePoint::CirclePoint(), LineString::LineString(), ArrowPoint::setPen(), and CirclePoint::setPen().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void positionChanged (Geometrygeom)
+
+signalinherited
+
+ +

A Geometry emits this signal, when its position gets changed.

+
Parameters
+ + +
geomthe Geometry
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void setName (QString name)
+
+inherited
+
+ +

sets the name of the geometry

+
Parameters
+ + +
namethe new name of the geometry
+
+
+ +

References Geometry::name().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void setVisible (bool visible)
+
+virtualslotinherited
+
+ +

if visible is true, the layer is made visible

+
Parameters
+ + +
visibleif the layer should be visible
+
+
+ +

References Geometry::boundingBox().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QString toString ()
+
+inherited
+
+ +

returns a String representation of this Geometry

+

not implemented yet!

Returns
a String representation of this Geometry
+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/libs/QMapControl/html/classqmapcontrol_1_1Curve.png b/libs/QMapControl/html/classqmapcontrol_1_1Curve.png new file mode 100644 index 0000000000000000000000000000000000000000..75fac4ba9b3ff50e1e71e7dba75306716f315c19 GIT binary patch literal 714 zcmeAS@N?(olHy`uVBq!ia0vp^u0VW%gBeJs>ctfRDTx4|5ZC|z{{xvX-h3_XKQsZz z0^&?QeSt8Z<-`(Au`hm#keDpDPvi8>a41aT@h)X?7s4+!>?vU zFlg~`H>5`}*c@hhASuRhK0oTrnOO%_R!&TusN$c;`B~9(dPsW8w9-Fe#mSzBqdhiq zo_46}n|@>Vv=E)!Kkl93=DU1v$?;jK)xn7;&#l?nr^*(4YTM=)cKbeG`SdeUbDB-t zj9FQ|^Xf0oOg(#Q;@ptMQ!f9pbv-NnEl=Eg-`{^Zn%_SBs0CVO4h#xy2J@PW^*1tK zEqs|YQ&rZaRwq7maU$ai109BWiHskh4&9&0so0Xn!O#ojFVBm-%=cl!s?@hti&sYW z&3mdQw0!NAMKx(N^>6>Z$C~o|a70z)xBgXX|F*IoD2!bE)W^I3lx?@_+v#unO*h-D z7d&9y#(LoM{w*y6PQ==7XuLbk$apu~zopr0JUaL5dZ)H literal 0 HcmV?d00001 diff --git a/libs/QMapControl/html/classqmapcontrol_1_1EmptyMapAdapter-members.html b/libs/QMapControl/html/classqmapcontrol_1_1EmptyMapAdapter-members.html new file mode 100644 index 00000000..060c1398 --- /dev/null +++ b/libs/QMapControl/html/classqmapcontrol_1_1EmptyMapAdapter-members.html @@ -0,0 +1,75 @@ + + + + + + +QMapControl: Member List + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + + +
+
+
+
EmptyMapAdapter Member List
+
+
+ +

This is the complete list of members for EmptyMapAdapter, including all inherited members.

+ + + + + + + + + + + +
changeHostAddress(const QString qHost, const QString qServerPath=QString())MapAdaptervirtual
coordinateToDisplay(const QPointF &) const EmptyMapAdaptervirtual
currentZoom() const MapAdapter
displayToCoordinate(const QPoint &) const EmptyMapAdaptervirtual
EmptyMapAdapter(int tileSize=256, int minZoom=0, int maxZoom=17)EmptyMapAdapter
host() const MapAdapter
maxZoom() const MapAdapter
minZoom() const MapAdapter
serverPath() const MapAdaptervirtual
tilesize() const MapAdapter
+ + + + diff --git a/libs/QMapControl/html/classqmapcontrol_1_1EmptyMapAdapter.html b/libs/QMapControl/html/classqmapcontrol_1_1EmptyMapAdapter.html new file mode 100644 index 00000000..2675a007 --- /dev/null +++ b/libs/QMapControl/html/classqmapcontrol_1_1EmptyMapAdapter.html @@ -0,0 +1,444 @@ + + + + + + +QMapControl: EmptyMapAdapter Class Reference + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + + +
+
+ +
+
EmptyMapAdapter Class Reference
+
+
+ +

MapAdapter which do not load map tiles. + More...

+ +

#include <emptymapadapter.h>

+
+Inheritance diagram for EmptyMapAdapter:
+
+
+ + +MapAdapter +QObject + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual void changeHostAddress (const QString qHost, const QString qServerPath=QString())
 change or update server host address post init More...
 
virtual QPoint coordinateToDisplay (const QPointF &) const
 translates a world coordinate to display coordinate More...
 
int currentZoom () const
 returns the current zoom More...
 
virtual QPointF displayToCoordinate (const QPoint &) const
 translates display coordinate to world coordinate More...
 
 EmptyMapAdapter (int tileSize=256, int minZoom=0, int maxZoom=17)
 Constructor. More...
 
QString host () const
 returns the host of this MapAdapter More...
 
int maxZoom () const
 returns the max zoom value More...
 
int minZoom () const
 returns the min zoom value More...
 
virtual QString serverPath () const
 returns the server path part of this MapAdapter More...
 
int tilesize () const
 returns the size of the tiles More...
 
+

Detailed Description

+

MapAdapter which do not load map tiles.

+

The EmptyMapAdapter can be used if QMapControl should not load any map tiles. This is useful if you only want to display an image through a FixedImageOverlay e.g.

Author
Kai Winter kaiwi.nosp@m.nter.nosp@m.@gmx..nosp@m.de
+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
EmptyMapAdapter (int tileSize = 256,
int minZoom = 0,
int maxZoom = 17 
)
+
+ +

Constructor.

+
Parameters
+ + + + +
tileSizeThis parameter seems unnecessary for this type of MapAdaper on first sight. But since this parameter defines the size of the offscreen image it could be used for a little performance tuning (larger offscreen-images have to be redrawed less times).
minZoomthe minimum zoom level
maxZoomthe maximum zoom level
+
+
+ +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void changeHostAddress (const QString qHost,
const QString qServerPath = QString() 
)
+
+virtualinherited
+
+ +

change or update server host address post init

+
Parameters
+ + + +
hostthe host address
serverPaththe server path
+
+
+ +

Reimplemented in WMSMapAdapter.

+ +

Referenced by WMSMapAdapter::changeHostAddress().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
QPoint coordinateToDisplay (const QPointF & coordinate) const
+
+virtual
+
+ +

translates a world coordinate to display coordinate

+

The calculations also needs the current zoom. The current zoom is managed by the MapAdapter, so this is no problem. To divide model from view the current zoom should be moved to the layers.

Parameters
+ + +
coordinatethe world coordinate
+
+
+
Returns
the display coordinate (in widget coordinates)
+ +

Implements MapAdapter.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
int currentZoom () const
+
+inherited
+
+ +

returns the current zoom

+
Returns
the current zoom
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
QPointF displayToCoordinate (const QPoint & point) const
+
+virtual
+
+ +

translates display coordinate to world coordinate

+

The calculations also needs the current zoom. The current zoom is managed by the MapAdapter, so this is no problem. To divide model from view the current zoom should be moved to the layers.

Parameters
+ + +
pointthe display coordinate
+
+
+
Returns
the world coordinate
+ +

Implements MapAdapter.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QString host () const
+
+inherited
+
+ +

returns the host of this MapAdapter

+
Returns
the host of this MapAdapter
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
int maxZoom () const
+
+inherited
+
+ +

returns the max zoom value

+
Returns
the max zoom value
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
int minZoom () const
+
+inherited
+
+ +

returns the min zoom value

+
Returns
the min zoom value
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QString serverPath () const
+
+virtualinherited
+
+ +

returns the server path part of this MapAdapter

+
Returns
the serverpath of this MapAdapter
+ +

Reimplemented in WMSMapAdapter.

+ +

Referenced by WMSMapAdapter::serverPath().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
int tilesize () const
+
+inherited
+
+ +

returns the size of the tiles

+
Returns
the size of the tiles
+ +

Referenced by WMSMapAdapter::changeHostAddress().

+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/libs/QMapControl/html/classqmapcontrol_1_1EmptyMapAdapter.png b/libs/QMapControl/html/classqmapcontrol_1_1EmptyMapAdapter.png new file mode 100644 index 0000000000000000000000000000000000000000..a4e98de8958022ae85c29f04a4d2b793391cba06 GIT binary patch literal 762 zcmeAS@N?(olHy`uVBq!ia0vp^B|zN4!3-oBMeNIglth3}i0l9V|AEXGZ@!lHADRGU zf$@O@2Ut7r$OE|?B|(0{3_wL7aP?G(5d#BLr>Bc!NCo5Dxo;;eQQ&dqpRRTP|HSRl z6ZjpEy`A|Wk9YGuvB@)%ol5>c+WUQT>+~f%qXImQF7M|lUBADoG{$RH-!TPG^}Ee! zKEHN){Y$ZSD5vIX{c@9|_TNZh8g;Jxpj zbtMMpCY4-zemQ&Z@{ezA(!OZyG2eSo%aghGdw0ol1J6}o?49hB*8NXaIqA2b>($=x zlUYA3G;6q7#k4DzKVW{tz8Rla_B+&H{GzAPFjq|EfDboU!ZKD?gUd}!Gcp|+&um%1 zkQNotp#KEf-S%vy%Ztxn|M=~YYUptWsl0x5&z}XBTNSUg-cRXX89zP!{XV|7Pd8OW zkFVHk7+UemcKVZ$l?F#sC5uD9>SpB3o_rUykEG>;Q5D#KE3fXgZCLd54@7$uex%1^o3fP@Aa19bEaI2_FJz~`o%nc$w%#q z=d7^-o|~>Uc}u0IE9DFECVPS2T8`l@24h`~ zhM8g_54bI#-^qE%@GJ}H<1acUeWDIabF9MlF3(xKj#pJ=!D6M@h;Q?CB<-8twS7OD z{W0$7^sM-_j0`Uh%}p`~Tg&5*%Prf$w(Gc?o7ExBWv8a?c{5`c%Sz9)^R}(vGqGFB zT(xS?@*UmZzAaESH`}o4K}N=L>0Pt`lrLO)jAd<2=3=X7GWX8-%11r3e}AX)deZ-5v#N6jxR{nM6z~5_&vJH29op$;6Rq>Tu;*a#$r(M4neZl%XYryO33#WJ2%W)+v i0r@OA;Q5@{YwWeH4Yo*KQ + + + + + +QMapControl: Member List + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + + +
+
+
+
FixedImageOverlay Member List
+
+
+ +

This is the complete list of members for FixedImageOverlay, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Alignment enum namePoint
BottomLeft enum valuePoint
BottomMiddle enum valuePoint
BottomRight enum valuePoint
boundingBox()Pointvirtual
coordinate() const Point
Equals(Geometry *geom)Geometry
FixedImageOverlay(qreal x_upperleft, qreal y_upperleft, qreal x_lowerright, qreal y_lowerright, QString filename, QString name=QString())FixedImageOverlay
FixedImageOverlay(qreal x_upperleft, qreal y_upperleft, qreal x_lowerright, qreal y_lowerright, QPixmap pixmap, QString name=QString())FixedImageOverlay
geometryClicked(Geometry *geometry, QPoint point)Geometrysignal
ImagePoint(qreal x, qreal y, QString filename, QString name=QString(), Alignment alignment=Middle)ImagePoint
ImagePoint(qreal x, qreal y, QPixmap pixmap, QString name=QString(), Alignment alignment=Middle)ImagePoint
isVisible() const Geometry
latitude() const Point
longitude() const Point
Middle enum valuePoint
name() const Geometry
parentGeometry() const Geometry
pen() const Geometry
pixmap()Point
Point(qreal x, qreal y, QString name=QString(), enum Alignment alignment=Middle)Point
Point(qreal x, qreal y, QWidget *widget, QString name=QString(), enum Alignment alignment=Middle)Point
Point(qreal x, qreal y, QPixmap pixmap, QString name=QString(), enum Alignment alignment=Middle)Point
positionChanged(Geometry *geom)Geometrysignal
setBaselevel(int zoomlevel)Point
setMaxsize(QSize maxsize)Point
setMinsize(QSize minsize)Point
setName(QString name)Geometry
TopLeft enum valuePoint
TopMiddle enum valuePoint
TopRight enum valuePoint
toString()Geometry
Touches(Point *click, const MapAdapter *mapadapter)Pointprotectedvirtual
widget()Point
+ + + + diff --git a/libs/QMapControl/html/classqmapcontrol_1_1FixedImageOverlay.html b/libs/QMapControl/html/classqmapcontrol_1_1FixedImageOverlay.html new file mode 100644 index 00000000..69715849 --- /dev/null +++ b/libs/QMapControl/html/classqmapcontrol_1_1FixedImageOverlay.html @@ -0,0 +1,950 @@ + + + + + + +QMapControl: FixedImageOverlay Class Reference + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + + +
+
+ +
+
FixedImageOverlay Class Reference
+
+
+ +

Draws a fixed image into the map. + More...

+ +

#include <fixedimageoverlay.h>

+
+Inheritance diagram for FixedImageOverlay:
+
+
+ + +ImagePoint +Point +Geometry +QObject + +
+ + + + + +

+Public Types

enum  Alignment {
+  TopLeft, +TopRight, +TopMiddle, +BottomLeft, +
+  BottomRight, +BottomMiddle, +Middle +
+ }
 sets where the point should be aligned More...
 
+ + + + + + + +

+Signals

void geometryClicked (Geometry *geometry, QPoint point)
 This signal is emitted when a Geometry is clicked. More...
 
void positionChanged (Geometry *geom)
 A Geometry emits this signal, when its position gets changed. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual QRectF boundingBox ()
 returns the bounding box of the point More...
 
QPointF coordinate () const
 returns the coordinate of the point More...
 
bool Equals (Geometry *geom)
 
 FixedImageOverlay (qreal x_upperleft, qreal y_upperleft, qreal x_lowerright, qreal y_lowerright, QString filename, QString name=QString())
 Creates an image overlay which loads and displays the given image file. More...
 
 FixedImageOverlay (qreal x_upperleft, qreal y_upperleft, qreal x_lowerright, qreal y_lowerright, QPixmap pixmap, QString name=QString())
 Creates an image overlay which displays the given image. More...
 
bool isVisible () const
 returns true if this Geometry is visible More...
 
qreal latitude () const
 returns the latitude of the point More...
 
qreal longitude () const
 returns the longitude of the point More...
 
QString name () const
 returns the name of this Geometry More...
 
GeometryparentGeometry () const
 returns the parent Geometry of this Geometry More...
 
QPen * pen () const
 returns the QPen which is used on drawing More...
 
QPixmap pixmap ()
 returns the pixmap of the point More...
 
void setBaselevel (int zoomlevel)
 Sets the zoom level on which the points pixmap gets displayed on full size. More...
 
void setMaxsize (QSize maxsize)
 sets a maximal size for the pixmap More...
 
void setMinsize (QSize minsize)
 sets a minimal size for the pixmap More...
 
void setName (QString name)
 sets the name of the geometry More...
 
QString toString ()
 returns a String representation of this Geometry More...
 
QWidgetwidget ()
 returns the widget of the point More...
 
+ + + + +

+Protected Member Functions

virtual bool Touches (Point *click, const MapAdapter *mapadapter)
 returns true if the given Point touches this Point More...
 
+

Detailed Description

+

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 kaiwi.nosp@m.nter.nosp@m.@gmx..nosp@m.de
+

Member Enumeration Documentation

+ +
+
+ + + + + +
+ + + + +
enum Alignment
+
+inherited
+
+ +

sets where the point should be aligned

+ + + + + + + + +
Enumerator
TopLeft  +

Align on TopLeft

+
TopRight  +

Align on TopRight

+
TopMiddle  +

Align on TopLeft

+
BottomLeft  +

Align on BottomLeft

+
BottomRight  +

Align on BottomRight

+
BottomMiddle  +

Align on BottomMiddle

+
Middle  +

Align on Middle

+
+ +
+
+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FixedImageOverlay (qreal x_upperleft,
qreal y_upperleft,
qreal x_lowerright,
qreal y_lowerright,
QString filename,
QString name = QString() 
)
+
+ +

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.

Parameters
+ + + + + + + +
x_upperleftthe coordinate of the upper left corner where the image should be aligned
y_upperleftthe coordinate of the upper left corner where the image should be aligned
x_lowerrightthe coordinate of the lower right corner where the image should be aligned
y_lowerrightthe coordinate of the lower right corner where the image should be aligned
filenamethe file which should be loaded and displayed
namethe name of the image point
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FixedImageOverlay (qreal x_upperleft,
qreal y_upperleft,
qreal x_lowerright,
qreal y_lowerright,
QPixmap pixmap,
QString name = QString() 
)
+
+ +

Creates an image overlay which displays the given image.

+

Use this contructor to display the given image.

Parameters
+ + + + + + + +
x_upperleftthe coordinate of the upper left corner where the image should be aligned
y_upperleftthe coordinate of the upper left corner where the image should be aligned
x_lowerrightthe coordinate of the lower right corner where the image should be aligned
y_lowerrightthe coordinate of the lower right corner where the image should be aligned
pixmappointer to the image pixmap
namethe name of the image point
+
+
+ +

References Point::pixmap().

+ +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + +
QRectF boundingBox ()
+
+virtualinherited
+
+ +

returns the bounding box of the point

+

The Bounding contains the coordinate of the point and its size. The size is set, if the point contains a pixmap or a widget

Returns
the bounding box of the point
+ +

Implements Geometry.

+ +

References Point::latitude(), and Point::longitude().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QPointF coordinate () const
+
+inherited
+
+ +

returns the coordinate of the point

+

The x component of the returned QPointF is the longitude value, the y component the latitude

Returns
the coordinate of a point
+ +

Referenced by MapControl::setView(), and Point::Touches().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
bool Equals (Geometrygeom)
+
+inherited
+
+

returns true if the given Geometry is equal to this Geometry not implemented yet!

Parameters
+ + +
geomThe Geometry to be tested
+
+
+
Returns
true if the given Geometry is equal to this
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void geometryClicked (Geometrygeometry,
QPoint point 
)
+
+signalinherited
+
+ +

This signal is emitted when a Geometry is clicked.

+

A Geometry is clickable, if the containing layer is clickable. The objects emits a signal if it gets clicked

Parameters
+ + + +
geometryThe clicked Geometry
point-unused-
+
+
+ +

Referenced by Point::Touches().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
bool isVisible () const
+
+inherited
+
+ +

returns true if this Geometry is visible

+
Returns
true if this Geometry is visible
+ +

Referenced by Point::Touches().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
qreal latitude () const
+
+inherited
+
+ +

returns the latitude of the point

+
Returns
the latitude of the point
+ +

Referenced by LineString::boundingBox(), and Point::boundingBox().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
qreal longitude () const
+
+inherited
+
+ +

returns the longitude of the point

+
Returns
the longitude of the point
+ +

Referenced by LineString::boundingBox(), and Point::boundingBox().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QString name () const
+
+inherited
+
+ +

returns the name of this Geometry

+
Returns
the name of this Geometry
+ +

Referenced by Geometry::setName().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
Geometry * parentGeometry () const
+
+inherited
+
+ +

returns the parent Geometry of this Geometry

+

A LineString is a composition of many Points. This methods returns the parent (the LineString) of a Point

Returns
the parent Geometry of this Geometry
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QPen * pen () const
+
+inherited
+
+ +

returns the QPen which is used on drawing

+

The pen is set depending on the Geometry. A CirclePoint for example takes one with the constructor.

Returns
the QPen which is used for drawing
+ +

Referenced by ArrowPoint::ArrowPoint(), CirclePoint::CirclePoint(), LineString::LineString(), ArrowPoint::setPen(), and CirclePoint::setPen().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QPixmap pixmap ()
+
+inherited
+
+ +

returns the pixmap of the point

+
Returns
the pixmap of the point
+ +

Referenced by FixedImageOverlay::FixedImageOverlay(), and ImagePoint::ImagePoint().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void positionChanged (Geometrygeom)
+
+signalinherited
+
+ +

A Geometry emits this signal, when its position gets changed.

+
Parameters
+ + +
geomthe Geometry
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void setBaselevel (int zoomlevel)
+
+inherited
+
+ +

Sets the zoom level on which the points 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

See also
setMinsize, setMaxsize
+
Parameters
+ + +
zoomlevelthe zoomlevel on which the point will be displayed on full size
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void setMaxsize (QSize maxsize)
+
+inherited
+
+ +

sets a maximal size for the pixmap

+

When the point´s pixmap should change its size on zooming, this method sets the maximal size.

See also
setBaselevel
+
Parameters
+ + +
maxsizethe maximal size which the pixmap should have
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void setMinsize (QSize minsize)
+
+inherited
+
+ +

sets a minimal size for the pixmap

+

When the point's pixmap should change its size on zooming, this method sets the minimal size.

See also
setBaselevel
+
Parameters
+ + +
minsizethe minimal size which the pixmap should have
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void setName (QString name)
+
+inherited
+
+ +

sets the name of the geometry

+
Parameters
+ + +
namethe new name of the geometry
+
+
+ +

References Geometry::name().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QString toString ()
+
+inherited
+
+ +

returns a String representation of this Geometry

+

not implemented yet!

Returns
a String representation of this Geometry
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool Touches (Pointclick,
const MapAdaptermapadapter 
)
+
+protectedvirtualinherited
+
+ +

returns true if the given Point touches this Point

+

The collision detection checks for the bounding rectangulars.

Parameters
+ + + +
geomthe other point which should be tested on collision
mapadapterthe mapadapter which is used for calculations
+
+
+
Returns
+ +

Implements Geometry.

+ +

References Point::coordinate(), MapAdapter::coordinateToDisplay(), Geometry::geometryClicked(), and Geometry::isVisible().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QWidget * widget ()
+
+inherited
+
+ +

returns the widget of the point

+
Returns
the widget of the point
+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/libs/QMapControl/html/classqmapcontrol_1_1FixedImageOverlay.png b/libs/QMapControl/html/classqmapcontrol_1_1FixedImageOverlay.png new file mode 100644 index 0000000000000000000000000000000000000000..3662b44292f8e98dc67b2111baeb142561166964 GIT binary patch literal 1063 zcmeAS@N?(olHy`uVBq!ia0vp^RY3fMgBeJQ{AXeXQW60^A+G=b{|7Q(y!l$%e`o@b z1;z&s9ANFdBM;2*^dnpNBGJzFeyzI(&8hf6~zecSmUyUf7D^VN^*uQosX@qChs_r9>X#pm=G z=A<)xIOuQ7lb2`zHRD^6^{V|Qhn;y7JXbLCaGEwKE@U%Mxx&!aB6VOw0JDTpR>Sub zNN(Q0-tV!Z=k7i46j#nWe&xGkeBU3=QrTjzeIhT*7GFEeY*1lxw*ApA-6iW=`qXPuT(Q&MrG_EX zAGlwtunbpysqp-2_x29oMf1Mx3cSA4<5HlXn`~Bf>FkHz+dMA?K62LbY-@>{#Pc(% z^ql2xhJtyF2iWbu8tmBl_sZg%r{AvlcZrAJv_Ta;02!Pi&bp`kd`_)`_ayd((^Q=Q zZL;#bB=@px&DZ*`Pgq~AjSF89{8LkK+M_t#t*(1Rj_=-nzf4!<7bj9?$Jr<@u-BbCP2G>T{Oq;tc1E8GbxiF2`oReSVcm z^-kHV@v|N-WZQre|1jqR6UTw-B~vExt1$2bJ#->Iz~6Jb)#To^1-7R@Gx)FB7H)cg zt^LY(IqAE7E0?#;Uds}AZ~t#g|Ao7auf8%U&V6Uf8@XFIcK(&GbJkBwn(0=*JaXE; zg&NnR=6~Du^6!Q1voFp{ir%|RMLN*`)vPkkTg6^0e)>(Hw{&CWzS#eHpY+A{aMz`3 z%l-QL%4}L0W7!q&BAa(#)5JnTB~y3S+}q*&YAR2@Sk1ZJvre9^-g{-Y=9#H~4*a`IE^c0Zd3!f{GrpSLdaqSL(1Y1m<{9 literal 0 HcmV?d00001 diff --git a/libs/QMapControl/html/classqmapcontrol_1_1Geometry-members.html b/libs/QMapControl/html/classqmapcontrol_1_1Geometry-members.html new file mode 100644 index 00000000..b71f45ab --- /dev/null +++ b/libs/QMapControl/html/classqmapcontrol_1_1Geometry-members.html @@ -0,0 +1,76 @@ + + + + + + +QMapControl: Member List + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + + +
+
+
+
Geometry Member List
+
+
+ +

This is the complete list of members for Geometry, including all inherited members.

+ + + + + + + + + + + + +
boundingBox()=0Geometrypure virtual
Equals(Geometry *geom)Geometry
geometryClicked(Geometry *geometry, QPoint point)Geometrysignal
isVisible() const Geometry
name() const Geometry
parentGeometry() const Geometry
pen() const Geometry
positionChanged(Geometry *geom)Geometrysignal
setName(QString name)Geometry
setVisible(bool visible)Geometryvirtualslot
toString()Geometry
+ + + + diff --git a/libs/QMapControl/html/classqmapcontrol_1_1Geometry.html b/libs/QMapControl/html/classqmapcontrol_1_1Geometry.html new file mode 100644 index 00000000..be1c7de1 --- /dev/null +++ b/libs/QMapControl/html/classqmapcontrol_1_1Geometry.html @@ -0,0 +1,427 @@ + + + + + + +QMapControl: Geometry Class Reference + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + + +
+
+ +
+
Geometry Class Referenceabstract
+
+
+ +

Main class for objects that should be painted in maps. + More...

+ +

#include <geometry.h>

+
+Inheritance diagram for Geometry:
+
+
+ + +QObject +Curve +Point +LineString +ArrowPoint +CirclePoint +ImagePoint +InvisiblePoint +FixedImageOverlay + +
+ + + + + +

+Public Slots

virtual void setVisible (bool visible)
 if visible is true, the layer is made visible More...
 
+ + + + + + + +

+Signals

void geometryClicked (Geometry *geometry, QPoint point)
 This signal is emitted when a Geometry is clicked. More...
 
void positionChanged (Geometry *geom)
 A Geometry emits this signal, when its position gets changed. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual QRectF boundingBox ()=0
 returns the BoundingBox More...
 
bool Equals (Geometry *geom)
 
bool isVisible () const
 returns true if this Geometry is visible More...
 
QString name () const
 returns the name of this Geometry More...
 
GeometryparentGeometry () const
 returns the parent Geometry of this Geometry More...
 
QPen * pen () const
 returns the QPen which is used on drawing More...
 
void setName (QString name)
 sets the name of the geometry More...
 
QString toString ()
 returns a String representation of this Geometry More...
 
+

Detailed Description

+

Main class for objects that should be painted in maps.

+

Geometry is the root class of the hierarchy. Geometry is an abstract (non-instantiable) class.

+

This class and the derived classes Point, Curve and LineString are leant on the Simple Feature Specification of the Open Geospatial Consortium.

See also
www.opengeospatial.com
+
Author
Kai Winter kaiwi.nosp@m.nter.nosp@m.@gmx..nosp@m.de
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + +
virtual QRectF boundingBox ()
+
+pure virtual
+
+ +

returns the BoundingBox

+

The bounding box in world coordinates

Returns
the BoundingBox
+ +

Implemented in Point, and LineString.

+ +

Referenced by Layer::addGeometry(), MapControl::isGeometryVisible(), Layer::removeGeometry(), and Geometry::setVisible().

+ +
+
+ +
+
+ + + + + + + + +
bool Equals (Geometrygeom)
+
+

returns true if the given Geometry is equal to this Geometry not implemented yet!

Parameters
+ + +
geomThe Geometry to be tested
+
+
+
Returns
true if the given Geometry is equal to this
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void geometryClicked (Geometrygeometry,
QPoint point 
)
+
+signal
+
+ +

This signal is emitted when a Geometry is clicked.

+

A Geometry is clickable, if the containing layer is clickable. The objects emits a signal if it gets clicked

Parameters
+ + + +
geometryThe clicked Geometry
point-unused-
+
+
+ +

Referenced by Point::Touches().

+ +
+
+ +
+
+ + + + + + + +
bool isVisible () const
+
+ +

returns true if this Geometry is visible

+
Returns
true if this Geometry is visible
+ +

Referenced by Point::Touches().

+ +
+
+ +
+
+ + + + + + + +
QString name () const
+
+ +

returns the name of this Geometry

+
Returns
the name of this Geometry
+ +

Referenced by Geometry::setName().

+ +
+
+ +
+
+ + + + + + + +
Geometry * parentGeometry () const
+
+ +

returns the parent Geometry of this Geometry

+

A LineString is a composition of many Points. This methods returns the parent (the LineString) of a Point

Returns
the parent Geometry of this Geometry
+ +
+
+ +
+
+ + + + + + + +
QPen * pen () const
+
+ +

returns the QPen which is used on drawing

+

The pen is set depending on the Geometry. A CirclePoint for example takes one with the constructor.

Returns
the QPen which is used for drawing
+ +

Referenced by ArrowPoint::ArrowPoint(), CirclePoint::CirclePoint(), LineString::LineString(), ArrowPoint::setPen(), and CirclePoint::setPen().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void positionChanged (Geometrygeom)
+
+signal
+
+ +

A Geometry emits this signal, when its position gets changed.

+
Parameters
+ + +
geomthe Geometry
+
+
+ +
+
+ +
+
+ + + + + + + + +
void setName (QString name)
+
+ +

sets the name of the geometry

+
Parameters
+ + +
namethe new name of the geometry
+
+
+ +

References Geometry::name().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void setVisible (bool visible)
+
+virtualslot
+
+ +

if visible is true, the layer is made visible

+
Parameters
+ + +
visibleif the layer should be visible
+
+
+ +

References Geometry::boundingBox().

+ +
+
+ +
+
+ + + + + + + +
QString toString ()
+
+ +

returns a String representation of this Geometry

+

not implemented yet!

Returns
a String representation of this Geometry
+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/libs/QMapControl/html/classqmapcontrol_1_1Geometry.png b/libs/QMapControl/html/classqmapcontrol_1_1Geometry.png new file mode 100644 index 0000000000000000000000000000000000000000..19cdd2ae026b95335f0bfacffbfba6d40e6686a5 GIT binary patch literal 2667 zcmb_edsI^C7RMf<-q5L`GEKS}Wz5Z2BWj8`T9%X|S6XE^5w)yLjUGNw5z0ptc4G#; znV1iz#AZsgET4!bk(VsBYl&}{_|8}8prWAnqczLa2A*zr(lpclK}ZZ$EAl z@P}XqCI%1)1cviG;0uAQVgWp_w;KHV_d1Zk!Tbcp?M{X|E5jkM4y)^cQdk+>TOpCb~P1$qyT+yc>OOEL`3}8N7P~>K>d? z72oc4?J7Y{BUPmIQn>ukb-N!DS-8FK#N_iV!ly7hkKM+PQSL7Sz1JJ)#@k6UWVwTd z4c*AphVE;~3K^Vttbm$2wJ=sPz%_?Ip7vvvnO&rhl{+J{=cHwi#wIh7$Dl+S@EK|&i=-HQM7s1OYL_&IYyQ3iZf)7f z$abh3)L+o zdmdfNpAWz3z5aX?$rhLM4$cDxs!g;s!dL_wKVov?3w|i~)z!qr2txwF1`qytV#qAj zTe}}<8;?DI3E&Pb6m0*U{)!&hXo;@w(>pd6T=)WRL2nOaCU`W+KHu6+2}~+@svbHC-+?A zPb5LWqpBflMP+wN5eUKuRL-2xgH_Tn{woNtlhL6oPEhMq40#i?s32k-fvjb(#_VN}%wa(MCn|Dy))veu9b~`xLoc>4u%<5(uux4ggCw z((`WA2Ruc&Yfi5>5&_#5)_Q<%0(aFM)H;5}ff?Yk&C3hSS`CNaY5^{NEaq9dzaW4x zy^6DZ0-z^=*TZi79 zmsIfHGy6=3CWbonm(x%P<}+fdx1uD-UV>D0L>;6!;Cq&`DMek@S@I}Oy|g;cY^ZbU zxkV12x>c^69VBot4^TObZe1$kY>ZX~S`|#BVI^g`63E&6UYtW{Nhf1`=ERxqoB1d! zW;;CQh%K)59LsxsNyD!?IW5is7c`{Xvum=EMq#YGO-#4Ee zGWnq*FdwxRtIOvo%KotV z=(;AWJ|4QO`jxVF?B7+Mt=5AI;O{=Fx|D@H5#ph1-CHdUvBW(sCbM#dlBzAsBPJpr zg>)w-L!PntVIlu<$3}9hW3`wT@7NO?7NSUou1YYMG-UbrD&-3=ijFv2hA3RW$MwXT zCykl*@NKf{eTw=p*T$;+4^~I$v-#8|dQnjVZL#W5j{oaQxX%tWs#)_MW{?XG+BF1ux{Wxg0PUg@pO8yV3(Z_Qx3R{&9(&NNt*BrUBrU#13S%Tp& zscyNZ$u%z>_VlUXQ@z8Z`QeUkj7)h{rx%Ak@uPgvif)s{#!l8#lm*0ll-rEm5|z!S z)V8PThkS*T;(Lt-M@7R8~B#=Pl+_QWY_%yHQF@EAYwsrz`2wdOf0 z0H2GSuHcu~n;=ZIa#J9cL?7T)+VhFbB(EGE?1b6_71In zh5q5ia*K|E!K+Zv09*T-H}L|sCHYkKoi+d;04PQu_}b0vk8b z?;|K?Y@w@L?tWpHvx|b(zhOW%MX?x>Tmb4?N=gA~r}PwXm~bYNm1=2)LtI`=1--sr zKy}$}Ax%2N0P{?=lbeOKglm2jbX4+vu=nQ~O*?_KfqH6e)4|w-A4ic}Q) + + + + + +QMapControl: Member List + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + + +
+
+
+
GeometryLayer Member List
+
+
+ +

This is the complete list of members for GeometryLayer, including all inherited members.

+ + + + + + + + + + + + + + + + + + + +
addGeometry(Geometry *geometry)Layer
clearGeometries(bool qDeleteObject=false)Layer
containsGeometry(Geometry *geometry)Layer
geometryClicked(Geometry *geometry, QPoint point)Layersignal
GeometryLayer(QString layername, MapAdapter *mapadapter, bool takeevents=true)GeometryLayer
qmapcontrol::Layer::GeometryLayer enum valueLayer
getGeometries()Layer
isVisible() const Layer
Layer(QString layername, MapAdapter *mapadapter, enum LayerType layertype, bool takeevents=true)Layer
layername() const Layer
layertype() const Layer
LayerType enum nameLayer
mapadapter()Layer
MapLayer enum valueLayer
removeGeometry(Geometry *geometry, bool qDeleteObject=false)Layer
sendGeometryToBack(Geometry *geometry)Layer
sendGeometryToFront(Geometry *geometry)Layer
setVisible(bool visible)Layerslot
+ + + + diff --git a/libs/QMapControl/html/classqmapcontrol_1_1GeometryLayer.html b/libs/QMapControl/html/classqmapcontrol_1_1GeometryLayer.html new file mode 100644 index 00000000..f94b3e9d --- /dev/null +++ b/libs/QMapControl/html/classqmapcontrol_1_1GeometryLayer.html @@ -0,0 +1,627 @@ + + + + + + +QMapControl: GeometryLayer Class Reference + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + + +
+
+ +
+
GeometryLayer Class Reference
+
+
+ +

GeometryLayer class. + More...

+ +

#include <geometrylayer.h>

+
+Inheritance diagram for GeometryLayer:
+
+
+ + +Layer +QObject + +
+ + + + + +

+Public Types

enum  LayerType { MapLayer, +GeometryLayer + }
 sets the type of a layer, see Layer class doc for further information More...
 
+ + + + +

+Public Slots

void setVisible (bool visible)
 if visible is true, the layer is made visible More...
 
+ + + + +

+Signals

void geometryClicked (Geometry *geometry, QPoint point)
 This signal is emitted when a Geometry is clicked. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

void addGeometry (Geometry *geometry)
 adds a Geometry object to this Layer More...
 
void clearGeometries (bool qDeleteObject=false)
 removes all Geometry objects from this Layer More...
 
bool containsGeometry (Geometry *geometry)
 returns true if Layer contains geometry More...
 
 GeometryLayer (QString layername, MapAdapter *mapadapter, bool takeevents=true)
 GeometryLayer constructor. More...
 
QList< Geometry * > & getGeometries ()
 returns all Geometry objects from this Layer More...
 
bool isVisible () const
 return true if the layer is visible More...
 
QString layername () const
 returns the layer's name More...
 
Layer::LayerType layertype () const
 returns the LayerType of the Layer More...
 
MapAdaptermapadapter ()
 returns the layer´s MapAdapter More...
 
void removeGeometry (Geometry *geometry, bool qDeleteObject=false)
 removes the Geometry object from this Layer More...
 
void sendGeometryToBack (Geometry *geometry)
 allow moving a geometry to the top of the list (drawing last) More...
 
void sendGeometryToFront (Geometry *geometry)
 allow moving a geometry to the top of the list (drawing last) More...
 
+

Detailed Description

+

GeometryLayer class.

+

There are two different layer types:

+

MapLayers also can display Geometry objects. The difference to the GeometryLayer is the repainting. Objects that are added to a MapLayer are "baken" on the map. This means, when you change it´s position for example the changes are not visible until a new offscreen image has been drawn. If you have "static" Geometries which won´t change their position this is fine. But if you want to change the objects position or pen you should use a GeometryLayer. Those are repainted immediately on changes.

 @author Kai Winter <kaiwinter@gmx.de>

Member Enumeration Documentation

+ +
+
+ + + + + +
+ + + + +
enum LayerType
+
+inherited
+
+ +

sets the type of a layer, see Layer class doc for further information

+ + + +
Enumerator
MapLayer  +

uses the MapAdapter to display maps, only gets refreshed when a new offscreen image is needed

+
GeometryLayer  +

gets refreshed everytime when a geometry changes

+
+ +
+
+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
GeometryLayer (QString layername,
MapAdaptermapadapter,
bool takeevents = true 
)
+
+ +

GeometryLayer constructor.

+

This is used to construct a map layer.

+
Parameters
+ + + + +
layernameThe name of the Layer
mapadapterThe MapAdapter which does coordinate translation and Query-String-Forming
takeeventsShould the Layer receive MouseEvents? This is set to true by default. Setting it to false could be something like a "speed up hint"
+
+
+ +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + +
void addGeometry (Geometrygeometry)
+
+inherited
+
+ +

adds a Geometry object to this Layer

+

Please notice the different LayerTypes (MapLayer and GeometryLayer) and the differences

Parameters
+ + +
geometrythe new Geometry
+
+
+ +

References Geometry::boundingBox(), and Layer::containsGeometry().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void clearGeometries (bool qDeleteObject = false)
+
+inherited
+
+ +

removes all Geometry objects from this Layer

+

This method removes all Geometry objects from this Layer. NOTE: this method does not delete the object unless qDeleteObject is set

Parameters
+ + +
qDeleteObjectcleans up memory of object after removal
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
bool containsGeometry (Geometrygeometry)
+
+inherited
+
+ +

returns true if Layer contains geometry

+

This method returns if a Geometry objects is on this Layer.

+ +

Referenced by Layer::addGeometry().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void geometryClicked (Geometrygeometry,
QPoint point 
)
+
+signalinherited
+
+ +

This signal is emitted when a Geometry is clicked.

+

A Geometry is clickable, if the containing layer is clickable. The layer emits a signal for every clicked geometry

Parameters
+ + + +
geometryThe clicked Geometry
pointThe coordinate (in widget coordinates) of the click
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QList< Geometry * > & getGeometries ()
+
+inherited
+
+ +

returns all Geometry objects from this Layer

+

This method removes all Geometry objects from this Layer.

Returns
a list of geometries that are on this Layer
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
bool isVisible () const
+
+inherited
+
+ +

return true if the layer is visible

+
Returns
if the layer is visible
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QString layername () const
+
+inherited
+
+ +

returns the layer's name

+
Returns
the name of this layer
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
Layer::LayerType layertype () const
+
+inherited
+
+ +

returns the LayerType of the Layer

+

There are two LayerTypes: MapLayer and GeometryLayer

Returns
the LayerType of this Layer
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
MapAdapter * mapadapter ()
+
+inherited
+
+ +

returns the layer´s MapAdapter

+

This method returns the MapAdapter of this Layer, which can be useful to do coordinate transformations.

Returns
the MapAdapter which us used by this Layer
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void removeGeometry (Geometrygeometry,
bool qDeleteObject = false 
)
+
+inherited
+
+ +

removes the Geometry object from this Layer

+

This method removes a Geometry object from this Layer. NOTE: this method does not delete the object unless qDeleteObject is set

Parameters
+ + +
qDeleteObjectcleans up memory of object after removal
+
+
+ +

References Geometry::boundingBox().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void sendGeometryToBack (Geometrygeometry)
+
+inherited
+
+ +

allow moving a geometry to the top of the list (drawing last)

+

This method re-order the Geometry objects so the desired geometry is drawn first and under all other geometries

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void sendGeometryToFront (Geometrygeometry)
+
+inherited
+
+ +

allow moving a geometry to the top of the list (drawing last)

+

This method re-order the Geometry objects so the desired geometry is drawn last and visible above all geometries

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void setVisible (bool visible)
+
+slotinherited
+
+ +

if visible is true, the layer is made visible

+
Parameters
+ + +
visibleif the layer should be visible
+
+
+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/libs/QMapControl/html/classqmapcontrol_1_1GeometryLayer.png b/libs/QMapControl/html/classqmapcontrol_1_1GeometryLayer.png new file mode 100644 index 0000000000000000000000000000000000000000..96754fa1e786df6fad511ab863f88b477f34a8a7 GIT binary patch literal 647 zcmeAS@N?(olHy`uVBq!ia0vp^$w1t}!3-piq%D00q$C1-LR|m<{|{uoc=NTi|Ih>= z3ycpOIKbL@M;^%KC<*clW&kPzfvcxNj2IZ0#5`RbLn;{G&V9J9S%JrmU%vDG{}b0W zn|z*k@oj!n_R+`j;f1I_zCDIzZ5p1jh3zUge=xaA)PKEtX-bIfY`)ct&&>KCceeCe z;I%#bW<8qeG11n~GS0JV(OtvsLGiVdmdN@Y+4y+JjMYZ>j~Pxs$S%__{=urR*=cuB zxO|;_X1LDP%`IEQ!;9CerDYCZ zh%ahR4k?*_=i!f;yNcKw1j`w26tFk&qENl{Z#oQ*ofA-9sr_z(iuC^SAK_T#6wLQ*oBpMIIFQh7PySj<}sm6tP)#hjhIJml#W&r6JNcY5V3bgRCc;oawd zY~zyDKl+!S?V7a2`P`e&*ZvkAy0}O6w(Q&8_x8V?l=8S;#_-q;@dh)thI4lwNVNT% zBrUUe(e5XF$IoAxYR%BIgZV(4HA4<6^(Wb#L$Rcd;esg8%{y)yhB6!w^!J}379n%_ z=UbqqpGvsW?R>v`SO4=~Jk5G_yKrV(N%iZ9-g#2a^ zZ+w5_{M9*qQB(U?RojNHoGz2@d6)Zm@sHFGRkc5-uBl#qZf&yuWyWjnTYs4M-L-hO zedD?=)q9f~uWEU1T>5US@%5`$Yxh~dbA9gF9$R?p;(`zP)(sQoi&_Mn;{P!$^VSkg Uz2i6^m}(e2UHx3vIVCg!0Ft&hLjV8( literal 0 HcmV?d00001 diff --git a/libs/QMapControl/html/classqmapcontrol_1_1GoogleMapAdapter-members.html b/libs/QMapControl/html/classqmapcontrol_1_1GoogleMapAdapter-members.html new file mode 100644 index 00000000..db73a287 --- /dev/null +++ b/libs/QMapControl/html/classqmapcontrol_1_1GoogleMapAdapter-members.html @@ -0,0 +1,76 @@ + + + + + + +QMapControl: Member List + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + + +
+
+
+
GoogleMapAdapter Member List
+
+
+ +

This is the complete list of members for GoogleMapAdapter, including all inherited members.

+ + + + + + + + + + + + +
changeHostAddress(const QString qHost, const QString qServerPath=QString())MapAdaptervirtual
coordinateToDisplay(const QPointF &) const TileMapAdaptervirtual
currentZoom() const MapAdapter
displayToCoordinate(const QPoint &) const TileMapAdaptervirtual
GoogleMapAdapter(googleLayerType qLayerType=maps)GoogleMapAdapter
host() const MapAdapter
maxZoom() const MapAdapter
minZoom() const MapAdapter
serverPath() const MapAdaptervirtual
TileMapAdapter(const QString &host, const QString &serverPath, int tilesize, int minZoom=0, int maxZoom=17)TileMapAdapter
tilesize() const MapAdapter
+ + + + diff --git a/libs/QMapControl/html/classqmapcontrol_1_1GoogleMapAdapter.html b/libs/QMapControl/html/classqmapcontrol_1_1GoogleMapAdapter.html new file mode 100644 index 00000000..f0f05361 --- /dev/null +++ b/libs/QMapControl/html/classqmapcontrol_1_1GoogleMapAdapter.html @@ -0,0 +1,422 @@ + + + + + + +QMapControl: GoogleMapAdapter Class Reference + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + + +
+
+ +
+
GoogleMapAdapter Class Reference
+
+
+ +

MapAdapter for Google. + More...

+ +

#include <googlemapadapter.h>

+
+Inheritance diagram for GoogleMapAdapter:
+
+
+ + +TileMapAdapter +MapAdapter +QObject + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual void changeHostAddress (const QString qHost, const QString qServerPath=QString())
 change or update server host address post init More...
 
virtual QPoint coordinateToDisplay (const QPointF &) const
 translates a world coordinate to display coordinate More...
 
int currentZoom () const
 returns the current zoom More...
 
virtual QPointF displayToCoordinate (const QPoint &) const
 translates display coordinate to world coordinate More...
 
 GoogleMapAdapter (googleLayerType qLayerType=maps)
 constructor More...
 
QString host () const
 returns the host of this MapAdapter More...
 
int maxZoom () const
 returns the max zoom value More...
 
int minZoom () const
 returns the min zoom value More...
 
virtual QString serverPath () const
 returns the server path part of this MapAdapter More...
 
int tilesize () const
 returns the size of the tiles More...
 
+

Detailed Description

+

MapAdapter for Google.

+

This is a conveniece class, which extends and configures a TileMapAdapter

Author
Kai Winter kaiwi.nosp@m.nter.nosp@m.@gmx..nosp@m.de
+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + + +
GoogleMapAdapter (googleLayerType qLayerType = maps)
+
+ +

constructor

+

This construct a Google Adapter

+ +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void changeHostAddress (const QString qHost,
const QString qServerPath = QString() 
)
+
+virtualinherited
+
+ +

change or update server host address post init

+
Parameters
+ + + +
hostthe host address
serverPaththe server path
+
+
+ +

Reimplemented in WMSMapAdapter.

+ +

Referenced by WMSMapAdapter::changeHostAddress().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
QPoint coordinateToDisplay (const QPointF & coordinate) const
+
+virtualinherited
+
+ +

translates a world coordinate to display coordinate

+

The calculations also needs the current zoom. The current zoom is managed by the MapAdapter, so this is no problem. To divide model from view the current zoom should be moved to the layers.

Parameters
+ + +
coordinatethe world coordinate
+
+
+
Returns
the display coordinate (in widget coordinates)
+ +

Implements MapAdapter.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
int currentZoom () const
+
+inherited
+
+ +

returns the current zoom

+
Returns
the current zoom
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
QPointF displayToCoordinate (const QPoint & point) const
+
+virtualinherited
+
+ +

translates display coordinate to world coordinate

+

The calculations also needs the current zoom. The current zoom is managed by the MapAdapter, so this is no problem. To divide model from view the current zoom should be moved to the layers.

Parameters
+ + +
pointthe display coordinate
+
+
+
Returns
the world coordinate
+ +

Implements MapAdapter.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QString host () const
+
+inherited
+
+ +

returns the host of this MapAdapter

+
Returns
the host of this MapAdapter
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
int maxZoom () const
+
+inherited
+
+ +

returns the max zoom value

+
Returns
the max zoom value
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
int minZoom () const
+
+inherited
+
+ +

returns the min zoom value

+
Returns
the min zoom value
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QString serverPath () const
+
+virtualinherited
+
+ +

returns the server path part of this MapAdapter

+
Returns
the serverpath of this MapAdapter
+ +

Reimplemented in WMSMapAdapter.

+ +

Referenced by WMSMapAdapter::serverPath().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
int tilesize () const
+
+inherited
+
+ +

returns the size of the tiles

+
Returns
the size of the tiles
+ +

Referenced by WMSMapAdapter::changeHostAddress().

+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/libs/QMapControl/html/classqmapcontrol_1_1GoogleMapAdapter.png b/libs/QMapControl/html/classqmapcontrol_1_1GoogleMapAdapter.png new file mode 100644 index 0000000000000000000000000000000000000000..deb3ebed66e7d94d1a023bf6974bca5330b60680 GIT binary patch literal 995 zcmeAS@N?(olHy`uVBq!ia0vp^RX}`zgBeKvxz>IZNJ#|vgt-3y{~ySF@#br3|Dg#$ z78oBmaDcV*jy#adQ4-`A%m7pb0#{Fk7%?y~7kRokhEy=Vo%?p$Y6Tuw^Y*PZ|K0bk zUBGg*zigR7xv8xGLe8|w0(18tk$5a2sG8X#qw6XAHGaY2$HC{P&7ZU?JAJ~Ey?Kkd zbN*U6{W02=l968gZF7mw8FT4!jcC}e0_C@BQt6%%m&9@!frf z#}t_=;)M@L^g8=rHuz@orP-#-R^aba*>@QY^NLIy+%2URESBND5ZK4|Lc^W8WXfVj zt5X*l)@vSoUvP zZ@*VLkEg61X!oKAmI1AyYN0ZR7EU@=pTaG``S(Tj0+8 z1?m;qrx^`>s6MUmH9ThF=He-(=z0o7w5XF zwDxMfPn)Y!9J}cGwCI;RmxP*mcS_$AdLX;SGbNb)asI5;4Ec**Z+h!@S*4=v8Zf-_ z+OMn5^-g#N_2tT4_v&WPwc8{f2Xt7uWz;0AEFG(3673uhYJC}!P55km58rrvf&Y`n zH-|6N%XTbgtOCXr77v1=a?dgWCkbVy100|j{>N68XVuWwl{|Cnw0GgM(mGXg{WsJy zW^F6Wyv(rbbTC%!R33~Ui|WFKDV89!O~`iXDzGOoWHP=SG?+8*3`2>kJ`4gRIuj?-Mn(} z$9m>B7hfC3%=?_xL^SEo%iF woaZ~~hca1QIDUa){zPDE1cpG1K-&xX<)^)^-H$hW19K#Ur>mdKI;Vst0Fh|ZMF0Q* literal 0 HcmV?d00001 diff --git a/libs/QMapControl/html/classqmapcontrol_1_1GoogleSatMapAdapter-members.html b/libs/QMapControl/html/classqmapcontrol_1_1GoogleSatMapAdapter-members.html new file mode 100644 index 00000000..ec879fc7 --- /dev/null +++ b/libs/QMapControl/html/classqmapcontrol_1_1GoogleSatMapAdapter-members.html @@ -0,0 +1,43 @@ + + +QMapControl: Member List + + + + + +
+

GoogleSatMapAdapter Member List

This is the complete list of members for GoogleSatMapAdapter, including all inherited members.

+ + + + + + + + + + +
coordinateToDisplay(const QPointF &) const GoogleSatMapAdapter [virtual]
currentZoom() const MapAdapter
displayToCoordinate(const QPoint &) const GoogleSatMapAdapter [virtual]
getHost() const GoogleSatMapAdapter
GoogleSatMapAdapter()GoogleSatMapAdapter
host() const MapAdapter
maxZoom() const MapAdapter
minZoom() const MapAdapter
TileMapAdapter(const QString &host, const QString &serverPath, int tilesize, int minZoom=0, int maxZoom=17)TileMapAdapter
tilesize() const MapAdapter

+
Generated on Wed Jul 29 12:38:10 2009 for QMapControl by  + +doxygen 1.5.9
+ + diff --git a/libs/QMapControl/html/classqmapcontrol_1_1GoogleSatMapAdapter.html b/libs/QMapControl/html/classqmapcontrol_1_1GoogleSatMapAdapter.html new file mode 100644 index 00000000..32682b59 --- /dev/null +++ b/libs/QMapControl/html/classqmapcontrol_1_1GoogleSatMapAdapter.html @@ -0,0 +1,303 @@ + + +QMapControl: GoogleSatMapAdapter Class Reference + + + + + +
+

GoogleSatMapAdapter Class Reference

MapAdapter for Google. +More... +

+#include <googlesatmapadapter.h> +

+

+Inheritance diagram for GoogleSatMapAdapter:
+
+ +

+ +TileMapAdapter +MapAdapter + +
+ +

+List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

virtual QPoint coordinateToDisplay (const QPointF &) const
 translates a world coordinate to display coordinate
int currentZoom () const
 returns the current zoom
virtual QPointF displayToCoordinate (const QPoint &) const
 translates display coordinate to world coordinate
QString getHost () const
 returns the host of this MapAdapter
 GoogleSatMapAdapter ()
 constructor
QString host () const
 returns the host of this MapAdapter
int maxZoom () const
 returns the max zoom value
int minZoom () const
 returns the min zoom value
int tilesize () const
 returns the size of the tiles
+


Detailed Description

+MapAdapter for Google. +

+This is a conveniece class, which extends and configures a TileMapAdapter

Author:
Kai Winter <kaiwinter@gmx.de>
+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + + +
GoogleSatMapAdapter (  ) 
+
+
+ +

+constructor +

+This construct a Google Adapter +

+

+


Member Function Documentation

+ +
+
+ + + + + + + + + +
QPoint coordinateToDisplay (const QPointF &  coordinate  )  const [virtual]
+
+
+ +

+translates a world coordinate to display coordinate +

+The calculations also needs the current zoom. The current zoom is managed by the MapAdapter, so this is no problem. To divide model from view the current zoom should be moved to the layers.

Parameters:
+ + +
coordinate the world coordinate
+
+
Returns:
the display coordinate (in widget coordinates)
+ +

Reimplemented from TileMapAdapter.

+ +
+

+ +

+
+ + + + + + + + +
int currentZoom (  )  const [inherited]
+
+
+ +

+returns the current zoom +

+

Returns:
the current zoom
+ +
+

+ +

+
+ + + + + + + + + +
QPointF displayToCoordinate (const QPoint &  point  )  const [virtual]
+
+
+ +

+translates display coordinate to world coordinate +

+The calculations also needs the current zoom. The current zoom is managed by the MapAdapter, so this is no problem. To divide model from view the current zoom should be moved to the layers.

Parameters:
+ + +
point the display coordinate
+
+
Returns:
the world coordinate
+ +

Reimplemented from TileMapAdapter.

+ +
+

+ +

+
+ + + + + + + + +
QString getHost (  )  const
+
+
+ +

+returns the host of this MapAdapter +

+

Returns:
the host of this MapAdapter
+ +
+

+ +

+
+ + + + + + + + +
QString host (  )  const [inherited]
+
+
+ +

+returns the host of this MapAdapter +

+

Returns:
the host of this MapAdapter
+ +
+

+ +

+
+ + + + + + + + +
int maxZoom (  )  const [inherited]
+
+
+ +

+returns the max zoom value +

+

Returns:
the max zoom value
+ +
+

+ +

+
+ + + + + + + + +
int minZoom (  )  const [inherited]
+
+
+ +

+returns the min zoom value +

+

Returns:
the min zoom value
+ +
+

+ +

+
+ + + + + + + + +
int tilesize (  )  const [inherited]
+
+
+ +

+returns the size of the tiles +

+

Returns:
the size of the tiles
+ +
+

+


The documentation for this class was generated from the following files: +
+
Generated on Wed Jul 29 12:38:10 2009 for QMapControl by  + +doxygen 1.5.9
+ + diff --git a/libs/QMapControl/html/classqmapcontrol_1_1GoogleSatMapAdapter.png b/libs/QMapControl/html/classqmapcontrol_1_1GoogleSatMapAdapter.png new file mode 100644 index 0000000000000000000000000000000000000000..9858a06f43648d1f3357b6d87241d87bc13d3181 GIT binary patch literal 723 zcmV;^0xbQBP)vr)Yr>A0$mZTB$cpSqNFr5yV3i+sUdKTu-^_4K!>&FXW zUMo|EF^pjhV;IBy9Oi!)8U9^5$X~-WVch&%w5<9D41#;cc>g^N+{HmL-X#^z2b*&> znBe7{4rkHv$ObOHJfa!GHJq=@ZctQG53}YC>7{)M$d3#K! z*QD2a_xtr255O;#cYQIwk0$qSE5^TKV!7%Xi}AadSf4f(<7G^BF@7H-MR!v%eh^J- zF@8L$regdsQ*Fig<6T@;{=OTgN(@uNbUI)<9d}Q|SRG!FJ`}?k#xRC4jA7m$)9JH8 z?h!8;<^hJl8=J`d(I!*2wdfifRsv|sQIK@o@X!~bXl6BHvB z`6n3AtcF&4&>F)MKgsA~V~Id@5=YhtdLgN5;fx_<%rIl(OfqH|GK7Y#a?(;Xw7~$n zVzSADDNa+n01Cp40SXwkr2&~&Pgh>Fq%ma*`?aBM+-WhQb+KfxV7L#44nJIO!kiPslrVh`m`}bRwxPsmK2`t#002ovPDHLk FV1nr + + + + + +QMapControl: Member List + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + + +
+
+
+
ImagePoint Member List
+
+
+ +

This is the complete list of members for ImagePoint, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Alignment enum namePoint
BottomLeft enum valuePoint
BottomMiddle enum valuePoint
BottomRight enum valuePoint
boundingBox()Pointvirtual
coordinate() const Point
Equals(Geometry *geom)Geometry
geometryClicked(Geometry *geometry, QPoint point)Geometrysignal
ImagePoint(qreal x, qreal y, QString filename, QString name=QString(), Alignment alignment=Middle)ImagePoint
ImagePoint(qreal x, qreal y, QPixmap pixmap, QString name=QString(), Alignment alignment=Middle)ImagePoint
isVisible() const Geometry
latitude() const Point
longitude() const Point
Middle enum valuePoint
name() const Geometry
parentGeometry() const Geometry
pen() const Geometry
pixmap()Point
Point(qreal x, qreal y, QString name=QString(), enum Alignment alignment=Middle)Point
Point(qreal x, qreal y, QWidget *widget, QString name=QString(), enum Alignment alignment=Middle)Point
Point(qreal x, qreal y, QPixmap pixmap, QString name=QString(), enum Alignment alignment=Middle)Point
positionChanged(Geometry *geom)Geometrysignal
setBaselevel(int zoomlevel)Point
setMaxsize(QSize maxsize)Point
setMinsize(QSize minsize)Point
setName(QString name)Geometry
TopLeft enum valuePoint
TopMiddle enum valuePoint
TopRight enum valuePoint
toString()Geometry
Touches(Point *click, const MapAdapter *mapadapter)Pointprotectedvirtual
widget()Point
+ + + + diff --git a/libs/QMapControl/html/classqmapcontrol_1_1ImagePoint.html b/libs/QMapControl/html/classqmapcontrol_1_1ImagePoint.html new file mode 100644 index 00000000..5c3f7c47 --- /dev/null +++ b/libs/QMapControl/html/classqmapcontrol_1_1ImagePoint.html @@ -0,0 +1,936 @@ + + + + + + +QMapControl: ImagePoint Class Reference + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + + +
+ +
+ +

Draws an image into the map. + More...

+ +

#include <imagepoint.h>

+
+Inheritance diagram for ImagePoint:
+
+
+ + +Point +Geometry +QObject +FixedImageOverlay + +
+ + + + + +

+Public Types

enum  Alignment {
+  TopLeft, +TopRight, +TopMiddle, +BottomLeft, +
+  BottomRight, +BottomMiddle, +Middle +
+ }
 sets where the point should be aligned More...
 
+ + + + + + + +

+Signals

void geometryClicked (Geometry *geometry, QPoint point)
 This signal is emitted when a Geometry is clicked. More...
 
void positionChanged (Geometry *geom)
 A Geometry emits this signal, when its position gets changed. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual QRectF boundingBox ()
 returns the bounding box of the point More...
 
QPointF coordinate () const
 returns the coordinate of the point More...
 
bool Equals (Geometry *geom)
 
 ImagePoint (qreal x, qreal y, QString filename, QString name=QString(), Alignment alignment=Middle)
 Creates a point which loads and displays the given image file. More...
 
 ImagePoint (qreal x, qreal y, QPixmap pixmap, QString name=QString(), Alignment alignment=Middle)
 Creates a point which displays the given image. More...
 
bool isVisible () const
 returns true if this Geometry is visible More...
 
qreal latitude () const
 returns the latitude of the point More...
 
qreal longitude () const
 returns the longitude of the point More...
 
QString name () const
 returns the name of this Geometry More...
 
GeometryparentGeometry () const
 returns the parent Geometry of this Geometry More...
 
QPen * pen () const
 returns the QPen which is used on drawing More...
 
QPixmap pixmap ()
 returns the pixmap of the point More...
 
void setBaselevel (int zoomlevel)
 Sets the zoom level on which the points pixmap gets displayed on full size. More...
 
void setMaxsize (QSize maxsize)
 sets a maximal size for the pixmap More...
 
void setMinsize (QSize minsize)
 sets a minimal size for the pixmap More...
 
void setName (QString name)
 sets the name of the geometry More...
 
QString toString ()
 returns a String representation of this Geometry More...
 
QWidgetwidget ()
 returns the widget of the point More...
 
+ + + + +

+Protected Member Functions

virtual bool Touches (Point *click, const MapAdapter *mapadapter)
 returns true if the given Point touches this Point More...
 
+

Detailed Description

+

Draws an image into the map.

+

This is a convenience class for Point. It configures the pixmap of a Point to draw the given image. The image will be loaded from the given path and written in the points pixmap.

+
Author
Kai Winter kaiwi.nosp@m.nter.nosp@m.@gmx..nosp@m.de
+

Member Enumeration Documentation

+ +
+
+ + + + + +
+ + + + +
enum Alignment
+
+inherited
+
+ +

sets where the point should be aligned

+ + + + + + + + +
Enumerator
TopLeft  +

Align on TopLeft

+
TopRight  +

Align on TopRight

+
TopMiddle  +

Align on TopLeft

+
BottomLeft  +

Align on BottomLeft

+
BottomRight  +

Align on BottomRight

+
BottomMiddle  +

Align on BottomMiddle

+
Middle  +

Align on Middle

+
+ +
+
+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ImagePoint (qreal x,
qreal y,
QString filename,
QString name = QString(),
Alignment alignment = Middle 
)
+
+ +

Creates a point 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.

Parameters
+ + + + + + +
xlongitude
ylatitude
filenamethe file which should be loaded and displayed
namethe name of the image point
alignmentalignment (Middle or TopLeft)
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ImagePoint (qreal x,
qreal y,
QPixmap pixmap,
QString name = QString(),
Alignment alignment = Middle 
)
+
+ +

Creates a point which displays the given image.

+

Use this contructor to display the given image. You have to load that image yourself, but can use it for multiple points.

Parameters
+ + + + + + +
xlongitude
ylatitude
pixmappointer to the image pixmap
namethe name of the image point
alignmentalignment (Middle or TopLeft)
+
+
+ +

References Point::pixmap().

+ +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + +
QRectF boundingBox ()
+
+virtualinherited
+
+ +

returns the bounding box of the point

+

The Bounding contains the coordinate of the point and its size. The size is set, if the point contains a pixmap or a widget

Returns
the bounding box of the point
+ +

Implements Geometry.

+ +

References Point::latitude(), and Point::longitude().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QPointF coordinate () const
+
+inherited
+
+ +

returns the coordinate of the point

+

The x component of the returned QPointF is the longitude value, the y component the latitude

Returns
the coordinate of a point
+ +

Referenced by MapControl::setView(), and Point::Touches().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
bool Equals (Geometrygeom)
+
+inherited
+
+

returns true if the given Geometry is equal to this Geometry not implemented yet!

Parameters
+ + +
geomThe Geometry to be tested
+
+
+
Returns
true if the given Geometry is equal to this
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void geometryClicked (Geometrygeometry,
QPoint point 
)
+
+signalinherited
+
+ +

This signal is emitted when a Geometry is clicked.

+

A Geometry is clickable, if the containing layer is clickable. The objects emits a signal if it gets clicked

Parameters
+ + + +
geometryThe clicked Geometry
point-unused-
+
+
+ +

Referenced by Point::Touches().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
bool isVisible () const
+
+inherited
+
+ +

returns true if this Geometry is visible

+
Returns
true if this Geometry is visible
+ +

Referenced by Point::Touches().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
qreal latitude () const
+
+inherited
+
+ +

returns the latitude of the point

+
Returns
the latitude of the point
+ +

Referenced by LineString::boundingBox(), and Point::boundingBox().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
qreal longitude () const
+
+inherited
+
+ +

returns the longitude of the point

+
Returns
the longitude of the point
+ +

Referenced by LineString::boundingBox(), and Point::boundingBox().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QString name () const
+
+inherited
+
+ +

returns the name of this Geometry

+
Returns
the name of this Geometry
+ +

Referenced by Geometry::setName().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
Geometry * parentGeometry () const
+
+inherited
+
+ +

returns the parent Geometry of this Geometry

+

A LineString is a composition of many Points. This methods returns the parent (the LineString) of a Point

Returns
the parent Geometry of this Geometry
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QPen * pen () const
+
+inherited
+
+ +

returns the QPen which is used on drawing

+

The pen is set depending on the Geometry. A CirclePoint for example takes one with the constructor.

Returns
the QPen which is used for drawing
+ +

Referenced by ArrowPoint::ArrowPoint(), CirclePoint::CirclePoint(), LineString::LineString(), ArrowPoint::setPen(), and CirclePoint::setPen().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QPixmap pixmap ()
+
+inherited
+
+ +

returns the pixmap of the point

+
Returns
the pixmap of the point
+ +

Referenced by FixedImageOverlay::FixedImageOverlay(), and ImagePoint::ImagePoint().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void positionChanged (Geometrygeom)
+
+signalinherited
+
+ +

A Geometry emits this signal, when its position gets changed.

+
Parameters
+ + +
geomthe Geometry
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void setBaselevel (int zoomlevel)
+
+inherited
+
+ +

Sets the zoom level on which the points 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

See also
setMinsize, setMaxsize
+
Parameters
+ + +
zoomlevelthe zoomlevel on which the point will be displayed on full size
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void setMaxsize (QSize maxsize)
+
+inherited
+
+ +

sets a maximal size for the pixmap

+

When the point´s pixmap should change its size on zooming, this method sets the maximal size.

See also
setBaselevel
+
Parameters
+ + +
maxsizethe maximal size which the pixmap should have
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void setMinsize (QSize minsize)
+
+inherited
+
+ +

sets a minimal size for the pixmap

+

When the point's pixmap should change its size on zooming, this method sets the minimal size.

See also
setBaselevel
+
Parameters
+ + +
minsizethe minimal size which the pixmap should have
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void setName (QString name)
+
+inherited
+
+ +

sets the name of the geometry

+
Parameters
+ + +
namethe new name of the geometry
+
+
+ +

References Geometry::name().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QString toString ()
+
+inherited
+
+ +

returns a String representation of this Geometry

+

not implemented yet!

Returns
a String representation of this Geometry
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool Touches (Pointclick,
const MapAdaptermapadapter 
)
+
+protectedvirtualinherited
+
+ +

returns true if the given Point touches this Point

+

The collision detection checks for the bounding rectangulars.

Parameters
+ + + +
geomthe other point which should be tested on collision
mapadapterthe mapadapter which is used for calculations
+
+
+
Returns
+ +

Implements Geometry.

+ +

References Point::coordinate(), MapAdapter::coordinateToDisplay(), Geometry::geometryClicked(), and Geometry::isVisible().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QWidget * widget ()
+
+inherited
+
+ +

returns the widget of the point

+
Returns
the widget of the point
+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/libs/QMapControl/html/classqmapcontrol_1_1ImagePoint.png b/libs/QMapControl/html/classqmapcontrol_1_1ImagePoint.png new file mode 100644 index 0000000000000000000000000000000000000000..87caec70c168acce356ebf14003aae2e54d92316 GIT binary patch literal 1070 zcmeAS@N?(olHy`uVBq!ia0vp^RY3fMgBeJQ{AXeXQW60^A+G=b{|7Q(y!l$%e`o@b z1;z&s9ANFdBM;JWUO+|`)4oGr%_nI{W9i`GcA8Lsd9es|D1P) zSNMbCCcXO^+V=a+*H77TpDSWp_VVbjo%Cgf`J6QM<|#}1?APwgI#;jf`RPga)wDE4 zhM07g4n;rPzQlJHUsL*u*jMd0IULOUz;hL&jHhXX@=CS>m8%SWOQa4=3}LpIl+|$E zz_^=n@)C|9UC+Kh|6e8k^0?$Y@B4(1^~J9$FDzHCcZxk8)1-g&!{-IpPKRgO8uwnm za(Y3wVWipLs4J^fY#(i@>RcIY9v)ny@M_btzdX}cXW!fAI7#lqqF-fqv#;cCN!_jb zQt-L)pFd6eLv7!G+4k7g3E1x5}_lbPI5uK~OyZwFVF3FYU(_Uh7iG>)zLg)e7g$_lM@{0hSURs-ro?)=+&05$3d`Ov ziaR}9-8;9k{$IQ>z(|$Zuh^tPv+}Xi2pekcIV6MtGPOFnQQ{`PZsXJ-X0kc znmXm}x4OrEE6a`cfWjb4&3ymswfB4z-~L;6`OOhe<(0edEqv!RVM*{6^E%fGJhE`3vSIa-YoEs(Lpb{Ptx}DbYSLY@O1TaS?83{1OV|z3?u*m literal 0 HcmV?d00001 diff --git a/libs/QMapControl/html/classqmapcontrol_1_1InvisiblePoint-members.html b/libs/QMapControl/html/classqmapcontrol_1_1InvisiblePoint-members.html new file mode 100644 index 00000000..fa4b33d9 --- /dev/null +++ b/libs/QMapControl/html/classqmapcontrol_1_1InvisiblePoint-members.html @@ -0,0 +1,98 @@ + + + + + + +QMapControl: Member List + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + + +
+
+
+
InvisiblePoint Member List
+
+
+ +

This is the complete list of members for InvisiblePoint, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Alignment enum namePoint
BottomLeft enum valuePoint
BottomMiddle enum valuePoint
BottomRight enum valuePoint
boundingBox()Pointvirtual
coordinate() const Point
Equals(Geometry *geom)Geometry
geometryClicked(Geometry *geometry, QPoint point)Geometrysignal
InvisiblePoint(qreal x, qreal y, QString name=QString())InvisiblePoint
InvisiblePoint(qreal x, qreal y, int width=10, int height=10, QString name=QString())InvisiblePoint
InvisiblePoint(qreal x, qreal y, int sideLength=10, QString name=QString())InvisiblePoint
isVisible() const Geometry
latitude() const Point
longitude() const Point
Middle enum valuePoint
name() const Geometry
parentGeometry() const Geometry
pen() const Geometry
pixmap()Point
Point(qreal x, qreal y, QString name=QString(), enum Alignment alignment=Middle)Point
Point(qreal x, qreal y, QWidget *widget, QString name=QString(), enum Alignment alignment=Middle)Point
Point(qreal x, qreal y, QPixmap pixmap, QString name=QString(), enum Alignment alignment=Middle)Point
positionChanged(Geometry *geom)Geometrysignal
setBaselevel(int zoomlevel)Point
setMaxsize(QSize maxsize)Point
setMinsize(QSize minsize)Point
setName(QString name)Geometry
TopLeft enum valuePoint
TopMiddle enum valuePoint
TopRight enum valuePoint
toString()Geometry
Touches(Point *click, const MapAdapter *mapadapter)Pointprotectedvirtual
widget()Point
+ + + + diff --git a/libs/QMapControl/html/classqmapcontrol_1_1InvisiblePoint.html b/libs/QMapControl/html/classqmapcontrol_1_1InvisiblePoint.html new file mode 100644 index 00000000..ad758b96 --- /dev/null +++ b/libs/QMapControl/html/classqmapcontrol_1_1InvisiblePoint.html @@ -0,0 +1,962 @@ + + + + + + +QMapControl: InvisiblePoint Class Reference + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + + +
+ +
+ +

Draws an invisible point into the map. + More...

+ +

#include <invisiblepoint.h>

+
+Inheritance diagram for InvisiblePoint:
+
+
+ + +Point +Geometry +QObject + +
+ + + + + +

+Public Types

enum  Alignment {
+  TopLeft, +TopRight, +TopMiddle, +BottomLeft, +
+  BottomRight, +BottomMiddle, +Middle +
+ }
 sets where the point should be aligned More...
 
+ + + + + + + +

+Signals

void geometryClicked (Geometry *geometry, QPoint point)
 This signal is emitted when a Geometry is clicked. More...
 
void positionChanged (Geometry *geom)
 A Geometry emits this signal, when its position gets changed. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual QRectF boundingBox ()
 returns the bounding box of the point More...
 
QPointF coordinate () const
 returns the coordinate of the point More...
 
bool Equals (Geometry *geom)
 
 InvisiblePoint (qreal x, qreal y, QString name=QString())
 
 InvisiblePoint (qreal x, qreal y, int width=10, int height=10, QString name=QString())
 
 InvisiblePoint (qreal x, qreal y, int sideLength=10, QString name=QString())
 
bool isVisible () const
 returns true if this Geometry is visible More...
 
qreal latitude () const
 returns the latitude of the point More...
 
qreal longitude () const
 returns the longitude of the point More...
 
QString name () const
 returns the name of this Geometry More...
 
GeometryparentGeometry () const
 returns the parent Geometry of this Geometry More...
 
QPen * pen () const
 returns the QPen which is used on drawing More...
 
QPixmap pixmap ()
 returns the pixmap of the point More...
 
void setBaselevel (int zoomlevel)
 Sets the zoom level on which the points pixmap gets displayed on full size. More...
 
void setMaxsize (QSize maxsize)
 sets a maximal size for the pixmap More...
 
void setMinsize (QSize minsize)
 sets a minimal size for the pixmap More...
 
void setName (QString name)
 sets the name of the geometry More...
 
QString toString ()
 returns a String representation of this Geometry More...
 
QWidgetwidget ()
 returns the widget of the point More...
 
+ + + + +

+Protected Member Functions

virtual bool Touches (Point *click, const MapAdapter *mapadapter)
 returns true if the given Point touches this Point More...
 
+

Detailed Description

+

Draws an invisible point into the map.

+

This is a convenience class for point. It configures the pixmap of a point to draw nothing, still being a clickable point.

+
Author
Frederic Bourgeois bourg.nosp@m.eois.nosp@m.lab@g.nosp@m.mail.nosp@m..com
+

Member Enumeration Documentation

+ +
+
+ + + + + +
+ + + + +
enum Alignment
+
+inherited
+
+ +

sets where the point should be aligned

+ + + + + + + + +
Enumerator
TopLeft  +

Align on TopLeft

+
TopRight  +

Align on TopRight

+
TopMiddle  +

Align on TopLeft

+
BottomLeft  +

Align on BottomLeft

+
BottomRight  +

Align on BottomRight

+
BottomMiddle  +

Align on BottomMiddle

+
Middle  +

Align on Middle

+
+ +
+
+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
InvisiblePoint (qreal x,
qreal y,
QString name = QString() 
)
+
+
Parameters
+ + + + +
xlongitude
ylatitude
namename of the invisible point
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InvisiblePoint (qreal x,
qreal y,
int width = 10,
int height = 10,
QString name = QString() 
)
+
+
Parameters
+ + + + + + +
xlongitude
ylatitude
widthwidth
heightheight
namename of the invisible point
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InvisiblePoint (qreal x,
qreal y,
int sideLength = 10,
QString name = QString() 
)
+
+
Parameters
+ + + + + +
xlongitude
ylatitude
sideLengthside length of the bounding box (square)
namename of the invisible point
+
+
+ +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + +
QRectF boundingBox ()
+
+virtualinherited
+
+ +

returns the bounding box of the point

+

The Bounding contains the coordinate of the point and its size. The size is set, if the point contains a pixmap or a widget

Returns
the bounding box of the point
+ +

Implements Geometry.

+ +

References Point::latitude(), and Point::longitude().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QPointF coordinate () const
+
+inherited
+
+ +

returns the coordinate of the point

+

The x component of the returned QPointF is the longitude value, the y component the latitude

Returns
the coordinate of a point
+ +

Referenced by MapControl::setView(), and Point::Touches().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
bool Equals (Geometrygeom)
+
+inherited
+
+

returns true if the given Geometry is equal to this Geometry not implemented yet!

Parameters
+ + +
geomThe Geometry to be tested
+
+
+
Returns
true if the given Geometry is equal to this
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void geometryClicked (Geometrygeometry,
QPoint point 
)
+
+signalinherited
+
+ +

This signal is emitted when a Geometry is clicked.

+

A Geometry is clickable, if the containing layer is clickable. The objects emits a signal if it gets clicked

Parameters
+ + + +
geometryThe clicked Geometry
point-unused-
+
+
+ +

Referenced by Point::Touches().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
bool isVisible () const
+
+inherited
+
+ +

returns true if this Geometry is visible

+
Returns
true if this Geometry is visible
+ +

Referenced by Point::Touches().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
qreal latitude () const
+
+inherited
+
+ +

returns the latitude of the point

+
Returns
the latitude of the point
+ +

Referenced by LineString::boundingBox(), and Point::boundingBox().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
qreal longitude () const
+
+inherited
+
+ +

returns the longitude of the point

+
Returns
the longitude of the point
+ +

Referenced by LineString::boundingBox(), and Point::boundingBox().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QString name () const
+
+inherited
+
+ +

returns the name of this Geometry

+
Returns
the name of this Geometry
+ +

Referenced by Geometry::setName().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
Geometry * parentGeometry () const
+
+inherited
+
+ +

returns the parent Geometry of this Geometry

+

A LineString is a composition of many Points. This methods returns the parent (the LineString) of a Point

Returns
the parent Geometry of this Geometry
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QPen * pen () const
+
+inherited
+
+ +

returns the QPen which is used on drawing

+

The pen is set depending on the Geometry. A CirclePoint for example takes one with the constructor.

Returns
the QPen which is used for drawing
+ +

Referenced by ArrowPoint::ArrowPoint(), CirclePoint::CirclePoint(), LineString::LineString(), ArrowPoint::setPen(), and CirclePoint::setPen().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QPixmap pixmap ()
+
+inherited
+
+ +

returns the pixmap of the point

+
Returns
the pixmap of the point
+ +

Referenced by FixedImageOverlay::FixedImageOverlay(), and ImagePoint::ImagePoint().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void positionChanged (Geometrygeom)
+
+signalinherited
+
+ +

A Geometry emits this signal, when its position gets changed.

+
Parameters
+ + +
geomthe Geometry
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void setBaselevel (int zoomlevel)
+
+inherited
+
+ +

Sets the zoom level on which the points 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

See also
setMinsize, setMaxsize
+
Parameters
+ + +
zoomlevelthe zoomlevel on which the point will be displayed on full size
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void setMaxsize (QSize maxsize)
+
+inherited
+
+ +

sets a maximal size for the pixmap

+

When the point´s pixmap should change its size on zooming, this method sets the maximal size.

See also
setBaselevel
+
Parameters
+ + +
maxsizethe maximal size which the pixmap should have
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void setMinsize (QSize minsize)
+
+inherited
+
+ +

sets a minimal size for the pixmap

+

When the point's pixmap should change its size on zooming, this method sets the minimal size.

See also
setBaselevel
+
Parameters
+ + +
minsizethe minimal size which the pixmap should have
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void setName (QString name)
+
+inherited
+
+ +

sets the name of the geometry

+
Parameters
+ + +
namethe new name of the geometry
+
+
+ +

References Geometry::name().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QString toString ()
+
+inherited
+
+ +

returns a String representation of this Geometry

+

not implemented yet!

Returns
a String representation of this Geometry
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool Touches (Pointclick,
const MapAdaptermapadapter 
)
+
+protectedvirtualinherited
+
+ +

returns true if the given Point touches this Point

+

The collision detection checks for the bounding rectangulars.

Parameters
+ + + +
geomthe other point which should be tested on collision
mapadapterthe mapadapter which is used for calculations
+
+
+
Returns
+ +

Implements Geometry.

+ +

References Point::coordinate(), MapAdapter::coordinateToDisplay(), Geometry::geometryClicked(), and Geometry::isVisible().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QWidget * widget ()
+
+inherited
+
+ +

returns the widget of the point

+
Returns
the widget of the point
+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/libs/QMapControl/html/classqmapcontrol_1_1InvisiblePoint.png b/libs/QMapControl/html/classqmapcontrol_1_1InvisiblePoint.png new file mode 100644 index 0000000000000000000000000000000000000000..cf22fb3a680d67022a1900aca1fd62e9e8f6fe5d GIT binary patch literal 693 zcmeAS@N?(olHy`uVBq!ia0vp^VL*I&ZU0walHq3bS z_i1aUpZIxxc2T%W>79hjI_tMePs(}Zw@vn2o#2!k8((VfJAUq{&AD$&O!LYPJ>Pov z?k>Ccra$A3 z3I5*TS8y#deJ<;Q!$9&cW0*@yje|!~iN)_!vm^YT^Nzg~v@NrIxU_ou)yKt`GKHVX zm(1ID>D51>^c=gyyDkeaymnizvbylVvlyvuQdgg)ZF^}KZQGx=b4uHizTmQG?z7v@ z8BLv@V%lf*uu4#Gvv;a@>sH|}j#tIsZM)U6{Y=~2z2fsX-`#%pzr_3#q`L6^4TJhs znd$v1+dodSRbtzy`BFmh-MZjOZ;pj-o5A_l;&#mKuB)#nq}c1FzFs4?v$jIMl*x0S z;5n=8v&30t)*^6>or$4`FMa=kcV9LMl$RY}vV5<7Sien@_4FHa?piNBeC%)Kq~x1Z zYX2^Mv-NVxi7I~H*#@blS0)Ed{TA`JcKX|SZ*`ZhF)I&?Uw``9)@>ZKt~^?sTHAkj z{^rVx@*BH~(zn)5uf52*v+=f7t`#H0vDVG!qBbkG7})${xbe=+GjGAxgTOS#;OXk; Jvd$@?2>|8wNgV(H literal 0 HcmV?d00001 diff --git a/libs/QMapControl/html/classqmapcontrol_1_1Layer-members.html b/libs/QMapControl/html/classqmapcontrol_1_1Layer-members.html new file mode 100644 index 00000000..ea370cc1 --- /dev/null +++ b/libs/QMapControl/html/classqmapcontrol_1_1Layer-members.html @@ -0,0 +1,82 @@ + + + + + + +QMapControl: Member List + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + + +
+
+
+
Layer Member List
+
+
+ +

This is the complete list of members for Layer, including all inherited members.

+ + + + + + + + + + + + + + + + + + +
addGeometry(Geometry *geometry)Layer
clearGeometries(bool qDeleteObject=false)Layer
containsGeometry(Geometry *geometry)Layer
geometryClicked(Geometry *geometry, QPoint point)Layersignal
GeometryLayer enum valueLayer
getGeometries()Layer
isVisible() const Layer
Layer(QString layername, MapAdapter *mapadapter, enum LayerType layertype, bool takeevents=true)Layer
layername() const Layer
layertype() const Layer
LayerType enum nameLayer
mapadapter()Layer
MapLayer enum valueLayer
removeGeometry(Geometry *geometry, bool qDeleteObject=false)Layer
sendGeometryToBack(Geometry *geometry)Layer
sendGeometryToFront(Geometry *geometry)Layer
setVisible(bool visible)Layerslot
+ + + + diff --git a/libs/QMapControl/html/classqmapcontrol_1_1Layer.html b/libs/QMapControl/html/classqmapcontrol_1_1Layer.html new file mode 100644 index 00000000..d7799b4d --- /dev/null +++ b/libs/QMapControl/html/classqmapcontrol_1_1Layer.html @@ -0,0 +1,541 @@ + + + + + + +QMapControl: Layer Class Reference + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + + +
+ +
+ +

Layer class. + More...

+ +

#include <layer.h>

+
+Inheritance diagram for Layer:
+
+
+ + +QObject +GeometryLayer +MapLayer + +
+ + + + + +

+Public Types

enum  LayerType { MapLayer, +GeometryLayer + }
 sets the type of a layer, see Layer class doc for further information More...
 
+ + + + +

+Public Slots

void setVisible (bool visible)
 if visible is true, the layer is made visible More...
 
+ + + + +

+Signals

void geometryClicked (Geometry *geometry, QPoint point)
 This signal is emitted when a Geometry is clicked. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

void addGeometry (Geometry *geometry)
 adds a Geometry object to this Layer More...
 
void clearGeometries (bool qDeleteObject=false)
 removes all Geometry objects from this Layer More...
 
bool containsGeometry (Geometry *geometry)
 returns true if Layer contains geometry More...
 
QList< Geometry * > & getGeometries ()
 returns all Geometry objects from this Layer More...
 
bool isVisible () const
 return true if the layer is visible More...
 
 Layer (QString layername, MapAdapter *mapadapter, enum LayerType layertype, bool takeevents=true)
 Layer constructor. More...
 
QString layername () const
 returns the layer's name More...
 
Layer::LayerType layertype () const
 returns the LayerType of the Layer More...
 
MapAdaptermapadapter ()
 returns the layer´s MapAdapter More...
 
void removeGeometry (Geometry *geometry, bool qDeleteObject=false)
 removes the Geometry object from this Layer More...
 
void sendGeometryToBack (Geometry *geometry)
 allow moving a geometry to the top of the list (drawing last) More...
 
void sendGeometryToFront (Geometry *geometry)
 allow moving a geometry to the top of the list (drawing last) More...
 
+

Detailed Description

+

Layer class.

+

There are two different layer types:

+

MapLayers also can display Geometry objects. The difference to the GeometryLayer is the repainting. Objects that are added to a MapLayer are "baken" on the map. This means, when you change it´s position for example the changes are not visible until a new offscreen image has been drawn. If you have "static" Geometries which won´t change their position this is fine. But if you want to change the objects position or pen you should use a GeometryLayer. Those are repainted immediately on changes. You can either use this class and give a layertype on creation or you can use the classes MapLayer and GeometryLayer.

+
Author
Kai Winter kaiwi.nosp@m.nter.nosp@m.@gmx..nosp@m.de
+

Member Enumeration Documentation

+ +
+
+ + + + +
enum LayerType
+
+ +

sets the type of a layer, see Layer class doc for further information

+ + + +
Enumerator
MapLayer  +

uses the MapAdapter to display maps, only gets refreshed when a new offscreen image is needed

+
GeometryLayer  +

gets refreshed everytime when a geometry changes

+
+ +
+
+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Layer (QString layername,
MapAdaptermapadapter,
enum LayerType layertype,
bool takeevents = true 
)
+
+ +

Layer constructor.

+

This is used to construct a layer.

+
Parameters
+ + + + + +
layernameThe name of the Layer
mapadapterThe MapAdapter which does coordinate translation and Query-String-Forming
layertypeThe above explained LayerType
takeeventsShould the Layer receive MouseEvents? This is set to true by default. Setting it to false could be something like a "speed up hint"
+
+
+ +
+
+

Member Function Documentation

+ +
+
+ + + + + + + + +
void addGeometry (Geometrygeometry)
+
+ +

adds a Geometry object to this Layer

+

Please notice the different LayerTypes (MapLayer and GeometryLayer) and the differences

Parameters
+ + +
geometrythe new Geometry
+
+
+ +

References Geometry::boundingBox(), and Layer::containsGeometry().

+ +
+
+ +
+
+ + + + + + + + +
void clearGeometries (bool qDeleteObject = false)
+
+ +

removes all Geometry objects from this Layer

+

This method removes all Geometry objects from this Layer. NOTE: this method does not delete the object unless qDeleteObject is set

Parameters
+ + +
qDeleteObjectcleans up memory of object after removal
+
+
+ +
+
+ +
+
+ + + + + + + + +
bool containsGeometry (Geometrygeometry)
+
+ +

returns true if Layer contains geometry

+

This method returns if a Geometry objects is on this Layer.

+ +

Referenced by Layer::addGeometry().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void geometryClicked (Geometrygeometry,
QPoint point 
)
+
+signal
+
+ +

This signal is emitted when a Geometry is clicked.

+

A Geometry is clickable, if the containing layer is clickable. The layer emits a signal for every clicked geometry

Parameters
+ + + +
geometryThe clicked Geometry
pointThe coordinate (in widget coordinates) of the click
+
+
+ +
+
+ +
+
+ + + + + + + +
QList< Geometry * > & getGeometries ()
+
+ +

returns all Geometry objects from this Layer

+

This method removes all Geometry objects from this Layer.

Returns
a list of geometries that are on this Layer
+ +
+
+ +
+
+ + + + + + + +
bool isVisible () const
+
+ +

return true if the layer is visible

+
Returns
if the layer is visible
+ +
+
+ +
+
+ + + + + + + +
QString layername () const
+
+ +

returns the layer's name

+
Returns
the name of this layer
+ +
+
+ +
+
+ + + + + + + +
Layer::LayerType layertype () const
+
+ +

returns the LayerType of the Layer

+

There are two LayerTypes: MapLayer and GeometryLayer

Returns
the LayerType of this Layer
+ +
+
+ +
+
+ + + + + + + +
MapAdapter * mapadapter ()
+
+ +

returns the layer´s MapAdapter

+

This method returns the MapAdapter of this Layer, which can be useful to do coordinate transformations.

Returns
the MapAdapter which us used by this Layer
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
void removeGeometry (Geometrygeometry,
bool qDeleteObject = false 
)
+
+ +

removes the Geometry object from this Layer

+

This method removes a Geometry object from this Layer. NOTE: this method does not delete the object unless qDeleteObject is set

Parameters
+ + +
qDeleteObjectcleans up memory of object after removal
+
+
+ +

References Geometry::boundingBox().

+ +
+
+ +
+
+ + + + + + + + +
void sendGeometryToBack (Geometrygeometry)
+
+ +

allow moving a geometry to the top of the list (drawing last)

+

This method re-order the Geometry objects so the desired geometry is drawn first and under all other geometries

+ +
+
+ +
+
+ + + + + + + + +
void sendGeometryToFront (Geometrygeometry)
+
+ +

allow moving a geometry to the top of the list (drawing last)

+

This method re-order the Geometry objects so the desired geometry is drawn last and visible above all geometries

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void setVisible (bool visible)
+
+slot
+
+ +

if visible is true, the layer is made visible

+
Parameters
+ + +
visibleif the layer should be visible
+
+
+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/libs/QMapControl/html/classqmapcontrol_1_1Layer.png b/libs/QMapControl/html/classqmapcontrol_1_1Layer.png new file mode 100644 index 0000000000000000000000000000000000000000..d7c94e99a6ae8f544c6d5b19c8cd77131a73ca4b GIT binary patch literal 913 zcmeAS@N?(olHy`uVBq!ia0vp^7l62fgBeIJTt4*>~#6+o$2#cGTC2C-V&_3G_Biw zzu>G_M=rPglbiKk(n_Pce`S$>UE8zm=Yvj9Yk3>Gb7lCXZ4p9~mc;T2DS1ljv0U(* z9MF5-*hs~5=?(!0YdsauP!J7vRhuMZ)gtqSg>TNRFkd*`Ki=&wXXRAp4ZYlq5yx5? zbRIh~Oe<7mIK4xlAvK2MfRP?cf}}Xph8`5@25HH*#2pe1zjxGGi8Ey!Z)I3jpx97$ zZu#%8Z6J>pEqvL#$!KqU+h>Nb*0jlgzIt9?L&x z=4zRyFgwBZqUuszuD$N_+jh8QbZv?~H^1f41Ixh6nLmCj#`(9eEdQ(e^Ya;*#D6>8 zGUk?cmP*A2-P-1Ka_v6ed%Ew>>2FWIHq(21%(jxtYmS0U5}tMae{u!SytdQETkKOm z8gJpsWuEIceag0e9^c(s-)BW%o9oucntC?jj&iH3;9niNT2uplKgbj z*JrJwTej_fZL(|0mZzcXYEIAP3{A`U{X~vyYDz{`(90{fQc>-rT=+sYTp zeYSC$R=5z*RYHoMs}jr~O!unNQSr2l&)fE7?-iYpcc1UKaNU2D>m+LT-+RT0=k2=c zo~c*3J%f~iNowkj2`XDJEe_yNjPX_ihTHW|{DQabp1BF}*#PqogQu&X%Q~loCIHXH Bjtc+) literal 0 HcmV?d00001 diff --git a/libs/QMapControl/html/classqmapcontrol_1_1LineString-members.html b/libs/QMapControl/html/classqmapcontrol_1_1LineString-members.html new file mode 100644 index 00000000..41692cc6 --- /dev/null +++ b/libs/QMapControl/html/classqmapcontrol_1_1LineString-members.html @@ -0,0 +1,84 @@ + + + + + + +QMapControl: Member List + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + + +
+
+
+
LineString Member List
+
+
+ +

This is the complete list of members for LineString, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + +
addPoint(Point *point)LineString
boundingBox()LineStringvirtual
clickedPoints()LineStringvirtual
Equals(Geometry *geom)Geometry
geometryClicked(Geometry *geometry, QPoint point)Geometrysignal
hasClickedPoints() const LineStringvirtual
hasPoints() const LineStringvirtual
isVisible() const Geometry
LineString(QList< Point * > const points, QString name=QString(), QPen *pen=0)LineString
name() const Geometry
numberOfPoints() const LineString
parentGeometry() const Geometry
pen() const Geometry
points()LineStringvirtual
positionChanged(Geometry *geom)Geometrysignal
setName(QString name)Geometry
setPoints(QList< Point * > points)LineString
setVisible(bool visible)Geometryvirtualslot
toString()Geometry
+ + + + diff --git a/libs/QMapControl/html/classqmapcontrol_1_1LineString.html b/libs/QMapControl/html/classqmapcontrol_1_1LineString.html new file mode 100644 index 00000000..3be2afb6 --- /dev/null +++ b/libs/QMapControl/html/classqmapcontrol_1_1LineString.html @@ -0,0 +1,729 @@ + + + + + + +QMapControl: LineString Class Reference + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + + +
+
+ +
+
LineString Class Reference
+
+
+ +

A collection of Point objects to describe a line. + More...

+ +

#include <linestring.h>

+
+Inheritance diagram for LineString:
+
+
+ + +Curve +Geometry +QObject + +
+ + + + + +

+Public Slots

virtual void setVisible (bool visible)
 if visible is true, the layer is made visible More...
 
+ + + + + + + +

+Signals

void geometryClicked (Geometry *geometry, QPoint point)
 This signal is emitted when a Geometry is clicked. More...
 
void positionChanged (Geometry *geom)
 A Geometry emits this signal, when its position gets changed. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

void addPoint (Point *point)
 adds a point at the end of the LineString More...
 
virtual QRectF boundingBox ()
 returns the bounding box (rect) that contains all points More...
 
virtual QList< Geometry * > & clickedPoints ()
 returns the clicked Points More...
 
bool Equals (Geometry *geom)
 
virtual bool hasClickedPoints () const
 returns true if the LineString has clicked Points More...
 
virtual bool hasPoints () const
 returns true if the LineString has Childs More...
 
bool isVisible () const
 returns true if this Geometry is visible More...
 
 LineString (QList< Point * > const points, QString name=QString(), QPen *pen=0)
 constructor More...
 
QString name () const
 returns the name of this Geometry More...
 
int numberOfPoints () const
 returns the number of Points the LineString consists of More...
 
GeometryparentGeometry () const
 returns the parent Geometry of this Geometry More...
 
QPen * pen () const
 returns the QPen which is used on drawing More...
 
QList< Point * > points ()
 returns the points of the LineString More...
 
void setName (QString name)
 sets the name of the geometry More...
 
void setPoints (QList< Point * > points)
 
QString toString ()
 returns a String representation of this Geometry More...
 
+

Detailed Description

+

A collection of Point objects to describe a line.

+

A LineString is a Curve with linear interpolation between Points. Each consecutive pair of Points defines a Line segment.

Author
Kai Winter kaiwi.nosp@m.nter.nosp@m.@gmx..nosp@m.de
+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
LineString (QList< Point * > const points,
QString name = QString(),
QPen * pen = 0 
)
+
+ +

constructor

+

The constructor of a LineString takes a list of Points to form a line.

Parameters
+ + + + +
pointsa list of points
namethe name of the LineString
pena QPen can be used to modify the look of the line.
+
+
+
See also
http://doc.trolltech.com/4.3/qpen.html
+ +

References Geometry::pen(), and LineString::setPoints().

+ +
+
+

Member Function Documentation

+ +
+
+ + + + + + + + +
void addPoint (Pointpoint)
+
+ +

adds a point at the end of the LineString

+
Parameters
+ + +
pointthe point which should be added to the LineString
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QRectF boundingBox ()
+
+virtual
+
+ +

returns the bounding box (rect) that contains all points

+
Returns
the rect that contains all points
+ +

Implements Geometry.

+ +

References Point::latitude(), and Point::longitude().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QList< Geometry * > & clickedPoints ()
+
+virtual
+
+ +

returns the clicked Points

+

If a LineString was clicked it could be neccessary to figure out which of its points where clicked. Do do so the methods hasPoints() and clickedPoints() can be used. When a point is added to a LineString the Point becomes its child. It is possible (depending on the zoomfactor) to click more than one Point of a LineString, so this method returns a list.

Returns
the clicked Points of the LineString
+ +

Reimplemented from Geometry.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
bool Equals (Geometrygeom)
+
+inherited
+
+

returns true if the given Geometry is equal to this Geometry not implemented yet!

Parameters
+ + +
geomThe Geometry to be tested
+
+
+
Returns
true if the given Geometry is equal to this
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void geometryClicked (Geometrygeometry,
QPoint point 
)
+
+signalinherited
+
+ +

This signal is emitted when a Geometry is clicked.

+

A Geometry is clickable, if the containing layer is clickable. The objects emits a signal if it gets clicked

Parameters
+ + + +
geometryThe clicked Geometry
point-unused-
+
+
+ +

Referenced by Point::Touches().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
bool hasClickedPoints () const
+
+virtual
+
+ +

returns true if the LineString has clicked Points

+
Returns
true if childs of a LineString were clicked
+
See also
clickedPoints()
+ +

Reimplemented from Geometry.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
bool hasPoints () const
+
+virtual
+
+ +

returns true if the LineString has Childs

+

This is equal to: numberOfPoints() > 0

Returns
true it the LineString has Childs (=Points)
+
See also
clickedPoints()
+ +

Reimplemented from Geometry.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
bool isVisible () const
+
+inherited
+
+ +

returns true if this Geometry is visible

+
Returns
true if this Geometry is visible
+ +

Referenced by Point::Touches().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QString name () const
+
+inherited
+
+ +

returns the name of this Geometry

+
Returns
the name of this Geometry
+ +

Referenced by Geometry::setName().

+ +
+
+ +
+
+ + + + + + + +
int numberOfPoints () const
+
+ +

returns the number of Points the LineString consists of

+
Returns
the number of the LineString´s Points
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
Geometry * parentGeometry () const
+
+inherited
+
+ +

returns the parent Geometry of this Geometry

+

A LineString is a composition of many Points. This methods returns the parent (the LineString) of a Point

Returns
the parent Geometry of this Geometry
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QPen * pen () const
+
+inherited
+
+ +

returns the QPen which is used on drawing

+

The pen is set depending on the Geometry. A CirclePoint for example takes one with the constructor.

Returns
the QPen which is used for drawing
+ +

Referenced by ArrowPoint::ArrowPoint(), CirclePoint::CirclePoint(), LineString::LineString(), ArrowPoint::setPen(), and CirclePoint::setPen().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QList< Point * > points ()
+
+virtual
+
+ +

returns the points of the LineString

+
Returns
a list with the points of the LineString
+ +

Implements Geometry.

+ +

Referenced by LineString::setPoints().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void positionChanged (Geometrygeom)
+
+signalinherited
+
+ +

A Geometry emits this signal, when its position gets changed.

+
Parameters
+ + +
geomthe Geometry
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void setName (QString name)
+
+inherited
+
+ +

sets the name of the geometry

+
Parameters
+ + +
namethe new name of the geometry
+
+
+ +

References Geometry::name().

+ +
+
+ +
+
+ + + + + + + + +
void setPoints (QList< Point * > points)
+
+

sets the given list as points of the LineString NOTE: these points will get reparented and cleaned up automatically

+
Parameters
+ + +
pointsthe points which should be set for the LineString
+
+
+ +

References LineString::points().

+ +

Referenced by LineString::LineString().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void setVisible (bool visible)
+
+virtualslotinherited
+
+ +

if visible is true, the layer is made visible

+
Parameters
+ + +
visibleif the layer should be visible
+
+
+ +

References Geometry::boundingBox().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QString toString ()
+
+inherited
+
+ +

returns a String representation of this Geometry

+

not implemented yet!

Returns
a String representation of this Geometry
+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/libs/QMapControl/html/classqmapcontrol_1_1LineString.png b/libs/QMapControl/html/classqmapcontrol_1_1LineString.png new file mode 100644 index 0000000000000000000000000000000000000000..7150bfad8174e1ea8c2281c372c64e38055bf348 GIT binary patch literal 709 zcmV;$0y_PPP)vTJkN^MxkN^Mxkifve1&Q1r00008bW%=J0RR90|NsC0)yh;d00071NklyET65C)5<6Yu|$KNS_Q84nA|JNbrLOO!*|b`$q6W@gP`lGMnsNRsDl3G=VK z+HWNlN8WL=q;<#1Ex)y-=jK;yOeWxQS5!YcRy{Le_*+kjPHviRp@3hGiwFlh6$jVE|zKPq3L3o zB^@+O^caXGngbbGAxqhsawMQlcc9q zEvw;;re-EOS>}n#Zu-ER%}~X_dFc zC+~{5;LS0`Q)8 rOD!(|FUe~-zApf0x>-U9p_TstT7fJHDbapE00000NkvXXu0mjfWvfRt literal 0 HcmV?d00001 diff --git a/libs/QMapControl/html/classqmapcontrol_1_1MapAdapter-members.html b/libs/QMapControl/html/classqmapcontrol_1_1MapAdapter-members.html new file mode 100644 index 00000000..1b2e98ab --- /dev/null +++ b/libs/QMapControl/html/classqmapcontrol_1_1MapAdapter-members.html @@ -0,0 +1,74 @@ + + + + + + +QMapControl: Member List + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + + +
+
+
+
MapAdapter Member List
+
+
+ +

This is the complete list of members for MapAdapter, including all inherited members.

+ + + + + + + + + + +
changeHostAddress(const QString qHost, const QString qServerPath=QString())MapAdaptervirtual
coordinateToDisplay(const QPointF &coordinate) const =0MapAdapterpure virtual
currentZoom() const MapAdapter
displayToCoordinate(const QPoint &point) const =0MapAdapterpure virtual
host() const MapAdapter
maxZoom() const MapAdapter
minZoom() const MapAdapter
serverPath() const MapAdaptervirtual
tilesize() const MapAdapter
+ + + + diff --git a/libs/QMapControl/html/classqmapcontrol_1_1MapAdapter.html b/libs/QMapControl/html/classqmapcontrol_1_1MapAdapter.html new file mode 100644 index 00000000..81f75b72 --- /dev/null +++ b/libs/QMapControl/html/classqmapcontrol_1_1MapAdapter.html @@ -0,0 +1,374 @@ + + + + + + +QMapControl: MapAdapter Class Reference + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + + +
+
+ +
+
MapAdapter Class Referenceabstract
+
+
+ +

Used to fit map servers into QMapControl. + More...

+ +

#include <mapadapter.h>

+
+Inheritance diagram for MapAdapter:
+
+
+ + +QObject +EmptyMapAdapter +TileMapAdapter +WMSMapAdapter +GoogleMapAdapter +OpenAerialMapAdapter +OSMMapAdapter +YahooMapAdapter + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual void changeHostAddress (const QString qHost, const QString qServerPath=QString())
 change or update server host address post init More...
 
virtual QPoint coordinateToDisplay (const QPointF &coordinate) const =0
 translates a world coordinate to display coordinate More...
 
int currentZoom () const
 returns the current zoom More...
 
virtual QPointF displayToCoordinate (const QPoint &point) const =0
 translates display coordinate to world coordinate More...
 
QString host () const
 returns the host of this MapAdapter More...
 
int maxZoom () const
 returns the max zoom value More...
 
int minZoom () const
 returns the min zoom value More...
 
virtual QString serverPath () const
 returns the server path part of this MapAdapter More...
 
int tilesize () const
 returns the size of the tiles More...
 
+

Detailed Description

+

Used to fit map servers into QMapControl.

+

MapAdapters are needed to convert between world- and display coordinates. This calculations depend on the used map projection. There are two ready-made MapAdapters:

    +
  • TileMapAdapter, which is ready to use for OpenStreetMap or Google (Mercator projection)
  • +
  • WMSMapAdapter, which could be used for the most WMS-Server (some servers show errors, because of image ratio)
  • +
+

MapAdapters are also needed to form the HTTP-Queries to load the map tiles. The maps from WMS Servers are also divided into tiles, because those can be better cached.

+
See also
TileMapAdapter,
+
+WMSMapAdapter
+
Author
Kai Winter kaiwi.nosp@m.nter.nosp@m.@gmx..nosp@m.de
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void changeHostAddress (const QString qHost,
const QString qServerPath = QString() 
)
+
+virtual
+
+ +

change or update server host address post init

+
Parameters
+ + + +
hostthe host address
serverPaththe server path
+
+
+ +

Reimplemented in WMSMapAdapter.

+ +

Referenced by WMSMapAdapter::changeHostAddress().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
virtual QPoint coordinateToDisplay (const QPointF & coordinate) const
+
+pure virtual
+
+ +

translates a world coordinate to display coordinate

+

The calculations also needs the current zoom. The current zoom is managed by the MapAdapter, so this is no problem. To divide model from view the current zoom should be moved to the layers.

Parameters
+ + +
coordinatethe world coordinate
+
+
+
Returns
the display coordinate (in widget coordinates)
+ +

Implemented in TileMapAdapter, EmptyMapAdapter, and WMSMapAdapter.

+ +

Referenced by Point::Touches().

+ +
+
+ +
+
+ + + + + + + +
int currentZoom () const
+
+ +

returns the current zoom

+
Returns
the current zoom
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
virtual QPointF displayToCoordinate (const QPoint & point) const
+
+pure virtual
+
+ +

translates display coordinate to world coordinate

+

The calculations also needs the current zoom. The current zoom is managed by the MapAdapter, so this is no problem. To divide model from view the current zoom should be moved to the layers.

Parameters
+ + +
pointthe display coordinate
+
+
+
Returns
the world coordinate
+ +

Implemented in TileMapAdapter, EmptyMapAdapter, and WMSMapAdapter.

+ +
+
+ +
+
+ + + + + + + +
QString host () const
+
+ +

returns the host of this MapAdapter

+
Returns
the host of this MapAdapter
+ +
+
+ +
+
+ + + + + + + +
int maxZoom () const
+
+ +

returns the max zoom value

+
Returns
the max zoom value
+ +
+
+ +
+
+ + + + + + + +
int minZoom () const
+
+ +

returns the min zoom value

+
Returns
the min zoom value
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QString serverPath () const
+
+virtual
+
+ +

returns the server path part of this MapAdapter

+
Returns
the serverpath of this MapAdapter
+ +

Reimplemented in WMSMapAdapter.

+ +

Referenced by WMSMapAdapter::serverPath().

+ +
+
+ +
+
+ + + + + + + +
int tilesize () const
+
+ +

returns the size of the tiles

+
Returns
the size of the tiles
+ +

Referenced by WMSMapAdapter::changeHostAddress().

+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/libs/QMapControl/html/classqmapcontrol_1_1MapAdapter.png b/libs/QMapControl/html/classqmapcontrol_1_1MapAdapter.png new file mode 100644 index 0000000000000000000000000000000000000000..f106a416448dca9de56f1d7178119d2608eab528 GIT binary patch literal 2465 zcmb`J3s4hj632rUxCEoODlEna?io-PdFX*62ndQ8k%urN@(eyu2`Hct#7J1o0fmU! z9q;gg2<~MeOq3up5Ck?LDss4lU20^3BtQW{3^6LQ5F*Ka+2Ndiwji zzv*B9Yx08w{U~HAnM5K{=zDjEkVp%dz;5|uA^7F4kW7M$W$=E;*I+OJ^X24p8t>6p z!20-YX=yRemsx?opQMHahLS)K@xlKLZ6T3No#?y0p>sxRxxDC`CaUjn`x8rr!CG@V zYhP`3#L1qA^F?EuHhUkU+av`JOCC7~^b{KzdluNz6_-#GtGzIH0k@JF9P0#A$cxKS z@9fsZkW(|Nw9Hif&Cyr$_dcg{%F)(EHNIFu6vOb^7RJjGA$3Tr(l757YX}|`gv1M?7GwU2?^ zy+iEmjXg-1%Bt{THD|{>_DB3GnQyWa52&l@x1HT5i}HS(j;PXmD#!V;$lWp`o{rJN zkL~)@AF(5n5M?VXQIED-)TH#;Sz!e7!5*e~f_jWiLh-VeSd_ZLazAm(8|Crme^<6M zJ8AOH&g>M(WusHk{C8E}*>^sgjB*@!5U?ya^oPG+_Ky#Th`s*Ld;dRz4jr!_P%9R1 zd=uU@_~@X^?9N{+|8;j|YmP^0UFzJo>PU^nDdPA%l(j?iKD(2h-mnK8a6UO_wwSxBe$6JcL$%t{z&~dXzNxq0@(qu zJOyF23;@)C0Ne#LSa$$NMi1-1W;V9j(W@GqOL!K65w0rEE+lGd8GdDSSvy|4WBqcy9gZB!4*xJRT*G4&8n&VK4g=!Nr$g1t#* zy(>aJGA;`tcfI`S_OQysrUtFaLw^4S>%b@4SKGILrpi$q9n-%GLLwF3SRZ%mvCFIA z#>Y1tyUKnq3RCOEqPZ@qEM#izz19PXY98dHlr@nYp-7YYlqrGuFmlWcwx@#(^qL&Bh-Pn&UYG2L$wgtv zrj!X+EBlhU`MWv_U8(ujRA<}$&PB9fhvURiq1JpR)v3`?MrUu7+4e|3TVtLajiu`E{&b>(qMJ_&fa=|B!MH+^dO%6{xI28>!hA*qs~VuWU-(>s(j>FiB}hI zY$CiQ$IYvGyl$%c%AzSn+gt4=-aX|6zwP_+e2ddFX?@yLrPtqoiYrqj_JbhlCYi56 z=+3a85`5_;WW@+Xyte7%l#0mc2!}kgfNPAbX~z?D-k6Fsm;@H9WI_H912L70n>_0o z|6Zti0BaY$%EYe}DNt7C_u+!R&?f&goh4?Qyl#7iVL7}>#J332b@J_C_pm%){Py>tA|7SSh5Ne>mz^nK3rqtC(({Ig_nM?!&aW z>)NC9jp8ep4Vb20a?;o;tG)*Ti=TLItzKnX-J>Uezl l)_|V(G0rkDg% + + + + + +QMapControl: Member List + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + + +
+
+
+
MapControl Member List
+
+
+ +

This is the complete list of members for MapControl, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
addLayer(Layer *layer)MapControl
boxDragged(const QRectF)MapControlsignal
currentCoordinate() const MapControl
currentZoom() const MapControl
Dragging enum valueMapControl
enableMouseWheelEvents(bool enabled=true)MapControl
enablePersistentCache(int tileExpiry=-1, const QDir &path=QDir::homePath()+"/QMapControl.cache")MapControl
followGeometry(const Geometry *geometry) const MapControl
geometryClicked(Geometry *geometry, QPoint coord_px)MapControlsignal
getBoundingBox()MapControl
getViewport()MapControl
isBoundingBoxEnabled()MapControl
isGeometryVisible(Geometry *geometry)MapControl
layer(const QString &layername) const MapControl
layers() const MapControl
loadingQueueSize()MapControl
MapControl(QWidget *parent=0, Qt::WindowFlags windowFlags=0)MapControl
MapControl(QSize size, MouseMode mousemode=Panning, bool showScale=false, bool showCrosshairs=true, QWidget *parent=0, Qt::WindowFlags windowFlags=0)MapControl
mouseEventCoordinate(const QMouseEvent *evnt, const QPointF coordinate)MapControlsignal
mouseMode()MapControl
MouseMode enum nameMapControl
mouseWheelEventsEnabled()MapControl
moveTo(QPointF coordinate)MapControl
None enum valueMapControl
numberOfLayers() const MapControl
Panning enum valueMapControl
removeLayer(Layer *layer)MapControl
resize(const QSize newSize)MapControlslot
scroll(const QPoint scroll)MapControlslot
scrollDown(int pixel=10)MapControlslot
scrollLeft(int pixel=10)MapControlslot
scrollRight(int pixel=10)MapControlslot
scrollUp(int pixel=10)MapControlslot
setBoundingBox(QRectF &rect)MapControl
setMouseMode(MouseMode mousemode)MapControl
setProxy(QString host, int port, const QString username=QString(), const QString password=QString())MapControl
setUseBoundingBox(bool usebounds)MapControl
setView(const QPointF &coordinate) const MapControl
setView(const QList< QPointF > coordinates) const MapControl
setView(const Point *point) const MapControl
setViewAndZoomIn(const QList< QPointF > coordinates) const MapControl
setZoom(int zoomlevel)MapControlslot
showScale(bool visible)MapControl
stopFollowing(const Geometry *geometry) const MapControl
updateRequest(QRect rect)MapControlslot
updateRequestNew()MapControlslot
updateView() const MapControl
viewChanged(const QPointF &coordinate, int zoom) const MapControlsignal
zoomIn()MapControlslot
zoomOut()MapControlslot
+ + + + diff --git a/libs/QMapControl/html/classqmapcontrol_1_1MapControl.html b/libs/QMapControl/html/classqmapcontrol_1_1MapControl.html new file mode 100644 index 00000000..c07bc18e --- /dev/null +++ b/libs/QMapControl/html/classqmapcontrol_1_1MapControl.html @@ -0,0 +1,1315 @@ + + + + + + +QMapControl: MapControl Class Reference + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + + +
+
+ +
+
MapControl Class Reference
+
+
+ +

The control element of the widget and also the widget itself. + More...

+ +

#include <mapcontrol.h>

+
+Inheritance diagram for MapControl:
+
+
+ + +QWidget + +
+ + + + + +

+Public Types

enum  MouseMode { Panning, +Dragging, +None + }
 Declares what actions mouse movements have on the map. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Slots

void resize (const QSize newSize)
 Resizes the map to the given size. More...
 
+void scroll (const QPoint scroll)
 scrolls the view by the given point
 
+void scrollDown (int pixel=10)
 scrolls the view down
 
+void scrollLeft (int pixel=10)
 scrolls the view to the left
 
+void scrollRight (int pixel=10)
 scrolls the view to the right
 
+void scrollUp (int pixel=10)
 scrolls the view up
 
void setZoom (int zoomlevel)
 sets the given zoomlevel More...
 
void updateRequest (QRect rect)
 updates the map for the given rect More...
 
+void updateRequestNew ()
 updates the hole map by creating a new offscreen image
 
+void zoomIn ()
 zooms in one step
 
+void zoomOut ()
 zooms out one step
 
+ + + + + + + + + + + + + +

+Signals

void boxDragged (const QRectF)
 Emitted, after a Rectangular is dragged. More...
 
void geometryClicked (Geometry *geometry, QPoint coord_px)
 This signal is emitted, when a Geometry is clicked. More...
 
void mouseEventCoordinate (const QMouseEvent *evnt, const QPointF coordinate)
 Emitted AFTER a MouseEvent occured. More...
 
void viewChanged (const QPointF &coordinate, int zoom) const
 This signal is emitted, after the view have changed. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

void addLayer (Layer *layer)
 adds a layer More...
 
QPointF currentCoordinate () const
 returns the coordinate of the center of the map More...
 
int currentZoom () const
 returns the current zoom level More...
 
void enableMouseWheelEvents (bool enabled=true)
 enable mouse wheel events More...
 
void enablePersistentCache (int tileExpiry=-1, const QDir &path=QDir::homePath()+"/QMapControl.cache")
 Enable persistent caching of map tiles. More...
 
void followGeometry (const Geometry *geometry) const
 Keeps the center of the map on the Geometry, even when it moves. More...
 
QRectF getBoundingBox ()
 Get current bounding box. More...
 
QRectF getViewport ()
 Get viewport rect. More...
 
bool isBoundingBoxEnabled ()
 Check if bounding box is being used. More...
 
bool isGeometryVisible (Geometry *geometry)
 returns if a geometry is visible on viewport More...
 
Layerlayer (const QString &layername) const
 returns the layer with the given name More...
 
QList< QString > layers () const
 returns the names of all layers More...
 
int loadingQueueSize ()
 returns loading images queue size More...
 
 MapControl (QWidget *parent=0, Qt::WindowFlags windowFlags=0)
 The QWidget constructor of MapControl for use with QtDesigner. More...
 
 MapControl (QSize size, MouseMode mousemode=Panning, bool showScale=false, bool showCrosshairs=true, QWidget *parent=0, Qt::WindowFlags windowFlags=0)
 The constructor of MapControl. More...
 
MapControl::MouseMode mouseMode ()
 returns the current MouseMode More...
 
bool mouseWheelEventsEnabled ()
 returns mouse wheel allowed More...
 
void moveTo (QPointF coordinate)
 Smoothly moves the center of the view to the given Coordinate. More...
 
int numberOfLayers () const
 returns the number of existing layers More...
 
void removeLayer (Layer *layer)
 removes a layer More...
 
void setBoundingBox (QRectF &rect)
 Set constraints for bounding box. More...
 
void setMouseMode (MouseMode mousemode)
 sets the Mouse Mode of the MapControl More...
 
void setProxy (QString host, int port, const QString username=QString(), const QString password=QString())
 Sets the proxy for HTTP connections. More...
 
void setUseBoundingBox (bool usebounds)
 Set whether to enable a view bounding box. More...
 
void setView (const QPointF &coordinate) const
 sets the middle of the map to the given coordinate More...
 
void setView (const QList< QPointF > coordinates) const
 sets the view, so all coordinates are visible More...
 
void setView (const Point *point) const
 sets the view to the given Point More...
 
void setViewAndZoomIn (const QList< QPointF > coordinates) const
 sets the view and zooms in, so all coordinates are visible More...
 
void showScale (bool visible)
 Displays the scale within the widget. More...
 
void stopFollowing (const Geometry *geometry) const
 Stops the following of a Geometry. More...
 
+void updateView () const
 update screen
 
+

Detailed Description

+

The control element of the widget and also the widget itself.

+

This is the main widget. To this control layers can be added. A MapControl has to be instantiated with a QSize which sets the size the widget takes in a layout. The given size is also the size which is assured to be filled with map images.

+
Author
Kai Winter kaiwi.nosp@m.nter.nosp@m.@gmx..nosp@m.de
+

Member Enumeration Documentation

+ +
+
+ + + + +
enum MouseMode
+
+ +

Declares what actions mouse movements have on the map.

+ + + + +
Enumerator
Panning  +

The map is moved

+
Dragging  +

A rectangular can be drawn

+
None  +

Mouse move events have no efect to the map

+
+ +
+
+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
MapControl (QWidgetparent = 0,
Qt::WindowFlags windowFlags = 0 
)
+
+ +

The QWidget constructor of MapControl for use with QtDesigner.

+
Parameters
+ + + +
qParentQWidget parent
windowFlagsQWidget Window flags
+
+
+ +

References MapControl::Panning.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
MapControl (QSize size,
MouseMode mousemode = Panning,
bool showScale = false,
bool showCrosshairs = true,
QWidgetparent = 0,
Qt::WindowFlags windowFlags = 0 
)
+
+ +

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 moves the map. You can change the MouseMode at runtime, e.g. to 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.

Parameters
+ + + + + + + +
sizethe size which the widget should fill with map data
mousemodethe way mouse events are handled
showScaletrue if the scale should be displayed
showCrossHairstrue if crosshairs should be shown at the centre of the map
parentQWidget parent
windowFlagsQWidget Window flags
+
+
+ +

References MapControl::updateRequestNew().

+ +
+
+

Member Function Documentation

+ +
+
+ + + + + + + + +
void addLayer (Layerlayer)
+
+ +

adds a layer

+

If multiple layers are added, they are painted in the added order.

Parameters
+ + +
layerthe layer which should be added
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void boxDragged (const QRectF )
+
+signal
+
+ +

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

Parameters
+ + +
QRectFthe dragged Rect
+
+
+ +
+
+ +
+
+ + + + + + + +
QPointF currentCoordinate () const
+
+ +

returns the coordinate of the center of the map

+
Returns
returns the coordinate of the middle of the screen
+ +

Referenced by MapControl::resize(), MapControl::setView(), MapControl::setViewAndZoomIn(), MapControl::setZoom(), MapControl::updateView(), MapControl::zoomIn(), and MapControl::zoomOut().

+ +
+
+ +
+
+ + + + + + + +
int currentZoom () const
+
+ +

returns the current zoom level

+
Returns
returns the current zoom level
+ +

Referenced by MapControl::resize(), MapControl::setView(), MapControl::setViewAndZoomIn(), MapControl::setZoom(), MapControl::updateView(), MapControl::zoomIn(), and MapControl::zoomOut().

+ +
+
+ +
+
+ + + + + + + + +
void enableMouseWheelEvents (bool enabled = true)
+
+ +

enable mouse wheel events

+

enable mouse event

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
void enablePersistentCache (int tileExpiry = -1,
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.

Parameters
+ + + +
tileExpiryhow long to keep in cache before requesting a new image. 0 or -1 to disable and keep forever
paththe path to the cache directory
+
+
+ +
+
+ +
+
+ + + + + + + + +
void followGeometry (const Geometrygeometry) 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

Parameters
+ + +
geometrythe Geometry which should stay centered.
+
+
+ +

References MapControl::stopFollowing().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void geometryClicked (Geometrygeometry,
QPoint coord_px 
)
+
+signal
+
+ +

This signal is emitted, when a Geometry is clicked.

+
Parameters
+ + + +
geometryThe clicked Geometry object
coord_pxThe coordinate in pixel coordinates
+
+
+ +
+
+ +
+
+ + + + + + + +
QRectF getBoundingBox ()
+
+ +

Get current bounding box.

+
Returns
bounding box
+ +
+
+ +
+
+ + + + + + + +
QRectF getViewport ()
+
+ +

Get viewport rect.

+
Returns
view port rect
+ +

Referenced by MapControl::isGeometryVisible().

+ +
+
+ +
+
+ + + + + + + +
bool isBoundingBoxEnabled ()
+
+ +

Check if bounding box is being used.

+
Returns
if bounding box is being used
+ +
+
+ +
+
+ + + + + + + + +
bool isGeometryVisible (Geometrygeometry)
+
+ +

returns if a geometry is visible on viewport

+
Parameters
+ + +
geometrythe Geometry object to check
+
+
+
Returns
true if geometry is visible
+ +

References Geometry::boundingBox(), and MapControl::getViewport().

+ +
+
+ +
+
+ + + + + + + + +
Layer * layer (const QString & layername) const
+
+ +

returns the layer with the given name

+
Parameters
+ + +
layernamename of the wanted layer
+
+
+
Returns
the layer with the given name
+ +
+
+ +
+
+ + + + + + + +
QList< QString > layers () const
+
+ +

returns the names of all layers

+
Returns
returns a QList with the names of all layers
+ +
+
+ +
+
+ + + + + + + +
int loadingQueueSize ()
+
+ +

returns loading images queue size

+
Returns
int pending loading images (queue size)
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void mouseEventCoordinate (const QMouseEvent * evnt,
const QPointF coordinate 
)
+
+signal
+
+ +

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.

Parameters
+ + + +
evntthe QMouseEvent that occured
coordinatethe corresponding world coordinate
+
+
+ +
+
+ +
+
+ + + + + + + +
MapControl::MouseMode mouseMode ()
+
+ +

returns the current MouseMode

+

For a explanation for the MouseModes see setMouseMode()

Returns
the current MouseMode
+ +
+
+ +
+
+ + + + + + + +
bool mouseWheelEventsEnabled ()
+
+ +

returns mouse wheel allowed

+
Returns
mouse wheel events enabled
+ +
+
+ +
+
+ + + + + + + + +
void moveTo (QPointF coordinate)
+
+ +

Smoothly moves the center of the view to the given Coordinate.

+
Parameters
+ + +
coordinatethe Coordinate which the center of the view should moved to
+
+
+ +
+
+ +
+
+ + + + + + + +
int numberOfLayers () const
+
+ +

returns the number of existing layers

+
Returns
returns the number of existing layers
+ +
+
+ +
+
+ + + + + + + + +
void removeLayer (Layerlayer)
+
+ +

removes a layer

+

Removes a layer and redraws existing layers

Parameters
+ + +
layerthe layer which should be removed
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void resize (const QSize newSize)
+
+slot
+
+ +

Resizes the map to the given size.

+
Parameters
+ + +
newSizeThe new size
+
+
+ +

References MapControl::currentCoordinate(), MapControl::currentZoom(), and MapControl::viewChanged().

+ +
+
+ +
+
+ + + + + + + + +
void setBoundingBox (QRectF & rect)
+
+ +

Set constraints for bounding box.

+
Parameters
+ + +
rectspecified bounds for view to stay within
+
+
+ +
+
+ +
+
+ + + + + + + + +
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.

Parameters
+ + +
mousemodethe MouseMode
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void setProxy (QString host,
int port,
const QString username = QString(),
const QString password = QString() 
)
+
+ +

Sets the proxy for HTTP connections.

+

This method sets the proxy for HTTP connections. This is not provided by the current Qtopia version!

Parameters
+ + + + + +
hostthe proxy´s hostname or ip
portthe proxy´s port
usernamethe proxy´s username
passwordthe proxy´s password
+
+
+ +
+
+ +
+
+ + + + + + + + +
void setUseBoundingBox (bool usebounds)
+
+ +

Set whether to enable a view bounding box.

+
Parameters
+ + +
useboundsenable/disable use of bounding box
+
+
+ +
+
+ +
+
+ + + + + + + + +
void setView (const QPointF & coordinate) const
+
+ +

sets the middle of the map to the given coordinate

+
Parameters
+ + +
coordinatethe coordinate which the view´s middle should be set to
+
+
+ +

References MapControl::currentCoordinate(), MapControl::currentZoom(), and MapControl::viewChanged().

+ +
+
+ +
+
+ + + + + + + + +
void setView (const QList< QPointF > coordinates) const
+
+ +

sets the view, so all coordinates are visible

+
Parameters
+ + +
coordinatesthe Coorinates which should be visible
+
+
+ +

References MapControl::currentCoordinate(), MapControl::currentZoom(), and MapControl::viewChanged().

+ +
+
+ +
+
+ + + + + + + + +
void setView (const Pointpoint) const
+
+ +

sets the view to the given Point

+
Parameters
+ + +
pointthe geometric point the view should be set to
+
+
+ +

References Point::coordinate().

+ +
+
+ +
+
+ + + + + + + + +
void setViewAndZoomIn (const QList< QPointF > 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.

Parameters
+ + +
coordinatesthe Coorinates which should be visible
+
+
+ +

References MapControl::currentCoordinate(), MapControl::currentZoom(), and MapControl::viewChanged().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void setZoom (int zoomlevel)
+
+slot
+
+ +

sets the given zoomlevel

+
Parameters
+ + +
zoomlevelthe zoomlevel
+
+
+ +

References MapControl::currentCoordinate(), MapControl::currentZoom(), MapControl::updateView(), and MapControl::viewChanged().

+ +
+
+ +
+
+ + + + + + + + +
void showScale (bool visible)
+
+ +

Displays the scale within the widget.

+
Parameters
+ + +
showtrue if the scale should be displayed
+
+
+ +
+
+ +
+
+ + + + + + + + +
void stopFollowing (const Geometrygeometry) const
+
+ +

Stops the following of a Geometry.

+

if the view is set to follow a Geometry this method stops the trace. See followGeometry().

Parameters
+ + +
geometrythe Geometry which should not followed anymore
+
+
+ +

Referenced by MapControl::followGeometry().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void updateRequest (QRect rect)
+
+slot
+
+ +

updates the map for the given rect

+
Parameters
+ + +
rectthe area which should be repainted
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void viewChanged (const QPointF & coordinate,
int zoom 
) const
+
+signal
+
+ +

This signal is emitted, after the view have changed.

+
Parameters
+ + + +
coordinateThe current coordinate
zoomThe current zoom
+
+
+ +

Referenced by MapControl::resize(), MapControl::setView(), MapControl::setViewAndZoomIn(), MapControl::setZoom(), MapControl::updateView(), MapControl::zoomIn(), and MapControl::zoomOut().

+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/libs/QMapControl/html/classqmapcontrol_1_1MapControl.png b/libs/QMapControl/html/classqmapcontrol_1_1MapControl.png new file mode 100644 index 0000000000000000000000000000000000000000..92adaeaf8116c5893344b6db521c625678157f20 GIT binary patch literal 435 zcmV;k0ZjghP)vTJkN^MxkN^Mxkifve1&Q1r00008bW%=J0RR90|NsC0)yh;d0003(Nkl#jd25s~i|kIOmdFabQ# z1`wxM+_r`CVsSeyk{68otv{&Ti(U90QGag~RjX)rF&=`t?G$85jYnya@;o(5~6ovuTZHN(}~ zHnF+B!adGdt4oQ&jdd=aG!MJ!EI=#I=kjlH0B^N$06u;8 dYDy_Z=?9|w5n7vy{;&W5002ovPDHLkV1mpj!_5Ey literal 0 HcmV?d00001 diff --git a/libs/QMapControl/html/classqmapcontrol_1_1MapLayer-members.html b/libs/QMapControl/html/classqmapcontrol_1_1MapLayer-members.html new file mode 100644 index 00000000..29a52fa6 --- /dev/null +++ b/libs/QMapControl/html/classqmapcontrol_1_1MapLayer-members.html @@ -0,0 +1,83 @@ + + + + + + +QMapControl: Member List + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + + +
+
+
+
MapLayer Member List
+
+
+ +

This is the complete list of members for MapLayer, including all inherited members.

+ + + + + + + + + + + + + + + + + + + +
addGeometry(Geometry *geometry)Layer
clearGeometries(bool qDeleteObject=false)Layer
containsGeometry(Geometry *geometry)Layer
geometryClicked(Geometry *geometry, QPoint point)Layersignal
GeometryLayer enum valueLayer
getGeometries()Layer
isVisible() const Layer
Layer(QString layername, MapAdapter *mapadapter, enum LayerType layertype, bool takeevents=true)Layer
layername() const Layer
LayerType enum nameLayer
layertype() const Layer
mapadapter()Layer
MapLayer(QString layername, MapAdapter *mapadapter, bool takeevents=true)MapLayer
qmapcontrol::Layer::MapLayer enum valueLayer
removeGeometry(Geometry *geometry, bool qDeleteObject=false)Layer
sendGeometryToBack(Geometry *geometry)Layer
sendGeometryToFront(Geometry *geometry)Layer
setVisible(bool visible)Layerslot
+ + + + diff --git a/libs/QMapControl/html/classqmapcontrol_1_1MapLayer.html b/libs/QMapControl/html/classqmapcontrol_1_1MapLayer.html new file mode 100644 index 00000000..31d58758 --- /dev/null +++ b/libs/QMapControl/html/classqmapcontrol_1_1MapLayer.html @@ -0,0 +1,629 @@ + + + + + + +QMapControl: MapLayer Class Reference + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + + +
+
+ +
+
MapLayer Class Reference
+
+
+ +

MapLayer class. + More...

+ +

#include <maplayer.h>

+
+Inheritance diagram for MapLayer:
+
+
+ + +Layer +QObject + +
+ + + + + +

+Public Types

enum  LayerType { MapLayer, +GeometryLayer + }
 sets the type of a layer, see Layer class doc for further information More...
 
+ + + + +

+Public Slots

void setVisible (bool visible)
 if visible is true, the layer is made visible More...
 
+ + + + +

+Signals

void geometryClicked (Geometry *geometry, QPoint point)
 This signal is emitted when a Geometry is clicked. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

void addGeometry (Geometry *geometry)
 adds a Geometry object to this Layer More...
 
void clearGeometries (bool qDeleteObject=false)
 removes all Geometry objects from this Layer More...
 
bool containsGeometry (Geometry *geometry)
 returns true if Layer contains geometry More...
 
QList< Geometry * > & getGeometries ()
 returns all Geometry objects from this Layer More...
 
bool isVisible () const
 return true if the layer is visible More...
 
QString layername () const
 returns the layer's name More...
 
Layer::LayerType layertype () const
 returns the LayerType of the Layer More...
 
MapAdaptermapadapter ()
 returns the layer´s MapAdapter More...
 
 MapLayer (QString layername, MapAdapter *mapadapter, bool takeevents=true)
 MapLayer constructor. More...
 
void removeGeometry (Geometry *geometry, bool qDeleteObject=false)
 removes the Geometry object from this Layer More...
 
void sendGeometryToBack (Geometry *geometry)
 allow moving a geometry to the top of the list (drawing last) More...
 
void sendGeometryToFront (Geometry *geometry)
 allow moving a geometry to the top of the list (drawing last) More...
 
+

Detailed Description

+

MapLayer class.

+

There are two different layer types:

+

MapLayers also can display Geometry objects. The difference to the GeometryLayer is the repainting. Objects that are added to a MapLayer are "baken" on the map. This means, when you change it´s position for example the changes are not visible until a new offscreen image has been drawn. If you have "static" Geometries which won´t change their position this is fine. But if you want to change the objects position or pen you should use a GeometryLayer. Those are repainted immediately on changes.

+
Author
Kai Winter kaiwi.nosp@m.nter.nosp@m.@gmx..nosp@m.de
+

Member Enumeration Documentation

+ +
+
+ + + + + +
+ + + + +
enum LayerType
+
+inherited
+
+ +

sets the type of a layer, see Layer class doc for further information

+ + + +
Enumerator
MapLayer  +

uses the MapAdapter to display maps, only gets refreshed when a new offscreen image is needed

+
GeometryLayer  +

gets refreshed everytime when a geometry changes

+
+ +
+
+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
MapLayer (QString layername,
MapAdaptermapadapter,
bool takeevents = true 
)
+
+ +

MapLayer constructor.

+

This is used to construct a map layer.

+
Parameters
+ + + + +
layernameThe name of the Layer
mapadapterThe MapAdapter which does coordinate translation and Query-String-Forming
takeeventsShould the Layer receive MouseEvents? This is set to true by default. Setting it to false could be something like a "speed up hint"
+
+
+ +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + +
void addGeometry (Geometrygeometry)
+
+inherited
+
+ +

adds a Geometry object to this Layer

+

Please notice the different LayerTypes (MapLayer and GeometryLayer) and the differences

Parameters
+ + +
geometrythe new Geometry
+
+
+ +

References Geometry::boundingBox(), and Layer::containsGeometry().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void clearGeometries (bool qDeleteObject = false)
+
+inherited
+
+ +

removes all Geometry objects from this Layer

+

This method removes all Geometry objects from this Layer. NOTE: this method does not delete the object unless qDeleteObject is set

Parameters
+ + +
qDeleteObjectcleans up memory of object after removal
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
bool containsGeometry (Geometrygeometry)
+
+inherited
+
+ +

returns true if Layer contains geometry

+

This method returns if a Geometry objects is on this Layer.

+ +

Referenced by Layer::addGeometry().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void geometryClicked (Geometrygeometry,
QPoint point 
)
+
+signalinherited
+
+ +

This signal is emitted when a Geometry is clicked.

+

A Geometry is clickable, if the containing layer is clickable. The layer emits a signal for every clicked geometry

Parameters
+ + + +
geometryThe clicked Geometry
pointThe coordinate (in widget coordinates) of the click
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QList< Geometry * > & getGeometries ()
+
+inherited
+
+ +

returns all Geometry objects from this Layer

+

This method removes all Geometry objects from this Layer.

Returns
a list of geometries that are on this Layer
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
bool isVisible () const
+
+inherited
+
+ +

return true if the layer is visible

+
Returns
if the layer is visible
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QString layername () const
+
+inherited
+
+ +

returns the layer's name

+
Returns
the name of this layer
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
Layer::LayerType layertype () const
+
+inherited
+
+ +

returns the LayerType of the Layer

+

There are two LayerTypes: MapLayer and GeometryLayer

Returns
the LayerType of this Layer
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
MapAdapter * mapadapter ()
+
+inherited
+
+ +

returns the layer´s MapAdapter

+

This method returns the MapAdapter of this Layer, which can be useful to do coordinate transformations.

Returns
the MapAdapter which us used by this Layer
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void removeGeometry (Geometrygeometry,
bool qDeleteObject = false 
)
+
+inherited
+
+ +

removes the Geometry object from this Layer

+

This method removes a Geometry object from this Layer. NOTE: this method does not delete the object unless qDeleteObject is set

Parameters
+ + +
qDeleteObjectcleans up memory of object after removal
+
+
+ +

References Geometry::boundingBox().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void sendGeometryToBack (Geometrygeometry)
+
+inherited
+
+ +

allow moving a geometry to the top of the list (drawing last)

+

This method re-order the Geometry objects so the desired geometry is drawn first and under all other geometries

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void sendGeometryToFront (Geometrygeometry)
+
+inherited
+
+ +

allow moving a geometry to the top of the list (drawing last)

+

This method re-order the Geometry objects so the desired geometry is drawn last and visible above all geometries

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void setVisible (bool visible)
+
+slotinherited
+
+ +

if visible is true, the layer is made visible

+
Parameters
+ + +
visibleif the layer should be visible
+
+
+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/libs/QMapControl/html/classqmapcontrol_1_1MapLayer.png b/libs/QMapControl/html/classqmapcontrol_1_1MapLayer.png new file mode 100644 index 0000000000000000000000000000000000000000..400c95ad3dd190b9e586f49f4fe76912f7d52535 GIT binary patch literal 572 zcmeAS@N?(olHy`uVBq!ia0vp^Zb00@!3-pGg>s94lth3}i0l9V|AEXGZ@!lHADRGU zf$@O@2Ut7r$OE|?B|(0{3_wL7aP?G(5d#C`X-^l&kP61Pb6@AZQQ%=~KOc1O|3rVi z7M5!!E(_*O^|~F&B<;`hE$@F)+BJSP&%HjqDnF;p+VJm5`16pUZ_{-}W@#JjtvOlIm_x*pzowX7i3|{OdOrnw+1#%gN5<_{!~>+YYZt57vxzUV3l7@0)3x z<480JGM`_+cVuh}OriCgA2sV2sE!jkYmZE7uVwKkr==KWmLJ~OGtZjG6z zR>iF;izhCbwA@$rW1)X$|D-7wH>|9XI;rca`rbr;v*qXb`1L13G(EL4UOjqlmvzyk zB)NIn(&f*;13lVvdB)6A<_|~0|9+00rZ~@V)>WfJ#vY$jr_PdU;0k7bU~I}@2c_!6 zgq=A43NTcG9Js_XSN__v<1w?6dkzbny~h4K`uK!j+UM3q2mQzmHZ-}r>#jt4c#YkX zC$_#lyIf;_Ynz@Ej9>XiQ+(EzihCcI{5bP0l+XkK D5_|^E literal 0 HcmV?d00001 diff --git a/libs/QMapControl/html/classqmapcontrol_1_1MapNetwork-members.html b/libs/QMapControl/html/classqmapcontrol_1_1MapNetwork-members.html new file mode 100644 index 00000000..56aa72a0 --- /dev/null +++ b/libs/QMapControl/html/classqmapcontrol_1_1MapNetwork-members.html @@ -0,0 +1,69 @@ + + + + + + +QMapControl: Member List + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + + +
+
+
+
MapNetwork Member List
+
+
+ +

This is the complete list of members for MapNetwork, including all inherited members.

+ + + + + +
abortLoading()MapNetwork
imageIsLoading(QString url)MapNetwork
loadQueueSize() const MapNetwork
nextFreeHttp()MapNetwork
+ + + + diff --git a/libs/QMapControl/html/classqmapcontrol_1_1MapNetwork.html b/libs/QMapControl/html/classqmapcontrol_1_1MapNetwork.html new file mode 100644 index 00000000..08578149 --- /dev/null +++ b/libs/QMapControl/html/classqmapcontrol_1_1MapNetwork.html @@ -0,0 +1,162 @@ + + + + + + +QMapControl: MapNetwork Class Reference + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + + +
+
+ +
+
MapNetwork Class Reference
+
+
+
+Inheritance diagram for MapNetwork:
+
+
+ + +QObject + +
+ + + + + + + + + + +

+Public Member Functions

void abortLoading ()
 
bool imageIsLoading (QString url)
 
int loadQueueSize () const
 
QNetworkAccessManager * nextFreeHttp ()
 
+

Member Function Documentation

+ +
+
+ + + + + + + +
void abortLoading ()
+
+

Aborts all current loading threads. This is useful when changing the zoom-factor, though newly needed images loads faster

+ +
+
+ +
+
+ + + + + + + + +
bool imageIsLoading (QString url)
+
+

checks if the given url is already loading

Parameters
+ + +
urlthe url of the image
+
+
+
Returns
boolean, if the image is already loading
+ +
+
+ +
+
+ + + + + + + +
int loadQueueSize () const
+
+
Returns
number of elements in the load queue
+ +
+
+ +
+
+ + + + + + + +
QNetworkAccessManager * nextFreeHttp ()
+
+
Returns
next free http downloader thread
+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/libs/QMapControl/html/classqmapcontrol_1_1MapNetwork.png b/libs/QMapControl/html/classqmapcontrol_1_1MapNetwork.png new file mode 100644 index 0000000000000000000000000000000000000000..efecd01df47cd0c649160a0b45a8179d62a6eebe GIT binary patch literal 458 zcmV;*0X6=KP)vTJkN^MxkN^Mxkifve1&Q1r00008bW%=J0RR90|NsC0)yh;d00045NklZ-|9RrS+=DX-7= zsw`D?GrGWt*(mkT!P!g9=E+_~zfsxwI@Nq`G1Dr?wv(#balz*S^J4Dpe8)^>yTM!^ z;MnJzMz~V<51(i5%2M58`>5_Is;XvOeUCB$oX5Rs_LkRm?4DVD}Zxa0G#yz zb6NbM4=`UycjyyL0Dt`tm(wSJr>0K;KTV$iewsc3{4{+6_~{3IiikK10dUo10{E#i z3%a{S3bgRZgWXY>`E1XOk&l^ci^YHCDW8bp*nfFlcE&yHs>{6s>i#s + + + + + +QMapControl: Member List + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + + +
+
+
+
OSMMapAdapter Member List
+
+
+ +

This is the complete list of members for OSMMapAdapter, including all inherited members.

+ + + + + + + + + + + + +
changeHostAddress(const QString qHost, const QString qServerPath=QString())MapAdaptervirtual
coordinateToDisplay(const QPointF &) const TileMapAdaptervirtual
currentZoom() const MapAdapter
displayToCoordinate(const QPoint &) const TileMapAdaptervirtual
host() const MapAdapter
maxZoom() const MapAdapter
minZoom() const MapAdapter
OSMMapAdapter()OSMMapAdapter
serverPath() const MapAdaptervirtual
TileMapAdapter(const QString &host, const QString &serverPath, int tilesize, int minZoom=0, int maxZoom=17)TileMapAdapter
tilesize() const MapAdapter
+ + + + diff --git a/libs/QMapControl/html/classqmapcontrol_1_1OSMMapAdapter.html b/libs/QMapControl/html/classqmapcontrol_1_1OSMMapAdapter.html new file mode 100644 index 00000000..a0c0e857 --- /dev/null +++ b/libs/QMapControl/html/classqmapcontrol_1_1OSMMapAdapter.html @@ -0,0 +1,421 @@ + + + + + + +QMapControl: OSMMapAdapter Class Reference + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + + +
+
+ +
+
OSMMapAdapter Class Reference
+
+
+ +

MapAdapter for OpenStreetMap. + More...

+ +

#include <osmmapadapter.h>

+
+Inheritance diagram for OSMMapAdapter:
+
+
+ + +TileMapAdapter +MapAdapter +QObject + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual void changeHostAddress (const QString qHost, const QString qServerPath=QString())
 change or update server host address post init More...
 
virtual QPoint coordinateToDisplay (const QPointF &) const
 translates a world coordinate to display coordinate More...
 
int currentZoom () const
 returns the current zoom More...
 
virtual QPointF displayToCoordinate (const QPoint &) const
 translates display coordinate to world coordinate More...
 
QString host () const
 returns the host of this MapAdapter More...
 
int maxZoom () const
 returns the max zoom value More...
 
int minZoom () const
 returns the min zoom value More...
 
 OSMMapAdapter ()
 constructor More...
 
virtual QString serverPath () const
 returns the server path part of this MapAdapter More...
 
int tilesize () const
 returns the size of the tiles More...
 
+

Detailed Description

+

MapAdapter for OpenStreetMap.

+

This is a conveniece class, which extends and configures a TileMapAdapter

Author
Kai Winter kaiwi.nosp@m.nter.nosp@m.@gmx..nosp@m.de
+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + +
OSMMapAdapter ()
+
+ +

constructor

+

This construct a OpenStreetmap Adapter

+ +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void changeHostAddress (const QString qHost,
const QString qServerPath = QString() 
)
+
+virtualinherited
+
+ +

change or update server host address post init

+
Parameters
+ + + +
hostthe host address
serverPaththe server path
+
+
+ +

Reimplemented in WMSMapAdapter.

+ +

Referenced by WMSMapAdapter::changeHostAddress().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
QPoint coordinateToDisplay (const QPointF & coordinate) const
+
+virtualinherited
+
+ +

translates a world coordinate to display coordinate

+

The calculations also needs the current zoom. The current zoom is managed by the MapAdapter, so this is no problem. To divide model from view the current zoom should be moved to the layers.

Parameters
+ + +
coordinatethe world coordinate
+
+
+
Returns
the display coordinate (in widget coordinates)
+ +

Implements MapAdapter.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
int currentZoom () const
+
+inherited
+
+ +

returns the current zoom

+
Returns
the current zoom
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
QPointF displayToCoordinate (const QPoint & point) const
+
+virtualinherited
+
+ +

translates display coordinate to world coordinate

+

The calculations also needs the current zoom. The current zoom is managed by the MapAdapter, so this is no problem. To divide model from view the current zoom should be moved to the layers.

Parameters
+ + +
pointthe display coordinate
+
+
+
Returns
the world coordinate
+ +

Implements MapAdapter.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QString host () const
+
+inherited
+
+ +

returns the host of this MapAdapter

+
Returns
the host of this MapAdapter
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
int maxZoom () const
+
+inherited
+
+ +

returns the max zoom value

+
Returns
the max zoom value
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
int minZoom () const
+
+inherited
+
+ +

returns the min zoom value

+
Returns
the min zoom value
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QString serverPath () const
+
+virtualinherited
+
+ +

returns the server path part of this MapAdapter

+
Returns
the serverpath of this MapAdapter
+ +

Reimplemented in WMSMapAdapter.

+ +

Referenced by WMSMapAdapter::serverPath().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
int tilesize () const
+
+inherited
+
+ +

returns the size of the tiles

+
Returns
the size of the tiles
+ +

Referenced by WMSMapAdapter::changeHostAddress().

+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/libs/QMapControl/html/classqmapcontrol_1_1OSMMapAdapter.png b/libs/QMapControl/html/classqmapcontrol_1_1OSMMapAdapter.png new file mode 100644 index 0000000000000000000000000000000000000000..be67e8d811d08f2b2cce3121e24841cd6264d757 GIT binary patch literal 959 zcmeAS@N?(olHy`uVBq!ia0vp^`9OStgBeKL2A<6XQW60^A+G=b{|7Q(y!l$%e`o@b z1;z&s9ANFdBM;(m4@&Wr!Ndkp4 zLmx{;uQ!DktxVTEzhutGWQ$h{p3b$WZr7zoTYFquYIiRGfbp92&buGCi5We!<$Ghb ze|Fo{D>3uGJ(suH|L4lv*d5EQU!6azCEjq#f_6Iwez$J%-&!BzWg%-&r=%)YfJtEe&?7sO#aO9<_VlDp>a$? zy-UOM@)H}+O_$>jaW5}?B3Zxpc@3NJr)yrM+UPaL}`)c2d%2aGGlB)v> zS*~xn)y`cUS$EmW{QP0f5ZOHcr|1txr==1O2#t zlF2=j`#fK_y{ou=w(@J>6A?GAtdN(_dfJB4bMKmQ(AzfIKpWLWAc-iy_*|NQ|*+^dUKM_=1` z8cq4Ea?&sU!BL6FHjFikSQ8eheV&%8S74NX)R*<#v%kOomB=+LoWq`={+#i~$x4Q@ zBDsdS2rhH0z#$hw24GraDEpZ`vktJJ%-an19s6EBq;+fKUQeQ`F>f5k`MS5_-I$Az{q z%(+_O|9V|zYU$RCf8VY3Ilj-kxb)uIIm@3(&%dv_zC|nD)@1tAT)FFiBV~Qfb=5 + + + + + +QMapControl: Member List + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + + +
+
+
+
OpenAerialMapAdapter Member List
+
+
+ +

This is the complete list of members for OpenAerialMapAdapter, including all inherited members.

+ + + + + + + + + + + + +
changeHostAddress(const QString qHost, const QString qServerPath=QString())MapAdaptervirtual
coordinateToDisplay(const QPointF &) const TileMapAdaptervirtual
currentZoom() const MapAdapter
displayToCoordinate(const QPoint &) const TileMapAdaptervirtual
host() const MapAdapter
maxZoom() const MapAdapter
minZoom() const MapAdapter
OpenAerialMapAdapter()OpenAerialMapAdapter
serverPath() const MapAdaptervirtual
TileMapAdapter(const QString &host, const QString &serverPath, int tilesize, int minZoom=0, int maxZoom=17)TileMapAdapter
tilesize() const MapAdapter
+ + + + diff --git a/libs/QMapControl/html/classqmapcontrol_1_1OpenAerialMapAdapter.html b/libs/QMapControl/html/classqmapcontrol_1_1OpenAerialMapAdapter.html new file mode 100644 index 00000000..c66e4107 --- /dev/null +++ b/libs/QMapControl/html/classqmapcontrol_1_1OpenAerialMapAdapter.html @@ -0,0 +1,421 @@ + + + + + + +QMapControl: OpenAerialMapAdapter Class Reference + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + + +
+
+ +
+
OpenAerialMapAdapter Class Reference
+
+
+ +

MapAdapter for OpenStreetMap. + More...

+ +

#include <openaerialmapadapter.h>

+
+Inheritance diagram for OpenAerialMapAdapter:
+
+
+ + +TileMapAdapter +MapAdapter +QObject + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual void changeHostAddress (const QString qHost, const QString qServerPath=QString())
 change or update server host address post init More...
 
virtual QPoint coordinateToDisplay (const QPointF &) const
 translates a world coordinate to display coordinate More...
 
int currentZoom () const
 returns the current zoom More...
 
virtual QPointF displayToCoordinate (const QPoint &) const
 translates display coordinate to world coordinate More...
 
QString host () const
 returns the host of this MapAdapter More...
 
int maxZoom () const
 returns the max zoom value More...
 
int minZoom () const
 returns the min zoom value More...
 
 OpenAerialMapAdapter ()
 constructor More...
 
virtual QString serverPath () const
 returns the server path part of this MapAdapter More...
 
int tilesize () const
 returns the size of the tiles More...
 
+

Detailed Description

+

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 kaiwi.nosp@m.nter.nosp@m.@gmx..nosp@m.de
+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + +
OpenAerialMapAdapter ()
+
+ +

constructor

+

This construct a OpenAerialMap Adapter

+ +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void changeHostAddress (const QString qHost,
const QString qServerPath = QString() 
)
+
+virtualinherited
+
+ +

change or update server host address post init

+
Parameters
+ + + +
hostthe host address
serverPaththe server path
+
+
+ +

Reimplemented in WMSMapAdapter.

+ +

Referenced by WMSMapAdapter::changeHostAddress().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
QPoint coordinateToDisplay (const QPointF & coordinate) const
+
+virtualinherited
+
+ +

translates a world coordinate to display coordinate

+

The calculations also needs the current zoom. The current zoom is managed by the MapAdapter, so this is no problem. To divide model from view the current zoom should be moved to the layers.

Parameters
+ + +
coordinatethe world coordinate
+
+
+
Returns
the display coordinate (in widget coordinates)
+ +

Implements MapAdapter.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
int currentZoom () const
+
+inherited
+
+ +

returns the current zoom

+
Returns
the current zoom
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
QPointF displayToCoordinate (const QPoint & point) const
+
+virtualinherited
+
+ +

translates display coordinate to world coordinate

+

The calculations also needs the current zoom. The current zoom is managed by the MapAdapter, so this is no problem. To divide model from view the current zoom should be moved to the layers.

Parameters
+ + +
pointthe display coordinate
+
+
+
Returns
the world coordinate
+ +

Implements MapAdapter.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QString host () const
+
+inherited
+
+ +

returns the host of this MapAdapter

+
Returns
the host of this MapAdapter
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
int maxZoom () const
+
+inherited
+
+ +

returns the max zoom value

+
Returns
the max zoom value
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
int minZoom () const
+
+inherited
+
+ +

returns the min zoom value

+
Returns
the min zoom value
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QString serverPath () const
+
+virtualinherited
+
+ +

returns the server path part of this MapAdapter

+
Returns
the serverpath of this MapAdapter
+ +

Reimplemented in WMSMapAdapter.

+ +

Referenced by WMSMapAdapter::serverPath().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
int tilesize () const
+
+inherited
+
+ +

returns the size of the tiles

+
Returns
the size of the tiles
+ +

Referenced by WMSMapAdapter::changeHostAddress().

+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/libs/QMapControl/html/classqmapcontrol_1_1OpenAerialMapAdapter.png b/libs/QMapControl/html/classqmapcontrol_1_1OpenAerialMapAdapter.png new file mode 100644 index 0000000000000000000000000000000000000000..32d0ab79409e90b8aef30d298e2eba4e82936b1e GIT binary patch literal 1114 zcmeAS@N?(olHy`uVBq!ia0vp^lY#gE2Q!c~S6o;Jq$C1-LR|m<{|{uoc=NTi|Ih>= z3ycpOIKbL@M;^%KC<*clW&kPzfvcxNj2IZ0UwXPYhEy=Vo%^Tb?UmysXMD9K5Kf4SDwq<=e=>)geB$`2L8Ou`OnA7)jv1U{~cdY zrMuv<&DjPkiCO%6WOkaLIgz%c^UzB`)e z9=fTSb1E!$@wTfmlg{mUXYzd>m*-F6Pbc<27kT#Hbefx7{`RexzshJ_Red?b{Fz>_ z$^PFaQ$#`nTP~&Ee3o_YoyAg1&Ph=rTW6O|O8In7>b&Qy6NUoD9@;rI7YSI$zJB72%E`6Eb?$uopAN|hSbJqd>b00q& zzLW8Jr{X#N=jHteCw)=8<2fnEsx_I)t>;X|C z{0&s{?DX8Eo{h#GldgyYjW+|~=YEO*f+h5e3xdP=P1gC%^1dWz>|fn{aifOH)AK3+ z6_-z09)2ooxkzMk<`c`Up>IoU*}Y0VZ++^!Y~%2%aPEan4b2scIF_E?bhh$b-LsHq z0YNtcuIAnHyu_Gq>HE6&s@LY=z5k7(dvD!2xY+OL>U^W{E9Qqo+5N4r8gGa;boDxS zZL*4Nar*tMn~hc1&X}~NwTh1vkl(bqi z-q<1B;QP>IZAAm~x2cv!ak}Pf?N+rpe9SaC?-yLDR66V8^vf}KtJZ%y+W4yYnvHmJ z#<$sBPxEqTZu+@v?yKO{r(S-z_-bOfVXSzpoaI^JKpxQs+0xZZm%se|ZBYun%aSLfzDGo2r=w6sREyJBf5>udMz{W|@kU(4ooE!n>9`nO#1 z<+aQD)fa3`mj0c$Jt#_cd-Xk*(~8rl%vrnq@#oCl?_c$ORy(=<>7jK^N2e^=e)syc z-|s$LseF@Q|Ng~}Yjg9g8UJX#V@Y`I$6&U8vUZEWu1E5Q8BrcS0*9vq3jzjDS3j3^ HP6 + + + + + +QMapControl: Member List + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + + +
+
+
+
Point Member List
+
+
+ +

This is the complete list of members for Point, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Alignment enum namePoint
BottomLeft enum valuePoint
BottomMiddle enum valuePoint
BottomRight enum valuePoint
boundingBox()Pointvirtual
coordinate() const Point
Equals(Geometry *geom)Geometry
geometryClicked(Geometry *geometry, QPoint point)Geometrysignal
isVisible() const Geometry
latitude() const Point
longitude() const Point
Middle enum valuePoint
name() const Geometry
parentGeometry() const Geometry
pen() const Geometry
pixmap()Point
Point(qreal x, qreal y, QString name=QString(), enum Alignment alignment=Middle)Point
Point(qreal x, qreal y, QWidget *widget, QString name=QString(), enum Alignment alignment=Middle)Point
Point(qreal x, qreal y, QPixmap pixmap, QString name=QString(), enum Alignment alignment=Middle)Point
positionChanged(Geometry *geom)Geometrysignal
setBaselevel(int zoomlevel)Point
setMaxsize(QSize maxsize)Point
setMinsize(QSize minsize)Point
setName(QString name)Geometry
TopLeft enum valuePoint
TopMiddle enum valuePoint
TopRight enum valuePoint
toString()Geometry
Touches(Point *click, const MapAdapter *mapadapter)Pointprotectedvirtual
widget()Point
+ + + + diff --git a/libs/QMapControl/html/classqmapcontrol_1_1Point.html b/libs/QMapControl/html/classqmapcontrol_1_1Point.html new file mode 100644 index 00000000..9df7a7e2 --- /dev/null +++ b/libs/QMapControl/html/classqmapcontrol_1_1Point.html @@ -0,0 +1,921 @@ + + + + + + +QMapControl: Point Class Reference + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + + +
+ +
+ +

A geometric point to draw objects into maps. + More...

+ +

#include <point.h>

+
+Inheritance diagram for Point:
+
+
+ + +Geometry +QObject +ArrowPoint +CirclePoint +ImagePoint +InvisiblePoint +FixedImageOverlay + +
+ + + + + +

+Public Types

enum  Alignment {
+  TopLeft, +TopRight, +TopMiddle, +BottomLeft, +
+  BottomRight, +BottomMiddle, +Middle +
+ }
 sets where the point should be aligned More...
 
+ + + + + + + +

+Signals

void geometryClicked (Geometry *geometry, QPoint point)
 This signal is emitted when a Geometry is clicked. More...
 
void positionChanged (Geometry *geom)
 A Geometry emits this signal, when its position gets changed. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual QRectF boundingBox ()
 returns the bounding box of the point More...
 
QPointF coordinate () const
 returns the coordinate of the point More...
 
bool Equals (Geometry *geom)
 
bool isVisible () const
 returns true if this Geometry is visible More...
 
qreal latitude () const
 returns the latitude of the point More...
 
qreal longitude () const
 returns the longitude of the point More...
 
QString name () const
 returns the name of this Geometry More...
 
GeometryparentGeometry () const
 returns the parent Geometry of this Geometry More...
 
QPen * pen () const
 returns the QPen which is used on drawing More...
 
QPixmap pixmap ()
 returns the pixmap of the point More...
 
 Point (qreal x, qreal y, QString name=QString(), enum Alignment alignment=Middle)
 Copy Constructor. More...
 
 Point (qreal x, qreal y, QWidget *widget, QString name=QString(), enum Alignment alignment=Middle)
 Constructor. More...
 
 Point (qreal x, qreal y, QPixmap pixmap, QString name=QString(), enum Alignment alignment=Middle)
 Constructor. More...
 
void setBaselevel (int zoomlevel)
 Sets the zoom level on which the points pixmap gets displayed on full size. More...
 
void setMaxsize (QSize maxsize)
 sets a maximal size for the pixmap More...
 
void setMinsize (QSize minsize)
 sets a minimal size for the pixmap More...
 
void setName (QString name)
 sets the name of the geometry More...
 
QString toString ()
 returns a String representation of this Geometry More...
 
QWidgetwidget ()
 returns the widget of the point More...
 
+ + + + +

+Protected Member Functions

virtual bool Touches (Point *click, const MapAdapter *mapadapter)
 returns true if the given Point touches this Point More...
 
+

Detailed Description

+

A geometric point to draw objects into maps.

+

This class can be used to draw your custom QPixmap or other QWidgets into maps. You can instantiate a Point with any Pixmap you want. The objects cares about collision detection (for clickable objects)

+

When drawing a pixmap, take care you are adding the point to a GeometryLayer. You can also add a point to a MapLayer, but this should only be done, if the point is not changing its position or color etc. (GeometryLayers are assured to be repainted on any changes at the point. MapLayers only gets repainted, if a new offscreenImage is painter. This is a performance issue.)

+

Points emit click events, if the containing layer receives clickevents (the default)

+

You can also add a widget into maps. But keep in mind, that widgets always are drawn on top of all layers. You also have to handle click events yourself.

+

To create "zoomable objects" (objects that increases size on zooming), a base level have to be set. The base level is the zoom level on which the point´s pixmap gets displayed on full size. On lower zoom levels it gets displayed smaller and on higher zoom levels larger. A minimal size can be set as well as a maximum size.

See also
setBaselevel, setMinsize, setMaxsize
+
Author
Kai Winter kaiwi.nosp@m.nter.nosp@m.@gmx..nosp@m.de
+

Member Enumeration Documentation

+ +
+
+ + + + +
enum Alignment
+
+ +

sets where the point should be aligned

+ + + + + + + + +
Enumerator
TopLeft  +

Align on TopLeft

+
TopRight  +

Align on TopRight

+
TopMiddle  +

Align on TopLeft

+
BottomLeft  +

Align on BottomLeft

+
BottomRight  +

Align on BottomRight

+
BottomMiddle  +

Align on BottomMiddle

+
Middle  +

Align on Middle

+
+ +
+
+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Point (qreal x,
qreal y,
QString name = QString(),
enum Alignment alignment = Middle 
)
+
+ +

Copy Constructor.

+

This constructor creates a Point with no image or widget.

Parameters
+ + + + + +
xlongitude
ylatitude
namename of the point
alignmentalignment of the point (Middle or TopLeft)
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Point (qreal x,
qreal y,
QWidgetwidget,
QString name = QString(),
enum Alignment alignment = Middle 
)
+
+ +

Constructor.

+

This constructor creates a point which will display the given widget. You can set an alignment on which corner the widget should be aligned to the coordinate. You have to set the size of the widget, before adding it to IMPORTANT: You have to set the QMapControl as parent for the widget!

Parameters
+ + + + + + +
xlongitude
ylatitude
widgetthe widget which should be displayed by this point
namename of the point
alignmentallignment of the point (Middle or TopLeft)
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Point (qreal x,
qreal y,
QPixmap pixmap,
QString name = QString(),
enum Alignment alignment = Middle 
)
+
+ +

Constructor.

+

This constructor creates a point which will display the give pixmap. You can set an alignment on which corner the pixmap should be aligned to the coordinate.

Parameters
+ + + + + + +
xlongitude
ylatitude
pixmapthe pixmap which should be displayed by this point
namename of the point
alignmentallignment of the point (Middle or TopLeft)
+
+
+ +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + +
QRectF boundingBox ()
+
+virtual
+
+ +

returns the bounding box of the point

+

The Bounding contains the coordinate of the point and its size. The size is set, if the point contains a pixmap or a widget

Returns
the bounding box of the point
+ +

Implements Geometry.

+ +

References Point::latitude(), and Point::longitude().

+ +
+
+ +
+
+ + + + + + + +
QPointF coordinate () const
+
+ +

returns the coordinate of the point

+

The x component of the returned QPointF is the longitude value, the y component the latitude

Returns
the coordinate of a point
+ +

Referenced by MapControl::setView(), and Point::Touches().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
bool Equals (Geometrygeom)
+
+inherited
+
+

returns true if the given Geometry is equal to this Geometry not implemented yet!

Parameters
+ + +
geomThe Geometry to be tested
+
+
+
Returns
true if the given Geometry is equal to this
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void geometryClicked (Geometrygeometry,
QPoint point 
)
+
+signalinherited
+
+ +

This signal is emitted when a Geometry is clicked.

+

A Geometry is clickable, if the containing layer is clickable. The objects emits a signal if it gets clicked

Parameters
+ + + +
geometryThe clicked Geometry
point-unused-
+
+
+ +

Referenced by Point::Touches().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
bool isVisible () const
+
+inherited
+
+ +

returns true if this Geometry is visible

+
Returns
true if this Geometry is visible
+ +

Referenced by Point::Touches().

+ +
+
+ +
+
+ + + + + + + +
qreal latitude () const
+
+ +

returns the latitude of the point

+
Returns
the latitude of the point
+ +

Referenced by LineString::boundingBox(), and Point::boundingBox().

+ +
+
+ +
+
+ + + + + + + +
qreal longitude () const
+
+ +

returns the longitude of the point

+
Returns
the longitude of the point
+ +

Referenced by LineString::boundingBox(), and Point::boundingBox().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QString name () const
+
+inherited
+
+ +

returns the name of this Geometry

+
Returns
the name of this Geometry
+ +

Referenced by Geometry::setName().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
Geometry * parentGeometry () const
+
+inherited
+
+ +

returns the parent Geometry of this Geometry

+

A LineString is a composition of many Points. This methods returns the parent (the LineString) of a Point

Returns
the parent Geometry of this Geometry
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QPen * pen () const
+
+inherited
+
+ +

returns the QPen which is used on drawing

+

The pen is set depending on the Geometry. A CirclePoint for example takes one with the constructor.

Returns
the QPen which is used for drawing
+ +

Referenced by ArrowPoint::ArrowPoint(), CirclePoint::CirclePoint(), LineString::LineString(), ArrowPoint::setPen(), and CirclePoint::setPen().

+ +
+
+ +
+
+ + + + + + + +
QPixmap pixmap ()
+
+ +

returns the pixmap of the point

+
Returns
the pixmap of the point
+ +

Referenced by FixedImageOverlay::FixedImageOverlay(), and ImagePoint::ImagePoint().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void positionChanged (Geometrygeom)
+
+signalinherited
+
+ +

A Geometry emits this signal, when its position gets changed.

+
Parameters
+ + +
geomthe Geometry
+
+
+ +
+
+ +
+
+ + + + + + + + +
void setBaselevel (int zoomlevel)
+
+ +

Sets the zoom level on which the points 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

See also
setMinsize, setMaxsize
+
Parameters
+ + +
zoomlevelthe zoomlevel on which the point will be displayed on full size
+
+
+ +
+
+ +
+
+ + + + + + + + +
void setMaxsize (QSize maxsize)
+
+ +

sets a maximal size for the pixmap

+

When the point´s pixmap should change its size on zooming, this method sets the maximal size.

See also
setBaselevel
+
Parameters
+ + +
maxsizethe maximal size which the pixmap should have
+
+
+ +
+
+ +
+
+ + + + + + + + +
void setMinsize (QSize minsize)
+
+ +

sets a minimal size for the pixmap

+

When the point's pixmap should change its size on zooming, this method sets the minimal size.

See also
setBaselevel
+
Parameters
+ + +
minsizethe minimal size which the pixmap should have
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void setName (QString name)
+
+inherited
+
+ +

sets the name of the geometry

+
Parameters
+ + +
namethe new name of the geometry
+
+
+ +

References Geometry::name().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QString toString ()
+
+inherited
+
+ +

returns a String representation of this Geometry

+

not implemented yet!

Returns
a String representation of this Geometry
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool Touches (Pointclick,
const MapAdaptermapadapter 
)
+
+protectedvirtual
+
+ +

returns true if the given Point touches this Point

+

The collision detection checks for the bounding rectangulars.

Parameters
+ + + +
geomthe other point which should be tested on collision
mapadapterthe mapadapter which is used for calculations
+
+
+
Returns
+ +

Implements Geometry.

+ +

References Point::coordinate(), MapAdapter::coordinateToDisplay(), Geometry::geometryClicked(), and Geometry::isVisible().

+ +
+
+ +
+
+ + + + + + + +
QWidget * widget ()
+
+ +

returns the widget of the point

+
Returns
the widget of the point
+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/libs/QMapControl/html/classqmapcontrol_1_1Point.png b/libs/QMapControl/html/classqmapcontrol_1_1Point.png new file mode 100644 index 0000000000000000000000000000000000000000..688f8b7356e38d040cacd25989dad917d8fb91f8 GIT binary patch literal 2139 zcmc&$Yfuwe7Vd~PEYgxu&=4L$7DaY=t#$}Yc&G%083z<;pd1EaTtk!*gCGeHAxk8{ zR7osZ6$HX_4R#_hFrxy)BZMWxfu*O#$ELjJ6!2-36cThC0!I2r^^efK5M=l&kZ~ZCOPE!UCpUaza%fype`7hb zM~sEm-?I~iX&3B1k0urFcQ0z!n7WzBHDuckn1tg|2TX4I)r!5N zbn7tHSMMGl#TKu#pwD9};G11#y0%X_D35lk2)^l>+03aiHtb&2H2o?33XW59;d*n? zz!(?3_mGBRob}H;Fb(~o8k$pFKwKPkm9nX=$k-Pt<>Z+R9B#aJ47(`QZ(RgCnBLAj zMJNn5-r#pL-VkhbZbq9TjM8ob#Lcv~OJ$MIq(?TQ3vG7N@| zf#`KD74&?o5??DhliZa;9^>4;~P)esj>c{tDXxfb9@$@%PJVp{mnYfaf<@>;R40>97I!_;wb%XD-4l zzgRt$*E>HyH{8s~1B{J-gmiB#bEjDNO4!dLw@7}WY~^l0S|}~}4CQf7B~U$v-Zdc; zo^d|G<{0KnM4~_Ts+KK2XWxMb|G+NPGi|SDx?Hv>&5RAng*8kkh@~xXI3112P$)T9{ew26rryXd-pFzqz)ac^s`?6S2@i=XFHjcNvzlirKqzAd1 zNgZLs_w+QQfg%>9emXZnK*5c0e4KI(2Z~wH0ejvO!+;fx{^qcsHZMWFXWux2rTd!b@Lu_M@z#A{;6Xt(aYbYd0x)eM-xZ&ptJvKtAa*u z<}@xhl^AzkC)OA0^Yz?PB|*FI{if1KBk{Bz-PELv?hjVE_8$5lLH!pgE$aAXpuCpG z9H%=meU!?bFT{rtA|N2hp;8=H0>`3JKnZqpRO_3tquyEEv5d8Fj<8>{g*#2aVX-~afs zm14M>$~?V?Lw)dk30>IrCJ}KVI>EB(j(7LR^7pyAHF*4=FAsYtl0^kN=i)U8AiPlSvV3;y=(lU4W4k$9EcWG z`3{YdM#{R}n&y+D()V6Aq!w=fsg5Z{UWnk>7x65%wl#vEB5YTV^-gE*zPw0Iw~oEI zXPWxpQIG5GvDAjQ88z)g(I?E-0{Aa`ABa}Ma~clv`yVGx40?SREIEy-?t7KXBC;J4 zBDeIXwOh&;tKCMlZ-`-WZbfFI49jJ-24CG}qb$c?(YT(1w6au8Wqohnrc(Bd#H2)F zD$hz;aX3FAS&FA-u{3K12QgIvgI{e+w%??*bkcwMhPfEMA zebteDmiaH+Rb(XEuLLEDmyS=?F1R;Ngf+K68Dri7O=4$T82=c*YR7%Fu&l|dw7{n+ z!}D+-<7?1JGH#hM{l~kL5>)4FW&f0%i2>%+HWquBE?&^IhR;q;Yx{Q1Dq2c7?LjU| z$o&TnIX!G%K2q@_HH5Uw!`hmjPj|5Bo^~zhlzsxriAfb`Ov1!RXE4=X5J|p@+~+fk z_ + + + + + +QMapControl: Member List + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + + +
+
+
+
TileMapAdapter Member List
+
+
+ +

This is the complete list of members for TileMapAdapter, including all inherited members.

+ + + + + + + + + + + +
changeHostAddress(const QString qHost, const QString qServerPath=QString())MapAdaptervirtual
coordinateToDisplay(const QPointF &) const TileMapAdaptervirtual
currentZoom() const MapAdapter
displayToCoordinate(const QPoint &) const TileMapAdaptervirtual
host() const MapAdapter
maxZoom() const MapAdapter
minZoom() const MapAdapter
serverPath() const MapAdaptervirtual
TileMapAdapter(const QString &host, const QString &serverPath, int tilesize, int minZoom=0, int maxZoom=17)TileMapAdapter
tilesize() const MapAdapter
+ + + + diff --git a/libs/QMapControl/html/classqmapcontrol_1_1TileMapAdapter.html b/libs/QMapControl/html/classqmapcontrol_1_1TileMapAdapter.html new file mode 100644 index 00000000..fccc328f --- /dev/null +++ b/libs/QMapControl/html/classqmapcontrol_1_1TileMapAdapter.html @@ -0,0 +1,465 @@ + + + + + + +QMapControl: TileMapAdapter Class Reference + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + + +
+
+ +
+
TileMapAdapter Class Reference
+
+
+ +

MapAdapter for servers with image tiles. + More...

+ +

#include <tilemapadapter.h>

+
+Inheritance diagram for TileMapAdapter:
+
+
+ + +MapAdapter +QObject +GoogleMapAdapter +OpenAerialMapAdapter +OSMMapAdapter +YahooMapAdapter + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual void changeHostAddress (const QString qHost, const QString qServerPath=QString())
 change or update server host address post init More...
 
virtual QPoint coordinateToDisplay (const QPointF &) const
 translates a world coordinate to display coordinate More...
 
int currentZoom () const
 returns the current zoom More...
 
virtual QPointF displayToCoordinate (const QPoint &) const
 translates display coordinate to world coordinate More...
 
QString host () const
 returns the host of this MapAdapter More...
 
int maxZoom () const
 returns the max zoom value More...
 
int minZoom () const
 returns the min zoom value More...
 
virtual QString serverPath () const
 returns the server path part of this MapAdapter More...
 
 TileMapAdapter (const QString &host, const QString &serverPath, int tilesize, int minZoom=0, int maxZoom=17)
 constructor More...
 
int tilesize () const
 returns the size of the tiles More...
 
+

Detailed Description

+

MapAdapter for servers with image tiles.

+

Use this derived MapAdapter to display maps from OpenStreetMap

Author
Kai Winter kaiwi.nosp@m.nter.nosp@m.@gmx..nosp@m.de
+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TileMapAdapter (const QString & host,
const QString & serverPath,
int tilesize,
int minZoom = 0,
int maxZoom = 17 
)
+
+ +

constructor

+

Sample of a correct initialization of a MapAdapter:
+ TileMapAdapter* ta = new TileMapAdapter("192.168.8.1", "/img/img_cache.php/%1/%2/%3.png", 256, 0,17);
+ The placeholders %1, %2, %3 stands for x, y, z
+ The minZoom is 0 (means the whole world is visible). The maxZoom is 17 (means it is zoomed in to the max)

Parameters
+ + + + + + +
hostThe servers URL
serverPathThe path to the tiles with placeholders
tilesizethe size of the tiles
minZoomthe minimum zoom level
maxZoomthe maximum zoom level
+
+
+ +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void changeHostAddress (const QString qHost,
const QString qServerPath = QString() 
)
+
+virtualinherited
+
+ +

change or update server host address post init

+
Parameters
+ + + +
hostthe host address
serverPaththe server path
+
+
+ +

Reimplemented in WMSMapAdapter.

+ +

Referenced by WMSMapAdapter::changeHostAddress().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
QPoint coordinateToDisplay (const QPointF & coordinate) const
+
+virtual
+
+ +

translates a world coordinate to display coordinate

+

The calculations also needs the current zoom. The current zoom is managed by the MapAdapter, so this is no problem. To divide model from view the current zoom should be moved to the layers.

Parameters
+ + +
coordinatethe world coordinate
+
+
+
Returns
the display coordinate (in widget coordinates)
+ +

Implements MapAdapter.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
int currentZoom () const
+
+inherited
+
+ +

returns the current zoom

+
Returns
the current zoom
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
QPointF displayToCoordinate (const QPoint & point) const
+
+virtual
+
+ +

translates display coordinate to world coordinate

+

The calculations also needs the current zoom. The current zoom is managed by the MapAdapter, so this is no problem. To divide model from view the current zoom should be moved to the layers.

Parameters
+ + +
pointthe display coordinate
+
+
+
Returns
the world coordinate
+ +

Implements MapAdapter.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QString host () const
+
+inherited
+
+ +

returns the host of this MapAdapter

+
Returns
the host of this MapAdapter
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
int maxZoom () const
+
+inherited
+
+ +

returns the max zoom value

+
Returns
the max zoom value
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
int minZoom () const
+
+inherited
+
+ +

returns the min zoom value

+
Returns
the min zoom value
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QString serverPath () const
+
+virtualinherited
+
+ +

returns the server path part of this MapAdapter

+
Returns
the serverpath of this MapAdapter
+ +

Reimplemented in WMSMapAdapter.

+ +

Referenced by WMSMapAdapter::serverPath().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
int tilesize () const
+
+inherited
+
+ +

returns the size of the tiles

+
Returns
the size of the tiles
+ +

Referenced by WMSMapAdapter::changeHostAddress().

+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/libs/QMapControl/html/classqmapcontrol_1_1TileMapAdapter.png b/libs/QMapControl/html/classqmapcontrol_1_1TileMapAdapter.png new file mode 100644 index 0000000000000000000000000000000000000000..8a3503f5e9f850017399cd0c2b0f26dea12f9bbf GIT binary patch literal 2170 zcmb_eYgAKL77h=s4>7$8X{yh2Da=hEt$am`QfTIb$#_TJ~Q zzwbNe+)ELZ5a)H6btn|dnSAUB4TZ92fqKUp2k<`}est*SCrP~%WsQ`w(cuGq--rugxUI)(0WbFW1_Oqam$ z#WKuve;qBrHr32tqCvvLpwH4EOel}`sCLb(PzBZ3$#W%T7)QPO3USDje%!`Z3lw@9=2# zaHWvB0lbkWvT&}Skb32sJiauz9flxF!~aW+;3WMu!P9f}UmNW0mv;ECd72)03*>th z0HCCvKJ9FO07<{1|0O)Gy$sN+G-OHtzgytJF_%-JP4bg-p%wOtQD$}g1V z+JBbGDk@U8a`)zFf*H^p1;83zsoG!J9SV&|&+$ppBJnT5|L82 zxSfFJqLJ8Tl*loSA)u^+wzA&8qn+U_e{pk94C3LdCOR{3!~4rcXnsAsR0ANpvrjls z#>vG$qSsHoc`nglGGz_LL31HsVM$!p!Y7SBJ_I!>*K`b0@V)#8znl;R(f#n+w)~#y z9*0fuhq5H4-^u0rme8NwY@)LBi(* zBGA78_BT-MtK7GFR#SmC8C|EM3-alJ=xocCYd?8bM*<^f?eBtp(G3y8|BUkr4WDQ1 zb9X_QnlLAy{qHQEla-Tk3ax2U_YIRcT;f7OA7AAf0pgaVC0v)OouYyDdUf5da*Sh` zH(A#VTkxqeIsRnw5I!Wp=db0Wx&@8%`1Y~)5MruSt-R1(_v$7Eo-S{_%fqL1@w4)J z0X?%sLCNtzcaO07;PWmF1i3vlv!zYR$vQ&$oiPiF>})+WMHdb{APAm{^Ek%GD;BIr zHFa}IXd6C$Z;lalF;6)o&&B1Bca0}>Yx_ji#wTBhG&_^%{)r`gg8Q1>ZfZZnkk3V7@(-5-pU%sU2 z7yVxv(8eEsmic#3hTRr@<1F=6WAVkctM`1cZ*aSybKM&*cR|XB3k$rB7hwg>U#lJZbouuD9%s>;7lkwRquqSrE(Fn7OYw6%PE3AiA+ks#kE|0-5SO^5| z`QSbbdzVE+ighbtZi213ViOn}|`0#T@+w5jM&CdAVIMQQO>}gZsMy0( zya5vruX-)=3?`Kz{4h*YoX%~vMl*7chrAP;m(w)VXlpR?o;{M8r#4iK^mG?dcH*dh z=h}vtU3Hex+E5y{)SPCn#H*Ue^d@R=U~5mTgP5wzu1WT(8!sWmP}0>Ov_F{q)B8a5r6zKrXP%KJ?7V=Kn*Pn8_{jrDnG*H{=xtI6 zVt*!wVfsH)A?V}|5V+Yl22#9EZh%=Ak+6qU7SOIbA+58JxkVgWh%ICe{z57{eBV63 THa`sfD4@tkDMuO)$6xplx{eJI literal 0 HcmV?d00001 diff --git a/libs/QMapControl/html/classqmapcontrol_1_1WMSMapAdapter-members.html b/libs/QMapControl/html/classqmapcontrol_1_1WMSMapAdapter-members.html new file mode 100644 index 00000000..f8eec524 --- /dev/null +++ b/libs/QMapControl/html/classqmapcontrol_1_1WMSMapAdapter-members.html @@ -0,0 +1,75 @@ + + + + + + +QMapControl: Member List + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + + +
+
+
+
WMSMapAdapter Member List
+
+
+ +

This is the complete list of members for WMSMapAdapter, including all inherited members.

+ + + + + + + + + + + +
changeHostAddress(const QString qHost, const QString qServerPath=QString())WMSMapAdaptervirtual
coordinateToDisplay(const QPointF &) const WMSMapAdaptervirtual
currentZoom() const MapAdapter
displayToCoordinate(const QPoint &) const WMSMapAdaptervirtual
host() const MapAdapter
maxZoom() const MapAdapter
minZoom() const MapAdapter
serverPath() const WMSMapAdaptervirtual
tilesize() const MapAdapter
WMSMapAdapter(QString host, QString serverPath, int tilesize=256)WMSMapAdapter
+ + + + diff --git a/libs/QMapControl/html/classqmapcontrol_1_1WMSMapAdapter.html b/libs/QMapControl/html/classqmapcontrol_1_1WMSMapAdapter.html new file mode 100644 index 00000000..bddd0daf --- /dev/null +++ b/libs/QMapControl/html/classqmapcontrol_1_1WMSMapAdapter.html @@ -0,0 +1,450 @@ + + + + + + +QMapControl: WMSMapAdapter Class Reference + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + + +
+
+ +
+
WMSMapAdapter Class Reference
+
+
+ +

MapAdapter for WMS servers. + More...

+ +

#include <wmsmapadapter.h>

+
+Inheritance diagram for WMSMapAdapter:
+
+
+ + +MapAdapter +QObject + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual void changeHostAddress (const QString qHost, const QString qServerPath=QString())
 change or update server host address post init More...
 
virtual QPoint coordinateToDisplay (const QPointF &) const
 translates a world coordinate to display coordinate More...
 
int currentZoom () const
 returns the current zoom More...
 
virtual QPointF displayToCoordinate (const QPoint &) const
 translates display coordinate to world coordinate More...
 
QString host () const
 returns the host of this MapAdapter More...
 
int maxZoom () const
 returns the max zoom value More...
 
int minZoom () const
 returns the min zoom value More...
 
virtual QString serverPath () const
 returns the server path part of this MapAdapter More...
 
int tilesize () const
 returns the size of the tiles More...
 
 WMSMapAdapter (QString host, QString serverPath, int tilesize=256)
 constructor More...
 
+

Detailed Description

+

MapAdapter for WMS servers.

+

Use this derived MapAdapter to display maps from WMS servers

Author
Kai Winter kaiwi.nosp@m.nter.nosp@m.@gmx..nosp@m.de
+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
WMSMapAdapter (QString host,
QString serverPath,
int tilesize = 256 
)
+
+ +

constructor

+

Sample of a correct initialization of a MapAdapter:
+ MapAdapter* mapadapter = new WMSMapAdapter("www2.demis.nl", "/wms/wms.asp?wms=WorldMap[...]&BBOX=%1,%2,%3,%4&WIDTH=%5&HEIGHT=%5&TRANSPARENT=TRUE", 256);
+ The placeholders %1, %2, %3, %4 creates the bounding box, %5 is for the tilesize The minZoom is 0 (means the whole world is visible). The maxZoom is 17 (means it is zoomed in to the max)

Parameters
+ + + + +
hostThe servers URL
serverPathThe path to the tiles with placeholders
tilesizethe size of the tiles
+
+
+ +

References WMSMapAdapter::changeHostAddress().

+ +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void changeHostAddress (const QString qHost,
const QString qServerPath = QString() 
)
+
+virtual
+
+ +

change or update server host address post init

+
Parameters
+ + + +
hostthe host address
serverPaththe server path
+
+
+ +

Reimplemented from MapAdapter.

+ +

References MapAdapter::changeHostAddress(), and MapAdapter::tilesize().

+ +

Referenced by WMSMapAdapter::WMSMapAdapter().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
QPoint coordinateToDisplay (const QPointF & coordinate) const
+
+virtual
+
+ +

translates a world coordinate to display coordinate

+

The calculations also needs the current zoom. The current zoom is managed by the MapAdapter, so this is no problem. To divide model from view the current zoom should be moved to the layers.

Parameters
+ + +
coordinatethe world coordinate
+
+
+
Returns
the display coordinate (in widget coordinates)
+ +

Implements MapAdapter.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
int currentZoom () const
+
+inherited
+
+ +

returns the current zoom

+
Returns
the current zoom
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
QPointF displayToCoordinate (const QPoint & point) const
+
+virtual
+
+ +

translates display coordinate to world coordinate

+

The calculations also needs the current zoom. The current zoom is managed by the MapAdapter, so this is no problem. To divide model from view the current zoom should be moved to the layers.

Parameters
+ + +
pointthe display coordinate
+
+
+
Returns
the world coordinate
+ +

Implements MapAdapter.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QString host () const
+
+inherited
+
+ +

returns the host of this MapAdapter

+
Returns
the host of this MapAdapter
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
int maxZoom () const
+
+inherited
+
+ +

returns the max zoom value

+
Returns
the max zoom value
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
int minZoom () const
+
+inherited
+
+ +

returns the min zoom value

+
Returns
the min zoom value
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QString serverPath () const
+
+virtual
+
+ +

returns the server path part of this MapAdapter

+
Returns
the serverpath of this MapAdapter
+ +

Reimplemented from MapAdapter.

+ +

References MapAdapter::serverPath().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
int tilesize () const
+
+inherited
+
+ +

returns the size of the tiles

+
Returns
the size of the tiles
+ +

Referenced by WMSMapAdapter::changeHostAddress().

+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/libs/QMapControl/html/classqmapcontrol_1_1WMSMapAdapter.png b/libs/QMapControl/html/classqmapcontrol_1_1WMSMapAdapter.png new file mode 100644 index 0000000000000000000000000000000000000000..e2a6b7c509366d23f76f7ac3106e89f970db3e03 GIT binary patch literal 742 zcmeAS@N?(olHy`uVBq!ia0vp^1wh=v!3-oh{?F$HQW60^A+G=b{|7Q(y!l$%e`o@b z1;z&s9ANFdBM(wq666=m08|75S5Ji)F)%Qddb&7|fQPviROW%C}o z-u4PwUcUQ_`u#-P+HC!Goc+7DM5w+Dx&M3VPb)>wS6}KG?>{(N&+Yl?>U@T0b3VH; z?pexyz~?NRo!sQk&5i!|Vjh(|kbiNBf$4`<1H(Elg@)Bk91m78FzrBa4MNUYo)?Ln z^h~p1(vwy3%s#sdpGa4@pH`juS|mblZS#_{rDEUO8&=ljZ|;0YF5AiuRw2RoX***wa_kdzWM2C`J1&jpPakW@9iwzjchve<#wc9ow>`w8tC0!#R;d6 zKHFy(r^qgCw?(5%P%KvvM#=h(w&?Df;@n;D3%3So1@xOpR*P-G$*1$x`;OXk;vd$@? F2>`-&T#5hy literal 0 HcmV?d00001 diff --git a/libs/QMapControl/html/classqmapcontrol_1_1YahooMapAdapter-members.html b/libs/QMapControl/html/classqmapcontrol_1_1YahooMapAdapter-members.html new file mode 100644 index 00000000..a81f0aca --- /dev/null +++ b/libs/QMapControl/html/classqmapcontrol_1_1YahooMapAdapter-members.html @@ -0,0 +1,76 @@ + + + + + + +QMapControl: Member List + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + + +
+
+
+
YahooMapAdapter Member List
+
+
+ +

This is the complete list of members for YahooMapAdapter, including all inherited members.

+ + + + + + + + + + + + +
changeHostAddress(const QString qHost, const QString qServerPath=QString())MapAdaptervirtual
coordinateToDisplay(const QPointF &) const TileMapAdaptervirtual
currentZoom() const MapAdapter
displayToCoordinate(const QPoint &) const TileMapAdaptervirtual
host() const MapAdapter
maxZoom() const MapAdapter
minZoom() const MapAdapter
serverPath() const MapAdaptervirtual
TileMapAdapter(const QString &host, const QString &serverPath, int tilesize, int minZoom=0, int maxZoom=17)TileMapAdapter
tilesize() const MapAdapter
YahooMapAdapter()YahooMapAdapter
+ + + + diff --git a/libs/QMapControl/html/classqmapcontrol_1_1YahooMapAdapter.html b/libs/QMapControl/html/classqmapcontrol_1_1YahooMapAdapter.html new file mode 100644 index 00000000..d16b1347 --- /dev/null +++ b/libs/QMapControl/html/classqmapcontrol_1_1YahooMapAdapter.html @@ -0,0 +1,421 @@ + + + + + + +QMapControl: YahooMapAdapter Class Reference + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + + +
+
+ +
+
YahooMapAdapter Class Reference
+
+
+ +

MapAdapter for Yahoo Maps. + More...

+ +

#include <yahoomapadapter.h>

+
+Inheritance diagram for YahooMapAdapter:
+
+
+ + +TileMapAdapter +MapAdapter +QObject + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual void changeHostAddress (const QString qHost, const QString qServerPath=QString())
 change or update server host address post init More...
 
virtual QPoint coordinateToDisplay (const QPointF &) const
 translates a world coordinate to display coordinate More...
 
int currentZoom () const
 returns the current zoom More...
 
virtual QPointF displayToCoordinate (const QPoint &) const
 translates display coordinate to world coordinate More...
 
QString host () const
 returns the host of this MapAdapter More...
 
int maxZoom () const
 returns the max zoom value More...
 
int minZoom () const
 returns the min zoom value More...
 
virtual QString serverPath () const
 returns the server path part of this MapAdapter More...
 
int tilesize () const
 returns the size of the tiles More...
 
 YahooMapAdapter ()
 constructor More...
 
+

Detailed Description

+

MapAdapter for Yahoo Maps.

+
Author
Kai Winter kaiwi.nosp@m.nter.nosp@m.@gmx..nosp@m.de
+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + +
YahooMapAdapter ()
+
+ +

constructor

+

This construct a Yahoo Adapter

+ +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void changeHostAddress (const QString qHost,
const QString qServerPath = QString() 
)
+
+virtualinherited
+
+ +

change or update server host address post init

+
Parameters
+ + + +
hostthe host address
serverPaththe server path
+
+
+ +

Reimplemented in WMSMapAdapter.

+ +

Referenced by WMSMapAdapter::changeHostAddress().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
QPoint coordinateToDisplay (const QPointF & coordinate) const
+
+virtualinherited
+
+ +

translates a world coordinate to display coordinate

+

The calculations also needs the current zoom. The current zoom is managed by the MapAdapter, so this is no problem. To divide model from view the current zoom should be moved to the layers.

Parameters
+ + +
coordinatethe world coordinate
+
+
+
Returns
the display coordinate (in widget coordinates)
+ +

Implements MapAdapter.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
int currentZoom () const
+
+inherited
+
+ +

returns the current zoom

+
Returns
the current zoom
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
QPointF displayToCoordinate (const QPoint & point) const
+
+virtualinherited
+
+ +

translates display coordinate to world coordinate

+

The calculations also needs the current zoom. The current zoom is managed by the MapAdapter, so this is no problem. To divide model from view the current zoom should be moved to the layers.

Parameters
+ + +
pointthe display coordinate
+
+
+
Returns
the world coordinate
+ +

Implements MapAdapter.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QString host () const
+
+inherited
+
+ +

returns the host of this MapAdapter

+
Returns
the host of this MapAdapter
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
int maxZoom () const
+
+inherited
+
+ +

returns the max zoom value

+
Returns
the max zoom value
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
int minZoom () const
+
+inherited
+
+ +

returns the min zoom value

+
Returns
the min zoom value
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
QString serverPath () const
+
+virtualinherited
+
+ +

returns the server path part of this MapAdapter

+
Returns
the serverpath of this MapAdapter
+ +

Reimplemented in WMSMapAdapter.

+ +

Referenced by WMSMapAdapter::serverPath().

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
int tilesize () const
+
+inherited
+
+ +

returns the size of the tiles

+
Returns
the size of the tiles
+ +

Referenced by WMSMapAdapter::changeHostAddress().

+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + diff --git a/libs/QMapControl/html/classqmapcontrol_1_1YahooMapAdapter.png b/libs/QMapControl/html/classqmapcontrol_1_1YahooMapAdapter.png new file mode 100644 index 0000000000000000000000000000000000000000..7547213602479271d7cd95adf57ac9a8e4ae0806 GIT binary patch literal 967 zcmeAS@N?(olHy`uVBq!ia0vp^LII)FKsOfL__j~#Rag*|<7pi9NtFygs`|s7=I<1vf^LQp*d8K7O zxo`gFKlUfjZk@V2pgiE!f$K$ITqpT`mCdv9-c~hn$-;f1`R&#V&(HjLq<67d=kKo$ z=U>b6>`>YI>zvK~4>gygcl*DMtIMCaICPTRuYccP1yxQ8dAa{-UE9|G{VFfn{yMJv ze(%11ga1}WoeN6uwykB*^tI~YEv z#x(pi(mUW<`Tj4{L)DjMlHrq{y%sNu-TbXaHeWwxQdaK{L+2=!r-z@uDc-5~Pj1_k zzlFD|4%0osyY1$UHCI{Z-c_gxcyIi)Q2wZr zru;*``U$gN{ngt0Ozm`{_s!&Pt^6DA&Xv{SI}AN{y~?QbP`3=#^2v-owq@)7)4J7) zCrwxF@tw1zX3v8*N$U$MCx?Q4I_E)dUZB(E#zXf_!#V99Ub|aW)#RGF___81|%O$WD@{V-kvUwAr*{o@8{^CZMh(5KoB^r_<4^zF@3)Cp&&t3hdujKf f*?bjBoY!V+E))@{xMcbjXe@)LtDnm{r-UW|*e5JT literal 0 HcmV?d00001 diff --git a/libs/QMapControl/html/curve_8h_source.html b/libs/QMapControl/html/curve_8h_source.html new file mode 100644 index 00000000..5e53510c --- /dev/null +++ b/libs/QMapControl/html/curve_8h_source.html @@ -0,0 +1,115 @@ + + + + + + +QMapControl: curve.h Source File + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + +
+
+
+
curve.h
+
+
+
1 /*
+
2 *
+
3 * This file is part of QMapControl,
+
4 * an open-source cross-platform map widget
+
5 *
+
6 * Copyright (C) 2007 - 2008 Kai Winter
+
7 *
+
8 * This program is free software: you can redistribute it and/or modify
+
9 * it under the terms of the GNU Lesser General Public License as published by
+
10 * the Free Software Foundation, either version 3 of the License, or
+
11 * (at your option) any later version.
+
12 *
+
13 * This program is distributed in the hope that it will be useful,
+
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
+
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+
16 * GNU Lesser General Public License for more details.
+
17 *
+
18 * You should have received a copy of the GNU Lesser General Public License
+
19 * along with QMapControl. If not, see <http://www.gnu.org/licenses/>.
+
20 *
+
21 * Contact e-mail: kaiwinter@gmx.de
+
22 * Program URL : http://qmapcontrol.sourceforge.net/
+
23 *
+
24 */
+
25 
+
26 #ifndef CURVE_H
+
27 #define CURVE_H
+
28 
+
29 #include "qmapcontrol_global.h"
+
30 #include "geometry.h"
+
31 #include "point.h"
+
32 
+
33 namespace qmapcontrol
+
34 {
+
36 
+
46  class QMAPCONTROL_EXPORT Curve : public Geometry
+
47  {
+
48  Q_OBJECT
+
49  public:
+
50  virtual ~Curve();
+
51 
+
52  double Length;
+
53 
+
54  // virtual Geometry Clone();
+
55  // virtual QRectF GetBoundingBox();
+
56 
+
57  // virtual Point EndPoint() = 0;
+
58  // virtual Point StartPoint() = 0;
+
59  // virtual Point Value() = 0;
+
60 
+
61  protected:
+
62  Curve(QString name = QString());
+
63  virtual void draw(QPainter* painter, const MapAdapter* mapadapter, const QRect &screensize, const QPoint offset) = 0;
+
64  };
+
65 }
+
66 #endif
+
Main class for objects that should be painted in maps.
Definition: geometry.h:48
+
Used to fit map servers into QMapControl.
Definition: mapadapter.h:56
+
A Curve Geometry, implemented to fullfil OGC Spec.
Definition: curve.h:46
+
QMapControl namespace.
Definition: arrowpoint.cpp:28
+
+ + + + diff --git a/libs/QMapControl/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html b/libs/QMapControl/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html new file mode 100644 index 00000000..7e4787e2 --- /dev/null +++ b/libs/QMapControl/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html @@ -0,0 +1,155 @@ + + + + + + +QMapControl: src Directory Reference + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + +
+
+
+
src Directory Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

file  arrowpoint.cpp
 
file  arrowpoint.h [code]
 
file  circlepoint.cpp
 
file  circlepoint.h [code]
 
file  curve.cpp
 
file  curve.h [code]
 
file  emptymapadapter.cpp
 
file  emptymapadapter.h [code]
 
file  fixedimageoverlay.cpp
 
file  fixedimageoverlay.h [code]
 
file  geometry.cpp
 
file  geometry.h [code]
 
file  geometrylayer.cpp
 
file  geometrylayer.h [code]
 
file  googlemapadapter.cpp
 
file  googlemapadapter.h [code]
 
file  gps_position.cpp
 
file  gps_position.h [code]
 
file  imagemanager.cpp
 
file  imagepoint.cpp
 
file  imagepoint.h [code]
 
file  invisiblepoint.cpp
 
file  invisiblepoint.h [code]
 
file  layer.cpp
 
file  layer.h [code]
 
file  linestring.cpp
 
file  linestring.h [code]
 
file  mapadapter.cpp
 
file  mapadapter.h [code]
 
file  mapcontrol.cpp
 
file  mapcontrol.h [code]
 
file  maplayer.cpp
 
file  maplayer.h [code]
 
file  mapnetwork.cpp
 
file  mapnetwork.h [code]
 
file  openaerialmapadapter.cpp
 
file  openaerialmapadapter.h [code]
 
file  osmmapadapter.cpp
 
file  osmmapadapter.h [code]
 
file  point.cpp
 
file  point.h [code]
 
file  qmapcontrol_global.h [code]
 
file  tilemapadapter.cpp
 
file  tilemapadapter.h [code]
 
file  wmsmapadapter.cpp
 
file  wmsmapadapter.h [code]
 
file  yahoomapadapter.cpp
 
file  yahoomapadapter.h [code]
 
+
+ + + + diff --git a/libs/QMapControl/html/doxygen.css b/libs/QMapControl/html/doxygen.css new file mode 100644 index 00000000..02e8b015 --- /dev/null +++ b/libs/QMapControl/html/doxygen.css @@ -0,0 +1,1440 @@ +/* The standard CSS for doxygen 1.8.8 */ + +body, table, div, p, dl { + font: 400 14px/22px Roboto,sans-serif; +} + +/* @group Heading Levels */ + +h1.groupheader { + font-size: 150%; +} + +.title { + font: 400 14px/28px Roboto,sans-serif; + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h2.groupheader { + border-bottom: 1px solid #879ECB; + color: #354C7B; + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; +} + +h3.groupheader { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px cyan; +} + +dt { + font-weight: bold; +} + +div.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; +} + +p.startli, p.startdd { + margin-top: 2px; +} + +p.starttd { + margin-top: 0px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.qindex, div.navtab{ + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; +} + +div.qindex, div.navpath { + width: 100%; + line-height: 140%; +} + +div.navtab { + margin-right: 15px; +} + +/* @group Link Styling */ + +a { + color: #3D578C; + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: #4665A2; +} + +a:hover { + text-decoration: underline; +} + +a.qindex { + font-weight: bold; +} + +a.qindexHL { + font-weight: bold; + background-color: #9CAFD4; + color: #ffffff; + border: 1px double #869DCA; +} + +.contents a.qindexHL:visited { + color: #ffffff; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited, a.line, a.line:visited { + color: #4665A2; +} + +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { + color: #4665A2; +} + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +pre.fragment { + border: 1px solid #C4CFE5; + background-color: #FBFCFD; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: monospace, fixed; + font-size: 105%; +} + +div.fragment { + padding: 4px 6px; + margin: 4px 8px 4px 2px; + background-color: #FBFCFD; + border: 1px solid #C4CFE5; +} + +div.line { + font-family: monospace, fixed; + font-size: 13px; + min-height: 13px; + line-height: 1.0; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +div.line.glow { + background-color: cyan; + box-shadow: 0 0 10px cyan; +} + + +span.lineno { + padding-right: 4px; + text-align: right; + border-right: 2px solid #0F0; + background-color: #E8E8E8; + white-space: pre; +} +span.lineno a { + background-color: #D8D8D8; +} + +span.lineno a:hover { + background-color: #C8C8C8; +} + +div.ah { + background-color: black; + font-weight: bold; + color: #ffffff; + margin-bottom: 3px; + margin-top: 3px; + padding: 0.2em; + border: solid thin #333; + border-radius: 0.5em; + -webkit-border-radius: .5em; + -moz-border-radius: .5em; + box-shadow: 2px 2px 3px #999; + -webkit-box-shadow: 2px 2px 3px #999; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000); +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + background-color: white; + color: black; + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +td.indexkey { + background-color: #EBEFF6; + font-weight: bold; + border: 1px solid #C4CFE5; + margin: 2px 0px 2px 0; + padding: 2px 10px; + white-space: nowrap; + vertical-align: top; +} + +td.indexvalue { + background-color: #EBEFF6; + border: 1px solid #C4CFE5; + padding: 2px 10px; + margin: 2px 0px; +} + +tr.memlist { + background-color: #EEF1F7; +} + +p.formulaDsp { + text-align: center; +} + +img.formulaDsp { + +} + +img.formulaInl { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; +} + +/* @group Code Colorization */ + +span.keyword { + color: #008000 +} + +span.keywordtype { + color: #604020 +} + +span.keywordflow { + color: #e08000 +} + +span.comment { + color: #800000 +} + +span.preprocessor { + color: #806020 +} + +span.stringliteral { + color: #002080 +} + +span.charliteral { + color: #008080 +} + +span.vhdldigit { + color: #ff00ff +} + +span.vhdlchar { + color: #000000 +} + +span.vhdlkeyword { + color: #700070 +} + +span.vhdllogic { + color: #ff0000 +} + +blockquote { + background-color: #F7F8FB; + border-left: 2px solid #9CAFD4; + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +/* @end */ + +/* +.search { + color: #003399; + font-weight: bold; +} + +form.search { + margin-bottom: 0px; + margin-top: 0px; +} + +input.search { + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +*/ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #A3B4D7; +} + +th.dirtab { + background: #EBEFF6; + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid #4A6AAA; +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td, .fieldtable tr { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: cyan; + box-shadow: 0 0 15px cyan; +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #F9FAFC; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; +} + +.memSeparator { + border-bottom: 1px solid #DEE4F0; + line-height: 1px; + margin: 0px; + padding: 0px; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight { + width: 100%; +} + +.memTemplParams { + color: #4665A2; + white-space: nowrap; + font-size: 80%; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtemplate { + font-size: 80%; + color: #4665A2; + font-weight: normal; + margin-left: 9px; +} + +.memnav { + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; + display: table !important; + width: 100%; +} + +.memitem.glow { + box-shadow: 0 0 15px cyan; +} + +.memname { + font-weight: bold; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 0px 6px 0px; + color: #253555; + font-weight: bold; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E8F2; + /* opera specific markup */ + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; + border-top-left-radius: 4px; + /* firefox specific markup */ + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + -moz-border-radius-topright: 4px; + -moz-border-radius-topleft: 4px; + /* webkit specific markup */ + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -webkit-border-top-right-radius: 4px; + -webkit-border-top-left-radius: 4px; + +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 10px 2px 10px; + background-color: #FBFCFD; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: #FFFFFF; + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: #602020; + white-space: nowrap; +} +.paramname em { + font-style: normal; +} +.paramname code { + line-height: 14px; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir { + font-family: "courier new",courier,monospace; + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: #728DC1; + border-top:1px solid #5373B4; + border-left:1px solid #5373B4; + border-right:1px solid #C4CFE5; + border-bottom:1px solid #C4CFE5; + text-shadow: none; + color: white; + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; +} + + + +/* @end */ + +/* these are for tree view inside a (index) page */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid #9CAFD4; + border-bottom: 1px solid #9CAFD4; + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top: 3px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.entry a img { + border: none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.even { + padding-left: 6px; + background-color: #F7F8FB; +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: #3D578C; +} + +.arrow { + color: #9CAFD4; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 80%; + display: inline-block; + width: 16px; + height: 22px; +} + +.icon { + font-family: Arial, Helvetica; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: #728DC1; + color: white; + text-align: center; + border-radius: 4px; + margin-left: 2px; + margin-right: 2px; +} + +.icona { + width: 24px; + height: 22px; + display: inline-block; +} + +.iconfopen { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('ftv2folderopen.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.iconfclosed { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('ftv2folderclosed.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.icondoc { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('ftv2doc.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +table.directory { + font: 400 14px Roboto,sans-serif; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: #2A3D61; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + /*width: 100%;*/ + margin-bottom: 10px; + border: 1px solid #A8B8D9; + border-spacing: 0px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid #A8B8D9; + border-bottom: 1px solid #A8B8D9; + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid #A8B8D9; + /*width: 100%;*/ +} + +.fieldtable td.fielddoc p:first-child { + margin-top: 0px; +} + +.fieldtable td.fielddoc p:last-child { + margin-bottom: 2px; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E8F2; + font-size: 90%; + color: #253555; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid #A8B8D9; +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image:url('tab_b.png'); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:#8AA0CC; + border:solid 1px #C2CDE4; + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:url('bc_s.png'); + background-repeat:no-repeat; + background-position:right; + color:#364D7C; +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; + color: #283A5D; + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; +} + +.navpath li.navelem a:hover +{ + color:#6884BD; +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color:#364D7C; + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +div.ingroups +{ + font-size: 8pt; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #F9FAFC; + margin: 0px; + border-bottom: 1px solid #C4CFE5; +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +dl +{ + padding: 0 0 0 10px; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */ +dl.section +{ + margin-left: 0px; + padding-left: 0px; +} + +dl.note +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #00D000; +} + +dl.deprecated +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #505050; +} + +dl.todo +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #00C0E0; +} + +dl.test +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #3030E0; +} + +dl.bug +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #C08050; +} + +dl.section dd { + margin-bottom: 6px; +} + + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectname +{ + font: 300% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font: 120% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font: 50% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid #5373B4; +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.diagraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +div.zoom +{ + border: 1px solid #90A5CE; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:#334975; + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; +} + +dl.citelist dd { + margin:2px 0; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: #F4F6FA; + border: 1px solid #D8DFEE; + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 20px 10px 10px; + width: 200px; +} + +div.toc li { + background: url("bdwn.png") no-repeat scroll 0 5px transparent; + font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +div.toc h3 { + font: bold 12px/1.2 Arial,FreeSans,sans-serif; + color: #4665A2; + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 30px; +} + +div.toc li.level4 { + margin-left: 45px; +} + +.inherit_header { + font-weight: bold; + color: gray; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +/* tooltip related style info */ + +.ttc { + position: absolute; + display: none; +} + +#powerTip { + cursor: default; + white-space: nowrap; + background-color: white; + border: 1px solid gray; + border-radius: 4px 4px 4px 4px; + box-shadow: 1px 1px 7px gray; + display: none; + font-size: smaller; + max-width: 80%; + opacity: 0.9; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; +} + +#powerTip div.ttdoc { + color: grey; + font-style: italic; +} + +#powerTip div.ttname a { + font-weight: bold; +} + +#powerTip div.ttname { + font-weight: bold; +} + +#powerTip div.ttdeci { + color: #006318; +} + +#powerTip div { + margin: 0px; + padding: 0px; + font: 12px/16px Roboto,sans-serif; +} + +#powerTip:before, #powerTip:after { + content: ""; + position: absolute; + margin: 0px; +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.s:after, #powerTip.s:before, +#powerTip.w:after, #powerTip.w:before, +#powerTip.e:after, #powerTip.e:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.nw:after, #powerTip.nw:before, +#powerTip.sw:after, #powerTip.sw:before { + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; +} + +#powerTip.n:after, #powerTip.s:after, +#powerTip.w:after, #powerTip.e:after, +#powerTip.nw:after, #powerTip.ne:after, +#powerTip.sw:after, #powerTip.se:after { + border-color: rgba(255, 255, 255, 0); +} + +#powerTip.n:before, #powerTip.s:before, +#powerTip.w:before, #powerTip.e:before, +#powerTip.nw:before, #powerTip.ne:before, +#powerTip.sw:before, #powerTip.se:before { + border-color: rgba(128, 128, 128, 0); +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.nw:after, #powerTip.nw:before { + top: 100%; +} + +#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { + border-top-color: #ffffff; + border-width: 10px; + margin: 0px -10px; +} +#powerTip.n:before { + border-top-color: #808080; + border-width: 11px; + margin: 0px -11px; +} +#powerTip.n:after, #powerTip.n:before { + left: 50%; +} + +#powerTip.nw:after, #powerTip.nw:before { + right: 14px; +} + +#powerTip.ne:after, #powerTip.ne:before { + left: 14px; +} + +#powerTip.s:after, #powerTip.s:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.sw:after, #powerTip.sw:before { + bottom: 100%; +} + +#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { + border-bottom-color: #ffffff; + border-width: 10px; + margin: 0px -10px; +} + +#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { + border-bottom-color: #808080; + border-width: 11px; + margin: 0px -11px; +} + +#powerTip.s:after, #powerTip.s:before { + left: 50%; +} + +#powerTip.sw:after, #powerTip.sw:before { + right: 14px; +} + +#powerTip.se:after, #powerTip.se:before { + left: 14px; +} + +#powerTip.e:after, #powerTip.e:before { + left: 100%; +} +#powerTip.e:after { + border-left-color: #ffffff; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.e:before { + border-left-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#powerTip.w:after, #powerTip.w:before { + right: 100%; +} +#powerTip.w:after { + border-right-color: #ffffff; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.w:before { + border-right-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + diff --git a/libs/QMapControl/html/doxygen.png b/libs/QMapControl/html/doxygen.png new file mode 100644 index 0000000000000000000000000000000000000000..3ff17d807fd8aa003bed8bb2a69e8f0909592fd1 GIT binary patch literal 3779 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 literal 0 HcmV?d00001 diff --git a/libs/QMapControl/html/dynsections.js b/libs/QMapControl/html/dynsections.js new file mode 100644 index 00000000..85e18369 --- /dev/null +++ b/libs/QMapControl/html/dynsections.js @@ -0,0 +1,97 @@ +function toggleVisibility(linkObj) +{ + var base = $(linkObj).attr('id'); + var summary = $('#'+base+'-summary'); + var content = $('#'+base+'-content'); + var trigger = $('#'+base+'-trigger'); + var src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; +} + +function updateStripes() +{ + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); +} + +function toggleLevel(level) +{ + $('table.directory tr').each(function() { + var l = this.id.split('_').length-1; + var i = $('#img'+this.id.substring(3)); + var a = $('#arr'+this.id.substring(3)); + if (l + + + + + +QMapControl: emptymapadapter.h Source File + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + +
+
+
+
emptymapadapter.h
+
+
+
1 /*
+
2 *
+
3 * This file is part of QMapControl,
+
4 * an open-source cross-platform map widget
+
5 *
+
6 * Copyright (C) 2007 - 2008 Kai Winter
+
7 *
+
8 * This program is free software: you can redistribute it and/or modify
+
9 * it under the terms of the GNU Lesser General Public License as published by
+
10 * the Free Software Foundation, either version 3 of the License, or
+
11 * (at your option) any later version.
+
12 *
+
13 * This program is distributed in the hope that it will be useful,
+
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
+
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+
16 * GNU Lesser General Public License for more details.
+
17 *
+
18 * You should have received a copy of the GNU Lesser General Public License
+
19 * along with QMapControl. If not, see <http://www.gnu.org/licenses/>.
+
20 *
+
21 * Contact e-mail: kaiwinter@gmx.de
+
22 * Program URL : http://qmapcontrol.sourceforge.net/
+
23 *
+
24 */
+
25 
+
26 #ifndef EMPTYMAPADAPTER_H
+
27 #define EMPTYMAPADAPTER_H
+
28 
+
29 #include "qmapcontrol_global.h"
+
30 #include "mapadapter.h"
+
31 
+
32 namespace qmapcontrol
+
33 {
+
35 
+
40  class QMAPCONTROL_EXPORT EmptyMapAdapter : public MapAdapter
+
41  {
+
42  Q_OBJECT
+
43  public:
+
45 
+
52  EmptyMapAdapter(int tileSize = 256, int minZoom = 0, int maxZoom = 17);
+
53 
+
54  virtual ~EmptyMapAdapter();
+
55 
+
56  virtual QPoint coordinateToDisplay(const QPointF&) const;
+
57  virtual QPointF displayToCoordinate(const QPoint&) const;
+
58 
+
59  qreal PI;
+
60 
+
61  protected:
+
62  qreal rad_deg(qreal) const;
+
63  qreal deg_rad(qreal) const;
+
64 
+
65  virtual bool isValid(int x, int y, int z) const;
+
66  virtual void zoom_in();
+
67  virtual void zoom_out();
+
68  virtual QString query(int x, int y, int z) const;
+
69  virtual int tilesonzoomlevel(int zoomlevel) const;
+
70  virtual int xoffset(int x) const;
+
71  virtual int yoffset(int y) const;
+
72  };
+
73 }
+
74 #endif
+
Used to fit map servers into QMapControl.
Definition: mapadapter.h:56
+
MapAdapter which do not load map tiles.
Definition: emptymapadapter.h:40
+
QMapControl namespace.
Definition: arrowpoint.cpp:28
+
+ + + + diff --git a/libs/QMapControl/html/examples.html b/libs/QMapControl/html/examples.html new file mode 100644 index 00000000..4a67cbf3 --- /dev/null +++ b/libs/QMapControl/html/examples.html @@ -0,0 +1,32 @@ + + +QMapControl: Examples + + + + + +
+

Examples

Here is a list of all examples: +
+
Generated on Wed Jul 29 12:38:10 2009 for QMapControl by  + +doxygen 1.5.9
+ + diff --git a/libs/QMapControl/html/files.html b/libs/QMapControl/html/files.html new file mode 100644 index 00000000..22255926 --- /dev/null +++ b/libs/QMapControl/html/files.html @@ -0,0 +1,57 @@ + + +QMapControl: File Index + + + + + +
+

File List

Here is a list of all documented files with brief descriptions: + + + + + + + + + + + + + + + + + + + + + + + + + +
circlepoint.h [code]
curve.h [code]
emptymapadapter.h [code]
fixedimageoverlay.h [code]
geometry.h [code]
geometrylayer.h [code]
googlemapadapter.h [code]
googlesatmapadapter.h [code]
gps.h [code]
gps_position.h [code]
imagepoint.h [code]
layer.h [code]
linestring.h [code]
mapadapter.h [code]
mapcontrol.h [code]
maplayer.h [code]
mapnetwork.h [code]
mapviewer.h [code]
openaerialmapadapter.h [code]
osmmapadapter.h [code]
point.h [code]
qmapcontrol.h [code]
tilemapadapter.h [code]
wmsmapadapter.h [code]
yahoomapadapter.h [code]
+
+
Generated on Wed Jul 29 12:38:10 2009 for QMapControl by  + +doxygen 1.5.9
+ + diff --git a/libs/QMapControl/html/fixedimageoverlay_8h_source.html b/libs/QMapControl/html/fixedimageoverlay_8h_source.html new file mode 100644 index 00000000..ac7e2b05 --- /dev/null +++ b/libs/QMapControl/html/fixedimageoverlay_8h_source.html @@ -0,0 +1,112 @@ + + + + + + +QMapControl: fixedimageoverlay.h Source File + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + +
+
+
+
fixedimageoverlay.h
+
+
+
1 /*
+
2 *
+
3 * This file is part of QMapControl,
+
4 * an open-source cross-platform map widget
+
5 *
+
6 * Copyright (C) 2007 - 2009 Kai Winter
+
7 *
+
8 * This program is free software: you can redistribute it and/or modify
+
9 * it under the terms of the GNU Lesser General Public License as published by
+
10 * the Free Software Foundation, either version 3 of the License, or
+
11 * (at your option) any later version.
+
12 *
+
13 * This program is distributed in the hope that it will be useful,
+
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
+
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+
16 * GNU Lesser General Public License for more details.
+
17 *
+
18 * You should have received a copy of the GNU Lesser General Public License
+
19 * along with QMapControl. If not, see <http://www.gnu.org/licenses/>.
+
20 *
+
21 * Contact e-mail: kaiwinter@gmx.de
+
22 * Program URL : http://qmapcontrol.sourceforge.net/
+
23 *
+
24 */
+
25 
+
26 #ifndef FIXEDIMAGEOVERLAY_H
+
27 #define FIXEDIMAGEOVERLAY_H
+
28 
+
29 #include "qmapcontrol_global.h"
+
30 #include "imagepoint.h"
+
31 
+
32 namespace qmapcontrol
+
33 {
+
34 
+
36 
+
43  class QMAPCONTROL_EXPORT FixedImageOverlay : public ImagePoint
+
44  {
+
45  public:
+
47 
+
59  FixedImageOverlay(qreal x_upperleft, qreal y_upperleft, qreal x_lowerright, qreal y_lowerright, QString filename, QString name = QString());
+
60 
+
62 
+
71  FixedImageOverlay(qreal x_upperleft, qreal y_upperleft, qreal x_lowerright, qreal y_lowerright, QPixmap pixmap, QString name = QString());
+
72 
+
73  virtual void draw(QPainter* painter, const MapAdapter* mapadapter, const QRect &viewport, const QPoint offset);
+
74  virtual ~FixedImageOverlay();
+
75 
+
76  private:
+
77  qreal x_lowerright;
+
78  qreal y_lowerright;
+
79  };
+
80 }
+
81 #endif
+
Used to fit map servers into QMapControl.
Definition: mapadapter.h:56
+
Draws an image into the map.
Definition: imagepoint.h:42
+
Draws a fixed image into the map.
Definition: fixedimageoverlay.h:43
+
QMapControl namespace.
Definition: arrowpoint.cpp:28
+
+ + + + diff --git a/libs/QMapControl/html/ftv2blank.png b/libs/QMapControl/html/ftv2blank.png new file mode 100644 index 0000000000000000000000000000000000000000..63c605bb4c3d941c921a4b6cfa74951e946bcb48 GIT binary patch literal 86 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRr!3HExu9B$%QnH>djv*C{Z|`mdau^P8_z}#X h?B8GEpdi4(BFDx$je&7RrDQEg&ePS;Wt~$(69Dh@6T1Ka literal 0 HcmV?d00001 diff --git a/libs/QMapControl/html/ftv2doc.png b/libs/QMapControl/html/ftv2doc.png new file mode 100644 index 0000000000000000000000000000000000000000..17edabff95f7b8da13c9516a04efe05493c29501 GIT binary patch literal 746 zcmV7=@pnbNXRFEm&G8P!&WHG=d)>K?YZ1bzou)2{$)) zumDct!>4SyxL;zgaG>wy`^Hv*+}0kUfCrz~BCOViSb$_*&;{TGGn2^x9K*!Sf0=lV zpP=7O;GA0*Jm*tTYj$IoXvimpnV4S1Z5f$p*f$Db2iq2zrVGQUz~yq`ahn7ck(|CE z7Gz;%OP~J6)tEZWDzjhL9h2hdfoU2)Nd%T<5Kt;Y0XLt&<@6pQx!nw*5`@bq#?l*?3z{Hlzoc=Pr>oB5(9i6~_&-}A(4{Q$>c>%rV&E|a(r&;?i5cQB=} zYSDU5nXG)NS4HEs0it2AHe2>shCyr7`6@4*6{r@8fXRbTA?=IFVWAQJL&H5H{)DpM#{W(GL+Idzf^)uRV@oB8u$ z8v{MfJbTiiRg4bza<41NAzrl{=3fl_D+$t+^!xlQ8S}{UtY`e z;;&9UhyZqQRN%2pot{*Ei0*4~hSF_3AH2@fKU!$NSflS>{@tZpDT4`M2WRTTVH+D? z)GFlEGGHe?koB}i|1w45!BF}N_q&^HJ&-tyR{(afC6H7|aml|tBBbv}55C5DNP8p3 z)~jLEO4Z&2hZmP^i-e%(@d!(E|KRafiU8Q5u(wU((j8un3OR*Hvj+t literal 0 HcmV?d00001 diff --git a/libs/QMapControl/html/ftv2folderclosed.png b/libs/QMapControl/html/ftv2folderclosed.png new file mode 100644 index 0000000000000000000000000000000000000000..bb8ab35edce8e97554e360005ee9fc5bffb36e66 GIT binary patch literal 616 zcmV-u0+;=XP)a9#ETzayK)T~Jw&MMH>OIr#&;dC}is*2Mqdf&akCc=O@`qC+4i z5Iu3w#1M@KqXCz8TIZd1wli&kkl2HVcAiZ8PUn5z_kG@-y;?yK06=cA0U%H0PH+kU zl6dp}OR(|r8-RG+YLu`zbI}5TlOU6ToR41{9=uz^?dGTNL;wIMf|V3`d1Wj3y!#6` zBLZ?xpKR~^2x}?~zA(_NUu3IaDB$tKma*XUdOZN~c=dLt_h_k!dbxm_*ibDM zlFX`g{k$X}yIe%$N)cn1LNu=q9_CS)*>A zsX_mM4L@`(cSNQKMFc$RtYbx{79#j-J7hk*>*+ZZhM4Hw?I?rsXCi#mRWJ=-0LGV5a-WR0Qgt<|Nqf)C-@80`5gIz45^_20000IqP)X=#(TiCT&PiIIVc55T}TU}EUh*{q$|`3@{d>{Tc9Bo>e= zfmF3!f>fbI9#GoEHh0f`i5)wkLpva0ztf%HpZneK?w-7AK@b4Itw{y|Zd3k!fH?q2 zlhckHd_V2M_X7+)U&_Xcfvtw60l;--DgZmLSw-Y?S>)zIqMyJ1#FwLU*%bl38ok+! zh78H87n`ZTS;uhzAR$M`zZ`bVhq=+%u9^$5jDplgxd44}9;IRqUH1YHH|@6oFe%z( zo4)_>E$F&^P-f(#)>(TrnbE>Pefs9~@iN=|)Rz|V`sGfHNrJ)0gJb8xx+SBmRf@1l zvuzt=vGfI)<-F9!o&3l?>9~0QbUDT(wFdnQPv%xdD)m*g%!20>Bc9iYmGAp<9YAa( z0QgYgTWqf1qN++Gqp z8@AYPTB3E|6s=WLG?xw0tm|U!o=&zd+H0oRYE;Dbx+Na9s^STqX|Gnq%H8s(nGDGJ j8vwW|`Ts`)fSK|Kx=IK@RG@g200000NkvXXu0mjfauFEA literal 0 HcmV?d00001 diff --git a/libs/QMapControl/html/ftv2lastnode.png b/libs/QMapControl/html/ftv2lastnode.png new file mode 100644 index 0000000000000000000000000000000000000000..63c605bb4c3d941c921a4b6cfa74951e946bcb48 GIT binary patch literal 86 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRr!3HExu9B$%QnH>djv*C{Z|`mdau^P8_z}#X h?B8GEpdi4(BFDx$je&7RrDQEg&ePS;Wt~$(69Dh@6T1Ka literal 0 HcmV?d00001 diff --git a/libs/QMapControl/html/ftv2link.png b/libs/QMapControl/html/ftv2link.png new file mode 100644 index 0000000000000000000000000000000000000000..17edabff95f7b8da13c9516a04efe05493c29501 GIT binary patch literal 746 zcmV7=@pnbNXRFEm&G8P!&WHG=d)>K?YZ1bzou)2{$)) zumDct!>4SyxL;zgaG>wy`^Hv*+}0kUfCrz~BCOViSb$_*&;{TGGn2^x9K*!Sf0=lV zpP=7O;GA0*Jm*tTYj$IoXvimpnV4S1Z5f$p*f$Db2iq2zrVGQUz~yq`ahn7ck(|CE z7Gz;%OP~J6)tEZWDzjhL9h2hdfoU2)Nd%T<5Kt;Y0XLt&<@6pQx!nw*5`@bq#?l*?3z{Hlzoc=Pr>oB5(9i6~_&-}A(4{Q$>c>%rV&E|a(r&;?i5cQB=} zYSDU5nXG)NS4HEs0it2AHe2>shCyr7`6@4*6{r@8fXRbTA?=IFVWAQJL&H5H{)DpM#{W(GL+Idzf^)uRV@oB8u$ z8v{MfJbTiiRg4bza<41NAzrl{=3fl_D+$t+^!xlQ8S}{UtY`e z;;&9UhyZqQRN%2pot{*Ei0*4~hSF_3AH2@fKU!$NSflS>{@tZpDT4`M2WRTTVH+D? z)GFlEGGHe?koB}i|1w45!BF}N_q&^HJ&-tyR{(afC6H7|aml|tBBbv}55C5DNP8p3 z)~jLEO4Z&2hZmP^i-e%(@d!(E|KRafiU8Q5u(wU((j8un3OR*Hvj+t literal 0 HcmV?d00001 diff --git a/libs/QMapControl/html/ftv2mlastnode.png b/libs/QMapControl/html/ftv2mlastnode.png new file mode 100644 index 0000000000000000000000000000000000000000..0b63f6d38c4b9ec907b820192ebe9724ed6eca22 GIT binary patch literal 246 zcmVkw!R34#Lv2LOS^S2tZA31X++9RY}n zChwn@Z)Wz*WWHH{)HDtJnq&A2hk$b-y(>?@z0iHr41EKCGp#T5?07*qoM6N<$f(V3Pvj6}9 literal 0 HcmV?d00001 diff --git a/libs/QMapControl/html/ftv2mnode.png b/libs/QMapControl/html/ftv2mnode.png new file mode 100644 index 0000000000000000000000000000000000000000..0b63f6d38c4b9ec907b820192ebe9724ed6eca22 GIT binary patch literal 246 zcmVkw!R34#Lv2LOS^S2tZA31X++9RY}n zChwn@Z)Wz*WWHH{)HDtJnq&A2hk$b-y(>?@z0iHr41EKCGp#T5?07*qoM6N<$f(V3Pvj6}9 literal 0 HcmV?d00001 diff --git a/libs/QMapControl/html/ftv2node.png b/libs/QMapControl/html/ftv2node.png new file mode 100644 index 0000000000000000000000000000000000000000..63c605bb4c3d941c921a4b6cfa74951e946bcb48 GIT binary patch literal 86 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRr!3HExu9B$%QnH>djv*C{Z|`mdau^P8_z}#X h?B8GEpdi4(BFDx$je&7RrDQEg&ePS;Wt~$(69Dh@6T1Ka literal 0 HcmV?d00001 diff --git a/libs/QMapControl/html/ftv2plastnode.png b/libs/QMapControl/html/ftv2plastnode.png new file mode 100644 index 0000000000000000000000000000000000000000..c6ee22f937a07d1dbfc27c669d11f8ed13e2f152 GIT binary patch literal 229 zcmV^P)R?RzRoKvklcaQ%HF6%rK2&ZgO(-ihJ_C zzrKgp4jgO( fd_(yg|3PpEQb#9`a?Pz_00000NkvXXu0mjftR`5K literal 0 HcmV?d00001 diff --git a/libs/QMapControl/html/ftv2pnode.png b/libs/QMapControl/html/ftv2pnode.png new file mode 100644 index 0000000000000000000000000000000000000000..c6ee22f937a07d1dbfc27c669d11f8ed13e2f152 GIT binary patch literal 229 zcmV^P)R?RzRoKvklcaQ%HF6%rK2&ZgO(-ihJ_C zzrKgp4jgO( fd_(yg|3PpEQb#9`a?Pz_00000NkvXXu0mjftR`5K literal 0 HcmV?d00001 diff --git a/libs/QMapControl/html/ftv2splitbar.png b/libs/QMapControl/html/ftv2splitbar.png new file mode 100644 index 0000000000000000000000000000000000000000..fe895f2c58179b471a22d8320b39a4bd7312ec8e GIT binary patch literal 314 zcmeAS@N?(olHy`uVBq!ia0vp^Yzz!63>-{AmhX=Jf(#6djGiuzAr*{o?=JLmPLyc> z_*`QK&+BH@jWrYJ7>r6%keRM@)Qyv8R=enp0jiI>aWlGyB58O zFVR20d+y`K7vDw(hJF3;>dD*3-?v=<8M)@x|EEGLnJsniYK!2U1 Y!`|5biEc?d1`HDhPgg&ebxsLQ02F6;9RL6T literal 0 HcmV?d00001 diff --git a/libs/QMapControl/html/ftv2vertline.png b/libs/QMapControl/html/ftv2vertline.png new file mode 100644 index 0000000000000000000000000000000000000000..63c605bb4c3d941c921a4b6cfa74951e946bcb48 GIT binary patch literal 86 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRr!3HExu9B$%QnH>djv*C{Z|`mdau^P8_z}#X h?B8GEpdi4(BFDx$je&7RrDQEg&ePS;Wt~$(69Dh@6T1Ka literal 0 HcmV?d00001 diff --git a/libs/QMapControl/html/functions.html b/libs/QMapControl/html/functions.html new file mode 100644 index 00000000..57be7a8e --- /dev/null +++ b/libs/QMapControl/html/functions.html @@ -0,0 +1,566 @@ + + + + + + +QMapControl: Class Members + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + + + +
+
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- a -

+ + +

- b -

+ + +

- c -

+ + +

- d -

+ + +

- e -

+ + +

- f -

+ + +

- g -

+ + +

- h -

+ + +

- i -

+ + +

- l -

+ + +

- m -

+ + +

- n -

+ + +

- o -

+ + +

- p -

+ + +

- r -

+ + +

- s -

+ + +

- t -

+ + +

- u -

+ + +

- v -

+ + +

- w -

+ + +

- y -

+ + +

- z -

+
+ + + + diff --git a/libs/QMapControl/html/functions_enum.html b/libs/QMapControl/html/functions_enum.html new file mode 100644 index 00000000..604442ea --- /dev/null +++ b/libs/QMapControl/html/functions_enum.html @@ -0,0 +1,73 @@ + + + + + + +QMapControl: Class Members - Enumerations + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + + +
+
+
+ + + + diff --git a/libs/QMapControl/html/functions_eval.html b/libs/QMapControl/html/functions_eval.html new file mode 100644 index 00000000..92e8cf77 --- /dev/null +++ b/libs/QMapControl/html/functions_eval.html @@ -0,0 +1,100 @@ + + + + + + +QMapControl: Class Members - Enumerator + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + + +
+
+
+ + + + diff --git a/libs/QMapControl/html/functions_func.html b/libs/QMapControl/html/functions_func.html new file mode 100644 index 00000000..d86b246a --- /dev/null +++ b/libs/QMapControl/html/functions_func.html @@ -0,0 +1,525 @@ + + + + + + +QMapControl: Class Members - Functions + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + + + +
+
+  + +

- a -

+ + +

- b -

+ + +

- c -

+ + +

- d -

+ + +

- e -

+ + +

- f -

+ + +

- g -

+ + +

- h -

+ + +

- i -

+ + +

- l -

+ + +

- m -

+ + +

- n -

+ + +

- o -

+ + +

- p -

+ + +

- r -

+ + +

- s -

+ + +

- t -

+ + +

- u -

+ + +

- v -

+ + +

- w -

+ + +

- y -

+ + +

- z -

+
+ + + + diff --git a/libs/QMapControl/html/geometry_8h_source.html b/libs/QMapControl/html/geometry_8h_source.html new file mode 100644 index 00000000..285856a0 --- /dev/null +++ b/libs/QMapControl/html/geometry_8h_source.html @@ -0,0 +1,167 @@ + + + + + + +QMapControl: geometry.h Source File + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + +
+
+
+
geometry.h
+
+
+
1 /*
+
2 *
+
3 * This file is part of QMapControl,
+
4 * an open-source cross-platform map widget
+
5 *
+
6 * Copyright (C) 2007 - 2008 Kai Winter
+
7 *
+
8 * This program is free software: you can redistribute it and/or modify
+
9 * it under the terms of the GNU Lesser General Public License as published by
+
10 * the Free Software Foundation, either version 3 of the License, or
+
11 * (at your option) any later version.
+
12 *
+
13 * This program is distributed in the hope that it will be useful,
+
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
+
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+
16 * GNU Lesser General Public License for more details.
+
17 *
+
18 * You should have received a copy of the GNU Lesser General Public License
+
19 * along with QMapControl. If not, see <http://www.gnu.org/licenses/>.
+
20 *
+
21 * Contact e-mail: kaiwinter@gmx.de
+
22 * Program URL : http://qmapcontrol.sourceforge.net/
+
23 *
+
24 */
+
25 
+
26 #ifndef GEOMETRY_H
+
27 #define GEOMETRY_H
+
28 
+
29 #include "qmapcontrol_global.h"
+
30 #include <QObject>
+
31 #include <QPainter>
+
32 #include <QDebug>
+
33 #include "mapadapter.h"
+
34 
+
35 namespace qmapcontrol
+
36 {
+
37  class Point;
+
39 
+
48  class QMAPCONTROL_EXPORT Geometry : public QObject
+
49  {
+
50  friend class LineString;
+
51  Q_OBJECT
+
52  public:
+
53  explicit Geometry(QString name = QString());
+
54  virtual ~Geometry();
+
55 
+
56  QString GeometryType;
+
57 
+
59 
+
64  bool Equals(Geometry* geom);
+
65 
+
67 
+
71  QString toString();
+
72 
+
74 
+
77  QString name() const;
+
78 
+
80 
+
84  Geometry* parentGeometry() const;
+
85 
+
87 
+
90  bool isVisible() const;
+
91 
+
93 
+
96  void setName(QString name);
+
97 
+
99 
+
103  QPen* pen() const;
+
104 
+
106 
+
110  virtual QRectF boundingBox()=0;
+
111  virtual bool Touches(Point* geom, const MapAdapter* mapadapter)=0;
+
112  virtual void draw(QPainter* painter, const MapAdapter* mapadapter, const QRect &viewport, const QPoint offset)=0;
+
113  virtual bool hasPoints() const;
+
114  virtual bool hasClickedPoints() const;
+
115  virtual void setPen(QPen* pen);
+
116  virtual QList<Geometry*>& clickedPoints();
+
117  virtual QList<Point*> points()=0;
+
118 
+
119  private:
+
120  Q_DISABLE_COPY( Geometry )
+
121 
+
122  Geometry* myparentGeometry;
+
123  QList<Geometry*> touchedPoints;
+
124 
+
125  protected:
+
126  QPen* mypen;
+
127  bool visible;
+
128  QString myname;
+
129  void setParentGeometry(Geometry* geom);
+
130 
+
131  signals:
+
132  void updateRequest(Geometry* geom);
+
133  void updateRequest(QRectF rect);
+
135 
+
141  void geometryClicked(Geometry* geometry, QPoint point);
+
142 
+
144 
+
147  void positionChanged(Geometry* geom);
+
148 
+
149  public slots:
+
151 
+
154  virtual void setVisible(bool visible);
+
155  };
+
156 }
+
157 #endif
+
Main class for objects that should be painted in maps.
Definition: geometry.h:48
+
Used to fit map servers into QMapControl.
Definition: mapadapter.h:56
+ +
A geometric point to draw objects into maps.
Definition: point.h:66
+
A collection of Point objects to describe a line.
Definition: linestring.h:39
+
QMapControl namespace.
Definition: arrowpoint.cpp:28
+
+ + + + diff --git a/libs/QMapControl/html/geometrylayer_8h_source.html b/libs/QMapControl/html/geometrylayer_8h_source.html new file mode 100644 index 00000000..ee3b220c --- /dev/null +++ b/libs/QMapControl/html/geometrylayer_8h_source.html @@ -0,0 +1,104 @@ + + + + + + +QMapControl: geometrylayer.h Source File + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + +
+
+
+
geometrylayer.h
+
+
+
1 /*
+
2 *
+
3 * This file is part of QMapControl,
+
4 * an open-source cross-platform map widget
+
5 *
+
6 * Copyright (C) 2007 - 2008 Kai Winter
+
7 *
+
8 * This program is free software: you can redistribute it and/or modify
+
9 * it under the terms of the GNU Lesser General Public License as published by
+
10 * the Free Software Foundation, either version 3 of the License, or
+
11 * (at your option) any later version.
+
12 *
+
13 * This program is distributed in the hope that it will be useful,
+
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
+
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+
16 * GNU Lesser General Public License for more details.
+
17 *
+
18 * You should have received a copy of the GNU Lesser General Public License
+
19 * along with QMapControl. If not, see <http://www.gnu.org/licenses/>.
+
20 *
+
21 * Contact e-mail: kaiwinter@gmx.de
+
22 * Program URL : http://qmapcontrol.sourceforge.net/
+
23 *
+
24 */
+
25 
+
26 #ifndef GEOMETRYLAYER_H
+
27 #define GEOMETRYLAYER_H
+
28 
+
29 #include "qmapcontrol_global.h"
+
30 #include "layer.h"
+
31 
+
32 namespace qmapcontrol
+
33 {
+
35 
+
48  class QMAPCONTROL_EXPORT GeometryLayer : public Layer
+
49  {
+
50  Q_OBJECT
+
51 
+
52  public:
+
54 
+
62  GeometryLayer(QString layername, MapAdapter* mapadapter, bool takeevents=true);
+
63  virtual ~GeometryLayer();
+
64  };
+
65 }
+
66 #endif
+
Used to fit map servers into QMapControl.
Definition: mapadapter.h:56
+
GeometryLayer class.
Definition: geometrylayer.h:48
+
Layer class.
Definition: layer.h:60
+
QMapControl namespace.
Definition: arrowpoint.cpp:28
+
+ + + + diff --git a/libs/QMapControl/html/googlemapadapter_8h_source.html b/libs/QMapControl/html/googlemapadapter_8h_source.html new file mode 100644 index 00000000..5b390bab --- /dev/null +++ b/libs/QMapControl/html/googlemapadapter_8h_source.html @@ -0,0 +1,113 @@ + + + + + + +QMapControl: googlemapadapter.h Source File + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + +
+
+
+
googlemapadapter.h
+
+
+
1 /*
+
2 *
+
3 * This file is part of QMapControl,
+
4 * an open-source cross-platform map widget
+
5 *
+
6 * Copyright (C) 2007 - 2008 Kai Winter
+
7 *
+
8 * This program is free software: you can redistribute it and/or modify
+
9 * it under the terms of the GNU Lesser General Public License as published by
+
10 * the Free Software Foundation, either version 3 of the License, or
+
11 * (at your option) any later version.
+
12 *
+
13 * This program is distributed in the hope that it will be useful,
+
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
+
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+
16 * GNU Lesser General Public License for more details.
+
17 *
+
18 * You should have received a copy of the GNU Lesser General Public License
+
19 * along with QMapControl. If not, see <http://www.gnu.org/licenses/>.
+
20 *
+
21 * Contact e-mail: kaiwinter@gmx.de
+
22 * Program URL : http://qmapcontrol.sourceforge.net/
+
23 *
+
24 */
+
25 
+
26 #ifndef GOOGLEMAPADAPTER_H
+
27 #define GOOGLEMAPADAPTER_H
+
28 
+
29 #include "qmapcontrol_global.h"
+
30 #include "tilemapadapter.h"
+
31 
+
32 namespace qmapcontrol
+
33 {
+
35 
+
39  class QMAPCONTROL_EXPORT GoogleMapAdapter : public TileMapAdapter
+
40  {
+
41  Q_OBJECT
+
42 
+
43  public:
+
44  enum googleLayerType
+
45  {
+
46  maps = 0,
+
47  satellite,
+
48  terrain,
+
49  hybrid,
+
50  raster,
+
51  };
+
53 
+
56  GoogleMapAdapter( googleLayerType qLayerType = maps );
+
57  virtual ~GoogleMapAdapter();
+
58  private:
+
59  QString typeToString( googleLayerType qLayerType );
+
60  };
+
61 }
+
62 #endif
+
MapAdapter for servers with image tiles.
Definition: tilemapadapter.h:39
+
MapAdapter for Google.
Definition: googlemapadapter.h:39
+
QMapControl namespace.
Definition: arrowpoint.cpp:28
+
+ + + + diff --git a/libs/QMapControl/html/googlesatmapadapter_8h_source.html b/libs/QMapControl/html/googlesatmapadapter_8h_source.html new file mode 100644 index 00000000..79f89a4e --- /dev/null +++ b/libs/QMapControl/html/googlesatmapadapter_8h_source.html @@ -0,0 +1,92 @@ + + +QMapControl: googlesatmapadapter.h Source File + + + + + +
Generated on Wed Jul 29 12:38:10 2009 for QMapControl by  + +doxygen 1.5.9
+ + diff --git a/libs/QMapControl/html/gps_8cpp-example.html b/libs/QMapControl/html/gps_8cpp-example.html new file mode 100644 index 00000000..047ebff7 --- /dev/null +++ b/libs/QMapControl/html/gps_8cpp-example.html @@ -0,0 +1,95 @@ + + +QMapControl: gps.cpp + + + + + +
+

gps.cpp

This sample application uses GPS data from the gllin service, which you have to start manually before using this application. The file /tmp/nmeaNP is read in for the posiitons.

+The application receives positions from the GPS_Neo class and writes it into a label. You can toggle a button to set the view to the received coordinate.

+You can find this example here: MapAPI/Samples/GPS

+sample_gps.png +

screenshot

+
See also:
http://3rdparty.downloads.openmoko.org
+
#include "gps.h"
+
+GPS::GPS()
+{
+        // create MapControl
+        mc = new MapControl(QSize(480,640));
+//      ImageManager::instance()->setProxy("www-cache", 8080);
+        
+        // create MapAdapter to get maps from
+        TileMapAdapter* mapadapter = new TileMapAdapter("tile.openstreetmap.org", "/%1/%2/%3.png", 256, 0, 17);
+        
+        // create a layer with the mapadapter and type MapLayer
+        Layer* l = new Layer("Custom Layer", mapadapter, Layer::MapLayer);
+        
+        // add Layer to the MapControl
+        mc->addLayer(l);
+        
+        // display the MapControl in the application
+        QHBoxLayout* layout = new QHBoxLayout;
+        layout->addWidget(mc);
+        setLayout(layout);
+        
+        // create buttons as controls for zoom
+        QPushButton* zoomin = new QPushButton("+");
+        QPushButton* zoomout = new QPushButton("-");
+        followgps = new QPushButton("F");
+        followgps->setCheckable(true);
+        gpsposition = new QLabel();
+        zoomin->setMaximumWidth(50);
+        zoomout->setMaximumWidth(50);
+        followgps->setMaximumWidth(50);
+        gpsposition->setFont(QFont("Arial", 10));
+        
+        connect(zoomin, SIGNAL(clicked(bool)),
+                          mc, SLOT(zoomIn()));
+        connect(zoomout, SIGNAL(clicked(bool)),
+                          mc, SLOT(zoomOut()));
+        
+        // add zoom buttons to the layout of the MapControl
+        QVBoxLayout* innerlayout = new QVBoxLayout;
+        innerlayout->addWidget(zoomin);
+        innerlayout->addWidget(zoomout);
+        innerlayout->addWidget(followgps);
+        innerlayout->addWidget(gpsposition);
+        mc->setLayout(innerlayout);
+        
+        GPS_Neo* gm = new GPS_Neo();
+        connect(gm, SIGNAL(new_position(float, QPointF)),
+                          this, SLOT(updatePosition(float, QPointF)));
+        gm->start();
+}
+
+GPS::~GPS()
+{
+}
+
+void GPS::updatePosition(float time, QPointF coordinate)
+{
+        gpsposition->setText(QString::number(time) + " / " + QString::number(coordinate.x()) + " / " + QString::number(coordinate.y()));
+        if (followgps->isChecked())
+        {
+                mc->setView(coordinate);
+        }
+}
+
+
Generated on Wed Jul 29 12:38:09 2009 for QMapControl by  + +doxygen 1.5.9
+ + diff --git a/libs/QMapControl/html/gps_8h_source.html b/libs/QMapControl/html/gps_8h_source.html new file mode 100644 index 00000000..51fedf01 --- /dev/null +++ b/libs/QMapControl/html/gps_8h_source.html @@ -0,0 +1,54 @@ + + +QMapControl: gps.h Source File + + + + + +
Generated on Wed Jul 29 12:38:10 2009 for QMapControl by  + +doxygen 1.5.9
+ + diff --git a/libs/QMapControl/html/gps__position_8h_source.html b/libs/QMapControl/html/gps__position_8h_source.html new file mode 100644 index 00000000..3f32b04e --- /dev/null +++ b/libs/QMapControl/html/gps__position_8h_source.html @@ -0,0 +1,103 @@ + + + + + + +QMapControl: gps_position.h Source File + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + +
+
+
+
gps_position.h
+
+
+
1 /*
+
2 *
+
3 * This file is part of QMapControl,
+
4 * an open-source cross-platform map widget
+
5 *
+
6 * Copyright (C) 2007 - 2008 Kai Winter
+
7 *
+
8 * This program is free software: you can redistribute it and/or modify
+
9 * it under the terms of the GNU Lesser General Public License as published by
+
10 * the Free Software Foundation, either version 3 of the License, or
+
11 * (at your option) any later version.
+
12 *
+
13 * This program is distributed in the hope that it will be useful,
+
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
+
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+
16 * GNU Lesser General Public License for more details.
+
17 *
+
18 * You should have received a copy of the GNU Lesser General Public License
+
19 * along with QMapControl. If not, see <http://www.gnu.org/licenses/>.
+
20 *
+
21 * Contact e-mail: kaiwinter@gmx.de
+
22 * Program URL : http://qmapcontrol.sourceforge.net/
+
23 *
+
24 */
+
25 
+
26 #ifndef GPS_POSITION_H
+
27 #define GPS_POSITION_H
+
28 
+
29 #include "qmapcontrol_global.h"
+
30 #include <QString>
+
31 
+
32 namespace qmapcontrol
+
33 {
+
35 
+
40  class QMAPCONTROL_EXPORT GPS_Position
+
41  {
+
42  public:
+
43  GPS_Position(float time, float longitude, QString longitude_dir, float latitude, QString latitude_dir);
+
44  float time;
+
45  float longitude;
+
46  float latitude;
+
48  private:
+
49  QString longitude_dir;
+
50  QString latitude_dir;
+
51  };
+
52 }
+
53 #endif
+
QMapControl namespace.
Definition: arrowpoint.cpp:28
+
+ + + + diff --git a/libs/QMapControl/html/hierarchy.html b/libs/QMapControl/html/hierarchy.html new file mode 100644 index 00000000..bdc814b7 --- /dev/null +++ b/libs/QMapControl/html/hierarchy.html @@ -0,0 +1,86 @@ + + + + + + +QMapControl: Class Hierarchy + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + +
+
+
+
Class Hierarchy
+
+
+
This inheritance list is sorted roughly, but not completely, alphabetically:
+
[detail level 12345]
+ + + + + + + + + + + + + + + + + + + + + + + + +
 CQObject
 CGeometryMain class for objects that should be painted in maps
 CCurveA Curve Geometry, implemented to fullfil OGC Spec
 CLineStringA collection of Point objects to describe a line
 CPointA geometric point to draw objects into maps
 CArrowPointDraws a directed arrow (showing orientation) into the map
 CCirclePointDraws a circle into the map
 CImagePointDraws an image into the map
 CFixedImageOverlayDraws a fixed image into the map
 CInvisiblePointDraws an invisible point into the map
 CLayerLayer class
 CGeometryLayerGeometryLayer class
 CMapLayerMapLayer class
 CMapAdapterUsed to fit map servers into QMapControl
 CEmptyMapAdapterMapAdapter which do not load map tiles
 CTileMapAdapterMapAdapter for servers with image tiles
 CGoogleMapAdapterMapAdapter for Google
 COpenAerialMapAdapterMapAdapter for OpenStreetMap
 COSMMapAdapterMapAdapter for OpenStreetMap
 CYahooMapAdapterMapAdapter for Yahoo Maps
 CWMSMapAdapterMapAdapter for WMS servers
 CMapNetwork
 CQWidget
 CMapControlThe control element of the widget and also the widget itself
+
+
+ + + + diff --git a/libs/QMapControl/html/imagepoint_8h_source.html b/libs/QMapControl/html/imagepoint_8h_source.html new file mode 100644 index 00000000..16d82965 --- /dev/null +++ b/libs/QMapControl/html/imagepoint_8h_source.html @@ -0,0 +1,106 @@ + + + + + + +QMapControl: imagepoint.h Source File + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + +
+
+
+
imagepoint.h
+
+
+
1 /*
+
2 *
+
3 * This file is part of QMapControl,
+
4 * an open-source cross-platform map widget
+
5 *
+
6 * Copyright (C) 2007 - 2008 Kai Winter
+
7 *
+
8 * This program is free software: you can redistribute it and/or modify
+
9 * it under the terms of the GNU Lesser General Public License as published by
+
10 * the Free Software Foundation, either version 3 of the License, or
+
11 * (at your option) any later version.
+
12 *
+
13 * This program is distributed in the hope that it will be useful,
+
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
+
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+
16 * GNU Lesser General Public License for more details.
+
17 *
+
18 * You should have received a copy of the GNU Lesser General Public License
+
19 * along with QMapControl. If not, see <http://www.gnu.org/licenses/>.
+
20 *
+
21 * Contact e-mail: kaiwinter@gmx.de
+
22 * Program URL : http://qmapcontrol.sourceforge.net/
+
23 *
+
24 */
+
25 
+
26 #ifndef IMAGEPOINT_H
+
27 #define IMAGEPOINT_H
+
28 
+
29 #include "qmapcontrol_global.h"
+
30 #include "point.h"
+
31 
+
32 namespace qmapcontrol
+
33 {
+
34 
+
36 
+
42  class QMAPCONTROL_EXPORT ImagePoint : public Point
+
43  {
+
44  public:
+
46 
+
55  ImagePoint(qreal x, qreal y, QString filename, QString name = QString(), Alignment alignment = Middle);
+
56 
+
58 
+
67  ImagePoint(qreal x, qreal y, QPixmap pixmap, QString name = QString(), Alignment alignment = Middle);
+
68  virtual ~ImagePoint();
+
69  };
+
70 }
+
71 #endif
+
Alignment
sets where the point should be aligned
Definition: point.h:75
+
A geometric point to draw objects into maps.
Definition: point.h:66
+
Draws an image into the map.
Definition: imagepoint.h:42
+
QMapControl namespace.
Definition: arrowpoint.cpp:28
+
+ + + + diff --git a/libs/QMapControl/html/index.html b/libs/QMapControl/html/index.html new file mode 100644 index 00000000..60d17415 --- /dev/null +++ b/libs/QMapControl/html/index.html @@ -0,0 +1,51 @@ + + + + + + +QMapControl: Main Page + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + +
+
+
+
QMapControl Documentation
+
+
+
+ + + + diff --git a/libs/QMapControl/html/invisiblepoint_8h_source.html b/libs/QMapControl/html/invisiblepoint_8h_source.html new file mode 100644 index 00000000..98dd87a0 --- /dev/null +++ b/libs/QMapControl/html/invisiblepoint_8h_source.html @@ -0,0 +1,108 @@ + + + + + + +QMapControl: invisiblepoint.h Source File + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + +
+
+
+
invisiblepoint.h
+
+
+
1 /*
+
2 *
+
3 * This file is part of QMapControl,
+
4 * an open-source cross-platform map widget
+
5 *
+
6 * Copyright (C) 2014 Frederic Bourgeois
+
7 * Based on CirclePoint code by Kai Winter
+
8 *
+
9 * This program is free software: you can redistribute it and/or modify
+
10 * it under the terms of the GNU Lesser General Public License as published by
+
11 * the Free Software Foundation, either version 3 of the License, or
+
12 * (at your option) any later version.
+
13 *
+
14 * This program is distributed in the hope that it will be useful,
+
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
+
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+
17 * GNU Lesser General Public License for more details.
+
18 *
+
19 * You should have received a copy of the GNU Lesser General Public License
+
20 * along with QMapControl. If not, see <http://www.gnu.org/licenses/>.
+
21 *
+
22 * Contact e-mail: kaiwinter@gmx.de
+
23 * Program URL : http://qmapcontrol.sourceforge.net/
+
24 *
+
25 */
+
26 
+
27 #ifndef INVISIBLEPOINT_H
+
28 #define INVISIBLEPOINT_H
+
29 
+
30 #include "qmapcontrol_global.h"
+
31 #include "point.h"
+
32 
+
33 namespace qmapcontrol
+
34 {
+
36 
+
42  class QMAPCONTROL_EXPORT InvisiblePoint : public Point
+
43  {
+
44  public:
+
46 
+
52  InvisiblePoint(qreal x, qreal y, QString name = QString());
+
53 
+
55 
+
63  InvisiblePoint(qreal x, qreal y, int width = 10, int height = 10, QString name = QString());
+
64 
+
66 
+
73  InvisiblePoint(qreal x, qreal y, int sideLength = 10, QString name = QString());
+
74  virtual ~InvisiblePoint();
+
75  };
+
76 }
+
77 #endif
+
Draws an invisible point into the map.
Definition: invisiblepoint.h:42
+
A geometric point to draw objects into maps.
Definition: point.h:66
+
QMapControl namespace.
Definition: arrowpoint.cpp:28
+
+ + + + diff --git a/libs/QMapControl/html/jquery.js b/libs/QMapControl/html/jquery.js new file mode 100644 index 00000000..c197801c --- /dev/null +++ b/libs/QMapControl/html/jquery.js @@ -0,0 +1,31 @@ +/*! + * jQuery JavaScript Library v1.7.1 + * http://jquery.com/ + * + * Copyright 2011, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Mon Nov 21 21:11:03 2011 -0500 + */ +(function(bb,L){var av=bb.document,bu=bb.navigator,bl=bb.location;var b=(function(){var bF=function(b0,b1){return new bF.fn.init(b0,b1,bD)},bU=bb.jQuery,bH=bb.$,bD,bY=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,bM=/\S/,bI=/^\s+/,bE=/\s+$/,bA=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,bN=/^[\],:{}\s]*$/,bW=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,bP=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,bJ=/(?:^|:|,)(?:\s*\[)+/g,by=/(webkit)[ \/]([\w.]+)/,bR=/(opera)(?:.*version)?[ \/]([\w.]+)/,bQ=/(msie) ([\w.]+)/,bS=/(mozilla)(?:.*? rv:([\w.]+))?/,bB=/-([a-z]|[0-9])/ig,bZ=/^-ms-/,bT=function(b0,b1){return(b1+"").toUpperCase()},bX=bu.userAgent,bV,bC,e,bL=Object.prototype.toString,bG=Object.prototype.hasOwnProperty,bz=Array.prototype.push,bK=Array.prototype.slice,bO=String.prototype.trim,bv=Array.prototype.indexOf,bx={};bF.fn=bF.prototype={constructor:bF,init:function(b0,b4,b3){var b2,b5,b1,b6;if(!b0){return this}if(b0.nodeType){this.context=this[0]=b0;this.length=1;return this}if(b0==="body"&&!b4&&av.body){this.context=av;this[0]=av.body;this.selector=b0;this.length=1;return this}if(typeof b0==="string"){if(b0.charAt(0)==="<"&&b0.charAt(b0.length-1)===">"&&b0.length>=3){b2=[null,b0,null]}else{b2=bY.exec(b0)}if(b2&&(b2[1]||!b4)){if(b2[1]){b4=b4 instanceof bF?b4[0]:b4;b6=(b4?b4.ownerDocument||b4:av);b1=bA.exec(b0);if(b1){if(bF.isPlainObject(b4)){b0=[av.createElement(b1[1])];bF.fn.attr.call(b0,b4,true)}else{b0=[b6.createElement(b1[1])]}}else{b1=bF.buildFragment([b2[1]],[b6]);b0=(b1.cacheable?bF.clone(b1.fragment):b1.fragment).childNodes}return bF.merge(this,b0)}else{b5=av.getElementById(b2[2]);if(b5&&b5.parentNode){if(b5.id!==b2[2]){return b3.find(b0)}this.length=1;this[0]=b5}this.context=av;this.selector=b0;return this}}else{if(!b4||b4.jquery){return(b4||b3).find(b0)}else{return this.constructor(b4).find(b0)}}}else{if(bF.isFunction(b0)){return b3.ready(b0)}}if(b0.selector!==L){this.selector=b0.selector;this.context=b0.context}return bF.makeArray(b0,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return bK.call(this,0)},get:function(b0){return b0==null?this.toArray():(b0<0?this[this.length+b0]:this[b0])},pushStack:function(b1,b3,b0){var b2=this.constructor();if(bF.isArray(b1)){bz.apply(b2,b1)}else{bF.merge(b2,b1)}b2.prevObject=this;b2.context=this.context;if(b3==="find"){b2.selector=this.selector+(this.selector?" ":"")+b0}else{if(b3){b2.selector=this.selector+"."+b3+"("+b0+")"}}return b2},each:function(b1,b0){return bF.each(this,b1,b0)},ready:function(b0){bF.bindReady();bC.add(b0);return this},eq:function(b0){b0=+b0;return b0===-1?this.slice(b0):this.slice(b0,b0+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(bK.apply(this,arguments),"slice",bK.call(arguments).join(","))},map:function(b0){return this.pushStack(bF.map(this,function(b2,b1){return b0.call(b2,b1,b2)}))},end:function(){return this.prevObject||this.constructor(null)},push:bz,sort:[].sort,splice:[].splice};bF.fn.init.prototype=bF.fn;bF.extend=bF.fn.extend=function(){var b9,b2,b0,b1,b6,b7,b5=arguments[0]||{},b4=1,b3=arguments.length,b8=false;if(typeof b5==="boolean"){b8=b5;b5=arguments[1]||{};b4=2}if(typeof b5!=="object"&&!bF.isFunction(b5)){b5={}}if(b3===b4){b5=this;--b4}for(;b40){return}bC.fireWith(av,[bF]);if(bF.fn.trigger){bF(av).trigger("ready").off("ready")}}},bindReady:function(){if(bC){return}bC=bF.Callbacks("once memory");if(av.readyState==="complete"){return setTimeout(bF.ready,1)}if(av.addEventListener){av.addEventListener("DOMContentLoaded",e,false);bb.addEventListener("load",bF.ready,false)}else{if(av.attachEvent){av.attachEvent("onreadystatechange",e);bb.attachEvent("onload",bF.ready);var b0=false;try{b0=bb.frameElement==null}catch(b1){}if(av.documentElement.doScroll&&b0){bw()}}}},isFunction:function(b0){return bF.type(b0)==="function"},isArray:Array.isArray||function(b0){return bF.type(b0)==="array"},isWindow:function(b0){return b0&&typeof b0==="object"&&"setInterval" in b0},isNumeric:function(b0){return !isNaN(parseFloat(b0))&&isFinite(b0)},type:function(b0){return b0==null?String(b0):bx[bL.call(b0)]||"object"},isPlainObject:function(b2){if(!b2||bF.type(b2)!=="object"||b2.nodeType||bF.isWindow(b2)){return false}try{if(b2.constructor&&!bG.call(b2,"constructor")&&!bG.call(b2.constructor.prototype,"isPrototypeOf")){return false}}catch(b1){return false}var b0;for(b0 in b2){}return b0===L||bG.call(b2,b0)},isEmptyObject:function(b1){for(var b0 in b1){return false}return true},error:function(b0){throw new Error(b0)},parseJSON:function(b0){if(typeof b0!=="string"||!b0){return null}b0=bF.trim(b0);if(bb.JSON&&bb.JSON.parse){return bb.JSON.parse(b0)}if(bN.test(b0.replace(bW,"@").replace(bP,"]").replace(bJ,""))){return(new Function("return "+b0))()}bF.error("Invalid JSON: "+b0)},parseXML:function(b2){var b0,b1;try{if(bb.DOMParser){b1=new DOMParser();b0=b1.parseFromString(b2,"text/xml")}else{b0=new ActiveXObject("Microsoft.XMLDOM");b0.async="false";b0.loadXML(b2)}}catch(b3){b0=L}if(!b0||!b0.documentElement||b0.getElementsByTagName("parsererror").length){bF.error("Invalid XML: "+b2)}return b0},noop:function(){},globalEval:function(b0){if(b0&&bM.test(b0)){(bb.execScript||function(b1){bb["eval"].call(bb,b1)})(b0)}},camelCase:function(b0){return b0.replace(bZ,"ms-").replace(bB,bT)},nodeName:function(b1,b0){return b1.nodeName&&b1.nodeName.toUpperCase()===b0.toUpperCase()},each:function(b3,b6,b2){var b1,b4=0,b5=b3.length,b0=b5===L||bF.isFunction(b3);if(b2){if(b0){for(b1 in b3){if(b6.apply(b3[b1],b2)===false){break}}}else{for(;b40&&b0[0]&&b0[b1-1])||b1===0||bF.isArray(b0));if(b3){for(;b21?aJ.call(arguments,0):bG;if(!(--bw)){bC.resolveWith(bC,bx)}}}function bz(bF){return function(bG){bB[bF]=arguments.length>1?aJ.call(arguments,0):bG;bC.notifyWith(bE,bB)}}if(e>1){for(;bv
a";bI=bv.getElementsByTagName("*");bF=bv.getElementsByTagName("a")[0];if(!bI||!bI.length||!bF){return{}}bG=av.createElement("select");bx=bG.appendChild(av.createElement("option"));bE=bv.getElementsByTagName("input")[0];bJ={leadingWhitespace:(bv.firstChild.nodeType===3),tbody:!bv.getElementsByTagName("tbody").length,htmlSerialize:!!bv.getElementsByTagName("link").length,style:/top/.test(bF.getAttribute("style")),hrefNormalized:(bF.getAttribute("href")==="/a"),opacity:/^0.55/.test(bF.style.opacity),cssFloat:!!bF.style.cssFloat,checkOn:(bE.value==="on"),optSelected:bx.selected,getSetAttribute:bv.className!=="t",enctype:!!av.createElement("form").enctype,html5Clone:av.createElement("nav").cloneNode(true).outerHTML!=="<:nav>",submitBubbles:true,changeBubbles:true,focusinBubbles:false,deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true};bE.checked=true;bJ.noCloneChecked=bE.cloneNode(true).checked;bG.disabled=true;bJ.optDisabled=!bx.disabled;try{delete bv.test}catch(bC){bJ.deleteExpando=false}if(!bv.addEventListener&&bv.attachEvent&&bv.fireEvent){bv.attachEvent("onclick",function(){bJ.noCloneEvent=false});bv.cloneNode(true).fireEvent("onclick")}bE=av.createElement("input");bE.value="t";bE.setAttribute("type","radio");bJ.radioValue=bE.value==="t";bE.setAttribute("checked","checked");bv.appendChild(bE);bD=av.createDocumentFragment();bD.appendChild(bv.lastChild);bJ.checkClone=bD.cloneNode(true).cloneNode(true).lastChild.checked;bJ.appendChecked=bE.checked;bD.removeChild(bE);bD.appendChild(bv);bv.innerHTML="";if(bb.getComputedStyle){bA=av.createElement("div");bA.style.width="0";bA.style.marginRight="0";bv.style.width="2px";bv.appendChild(bA);bJ.reliableMarginRight=(parseInt((bb.getComputedStyle(bA,null)||{marginRight:0}).marginRight,10)||0)===0}if(bv.attachEvent){for(by in {submit:1,change:1,focusin:1}){bB="on"+by;bw=(bB in bv);if(!bw){bv.setAttribute(bB,"return;");bw=(typeof bv[bB]==="function")}bJ[by+"Bubbles"]=bw}}bD.removeChild(bv);bD=bG=bx=bA=bv=bE=null;b(function(){var bM,bU,bV,bT,bN,bO,bL,bS,bR,e,bP,bQ=av.getElementsByTagName("body")[0];if(!bQ){return}bL=1;bS="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;";bR="visibility:hidden;border:0;";e="style='"+bS+"border:5px solid #000;padding:0;'";bP="
";bM=av.createElement("div");bM.style.cssText=bR+"width:0;height:0;position:static;top:0;margin-top:"+bL+"px";bQ.insertBefore(bM,bQ.firstChild);bv=av.createElement("div");bM.appendChild(bv);bv.innerHTML="
t
";bz=bv.getElementsByTagName("td");bw=(bz[0].offsetHeight===0);bz[0].style.display="";bz[1].style.display="none";bJ.reliableHiddenOffsets=bw&&(bz[0].offsetHeight===0);bv.innerHTML="";bv.style.width=bv.style.paddingLeft="1px";b.boxModel=bJ.boxModel=bv.offsetWidth===2;if(typeof bv.style.zoom!=="undefined"){bv.style.display="inline";bv.style.zoom=1;bJ.inlineBlockNeedsLayout=(bv.offsetWidth===2);bv.style.display="";bv.innerHTML="
";bJ.shrinkWrapBlocks=(bv.offsetWidth!==2)}bv.style.cssText=bS+bR;bv.innerHTML=bP;bU=bv.firstChild;bV=bU.firstChild;bN=bU.nextSibling.firstChild.firstChild;bO={doesNotAddBorder:(bV.offsetTop!==5),doesAddBorderForTableAndCells:(bN.offsetTop===5)};bV.style.position="fixed";bV.style.top="20px";bO.fixedPosition=(bV.offsetTop===20||bV.offsetTop===15);bV.style.position=bV.style.top="";bU.style.overflow="hidden";bU.style.position="relative";bO.subtractsBorderForOverflowNotVisible=(bV.offsetTop===-5);bO.doesNotIncludeMarginInBodyOffset=(bQ.offsetTop!==bL);bQ.removeChild(bM);bv=bM=null;b.extend(bJ,bO)});return bJ})();var aS=/^(?:\{.*\}|\[.*\])$/,aA=/([A-Z])/g;b.extend({cache:{},uuid:0,expando:"jQuery"+(b.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(e){e=e.nodeType?b.cache[e[b.expando]]:e[b.expando];return !!e&&!S(e)},data:function(bx,bv,bz,by){if(!b.acceptData(bx)){return}var bG,bA,bD,bE=b.expando,bC=typeof bv==="string",bF=bx.nodeType,e=bF?b.cache:bx,bw=bF?bx[bE]:bx[bE]&&bE,bB=bv==="events";if((!bw||!e[bw]||(!bB&&!by&&!e[bw].data))&&bC&&bz===L){return}if(!bw){if(bF){bx[bE]=bw=++b.uuid}else{bw=bE}}if(!e[bw]){e[bw]={};if(!bF){e[bw].toJSON=b.noop}}if(typeof bv==="object"||typeof bv==="function"){if(by){e[bw]=b.extend(e[bw],bv)}else{e[bw].data=b.extend(e[bw].data,bv)}}bG=bA=e[bw];if(!by){if(!bA.data){bA.data={}}bA=bA.data}if(bz!==L){bA[b.camelCase(bv)]=bz}if(bB&&!bA[bv]){return bG.events}if(bC){bD=bA[bv];if(bD==null){bD=bA[b.camelCase(bv)]}}else{bD=bA}return bD},removeData:function(bx,bv,by){if(!b.acceptData(bx)){return}var bB,bA,bz,bC=b.expando,bD=bx.nodeType,e=bD?b.cache:bx,bw=bD?bx[bC]:bC;if(!e[bw]){return}if(bv){bB=by?e[bw]:e[bw].data;if(bB){if(!b.isArray(bv)){if(bv in bB){bv=[bv]}else{bv=b.camelCase(bv);if(bv in bB){bv=[bv]}else{bv=bv.split(" ")}}}for(bA=0,bz=bv.length;bA-1){return true}}return false},val:function(bx){var e,bv,by,bw=this[0];if(!arguments.length){if(bw){e=b.valHooks[bw.nodeName.toLowerCase()]||b.valHooks[bw.type];if(e&&"get" in e&&(bv=e.get(bw,"value"))!==L){return bv}bv=bw.value;return typeof bv==="string"?bv.replace(aU,""):bv==null?"":bv}return}by=b.isFunction(bx);return this.each(function(bA){var bz=b(this),bB;if(this.nodeType!==1){return}if(by){bB=bx.call(this,bA,bz.val())}else{bB=bx}if(bB==null){bB=""}else{if(typeof bB==="number"){bB+=""}else{if(b.isArray(bB)){bB=b.map(bB,function(bC){return bC==null?"":bC+""})}}}e=b.valHooks[this.nodeName.toLowerCase()]||b.valHooks[this.type];if(!e||!("set" in e)||e.set(this,bB,"value")===L){this.value=bB}})}});b.extend({valHooks:{option:{get:function(e){var bv=e.attributes.value;return !bv||bv.specified?e.value:e.text}},select:{get:function(e){var bA,bv,bz,bx,by=e.selectedIndex,bB=[],bC=e.options,bw=e.type==="select-one";if(by<0){return null}bv=bw?by:0;bz=bw?by+1:bC.length;for(;bv=0});if(!e.length){bv.selectedIndex=-1}return e}}},attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(bA,bx,bB,bz){var bw,e,by,bv=bA.nodeType; +if(!bA||bv===3||bv===8||bv===2){return}if(bz&&bx in b.attrFn){return b(bA)[bx](bB)}if(typeof bA.getAttribute==="undefined"){return b.prop(bA,bx,bB)}by=bv!==1||!b.isXMLDoc(bA);if(by){bx=bx.toLowerCase();e=b.attrHooks[bx]||(ao.test(bx)?aY:be)}if(bB!==L){if(bB===null){b.removeAttr(bA,bx);return}else{if(e&&"set" in e&&by&&(bw=e.set(bA,bB,bx))!==L){return bw}else{bA.setAttribute(bx,""+bB);return bB}}}else{if(e&&"get" in e&&by&&(bw=e.get(bA,bx))!==null){return bw}else{bw=bA.getAttribute(bx);return bw===null?L:bw}}},removeAttr:function(bx,bz){var by,bA,bv,e,bw=0;if(bz&&bx.nodeType===1){bA=bz.toLowerCase().split(af);e=bA.length;for(;bw=0)}}})});var bd=/^(?:textarea|input|select)$/i,n=/^([^\.]*)?(?:\.(.+))?$/,J=/\bhover(\.\S+)?\b/,aO=/^key/,bf=/^(?:mouse|contextmenu)|click/,T=/^(?:focusinfocus|focusoutblur)$/,U=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,Y=function(e){var bv=U.exec(e);if(bv){bv[1]=(bv[1]||"").toLowerCase();bv[3]=bv[3]&&new RegExp("(?:^|\\s)"+bv[3]+"(?:\\s|$)")}return bv},j=function(bw,e){var bv=bw.attributes||{};return((!e[1]||bw.nodeName.toLowerCase()===e[1])&&(!e[2]||(bv.id||{}).value===e[2])&&(!e[3]||e[3].test((bv["class"]||{}).value)))},bt=function(e){return b.event.special.hover?e:e.replace(J,"mouseenter$1 mouseleave$1")};b.event={add:function(bx,bC,bJ,bA,by){var bD,bB,bK,bI,bH,bF,e,bG,bv,bz,bw,bE;if(bx.nodeType===3||bx.nodeType===8||!bC||!bJ||!(bD=b._data(bx))){return}if(bJ.handler){bv=bJ;bJ=bv.handler}if(!bJ.guid){bJ.guid=b.guid++}bK=bD.events;if(!bK){bD.events=bK={}}bB=bD.handle;if(!bB){bD.handle=bB=function(bL){return typeof b!=="undefined"&&(!bL||b.event.triggered!==bL.type)?b.event.dispatch.apply(bB.elem,arguments):L};bB.elem=bx}bC=b.trim(bt(bC)).split(" ");for(bI=0;bI=0){bG=bG.slice(0,-1);bw=true}if(bG.indexOf(".")>=0){bx=bG.split(".");bG=bx.shift();bx.sort()}if((!bA||b.event.customEvent[bG])&&!b.event.global[bG]){return}bv=typeof bv==="object"?bv[b.expando]?bv:new b.Event(bG,bv):new b.Event(bG);bv.type=bG;bv.isTrigger=true;bv.exclusive=bw;bv.namespace=bx.join(".");bv.namespace_re=bv.namespace?new RegExp("(^|\\.)"+bx.join("\\.(?:.*\\.)?")+"(\\.|$)"):null;by=bG.indexOf(":")<0?"on"+bG:"";if(!bA){e=b.cache;for(bC in e){if(e[bC].events&&e[bC].events[bG]){b.event.trigger(bv,bD,e[bC].handle.elem,true)}}return}bv.result=L;if(!bv.target){bv.target=bA}bD=bD!=null?b.makeArray(bD):[];bD.unshift(bv);bF=b.event.special[bG]||{};if(bF.trigger&&bF.trigger.apply(bA,bD)===false){return}bB=[[bA,bF.bindType||bG]];if(!bJ&&!bF.noBubble&&!b.isWindow(bA)){bI=bF.delegateType||bG;bH=T.test(bI+bG)?bA:bA.parentNode;bz=null;for(;bH;bH=bH.parentNode){bB.push([bH,bI]);bz=bH}if(bz&&bz===bA.ownerDocument){bB.push([bz.defaultView||bz.parentWindow||bb,bI])}}for(bC=0;bCbA){bH.push({elem:this,matches:bz.slice(bA)})}for(bC=0;bC0?this.on(e,null,bx,bw):this.trigger(e)};if(b.attrFn){b.attrFn[e]=true}if(aO.test(e)){b.event.fixHooks[e]=b.event.keyHooks}if(bf.test(e)){b.event.fixHooks[e]=b.event.mouseHooks}}); +/*! + * Sizzle CSS Selector Engine + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * More information: http://sizzlejs.com/ + */ +(function(){var bH=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,bC="sizcache"+(Math.random()+"").replace(".",""),bI=0,bL=Object.prototype.toString,bB=false,bA=true,bK=/\\/g,bO=/\r\n/g,bQ=/\W/;[0,0].sort(function(){bA=false;return 0});var by=function(bV,e,bY,bZ){bY=bY||[];e=e||av;var b1=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!bV||typeof bV!=="string"){return bY}var bS,b3,b6,bR,b2,b5,b4,bX,bU=true,bT=by.isXML(e),bW=[],b0=bV;do{bH.exec("");bS=bH.exec(b0);if(bS){b0=bS[3];bW.push(bS[1]);if(bS[2]){bR=bS[3];break}}}while(bS);if(bW.length>1&&bD.exec(bV)){if(bW.length===2&&bE.relative[bW[0]]){b3=bM(bW[0]+bW[1],e,bZ)}else{b3=bE.relative[bW[0]]?[e]:by(bW.shift(),e);while(bW.length){bV=bW.shift();if(bE.relative[bV]){bV+=bW.shift()}b3=bM(bV,b3,bZ)}}}else{if(!bZ&&bW.length>1&&e.nodeType===9&&!bT&&bE.match.ID.test(bW[0])&&!bE.match.ID.test(bW[bW.length-1])){b2=by.find(bW.shift(),e,bT);e=b2.expr?by.filter(b2.expr,b2.set)[0]:b2.set[0]}if(e){b2=bZ?{expr:bW.pop(),set:bF(bZ)}:by.find(bW.pop(),bW.length===1&&(bW[0]==="~"||bW[0]==="+")&&e.parentNode?e.parentNode:e,bT);b3=b2.expr?by.filter(b2.expr,b2.set):b2.set;if(bW.length>0){b6=bF(b3)}else{bU=false}while(bW.length){b5=bW.pop();b4=b5;if(!bE.relative[b5]){b5=""}else{b4=bW.pop()}if(b4==null){b4=e}bE.relative[b5](b6,b4,bT)}}else{b6=bW=[]}}if(!b6){b6=b3}if(!b6){by.error(b5||bV)}if(bL.call(b6)==="[object Array]"){if(!bU){bY.push.apply(bY,b6)}else{if(e&&e.nodeType===1){for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&(b6[bX]===true||b6[bX].nodeType===1&&by.contains(e,b6[bX]))){bY.push(b3[bX])}}}else{for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&b6[bX].nodeType===1){bY.push(b3[bX])}}}}}else{bF(b6,bY)}if(bR){by(bR,b1,bY,bZ);by.uniqueSort(bY)}return bY};by.uniqueSort=function(bR){if(bJ){bB=bA;bR.sort(bJ);if(bB){for(var e=1;e0};by.find=function(bX,e,bY){var bW,bS,bU,bT,bV,bR;if(!bX){return[]}for(bS=0,bU=bE.order.length;bS":function(bW,bR){var bV,bU=typeof bR==="string",bS=0,e=bW.length;if(bU&&!bQ.test(bR)){bR=bR.toLowerCase();for(;bS=0)){if(!bS){e.push(bV)}}else{if(bS){bR[bU]=false}}}}return false},ID:function(e){return e[1].replace(bK,"")},TAG:function(bR,e){return bR[1].replace(bK,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){if(!e[2]){by.error(e[0])}e[2]=e[2].replace(/^\+|\s*/g,"");var bR=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(bR[1]+(bR[2]||1))-0;e[3]=bR[3]-0}else{if(e[2]){by.error(e[0])}}e[0]=bI++;return e},ATTR:function(bU,bR,bS,e,bV,bW){var bT=bU[1]=bU[1].replace(bK,"");if(!bW&&bE.attrMap[bT]){bU[1]=bE.attrMap[bT]}bU[4]=(bU[4]||bU[5]||"").replace(bK,"");if(bU[2]==="~="){bU[4]=" "+bU[4]+" "}return bU},PSEUDO:function(bU,bR,bS,e,bV){if(bU[1]==="not"){if((bH.exec(bU[3])||"").length>1||/^\w/.test(bU[3])){bU[3]=by(bU[3],null,null,bR)}else{var bT=by.filter(bU[3],bR,bS,true^bV);if(!bS){e.push.apply(e,bT)}return false}}else{if(bE.match.POS.test(bU[0])||bE.match.CHILD.test(bU[0])){return true}}return bU},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(bS,bR,e){return !!by(e[3],bS).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(bS){var e=bS.getAttribute("type"),bR=bS.type;return bS.nodeName.toLowerCase()==="input"&&"text"===bR&&(e===bR||e===null)},radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type},checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type},file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type},password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type},submit:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"submit"===bR.type},image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type},reset:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"reset"===bR.type},button:function(bR){var e=bR.nodeName.toLowerCase();return e==="input"&&"button"===bR.type||e==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(bR,e){return e===0},last:function(bS,bR,e,bT){return bR===bT.length-1},even:function(bR,e){return e%2===0},odd:function(bR,e){return e%2===1 +},lt:function(bS,bR,e){return bRe[3]-0},nth:function(bS,bR,e){return e[3]-0===bR},eq:function(bS,bR,e){return e[3]-0===bR}},filter:{PSEUDO:function(bS,bX,bW,bY){var e=bX[1],bR=bE.filters[e];if(bR){return bR(bS,bW,bX,bY)}else{if(e==="contains"){return(bS.textContent||bS.innerText||bw([bS])||"").indexOf(bX[3])>=0}else{if(e==="not"){var bT=bX[3];for(var bV=0,bU=bT.length;bV=0)}}},ID:function(bR,e){return bR.nodeType===1&&bR.getAttribute("id")===e},TAG:function(bR,e){return(e==="*"&&bR.nodeType===1)||!!bR.nodeName&&bR.nodeName.toLowerCase()===e},CLASS:function(bR,e){return(" "+(bR.className||bR.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(bV,bT){var bS=bT[1],e=by.attr?by.attr(bV,bS):bE.attrHandle[bS]?bE.attrHandle[bS](bV):bV[bS]!=null?bV[bS]:bV.getAttribute(bS),bW=e+"",bU=bT[2],bR=bT[4];return e==null?bU==="!=":!bU&&by.attr?e!=null:bU==="="?bW===bR:bU==="*="?bW.indexOf(bR)>=0:bU==="~="?(" "+bW+" ").indexOf(bR)>=0:!bR?bW&&e!==false:bU==="!="?bW!==bR:bU==="^="?bW.indexOf(bR)===0:bU==="$="?bW.substr(bW.length-bR.length)===bR:bU==="|="?bW===bR||bW.substr(0,bR.length+1)===bR+"-":false},POS:function(bU,bR,bS,bV){var e=bR[2],bT=bE.setFilters[e];if(bT){return bT(bU,bS,bR,bV)}}}};var bD=bE.match.POS,bx=function(bR,e){return"\\"+(e-0+1)};for(var bz in bE.match){bE.match[bz]=new RegExp(bE.match[bz].source+(/(?![^\[]*\])(?![^\(]*\))/.source));bE.leftMatch[bz]=new RegExp(/(^(?:.|\r|\n)*?)/.source+bE.match[bz].source.replace(/\\(\d+)/g,bx))}var bF=function(bR,e){bR=Array.prototype.slice.call(bR,0);if(e){e.push.apply(e,bR);return e}return bR};try{Array.prototype.slice.call(av.documentElement.childNodes,0)[0].nodeType}catch(bP){bF=function(bU,bT){var bS=0,bR=bT||[];if(bL.call(bU)==="[object Array]"){Array.prototype.push.apply(bR,bU)}else{if(typeof bU.length==="number"){for(var e=bU.length;bS";e.insertBefore(bR,e.firstChild);if(av.getElementById(bS)){bE.find.ID=function(bU,bV,bW){if(typeof bV.getElementById!=="undefined"&&!bW){var bT=bV.getElementById(bU[1]);return bT?bT.id===bU[1]||typeof bT.getAttributeNode!=="undefined"&&bT.getAttributeNode("id").nodeValue===bU[1]?[bT]:L:[]}};bE.filter.ID=function(bV,bT){var bU=typeof bV.getAttributeNode!=="undefined"&&bV.getAttributeNode("id");return bV.nodeType===1&&bU&&bU.nodeValue===bT}}e.removeChild(bR);e=bR=null})();(function(){var e=av.createElement("div");e.appendChild(av.createComment(""));if(e.getElementsByTagName("*").length>0){bE.find.TAG=function(bR,bV){var bU=bV.getElementsByTagName(bR[1]);if(bR[1]==="*"){var bT=[];for(var bS=0;bU[bS];bS++){if(bU[bS].nodeType===1){bT.push(bU[bS])}}bU=bT}return bU}}e.innerHTML="";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){bE.attrHandle.href=function(bR){return bR.getAttribute("href",2)}}e=null})();if(av.querySelectorAll){(function(){var e=by,bT=av.createElement("div"),bS="__sizzle__";bT.innerHTML="

";if(bT.querySelectorAll&&bT.querySelectorAll(".TEST").length===0){return}by=function(b4,bV,bZ,b3){bV=bV||av;if(!b3&&!by.isXML(bV)){var b2=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b4);if(b2&&(bV.nodeType===1||bV.nodeType===9)){if(b2[1]){return bF(bV.getElementsByTagName(b4),bZ)}else{if(b2[2]&&bE.find.CLASS&&bV.getElementsByClassName){return bF(bV.getElementsByClassName(b2[2]),bZ)}}}if(bV.nodeType===9){if(b4==="body"&&bV.body){return bF([bV.body],bZ)}else{if(b2&&b2[3]){var bY=bV.getElementById(b2[3]);if(bY&&bY.parentNode){if(bY.id===b2[3]){return bF([bY],bZ)}}else{return bF([],bZ)}}}try{return bF(bV.querySelectorAll(b4),bZ)}catch(b0){}}else{if(bV.nodeType===1&&bV.nodeName.toLowerCase()!=="object"){var bW=bV,bX=bV.getAttribute("id"),bU=bX||bS,b6=bV.parentNode,b5=/^\s*[+~]/.test(b4);if(!bX){bV.setAttribute("id",bU)}else{bU=bU.replace(/'/g,"\\$&")}if(b5&&b6){bV=bV.parentNode}try{if(!b5||b6){return bF(bV.querySelectorAll("[id='"+bU+"'] "+b4),bZ)}}catch(b1){}finally{if(!bX){bW.removeAttribute("id")}}}}}return e(b4,bV,bZ,b3)};for(var bR in e){by[bR]=e[bR]}bT=null})()}(function(){var e=av.documentElement,bS=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(bS){var bU=!bS.call(av.createElement("div"),"div"),bR=false;try{bS.call(av.documentElement,"[test!='']:sizzle")}catch(bT){bR=true}by.matchesSelector=function(bW,bY){bY=bY.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!by.isXML(bW)){try{if(bR||!bE.match.PSEUDO.test(bY)&&!/!=/.test(bY)){var bV=bS.call(bW,bY);if(bV||!bU||bW.document&&bW.document.nodeType!==11){return bV}}}catch(bX){}}return by(bY,null,null,[bW]).length>0}}})();(function(){var e=av.createElement("div");e.innerHTML="
";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}bE.order.splice(1,0,"CLASS");bE.find.CLASS=function(bR,bS,bT){if(typeof bS.getElementsByClassName!=="undefined"&&!bT){return bS.getElementsByClassName(bR[1])}};e=null})();function bv(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT0){bU=e;break}}}e=e[bR]}bZ[bT]=bU}}}if(av.documentElement.contains){by.contains=function(bR,e){return bR!==e&&(bR.contains?bR.contains(e):true)}}else{if(av.documentElement.compareDocumentPosition){by.contains=function(bR,e){return !!(bR.compareDocumentPosition(e)&16)}}else{by.contains=function(){return false}}}by.isXML=function(e){var bR=(e?e.ownerDocument||e:0).documentElement;return bR?bR.nodeName!=="HTML":false};var bM=function(bS,e,bW){var bV,bX=[],bU="",bY=e.nodeType?[e]:e;while((bV=bE.match.PSEUDO.exec(bS))){bU+=bV[0];bS=bS.replace(bE.match.PSEUDO,"")}bS=bE.relative[bS]?bS+"*":bS;for(var bT=0,bR=bY.length;bT0){for(bB=bA;bB=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(by,bx){var bv=[],bw,e,bz=this[0];if(b.isArray(by)){var bB=1;while(bz&&bz.ownerDocument&&bz!==bx){for(bw=0;bw-1:b.find.matchesSelector(bz,by)){bv.push(bz);break}else{bz=bz.parentNode;if(!bz||!bz.ownerDocument||bz===bx||bz.nodeType===11){break}}}}bv=bv.length>1?b.unique(bv):bv;return this.pushStack(bv,"closest",by)},index:function(e){if(!e){return(this[0]&&this[0].parentNode)?this.prevAll().length:-1}if(typeof e==="string"){return b.inArray(this[0],b(e))}return b.inArray(e.jquery?e[0]:e,this)},add:function(e,bv){var bx=typeof e==="string"?b(e,bv):b.makeArray(e&&e.nodeType?[e]:e),bw=b.merge(this.get(),bx);return this.pushStack(C(bx[0])||C(bw[0])?bw:b.unique(bw))},andSelf:function(){return this.add(this.prevObject)}});function C(e){return !e||!e.parentNode||e.parentNode.nodeType===11}b.each({parent:function(bv){var e=bv.parentNode;return e&&e.nodeType!==11?e:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(bv,e,bw){return b.dir(bv,"parentNode",bw)},next:function(e){return b.nth(e,2,"nextSibling")},prev:function(e){return b.nth(e,2,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(bv,e,bw){return b.dir(bv,"nextSibling",bw)},prevUntil:function(bv,e,bw){return b.dir(bv,"previousSibling",bw)},siblings:function(e){return b.sibling(e.parentNode.firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.makeArray(e.childNodes)}},function(e,bv){b.fn[e]=function(by,bw){var bx=b.map(this,bv,by);if(!ab.test(e)){bw=by}if(bw&&typeof bw==="string"){bx=b.filter(bw,bx)}bx=this.length>1&&!ay[e]?b.unique(bx):bx;if((this.length>1||a9.test(bw))&&aq.test(e)){bx=bx.reverse()}return this.pushStack(bx,e,P.call(arguments).join(","))}});b.extend({filter:function(bw,e,bv){if(bv){bw=":not("+bw+")"}return e.length===1?b.find.matchesSelector(e[0],bw)?[e[0]]:[]:b.find.matches(bw,e)},dir:function(bw,bv,by){var e=[],bx=bw[bv];while(bx&&bx.nodeType!==9&&(by===L||bx.nodeType!==1||!b(bx).is(by))){if(bx.nodeType===1){e.push(bx)}bx=bx[bv]}return e},nth:function(by,e,bw,bx){e=e||1;var bv=0;for(;by;by=by[bw]){if(by.nodeType===1&&++bv===e){break}}return by},sibling:function(bw,bv){var e=[];for(;bw;bw=bw.nextSibling){if(bw.nodeType===1&&bw!==bv){e.push(bw)}}return e}});function aG(bx,bw,e){bw=bw||0;if(b.isFunction(bw)){return b.grep(bx,function(bz,by){var bA=!!bw.call(bz,by,bz);return bA===e})}else{if(bw.nodeType){return b.grep(bx,function(bz,by){return(bz===bw)===e})}else{if(typeof bw==="string"){var bv=b.grep(bx,function(by){return by.nodeType===1});if(bp.test(bw)){return b.filter(bw,bv,!e)}else{bw=b.filter(bw,bv)}}}}return b.grep(bx,function(bz,by){return(b.inArray(bz,bw)>=0)===e})}function a(e){var bw=aR.split("|"),bv=e.createDocumentFragment();if(bv.createElement){while(bw.length){bv.createElement(bw.pop())}}return bv}var aR="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ag=/ jQuery\d+="(?:\d+|null)"/g,ar=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,d=/<([\w:]+)/,w=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},ac=a(av); +ax.optgroup=ax.option;ax.tbody=ax.tfoot=ax.colgroup=ax.caption=ax.thead;ax.th=ax.td;if(!b.support.htmlSerialize){ax._default=[1,"div
","
"]}b.fn.extend({text:function(e){if(b.isFunction(e)){return this.each(function(bw){var bv=b(this);bv.text(e.call(this,bw,bv.text()))})}if(typeof e!=="object"&&e!==L){return this.empty().append((this[0]&&this[0].ownerDocument||av).createTextNode(e))}return b.text(this)},wrapAll:function(e){if(b.isFunction(e)){return this.each(function(bw){b(this).wrapAll(e.call(this,bw))})}if(this[0]){var bv=b(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){bv.insertBefore(this[0])}bv.map(function(){var bw=this;while(bw.firstChild&&bw.firstChild.nodeType===1){bw=bw.firstChild}return bw}).append(this)}return this},wrapInner:function(e){if(b.isFunction(e)){return this.each(function(bv){b(this).wrapInner(e.call(this,bv))})}return this.each(function(){var bv=b(this),bw=bv.contents();if(bw.length){bw.wrapAll(e)}else{bv.append(e)}})},wrap:function(e){var bv=b.isFunction(e);return this.each(function(bw){b(this).wrapAll(bv?e.call(this,bw):e)})},unwrap:function(){return this.parent().each(function(){if(!b.nodeName(this,"body")){b(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.appendChild(e)}})},prepend:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.insertBefore(e,this.firstChild)}})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this)})}else{if(arguments.length){var e=b.clean(arguments);e.push.apply(e,this.toArray());return this.pushStack(e,"before",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this.nextSibling)})}else{if(arguments.length){var e=this.pushStack(this,"after",arguments);e.push.apply(e,b.clean(arguments));return e}}},remove:function(e,bx){for(var bv=0,bw;(bw=this[bv])!=null;bv++){if(!e||b.filter(e,[bw]).length){if(!bx&&bw.nodeType===1){b.cleanData(bw.getElementsByTagName("*"));b.cleanData([bw])}if(bw.parentNode){bw.parentNode.removeChild(bw)}}}return this},empty:function(){for(var e=0,bv;(bv=this[e])!=null;e++){if(bv.nodeType===1){b.cleanData(bv.getElementsByTagName("*"))}while(bv.firstChild){bv.removeChild(bv.firstChild)}}return this},clone:function(bv,e){bv=bv==null?false:bv;e=e==null?bv:e;return this.map(function(){return b.clone(this,bv,e)})},html:function(bx){if(bx===L){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(ag,""):null}else{if(typeof bx==="string"&&!ae.test(bx)&&(b.support.leadingWhitespace||!ar.test(bx))&&!ax[(d.exec(bx)||["",""])[1].toLowerCase()]){bx=bx.replace(R,"<$1>");try{for(var bw=0,bv=this.length;bw1&&bw0?this.clone(true):this).get();b(bC[bA])[bv](by);bz=bz.concat(by)}return this.pushStack(bz,e,bC.selector)}}});function bg(e){if(typeof e.getElementsByTagName!=="undefined"){return e.getElementsByTagName("*")}else{if(typeof e.querySelectorAll!=="undefined"){return e.querySelectorAll("*")}else{return[]}}}function az(e){if(e.type==="checkbox"||e.type==="radio"){e.defaultChecked=e.checked}}function E(e){var bv=(e.nodeName||"").toLowerCase();if(bv==="input"){az(e)}else{if(bv!=="script"&&typeof e.getElementsByTagName!=="undefined"){b.grep(e.getElementsByTagName("input"),az)}}}function al(e){var bv=av.createElement("div");ac.appendChild(bv);bv.innerHTML=e.outerHTML;return bv.firstChild}b.extend({clone:function(by,bA,bw){var e,bv,bx,bz=b.support.html5Clone||!ah.test("<"+by.nodeName)?by.cloneNode(true):al(by);if((!b.support.noCloneEvent||!b.support.noCloneChecked)&&(by.nodeType===1||by.nodeType===11)&&!b.isXMLDoc(by)){ai(by,bz);e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){if(bv[bx]){ai(e[bx],bv[bx])}}}if(bA){t(by,bz);if(bw){e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){t(e[bx],bv[bx])}}}e=bv=null;return bz},clean:function(bw,by,bH,bA){var bF;by=by||av;if(typeof by.createElement==="undefined"){by=by.ownerDocument||by[0]&&by[0].ownerDocument||av}var bI=[],bB;for(var bE=0,bz;(bz=bw[bE])!=null;bE++){if(typeof bz==="number"){bz+=""}if(!bz){continue}if(typeof bz==="string"){if(!W.test(bz)){bz=by.createTextNode(bz)}else{bz=bz.replace(R,"<$1>");var bK=(d.exec(bz)||["",""])[1].toLowerCase(),bx=ax[bK]||ax._default,bD=bx[0],bv=by.createElement("div");if(by===av){ac.appendChild(bv)}else{a(by).appendChild(bv)}bv.innerHTML=bx[1]+bz+bx[2];while(bD--){bv=bv.lastChild}if(!b.support.tbody){var e=w.test(bz),bC=bK==="table"&&!e?bv.firstChild&&bv.firstChild.childNodes:bx[1]===""&&!e?bv.childNodes:[];for(bB=bC.length-1;bB>=0;--bB){if(b.nodeName(bC[bB],"tbody")&&!bC[bB].childNodes.length){bC[bB].parentNode.removeChild(bC[bB])}}}if(!b.support.leadingWhitespace&&ar.test(bz)){bv.insertBefore(by.createTextNode(ar.exec(bz)[0]),bv.firstChild)}bz=bv.childNodes}}var bG;if(!b.support.appendChecked){if(bz[0]&&typeof(bG=bz.length)==="number"){for(bB=0;bB=0){return bx+"px"}}else{return bx}}}});if(!b.support.opacity){b.cssHooks.opacity={get:function(bv,e){return au.test((e&&bv.currentStyle?bv.currentStyle.filter:bv.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":e?"1":""},set:function(by,bz){var bx=by.style,bv=by.currentStyle,e=b.isNumeric(bz)?"alpha(opacity="+bz*100+")":"",bw=bv&&bv.filter||bx.filter||"";bx.zoom=1;if(bz>=1&&b.trim(bw.replace(ak,""))===""){bx.removeAttribute("filter");if(bv&&!bv.filter){return}}bx.filter=ak.test(bw)?bw.replace(ak,e):bw+" "+e}}}b(function(){if(!b.support.reliableMarginRight){b.cssHooks.marginRight={get:function(bw,bv){var e;b.swap(bw,{display:"inline-block"},function(){if(bv){e=Z(bw,"margin-right","marginRight")}else{e=bw.style.marginRight}});return e}}}});if(av.defaultView&&av.defaultView.getComputedStyle){aI=function(by,bw){var bv,bx,e;bw=bw.replace(z,"-$1").toLowerCase();if((bx=by.ownerDocument.defaultView)&&(e=bx.getComputedStyle(by,null))){bv=e.getPropertyValue(bw);if(bv===""&&!b.contains(by.ownerDocument.documentElement,by)){bv=b.style(by,bw)}}return bv}}if(av.documentElement.currentStyle){aX=function(bz,bw){var bA,e,by,bv=bz.currentStyle&&bz.currentStyle[bw],bx=bz.style;if(bv===null&&bx&&(by=bx[bw])){bv=by}if(!bc.test(bv)&&bn.test(bv)){bA=bx.left;e=bz.runtimeStyle&&bz.runtimeStyle.left;if(e){bz.runtimeStyle.left=bz.currentStyle.left}bx.left=bw==="fontSize"?"1em":(bv||0);bv=bx.pixelLeft+"px";bx.left=bA;if(e){bz.runtimeStyle.left=e}}return bv===""?"auto":bv}}Z=aI||aX;function p(by,bw,bv){var bA=bw==="width"?by.offsetWidth:by.offsetHeight,bz=bw==="width"?an:a1,bx=0,e=bz.length; +if(bA>0){if(bv!=="border"){for(;bx)<[^<]*)*<\/script>/gi,q=/^(?:select|textarea)/i,h=/\s+/,br=/([?&])_=[^&]*/,K=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,A=b.fn.load,aa={},r={},aE,s,aV=["*/"]+["*"];try{aE=bl.href}catch(aw){aE=av.createElement("a");aE.href="";aE=aE.href}s=K.exec(aE.toLowerCase())||[];function f(e){return function(by,bA){if(typeof by!=="string"){bA=by;by="*"}if(b.isFunction(bA)){var bx=by.toLowerCase().split(h),bw=0,bz=bx.length,bv,bB,bC;for(;bw=0){var e=bw.slice(by,bw.length);bw=bw.slice(0,by)}var bx="GET";if(bz){if(b.isFunction(bz)){bA=bz;bz=L}else{if(typeof bz==="object"){bz=b.param(bz,b.ajaxSettings.traditional);bx="POST"}}}var bv=this;b.ajax({url:bw,type:bx,dataType:"html",data:bz,complete:function(bC,bB,bD){bD=bC.responseText;if(bC.isResolved()){bC.done(function(bE){bD=bE});bv.html(e?b("
").append(bD.replace(a6,"")).find(e):bD)}if(bA){bv.each(bA,[bD,bB,bC])}}});return this},serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?b.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||q.test(this.nodeName)||aZ.test(this.type))}).map(function(e,bv){var bw=b(this).val();return bw==null?null:b.isArray(bw)?b.map(bw,function(by,bx){return{name:bv.name,value:by.replace(bs,"\r\n")}}):{name:bv.name,value:bw.replace(bs,"\r\n")}}).get()}});b.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,bv){b.fn[bv]=function(bw){return this.on(bv,bw)}});b.each(["get","post"],function(e,bv){b[bv]=function(bw,by,bz,bx){if(b.isFunction(by)){bx=bx||bz;bz=by;by=L}return b.ajax({type:bv,url:bw,data:by,success:bz,dataType:bx})}});b.extend({getScript:function(e,bv){return b.get(e,L,bv,"script")},getJSON:function(e,bv,bw){return b.get(e,bv,bw,"json")},ajaxSetup:function(bv,e){if(e){am(bv,b.ajaxSettings)}else{e=bv;bv=b.ajaxSettings}am(bv,e);return bv},ajaxSettings:{url:aE,isLocal:aM.test(s[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":aV},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":bb.String,"text html":true,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{context:true,url:true}},ajaxPrefilter:f(aa),ajaxTransport:f(r),ajax:function(bz,bx){if(typeof bz==="object"){bx=bz;bz=L}bx=bx||{};var bD=b.ajaxSetup({},bx),bS=bD.context||bD,bG=bS!==bD&&(bS.nodeType||bS instanceof b)?b(bS):b.event,bR=b.Deferred(),bN=b.Callbacks("once memory"),bB=bD.statusCode||{},bC,bH={},bO={},bQ,by,bL,bE,bI,bA=0,bw,bK,bJ={readyState:0,setRequestHeader:function(bT,bU){if(!bA){var e=bT.toLowerCase();bT=bO[e]=bO[e]||bT;bH[bT]=bU}return this},getAllResponseHeaders:function(){return bA===2?bQ:null},getResponseHeader:function(bT){var e;if(bA===2){if(!by){by={};while((e=aD.exec(bQ))){by[e[1].toLowerCase()]=e[2]}}e=by[bT.toLowerCase()]}return e===L?null:e},overrideMimeType:function(e){if(!bA){bD.mimeType=e}return this},abort:function(e){e=e||"abort";if(bL){bL.abort(e)}bF(0,e);return this}};function bF(bZ,bU,b0,bW){if(bA===2){return}bA=2;if(bE){clearTimeout(bE)}bL=L;bQ=bW||"";bJ.readyState=bZ>0?4:0;var bT,b4,b3,bX=bU,bY=b0?bj(bD,bJ,b0):L,bV,b2;if(bZ>=200&&bZ<300||bZ===304){if(bD.ifModified){if((bV=bJ.getResponseHeader("Last-Modified"))){b.lastModified[bC]=bV}if((b2=bJ.getResponseHeader("Etag"))){b.etag[bC]=b2}}if(bZ===304){bX="notmodified";bT=true}else{try{b4=G(bD,bY);bX="success";bT=true}catch(b1){bX="parsererror";b3=b1}}}else{b3=bX;if(!bX||bZ){bX="error";if(bZ<0){bZ=0}}}bJ.status=bZ;bJ.statusText=""+(bU||bX);if(bT){bR.resolveWith(bS,[b4,bX,bJ])}else{bR.rejectWith(bS,[bJ,bX,b3])}bJ.statusCode(bB);bB=L;if(bw){bG.trigger("ajax"+(bT?"Success":"Error"),[bJ,bD,bT?b4:b3])}bN.fireWith(bS,[bJ,bX]);if(bw){bG.trigger("ajaxComplete",[bJ,bD]);if(!(--b.active)){b.event.trigger("ajaxStop")}}}bR.promise(bJ);bJ.success=bJ.done;bJ.error=bJ.fail;bJ.complete=bN.add;bJ.statusCode=function(bT){if(bT){var e;if(bA<2){for(e in bT){bB[e]=[bB[e],bT[e]]}}else{e=bT[bJ.status];bJ.then(e,e)}}return this};bD.url=((bz||bD.url)+"").replace(bq,"").replace(c,s[1]+"//");bD.dataTypes=b.trim(bD.dataType||"*").toLowerCase().split(h);if(bD.crossDomain==null){bI=K.exec(bD.url.toLowerCase());bD.crossDomain=!!(bI&&(bI[1]!=s[1]||bI[2]!=s[2]||(bI[3]||(bI[1]==="http:"?80:443))!=(s[3]||(s[1]==="http:"?80:443))))}if(bD.data&&bD.processData&&typeof bD.data!=="string"){bD.data=b.param(bD.data,bD.traditional)}aW(aa,bD,bx,bJ);if(bA===2){return false}bw=bD.global;bD.type=bD.type.toUpperCase();bD.hasContent=!aQ.test(bD.type);if(bw&&b.active++===0){b.event.trigger("ajaxStart")}if(!bD.hasContent){if(bD.data){bD.url+=(M.test(bD.url)?"&":"?")+bD.data;delete bD.data}bC=bD.url;if(bD.cache===false){var bv=b.now(),bP=bD.url.replace(br,"$1_="+bv);bD.url=bP+((bP===bD.url)?(M.test(bD.url)?"&":"?")+"_="+bv:"")}}if(bD.data&&bD.hasContent&&bD.contentType!==false||bx.contentType){bJ.setRequestHeader("Content-Type",bD.contentType)}if(bD.ifModified){bC=bC||bD.url;if(b.lastModified[bC]){bJ.setRequestHeader("If-Modified-Since",b.lastModified[bC])}if(b.etag[bC]){bJ.setRequestHeader("If-None-Match",b.etag[bC])}}bJ.setRequestHeader("Accept",bD.dataTypes[0]&&bD.accepts[bD.dataTypes[0]]?bD.accepts[bD.dataTypes[0]]+(bD.dataTypes[0]!=="*"?", "+aV+"; q=0.01":""):bD.accepts["*"]);for(bK in bD.headers){bJ.setRequestHeader(bK,bD.headers[bK])}if(bD.beforeSend&&(bD.beforeSend.call(bS,bJ,bD)===false||bA===2)){bJ.abort();return false}for(bK in {success:1,error:1,complete:1}){bJ[bK](bD[bK])}bL=aW(r,bD,bx,bJ);if(!bL){bF(-1,"No Transport")}else{bJ.readyState=1;if(bw){bG.trigger("ajaxSend",[bJ,bD])}if(bD.async&&bD.timeout>0){bE=setTimeout(function(){bJ.abort("timeout")},bD.timeout)}try{bA=1;bL.send(bH,bF)}catch(bM){if(bA<2){bF(-1,bM)}else{throw bM}}}return bJ},param:function(e,bw){var bv=[],by=function(bz,bA){bA=b.isFunction(bA)?bA():bA;bv[bv.length]=encodeURIComponent(bz)+"="+encodeURIComponent(bA)};if(bw===L){bw=b.ajaxSettings.traditional}if(b.isArray(e)||(e.jquery&&!b.isPlainObject(e))){b.each(e,function(){by(this.name,this.value)})}else{for(var bx in e){v(bx,e[bx],bw,by)}}return bv.join("&").replace(k,"+")}});function v(bw,by,bv,bx){if(b.isArray(by)){b.each(by,function(bA,bz){if(bv||ap.test(bw)){bx(bw,bz)}else{v(bw+"["+(typeof bz==="object"||b.isArray(bz)?bA:"")+"]",bz,bv,bx)}})}else{if(!bv&&by!=null&&typeof by==="object"){for(var e in by){v(bw+"["+e+"]",by[e],bv,bx)}}else{bx(bw,by)}}}b.extend({active:0,lastModified:{},etag:{}});function bj(bD,bC,bz){var bv=bD.contents,bB=bD.dataTypes,bw=bD.responseFields,by,bA,bx,e;for(bA in bw){if(bA in bz){bC[bw[bA]]=bz[bA]}}while(bB[0]==="*"){bB.shift();if(by===L){by=bD.mimeType||bC.getResponseHeader("content-type")}}if(by){for(bA in bv){if(bv[bA]&&bv[bA].test(by)){bB.unshift(bA);break}}}if(bB[0] in bz){bx=bB[0]}else{for(bA in bz){if(!bB[0]||bD.converters[bA+" "+bB[0]]){bx=bA;break}if(!e){e=bA}}bx=bx||e}if(bx){if(bx!==bB[0]){bB.unshift(bx)}return bz[bx]}}function G(bH,bz){if(bH.dataFilter){bz=bH.dataFilter(bz,bH.dataType)}var bD=bH.dataTypes,bG={},bA,bE,bw=bD.length,bB,bC=bD[0],bx,by,bF,bv,e;for(bA=1;bA=bw.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();bw.animatedProperties[this.prop]=true;for(bA in bw.animatedProperties){if(bw.animatedProperties[bA]!==true){e=false}}if(e){if(bw.overflow!=null&&!b.support.shrinkWrapBlocks){b.each(["","X","Y"],function(bC,bD){bz.style["overflow"+bD]=bw.overflow[bC]})}if(bw.hide){b(bz).hide()}if(bw.hide||bw.show){for(bA in bw.animatedProperties){b.style(bz,bA,bw.orig[bA]);b.removeData(bz,"fxshow"+bA,true);b.removeData(bz,"toggle"+bA,true)}}bv=bw.complete;if(bv){bw.complete=false;bv.call(bz)}}return false}else{if(bw.duration==Infinity){this.now=bx}else{bB=bx-this.startTime;this.state=bB/bw.duration;this.pos=b.easing[bw.animatedProperties[this.prop]](this.state,bB,0,1,bw.duration);this.now=this.start+((this.end-this.start)*this.pos)}this.update()}return true}};b.extend(b.fx,{tick:function(){var bw,bv=b.timers,e=0;for(;e").appendTo(e),bw=bv.css("display");bv.remove();if(bw==="none"||bw===""){if(!a8){a8=av.createElement("iframe");a8.frameBorder=a8.width=a8.height=0}e.appendChild(a8);if(!m||!a8.createElement){m=(a8.contentWindow||a8.contentDocument).document;m.write((av.compatMode==="CSS1Compat"?"":"")+"");m.close()}bv=m.createElement(bx);m.body.appendChild(bv);bw=b.css(bv,"display");e.removeChild(a8)}Q[bx]=bw}return Q[bx]}var V=/^t(?:able|d|h)$/i,ad=/^(?:body|html)$/i;if("getBoundingClientRect" in av.documentElement){b.fn.offset=function(bI){var by=this[0],bB;if(bI){return this.each(function(e){b.offset.setOffset(this,bI,e)})}if(!by||!by.ownerDocument){return null}if(by===by.ownerDocument.body){return b.offset.bodyOffset(by)}try{bB=by.getBoundingClientRect()}catch(bF){}var bH=by.ownerDocument,bw=bH.documentElement;if(!bB||!b.contains(bw,by)){return bB?{top:bB.top,left:bB.left}:{top:0,left:0}}var bC=bH.body,bD=aK(bH),bA=bw.clientTop||bC.clientTop||0,bE=bw.clientLeft||bC.clientLeft||0,bv=bD.pageYOffset||b.support.boxModel&&bw.scrollTop||bC.scrollTop,bz=bD.pageXOffset||b.support.boxModel&&bw.scrollLeft||bC.scrollLeft,bG=bB.top+bv-bA,bx=bB.left+bz-bE;return{top:bG,left:bx}}}else{b.fn.offset=function(bF){var bz=this[0];if(bF){return this.each(function(bG){b.offset.setOffset(this,bF,bG)})}if(!bz||!bz.ownerDocument){return null}if(bz===bz.ownerDocument.body){return b.offset.bodyOffset(bz)}var bC,bw=bz.offsetParent,bv=bz,bE=bz.ownerDocument,bx=bE.documentElement,bA=bE.body,bB=bE.defaultView,e=bB?bB.getComputedStyle(bz,null):bz.currentStyle,bD=bz.offsetTop,by=bz.offsetLeft;while((bz=bz.parentNode)&&bz!==bA&&bz!==bx){if(b.support.fixedPosition&&e.position==="fixed"){break}bC=bB?bB.getComputedStyle(bz,null):bz.currentStyle;bD-=bz.scrollTop;by-=bz.scrollLeft;if(bz===bw){bD+=bz.offsetTop;by+=bz.offsetLeft;if(b.support.doesNotAddBorder&&!(b.support.doesAddBorderForTableAndCells&&V.test(bz.nodeName))){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}bv=bw;bw=bz.offsetParent}if(b.support.subtractsBorderForOverflowNotVisible&&bC.overflow!=="visible"){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}e=bC}if(e.position==="relative"||e.position==="static"){bD+=bA.offsetTop;by+=bA.offsetLeft}if(b.support.fixedPosition&&e.position==="fixed"){bD+=Math.max(bx.scrollTop,bA.scrollTop);by+=Math.max(bx.scrollLeft,bA.scrollLeft)}return{top:bD,left:by}}}b.offset={bodyOffset:function(e){var bw=e.offsetTop,bv=e.offsetLeft;if(b.support.doesNotIncludeMarginInBodyOffset){bw+=parseFloat(b.css(e,"marginTop"))||0;bv+=parseFloat(b.css(e,"marginLeft"))||0}return{top:bw,left:bv}},setOffset:function(bx,bG,bA){var bB=b.css(bx,"position");if(bB==="static"){bx.style.position="relative"}var bz=b(bx),bv=bz.offset(),e=b.css(bx,"top"),bE=b.css(bx,"left"),bF=(bB==="absolute"||bB==="fixed")&&b.inArray("auto",[e,bE])>-1,bD={},bC={},bw,by;if(bF){bC=bz.position();bw=bC.top;by=bC.left}else{bw=parseFloat(e)||0;by=parseFloat(bE)||0}if(b.isFunction(bG)){bG=bG.call(bx,bA,bv)}if(bG.top!=null){bD.top=(bG.top-bv.top)+bw}if(bG.left!=null){bD.left=(bG.left-bv.left)+by}if("using" in bG){bG.using.call(bx,bD)}else{bz.css(bD)}}};b.fn.extend({position:function(){if(!this[0]){return null}var bw=this[0],bv=this.offsetParent(),bx=this.offset(),e=ad.test(bv[0].nodeName)?{top:0,left:0}:bv.offset();bx.top-=parseFloat(b.css(bw,"marginTop"))||0;bx.left-=parseFloat(b.css(bw,"marginLeft"))||0;e.top+=parseFloat(b.css(bv[0],"borderTopWidth"))||0;e.left+=parseFloat(b.css(bv[0],"borderLeftWidth"))||0;return{top:bx.top-e.top,left:bx.left-e.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||av.body;while(e&&(!ad.test(e.nodeName)&&b.css(e,"position")==="static")){e=e.offsetParent}return e})}});b.each(["Left","Top"],function(bv,e){var bw="scroll"+e;b.fn[bw]=function(bz){var bx,by;if(bz===L){bx=this[0];if(!bx){return null}by=aK(bx);return by?("pageXOffset" in by)?by[bv?"pageYOffset":"pageXOffset"]:b.support.boxModel&&by.document.documentElement[bw]||by.document.body[bw]:bx[bw]}return this.each(function(){by=aK(this);if(by){by.scrollTo(!bv?bz:b(by).scrollLeft(),bv?bz:b(by).scrollTop())}else{this[bw]=bz}})}});function aK(e){return b.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}b.each(["Height","Width"],function(bv,e){var bw=e.toLowerCase();b.fn["inner"+e]=function(){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,"padding")):this[bw]():null};b.fn["outer"+e]=function(by){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,by?"margin":"border")):this[bw]():null};b.fn[bw]=function(bz){var bA=this[0];if(!bA){return bz==null?null:this}if(b.isFunction(bz)){return this.each(function(bE){var bD=b(this);bD[bw](bz.call(this,bE,bD[bw]()))})}if(b.isWindow(bA)){var bB=bA.document.documentElement["client"+e],bx=bA.document.body;return bA.document.compatMode==="CSS1Compat"&&bB||bx&&bx["client"+e]||bB}else{if(bA.nodeType===9){return Math.max(bA.documentElement["client"+e],bA.body["scroll"+e],bA.documentElement["scroll"+e],bA.body["offset"+e],bA.documentElement["offset"+e])}else{if(bz===L){var bC=b.css(bA,bw),by=parseFloat(bC);return b.isNumeric(by)?by:bC}else{return this.css(bw,typeof bz==="string"?bz:bz+"px")}}}}});bb.jQuery=bb.$=b;if(typeof define==="function"&&define.amd&&define.amd.jQuery){define("jquery",[],function(){return b +})}})(window); diff --git a/libs/QMapControl/html/layer_8h_source.html b/libs/QMapControl/html/layer_8h_source.html new file mode 100644 index 00000000..60414d3a --- /dev/null +++ b/libs/QMapControl/html/layer_8h_source.html @@ -0,0 +1,197 @@ + + + + + + +QMapControl: layer.h Source File + + + + + + +
+
+
+ + + + + +
+
QMapControl +  0.9.7.4 +
+
+ + + + + + +
+
+
layer.h
+
+
+
1 /*
+
2 *
+
3 * This file is part of QMapControl,
+
4 * an open-source cross-platform map widget
+
5 *
+
6 * Copyright (C) 2007 - 2008 Kai Winter
+
7 *
+
8 * This program is free software: you can redistribute it and/or modify
+
9 * it under the terms of the GNU Lesser General Public License as published by
+
10 * the Free Software Foundation, either version 3 of the License, or
+
11 * (at your option) any later version.
+
12 *
+
13 * This program is distributed in the hope that it will be useful,
+
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
+
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+
16 * GNU Lesser General Public License for more details.
+
17 *
+
18 * You should have received a copy of the GNU Lesser General Public License
+
19 * along with QMapControl. If not, see <http://www.gnu.org/licenses/>.
+
20 *
+
21 * Contact e-mail: kaiwinter@gmx.de
+
22 * Program URL : http://qmapcontrol.sourceforge.net/
+
23 *
+
24 */
+
25 
+
26 #ifndef LAYER_H
+
27 #define LAYER_H
+
28 
+
29 #include "qmapcontrol_global.h"
+
30 #include <QObject>
+
31 #include <QDebug>
+
32 #include <QPainter>
+
33 #include <QMouseEvent>
+
34 
+
35 #include "mapadapter.h"
+
36 #include "layermanager.h"
+
37 #include "geometry.h"
+
38 #include "point.h"
+
39 
+
40 #include "wmsmapadapter.h"
+
41 #include "tilemapadapter.h"
+
42 
+
43 namespace qmapcontrol
+
44 {
+
46 
+
60  class QMAPCONTROL_EXPORT Layer : public QObject
+
61  {
+
62  Q_OBJECT
+
63 
+
64  public:
+
65  friend class LayerManager;
+
66 
+
68  enum LayerType
+
69  {
+ + +
72  };
+
73 
+
75 
+
84  Layer(QString layername, MapAdapter* mapadapter, enum LayerType layertype, bool takeevents=true);
+
85  virtual ~Layer();
+
86 
+
88 
+
91  QString layername() const;
+
92 
+
94 
+
99  MapAdapter* mapadapter();
+
100 
+
102 
+
106  void addGeometry(Geometry* geometry);
+
107 
+
109 
+
114  void removeGeometry(Geometry* geometry, bool qDeleteObject = false);
+
115 
+
117 
+
122  void clearGeometries( bool qDeleteObject = false);
+
123 
+
125 
+
129  QList<Geometry*>& getGeometries();
+
130 
+
132 
+
135  bool containsGeometry( Geometry* geometry );
+
136 
+
138 
+
142  void sendGeometryToFront( Geometry* geometry );
+
143 
+
145 
+
149  void sendGeometryToBack( Geometry* geometry );
+
150 
+
152 
+
155  bool isVisible() const;
+
156 
+
158 
+
162  Layer::LayerType layertype() const;
+
163 
+
164  void setMapAdapter(MapAdapter* mapadapter);
+
165 
+
166  private:
+
167  void moveWidgets(const QPoint mapmiddle_px) const;
+
168  void drawYourImage(QPainter* painter, const QPoint mapmiddle_px) const;
+
169  void drawYourGeometries(QPainter* painter, const QPoint mapmiddle_px, QRect viewport) const;
+
170  void setSize(QSize size);
+
171  QRect offscreenViewport() const;
+
172  bool takesMouseEvents() const;
+
173  void mouseEvent(const QMouseEvent*, const QPoint mapmiddle_px);
+
174  void zoomIn() const;
+
175  void zoomOut() const;
+
176  void _draw(QPainter* painter, const QPoint mapmiddle_px) const;
+
177 
+
178  bool visible;
+
179  QString mylayername;
+
180  LayerType mylayertype;
+
181  QSize size;
+
182  QPoint screenmiddle;
+
183 
+
184  QList<Geometry*> geometries;
+
185  MapAdapter* mapAdapter;
+
186  bool takeevents;
+
187  mutable QRect myoffscreenViewport;
+
188 
+
189  signals:
+
191 
+
197  void geometryClicked(Geometry* geometry, QPoint point);
+
198 
+
199  void updateRequest(QRectF rect);
+
200  void updateRequest();
+
201 
+
202  public slots:
+
204 
+
207  void setVisible(bool visible);
+
208 
+
209  };
+
210 }
+
211 #endif
+
Main class for objects that should be painted in maps.
Definition: geometry.h:48
+
Used to fit map servers into QMapControl.
Definition: mapadapter.h:56
+ +
LayerType
sets the type of a layer, see Layer class doc for further information
Definition: layer.h:68
+
GeometryLayer class.
Definition: geometrylayer.h:48
+
Layer class.
Definition: layer.h:60
+
Definition: layer.h:70
+
QMapControl namespace.
Definition: arrowpoint.cpp:28
+
+ + + + diff --git a/libs/QMapControl/html/linesandpoints_8cpp-example.html b/libs/QMapControl/html/linesandpoints_8cpp-example.html new file mode 100644 index 00000000..5ddd8db5 --- /dev/null +++ b/libs/QMapControl/html/linesandpoints_8cpp-example.html @@ -0,0 +1,180 @@ + + +QMapControl: linesandpoints.cpp + + + + + +
+

linesandpoints.cpp

This application demonstrates how to use Geometry objects and how to add them to a layer.

+Here are used three different point types:

    +
  • One which displays a image
  • One which draws a plain circle
  • One which uses a QPen to draw a circle
  • One which has no markers Then these Points were added to a LineString
+

+Also there is a keylistener.

+You can find this example here: MapAPI/Samples/LinesAndPoints

+sample_linesandpoints.png +

screenshot

+
#include "linesandpoints.h"
+LinesAndPoints::LinesAndPoints(QWidget *parent)
+        : QWidget(parent)
+{
+        // the size which the QMapControl should fill
+        QSize size = QSize(480,640);
+        
+        mc = new MapControl(size);
+        // create layout
+        QHBoxLayout* layout = new QHBoxLayout;
+        layout->addWidget(mc);
+        setLayout(layout);
+        
+        // create layer
+        MapAdapter* mapadapter = new OSMMapAdapter();
+        Layer* l = new MapLayer("Custom Layer", mapadapter);
+        
+        mc->addLayer(l);
+        
+        // create a LineString
+        QList<Point*> points;
+        // Points with image
+        points.append(new ImagePoint(8.259959, 50.001781, "images/bus_stop.png", "Mainz, Hauptbahnhof", Point::BottomLeft));
+        points.append(new ImagePoint(8.263758, 49.998917, "images/bus_stop.png", "Mainz, Münsterplatz", Point::BottomLeft));
+        points.append(new ImagePoint(8.265812, 50.001952, "images/bus_stop.png","Mainz, Neubrunnenplatz", Point::BottomLeft));
+        // Points with a circle
+        points.append(new CirclePoint(8.2688, 50.004015, "Mainz, Bauhofstraße LRP", Point::Middle));
+        points.append(new CirclePoint(8.272845, 50.00495, "Mainz, Landtag", Point::Middle));
+        points.append(new CirclePoint(8.280349, 50.008173, "Mainz, Brückenkopf", Point::Middle));
+        // A QPen can be used to customize the 
+        QPen* pointpen = new QPen(QColor(0,255,0));
+        pointpen->setWidth(3);
+        points.append(new CirclePoint(8.273573, 50.016315, 15, "Wiesbaden-Mainz-Kastel, Eleonorenstraße", Point::Middle, pointpen));
+        points.append(new CirclePoint(8.275145, 50.016992, 15, "Wiesbaden-Mainz-Kastel, Johannes-Goßner-Straße", Point::Middle, pointpen));
+        points.append(new CirclePoint(8.270476, 50.021426, 15, "Wiesbaden-Mainz-Kastel, Ruthof", Point::Middle, pointpen));
+        // "Blind" Points
+        points.append(new Point(8.266445, 50.025913, "Wiesbaden-Mainz-Kastel, Mudra Kaserne"));
+        points.append(new Point(8.260378, 50.030345, "Wiesbaden-Mainz-Amoneburg, Dyckerhoffstraße"));
+
+        // A QPen also can use transparency
+        QPen* linepen = new QPen(QColor(0, 0, 255, 100));
+        linepen->setWidth(5);
+        // Add the Points and the QPen to a LineString 
+        LineString* ls = new LineString(points, "Busline 54", linepen);
+        
+        // Add the LineString to the layer
+        l->addGeometry(ls);
+        
+        // Connect click events of the layer to this object
+        connect(l, SIGNAL(geometryClicked(Geometry*, QPoint)),
+                          this, SLOT(geometryClicked(Geometry*, QPoint)));
+        
+        // Sets the view to the interesting area
+        QList<QPointF> view;
+        view.append(QPointF(8.24764, 50.0319));
+        view.append(QPointF(8.28412, 49.9998));
+        mc->setView(view);
+        
+        addZoomButtons();
+}
+
+void LinesAndPoints::addZoomButtons()
+{
+        // create buttons as controls for zoom
+        QPushButton* zoomin = new QPushButton("+");
+        QPushButton* zoomout = new QPushButton("-");
+        zoomin->setMaximumWidth(50);
+        zoomout->setMaximumWidth(50);
+        
+        connect(zoomin, SIGNAL(clicked(bool)),
+                          mc, SLOT(zoomIn()));
+        connect(zoomout, SIGNAL(clicked(bool)),
+                          mc, SLOT(zoomOut()));
+        
+        // add zoom buttons to the layout of the MapControl
+        QVBoxLayout* innerlayout = new QVBoxLayout;
+        innerlayout->addWidget(zoomin);
+        innerlayout->addWidget(zoomout);
+        mc->setLayout(innerlayout);
+}
+
+void LinesAndPoints::geometryClicked(Geometry* geom, QPoint)
+{
+        qDebug() << "parent: " << geom->parentGeometry();
+        qDebug() << "Element clicked: " << geom->name();
+        if (geom->hasClickedPoints())
+        {
+                QList<Geometry*> pp = geom->clickedPoints();
+                qDebug() << "number of child elements: " << pp.size();
+                for (int i=0; i<pp.size(); i++)
+                {
+                        QMessageBox::information(this, geom->name(), pp.at(i)->name());
+                }
+        }
+        else if (geom->GeometryType == "Point")
+        {
+                QMessageBox::information(this, geom->name(), "just a point");
+        }
+}
+
+LinesAndPoints::~LinesAndPoints()
+{
+}
+
+void LinesAndPoints::keyPressEvent(QKeyEvent* evnt)
+{
+        if (evnt->key() == 49 || evnt->key() == 17825792)  // tastatur '1'
+        {
+                mc->zoomIn();
+        }
+        else if (evnt->key() == 50)
+        {
+                mc->moveTo(QPointF(8.25, 60));
+        }
+        else if (evnt->key() == 51 || evnt->key() == 16777313)     // tastatur '3'
+        {
+                mc->zoomOut();
+        }
+        else if (evnt->key() == 54) // 6
+        {
+                mc->setView(QPointF(8,50));
+        }
+        else if (evnt->key() == 16777234) // left
+        {
+                mc->scrollLeft();
+        }
+        else if (evnt->key() == 16777236) // right
+        {
+                mc->scrollRight();
+        }
+        else if (evnt->key() == 16777235 ) // up
+        {
+                mc->scrollUp();
+        }
+        else if (evnt->key() == 16777237) // down
+        {
+                mc->scrollDown();
+        }
+        else if (evnt->key() == 48 || evnt->key() == 17825797) // 0
+        {
+                emit(close());
+        }
+        else
+        {
+                qDebug() << evnt->key() << endl;
+        }
+}
+
+
Generated on Wed Jul 29 12:38:09 2009 for QMapControl by  + +doxygen 1.5.9
+ + diff --git a/libs/QMapControl/html/linestring_8h_source.html b/libs/QMapControl/html/linestring_8h_source.html new file mode 100644 index 00000000..5751b0e1 --- /dev/null +++ b/libs/QMapControl/html/linestring_8h_source.html @@ -0,0 +1,142 @@ + + + + + + +QMapControl: linestring.h Source File + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + +
+
+
+
linestring.h
+
+
+
1 /*
+
2 *
+
3 * This file is part of QMapControl,
+
4 * an open-source cross-platform map widget
+
5 *
+
6 * Copyright (C) 2007 - 2008 Kai Winter
+
7 *
+
8 * This program is free software: you can redistribute it and/or modify
+
9 * it under the terms of the GNU Lesser General Public License as published by
+
10 * the Free Software Foundation, either version 3 of the License, or
+
11 * (at your option) any later version.
+
12 *
+
13 * This program is distributed in the hope that it will be useful,
+
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
+
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+
16 * GNU Lesser General Public License for more details.
+
17 *
+
18 * You should have received a copy of the GNU Lesser General Public License
+
19 * along with QMapControl. If not, see <http://www.gnu.org/licenses/>.
+
20 *
+
21 * Contact e-mail: kaiwinter@gmx.de
+
22 * Program URL : http://qmapcontrol.sourceforge.net/
+
23 *
+
24 */
+
25 
+
26 #ifndef LINESTRING_H
+
27 #define LINESTRING_H
+
28 
+
29 #include "qmapcontrol_global.h"
+
30 #include "curve.h"
+
31 
+
32 namespace qmapcontrol
+
33 {
+
35 
+
39  class QMAPCONTROL_EXPORT LineString : public Curve
+
40  {
+
41  Q_OBJECT
+
42 
+
43  public:
+
44  LineString();
+
46 
+
53  LineString ( QList<Point*> const points, QString name = QString(), QPen* pen = 0 );
+
54  virtual ~LineString();
+
55 
+
57 
+
60  QList<Point*> points();
+
61 
+
63 
+
66  void addPoint ( Point* point );
+
67 
+
70 
+
73  void setPoints ( QList<Point*> points);
+
74 
+
76 
+
79  int numberOfPoints() const;
+
80 
+
82 
+
85  virtual QRectF boundingBox();
+
86 
+
88 
+
93  virtual bool hasPoints() const;
+
94 
+
96 
+
100  virtual bool hasClickedPoints() const;
+
101 
+
103 
+
110  virtual QList<Geometry*> & clickedPoints();
+
111 
+
112  protected:
+
113  virtual bool Touches ( Geometry* geom, const MapAdapter* mapadapter );
+
114  virtual bool Touches ( Point* geom, const MapAdapter* mapadapter );
+
115  virtual void draw ( QPainter* painter, const MapAdapter* mapadapter, const QRect &screensize, const QPoint offset );
+
116 
+
117  private:
+
119 
+
122  void removePoints();
+
123 
+
124  QList<Point*> childPoints;
+
125  };
+
126 }
+
127 #endif
+
Main class for objects that should be painted in maps.
Definition: geometry.h:48
+
Used to fit map servers into QMapControl.
Definition: mapadapter.h:56
+
A geometric point to draw objects into maps.
Definition: point.h:66
+
A Curve Geometry, implemented to fullfil OGC Spec.
Definition: curve.h:46
+
A collection of Point objects to describe a line.
Definition: linestring.h:39
+
QMapControl namespace.
Definition: arrowpoint.cpp:28
+
+ + + + diff --git a/libs/QMapControl/html/mapadapter_8h_source.html b/libs/QMapControl/html/mapadapter_8h_source.html new file mode 100644 index 00000000..efc7af8d --- /dev/null +++ b/libs/QMapControl/html/mapadapter_8h_source.html @@ -0,0 +1,182 @@ + + + + + + +QMapControl: mapadapter.h Source File + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + +
+
+
+
mapadapter.h
+
+
+
1 /*
+
2 *
+
3 * This file is part of QMapControl,
+
4 * an open-source cross-platform map widget
+
5 *
+
6 * Copyright (C) 2007 - 2008 Kai Winter
+
7 *
+
8 * This program is free software: you can redistribute it and/or modify
+
9 * it under the terms of the GNU Lesser General Public License as published by
+
10 * the Free Software Foundation, either version 3 of the License, or
+
11 * (at your option) any later version.
+
12 *
+
13 * This program is distributed in the hope that it will be useful,
+
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
+
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+
16 * GNU Lesser General Public License for more details.
+
17 *
+
18 * You should have received a copy of the GNU Lesser General Public License
+
19 * along with QMapControl. If not, see <http://www.gnu.org/licenses/>.
+
20 *
+
21 * Contact e-mail: kaiwinter@gmx.de
+
22 * Program URL : http://qmapcontrol.sourceforge.net/
+
23 *
+
24 */
+
25 
+
26 #ifndef MAPADAPTER_H
+
27 #define MAPADAPTER_H
+
28 
+
29 #include "qmapcontrol_global.h"
+
30 #include <QObject>
+
31 #include <QSize>
+
32 #include <QPoint>
+
33 #include <QPointF>
+
34 #include <QRectF>
+
35 #include <QLocale>
+
36 #include <QDebug>
+
37 #include <cmath>
+
38 
+
39 namespace qmapcontrol
+
40 {
+
42 
+
56  class QMAPCONTROL_EXPORT MapAdapter : public QObject
+
57  {
+
58  friend class Layer;
+
59 
+
60  Q_OBJECT
+
61 
+
62  public:
+
63  virtual ~MapAdapter();
+
64 
+
66 
+
69  QString host() const;
+
70 
+
72 
+
75  virtual QString serverPath() const;
+
76 
+
78 
+
82  virtual void changeHostAddress( const QString qHost, const QString qServerPath = QString() );
+
83 
+
85 
+
88  int tilesize() const;
+
89 
+
91 
+
94  int minZoom() const;
+
95 
+
97 
+
100  int maxZoom() const;
+
101 
+
103 
+
106  int currentZoom() const;
+
107 
+
108  virtual int adaptedZoom()const;
+
109 
+
111 
+
117  virtual QPoint coordinateToDisplay(const QPointF& coordinate) const = 0;
+
118 
+
120 
+
126  virtual QPointF displayToCoordinate(const QPoint& point) const = 0;
+
127 
+
128  QRectF getBoundingbox() const { return mBoundingBox; }
+
129  void setBoundingBox(qreal qMinX, qreal qMinY, qreal qMaxX, qreal qMaxY );
+
130 
+
131  protected:
+
132  MapAdapter(const QString& qHost, const QString& qServerPath, int qTilesize, int qMinZoom = 0, int qMaxZoom = 0);
+
133  virtual void zoom_in() = 0;
+
134  virtual void zoom_out() = 0;
+
135  virtual bool isValid(int x, int y, int z) const = 0;
+
136  virtual QString query(int x, int y, int z) const = 0;
+
137 
+
138  QSize mSize;
+
139  QString mServerHost;
+
140  QString mServerPath;
+
141 
+
142  int mTileSize;
+
143  int mMin_zoom;
+
144  int mMax_zoom;
+
145  int mCurrent_zoom;
+
146 
+
147  int param1;
+
148  int param2;
+
149  int param3;
+
150  int param4;
+
151  int param5;
+
152  int param6;
+
153 
+
154  QString sub1;
+
155  QString sub2;
+
156  QString sub3;
+
157  QString sub4;
+
158  QString sub5;
+
159  QString sub6;
+
160 
+
161  int order[3][2];
+
162 
+
163  int mMiddle_x;
+
164  int mMiddle_y;
+
165 
+
166  qreal mNumberOfTiles;
+
167  QLocale loc;
+
168  QRectF mBoundingBox;
+
169  };
+
170 }
+
171 #endif
+
Used to fit map servers into QMapControl.
Definition: mapadapter.h:56
+ +
Layer class.
Definition: layer.h:60
+
QMapControl namespace.
Definition: arrowpoint.cpp:28
+
+ + + + diff --git a/libs/QMapControl/html/mapcontrol_8h_source.html b/libs/QMapControl/html/mapcontrol_8h_source.html new file mode 100644 index 00000000..3ff58f9d --- /dev/null +++ b/libs/QMapControl/html/mapcontrol_8h_source.html @@ -0,0 +1,303 @@ + + + + + + +QMapControl: mapcontrol.h Source File + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + +
+
+
+
mapcontrol.h
+
+
+
1 /*
+
2 *
+
3 * This file is part of QMapControl,
+
4 * an open-source cross-platform map widget
+
5 *
+
6 * Copyright (C) 2007 - 2008 Kai Winter
+
7 *
+
8 * This program is free software: you can redistribute it and/or modify
+
9 * it under the terms of the GNU Lesser General Public License as published by
+
10 * the Free Software Foundation, either version 3 of the License, or
+
11 * (at your option) any later version.
+
12 *
+
13 * This program is distributed in the hope that it will be useful,
+
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
+
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+
16 * GNU Lesser General Public License for more details.
+
17 *
+
18 * You should have received a copy of the GNU Lesser General Public License
+
19 * along with QMapControl. If not, see <http://www.gnu.org/licenses/>.
+
20 *
+
21 * Contact e-mail: kaiwinter@gmx.de
+
22 * Program URL : http://qmapcontrol.sourceforge.net/
+
23 *
+
24 */
+
25 
+
26 #ifndef MAPCONTROL_H
+
27 #define MAPCONTROL_H
+
28 
+
29 #include "qmapcontrol_global.h"
+
30 #include "layermanager.h"
+
31 #include "layer.h"
+
32 #include "mapadapter.h"
+
33 #include "geometry.h"
+
34 #include "imagemanager.h"
+
35 
+
36 #include <QWidget>
+
37 
+
39 namespace qmapcontrol
+
40 {
+
41  class LayerManager;
+
42  class MapAdapter;
+
43  class Layer;
+
44 
+
46 
+
54  class QMAPCONTROL_EXPORT MapControl : public QWidget
+
55  {
+
56  Q_OBJECT
+
57 
+
58  public:
+
60  enum MouseMode
+
61  {
+ + +
64  None
+
65  };
+
66 
+
68 
+
72  MapControl (QWidget * parent = 0, Qt::WindowFlags windowFlags = 0);
+
73 
+
75 
+
89  MapControl ( QSize size, MouseMode mousemode = Panning, bool showScale = false, bool showCrosshairs = true, QWidget * parent = 0, Qt::WindowFlags windowFlags = 0);
+
90 
+
91  ~MapControl();
+
92 
+
94 
+
98  void addLayer ( Layer* layer );
+
99 
+
101 
+
105  void removeLayer ( Layer* layer );
+
106 
+
108 
+
112  Layer* layer ( const QString& layername ) const;
+
113 
+
115 
+
118  QList<QString> layers() const;
+
119 
+
121 
+
124  int numberOfLayers() const;
+
125 
+
127 
+
130  QPointF currentCoordinate() const;
+
131 
+
133 
+
136  int currentZoom() const;
+
137 
+
139  void updateView() const;
+
140 
+
142 
+
145  void enableMouseWheelEvents( bool enabled = true );
+
146 
+
148 
+
151  bool mouseWheelEventsEnabled();
+
152 
+
154 
+
157  void setView ( const QPointF& coordinate ) const;
+
158 
+
160 
+
163  void setView ( const QList<QPointF> coordinates ) const;
+
164 
+
166 
+
171  void setViewAndZoomIn ( const QList<QPointF> coordinates ) const;
+
172 
+
174 
+
178  void setView ( const Point* point ) const;
+
179 
+
181 
+
185  void followGeometry ( const Geometry* geometry ) const;
+
186 
+
187  //TODO:
+
188  // void followGeometry(const QList<Geometry*>) const;
+
189 
+
191 
+
196  void stopFollowing ( const Geometry* geometry ) const;
+
197 
+
199 
+
202  void moveTo ( QPointF coordinate );
+
203 
+
205 
+
213  void setMouseMode ( MouseMode mousemode );
+
214 
+
216 
+
220  MapControl::MouseMode mouseMode();
+
221 
+
222  //int rotation;
+
223 
+
225 
+
233  void enablePersistentCache ( int tileExpiry = -1, const QDir& path= QDir::homePath() + "/QMapControl.cache" );
+
234 
+
236 
+
244  void setProxy(QString host, int port, const QString username = QString(), const QString password = QString());
+
245 
+
247 
+
251  void showScale ( bool visible );
+
252 
+
253  void showCrosshairs ( bool visible );
+
254 
+
256 
+
260  void setUseBoundingBox( bool usebounds );
+
261 
+
263 
+
267  bool isBoundingBoxEnabled();
+
268 
+
270 
+
274  void setBoundingBox( QRectF &rect );
+
275 
+
277 
+
281  QRectF getBoundingBox();
+
282 
+
284 
+
288  QRectF getViewport();
+
289 
+
291 
+
296  bool isGeometryVisible( Geometry * geometry);
+
297 
+
299 
+
303  int loadingQueueSize();
+
304 
+
305  private:
+
306  LayerManager* layermanager;
+
307  QPoint screen_middle; // middle of the widget (half size)
+
308 
+
309  QPoint pre_click_px; // used for scrolling (MouseMode Panning)
+
310  QPoint current_mouse_pos; // used for scrolling and dragging (MouseMode Panning/Dragging)
+
311 
+
312  QSize size; // size of the widget
+
313 
+
314  bool mouse_wheel_events;
+
315  bool mousepressed;
+
316  MouseMode mymousemode;
+
317  bool scaleVisible;
+
318  bool crosshairsVisible;
+
319 
+
320  bool m_loadingFlag;
+
321 
+
322  QMutex moveMutex; // used for method moveTo()
+
323  QPointF target; // used for method moveTo()
+
324  int steps; // used for method moveTo()
+
325 
+
326  QPointF clickToWorldCoordinate ( QPoint click );
+
327 
+
328  Q_DISABLE_COPY( MapControl )
+
329 
+
330  protected:
+
331  void paintEvent ( QPaintEvent* evnt );
+
332  void mousePressEvent ( QMouseEvent* evnt );
+
333  void mouseReleaseEvent ( QMouseEvent* evnt );
+
334  void mouseMoveEvent ( QMouseEvent* evnt );
+
335  void wheelEvent( QWheelEvent* evnt );
+
336 
+
337  signals:
+
338  // void mouseEvent(const QMouseEvent* evnt);
+
339 
+
341 
+
348  void mouseEventCoordinate ( const QMouseEvent* evnt, const QPointF coordinate );
+
349 
+
351 
+
356  void boxDragged ( const QRectF );
+
357 
+
359 
+
363  void geometryClicked ( Geometry* geometry, QPoint coord_px );
+
364 
+
366 
+
370  void viewChanged ( const QPointF &coordinate, int zoom ) const;
+
371 
+
372  public slots:
+
374  void zoomIn();
+
375 
+
377  void zoomOut();
+
378 
+
380 
+
383  void setZoom ( int zoomlevel );
+
384 
+
386  void scrollLeft ( int pixel=10 );
+
387 
+
389  void scrollRight ( int pixel=10 );
+
390 
+
392  void scrollUp ( int pixel=10 );
+
393 
+
395  void scrollDown ( int pixel=10 );
+
396 
+
398  void scroll ( const QPoint scroll );
+
399 
+
401 
+
404  void updateRequest ( QRect rect );
+
405 
+
407 
+
410  void updateRequestNew();
+
411 
+
413 
+
416  void resize(const QSize newSize);
+
417 
+
418  private slots:
+
419  void tick();
+
420  void loadingFinished();
+
421  void positionChanged ( Geometry* geom );
+
422 
+
423  };
+
424 }
+
425 #endif
+
Main class for objects that should be painted in maps.
Definition: geometry.h:48
+ +
MouseMode
Declares what actions mouse movements have on the map.
Definition: mapcontrol.h:60
+
Definition: mapcontrol.h:63
+
The control element of the widget and also the widget itself.
Definition: mapcontrol.h:54
+
A geometric point to draw objects into maps.
Definition: point.h:66
+
Layer class.
Definition: layer.h:60
+
Definition: mapcontrol.h:62
+
QMapControl namespace.
Definition: arrowpoint.cpp:28
+
+ + + + diff --git a/libs/QMapControl/html/maplayer_8h_source.html b/libs/QMapControl/html/maplayer_8h_source.html new file mode 100644 index 00000000..d9c0647f --- /dev/null +++ b/libs/QMapControl/html/maplayer_8h_source.html @@ -0,0 +1,104 @@ + + + + + + +QMapControl: maplayer.h Source File + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + +
+
+
+
maplayer.h
+
+
+
1 /*
+
2 *
+
3 * This file is part of QMapControl,
+
4 * an open-source cross-platform map widget
+
5 *
+
6 * Copyright (C) 2007 - 2008 Kai Winter
+
7 *
+
8 * This program is free software: you can redistribute it and/or modify
+
9 * it under the terms of the GNU Lesser General Public License as published by
+
10 * the Free Software Foundation, either version 3 of the License, or
+
11 * (at your option) any later version.
+
12 *
+
13 * This program is distributed in the hope that it will be useful,
+
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
+
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+
16 * GNU Lesser General Public License for more details.
+
17 *
+
18 * You should have received a copy of the GNU Lesser General Public License
+
19 * along with QMapControl. If not, see <http://www.gnu.org/licenses/>.
+
20 *
+
21 * Contact e-mail: kaiwinter@gmx.de
+
22 * Program URL : http://qmapcontrol.sourceforge.net/
+
23 *
+
24 */
+
25 
+
26 #ifndef MAPLAYER_H
+
27 #define MAPLAYER_H
+
28 
+
29 #include "qmapcontrol_global.h"
+
30 #include "layer.h"
+
31 
+
32 namespace qmapcontrol
+
33 {
+
35 
+
48  class QMAPCONTROL_EXPORT MapLayer : public Layer
+
49  {
+
50  Q_OBJECT
+
51 
+
52  public:
+
54 
+
62  MapLayer(QString layername, MapAdapter* mapadapter, bool takeevents=true);
+
63  virtual ~MapLayer();
+
64  };
+
65 }
+
66 #endif
+
Used to fit map servers into QMapControl.
Definition: mapadapter.h:56
+
MapLayer class.
Definition: maplayer.h:48
+
Layer class.
Definition: layer.h:60
+
QMapControl namespace.
Definition: arrowpoint.cpp:28
+
+ + + + diff --git a/libs/QMapControl/html/mapnetwork_8h_source.html b/libs/QMapControl/html/mapnetwork_8h_source.html new file mode 100644 index 00000000..b07cc48c --- /dev/null +++ b/libs/QMapControl/html/mapnetwork_8h_source.html @@ -0,0 +1,139 @@ + + + + + + +QMapControl: mapnetwork.h Source File + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + +
+
+
+
mapnetwork.h
+
+
+
1 /*
+
2 *
+
3 * This file is part of QMapControl,
+
4 * an open-source cross-platform map widget
+
5 *
+
6 * Copyright (C) 2007 - 2008 Kai Winter
+
7 *
+
8 * This program is free software: you can redistribute it and/or modify
+
9 * it under the terms of the GNU Lesser General Public License as published by
+
10 * the Free Software Foundation, either version 3 of the License, or
+
11 * (at your option) any later version.
+
12 *
+
13 * This program is distributed in the hope that it will be useful,
+
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
+
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+
16 * GNU Lesser General Public License for more details.
+
17 *
+
18 * You should have received a copy of the GNU Lesser General Public License
+
19 * along with QMapControl. If not, see <http://www.gnu.org/licenses/>.
+
20 *
+
21 * Contact e-mail: kaiwinter@gmx.de
+
22 * Program URL : http://qmapcontrol.sourceforge.net/
+
23 *
+
24 */
+
25 
+
26 #ifndef MAPNETWORK_H
+
27 #define MAPNETWORK_H
+
28 
+
29 #include "qmapcontrol_global.h"
+
30 #include <QObject>
+
31 #include <QDebug>
+
32 #include <QNetworkAccessManager>
+
33 #include <QNetworkReply>
+
34 #include <QNetworkProxy>
+
35 #include <QAuthenticator>
+
36 #include <QVector>
+
37 #include <QPixmap>
+
38 #include <QMutex>
+
39 #include "imagemanager.h"
+
40 
+
44 namespace qmapcontrol
+
45 {
+
46  class ImageManager;
+
47  class QMAPCONTROL_EXPORT MapNetwork : QObject
+
48  {
+
49  Q_OBJECT
+
50 
+
51  public:
+
52  MapNetwork(ImageManager* parent);
+
53  ~MapNetwork();
+
54 
+
55  void loadImage(const QString& host, const QString& url);
+
56 
+
62  bool imageIsLoading(QString url);
+
63 
+
68  void abortLoading();
+
69  void setProxy(QString host, int port, const QString username = QString(), const QString password = QString());
+
70 
+
75  int loadQueueSize() const;
+
76 
+
81  QNetworkAccessManager* nextFreeHttp();
+
82 
+
83  private:
+
84  Q_DISABLE_COPY (MapNetwork)
+
85 
+
86  ImageManager* parent;
+
87  QList<QNetworkAccessManager*> httpThreads;
+
88  QList<QNetworkReply*> replyList;
+
89  QMap<QString, QString> loadingMap;
+
90  qreal loaded;
+
91  mutable QMutex vectorMutex;
+
92  bool networkActive;
+
93  int nextThreadIndex;
+
94 
+
95  static const int kMAX_HTTP_THREADS;
+
96 
+
97  private slots:
+
98  void requestFinished(QNetworkReply *reply);
+
99  };
+
100 }
+
101 #endif
+ +
Definition: mapnetwork.h:47
+
QMapControl namespace.
Definition: arrowpoint.cpp:28
+
+ + + + diff --git a/libs/QMapControl/html/mapviewer_8cpp-example.html b/libs/QMapControl/html/mapviewer_8cpp-example.html new file mode 100644 index 00000000..53c0d563 --- /dev/null +++ b/libs/QMapControl/html/mapviewer_8cpp-example.html @@ -0,0 +1,97 @@ + + +QMapControl: mapviewer.cpp + + + + + +
+

mapviewer.cpp

This application is just a simple map viewer. A Mapadapter is created (OpenStreetmaps) and added to a layer. The layer is given to the MapControl. Two Buttons are available to adjust the zoom level. If the window is resized the map widget will adjust its size.

+You can find this example here: QMapControl/Samples/Mapviewer

+sample_mapviewer.png +

screenshot

+
#include "mapviewer.h"
+Mapviewer::Mapviewer(QWidget *parent)
+    : QMainWindow(parent)
+{
+    // create MapControl
+    mc = new MapControl(QSize(380, 540));
+    mc->showScale(true);
+
+    // create mapadapter, for mainlayer and overlay
+    mapadapter = new EmptyMapAdapter();
+
+    // create a layer with the mapadapter and type MapLayer
+    mainlayer = new MapLayer("OpenStreetMap-Layer", mapadapter);
+
+    // add Layer to the MapControl
+    mc->addLayer(mainlayer);
+
+    addZoomButtons();
+
+    // show mapcontrol in mainwindow
+    setCentralWidget(mc);
+
+    FixedImageOverlay* fip = new FixedImageOverlay(-102, 77, 0,0, QCoreApplication::applicationDirPath() + "/bild.png");
+
+    mainlayer->addGeometry(fip);
+
+    connect(mc, SIGNAL(mouseEventCoordinate(const QMouseEvent*, const QPointF)),
+                          this, SLOT(coordinateClicked(const QMouseEvent*, const QPointF)));
+
+}
+void Mapviewer::addZoomButtons()
+{
+    // create buttons as controls for zoom
+    QPushButton* zoomin = new QPushButton("+");
+    QPushButton* zoomout = new QPushButton("-");
+    zoomin->setMaximumWidth(50);
+    zoomout->setMaximumWidth(50);
+
+    connect(zoomin, SIGNAL(clicked(bool)),
+            mc, SLOT(zoomIn()));
+    connect(zoomout, SIGNAL(clicked(bool)),
+            mc, SLOT(zoomOut()));
+
+    // add zoom buttons to the layout of the MapControl
+    QVBoxLayout* innerlayout = new QVBoxLayout;
+    innerlayout->addWidget(zoomin);
+    innerlayout->addWidget(zoomout);
+    mc->setLayout(innerlayout);
+}
+
+
+Mapviewer::~Mapviewer()
+{
+}
+
+// resize the widget
+void Mapviewer::resizeEvent ( QResizeEvent * event )
+{
+    mc->resize(event->size());
+}
+
+void Mapviewer::coordinateClicked(const QMouseEvent * evnt, const QPointF coordinate)
+{
+    if (evnt->type()==QEvent::MouseButtonPress)
+    {
+        qDebug() << coordinate << ": " << evnt->x() << " / " << evnt->y();
+    }
+}
+
+
Generated on Wed Jul 29 12:38:09 2009 for QMapControl by  + +doxygen 1.5.9
+ + diff --git a/libs/QMapControl/html/mapviewer_8h_source.html b/libs/QMapControl/html/mapviewer_8h_source.html new file mode 100644 index 00000000..235521e9 --- /dev/null +++ b/libs/QMapControl/html/mapviewer_8h_source.html @@ -0,0 +1,58 @@ + + +QMapControl: mapviewer.h Source File + + + + + +
Generated on Wed Jul 29 12:38:10 2009 for QMapControl by  + +doxygen 1.5.9
+ + diff --git a/libs/QMapControl/html/multidemo_8cpp-example.html b/libs/QMapControl/html/multidemo_8cpp-example.html new file mode 100644 index 00000000..a19390f8 --- /dev/null +++ b/libs/QMapControl/html/multidemo_8cpp-example.html @@ -0,0 +1,305 @@ + + +QMapControl: multidemo.cpp + + + + + +
+

multidemo.cpp

This is a bit complexer application, which lets you play around. There are the following buttons configured:
    +
  • Add Point: adds a Point to the coordinate you click (this point will be clickable)
  • Drag Rect: lets to drag a rectangular into which will be zoomed in
  • Move To Click: moves the view middle to the clicked coordinate
  • GPS: starts a "pseudo" GPS receiver which emits new positions, these are connected to the ImagePoint
  • Follow Geom: Follows the ImagePoint, when it moves because of new GPS positions
+

+A overview map lefts you see where you are. You can even click on it to change your position.

+You can find this example here: MapAPI/Samples/Multimap

+sample_multidemo.png +

screenshot

+
#include "multidemo.h"
+Multidemo::Multidemo(QWidget *parent)
+        : QWidget(parent)
+{
+        setupMaps();
+        createLayout();
+
+        gm = new GPS_Modul();
+        connect(gm, SIGNAL(new_position(QPointF)),
+                          ip, SLOT(setCoordinate(QPointF)));
+
+}
+
+void Multidemo::setupMaps()
+{
+        QSize size = QSize(480,640);
+
+        // main map control
+        mc = new MapControl(size);
+        MapAdapter* mapadapter = new WMSMapAdapter("www2.demis.nl", "/wms/wms.asp?wms=WorldMap&LAYERS=Countries,Borders,Cities,Rivers,Settlements,Hillshading,Waterbodies,Railroads,Highways,Roads&FORMAT=image/png&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&STYLES=&EXCEPTIONS=application/vnd.ogc.se_inimage&SRS=EPSG:4326&TRANSPARENT=FALSE", 256);
+
+        // maplayer
+        Layer* l = new MapLayer("Custom Layer", mapadapter);
+        mc->addLayer(l);
+        // Geometry layer
+        Layer* l2 = new GeometryLayer("Geom Layer", mapadapter);
+        mc->addLayer(l2);
+
+
+        // "minimap" control
+        mc2 = new MapControl(QSize(150,150), MapControl::None);
+        MapAdapter* mapadapter_mini = new OSMMapAdapter();
+        Layer* layer_mini = new MapLayer("Custom Layer", mapadapter_mini);
+        mc2->addLayer(layer_mini);
+
+        // create points
+        QPen* pen = new QPen(QColor(255, 0, 0, 100));
+        pen->setWidth(5);
+        QList<Point*> points;
+        points.append(new CirclePoint(8.259959, 50.001781,      "Mainz, Hauptbahnhof", Point::Middle, pen));
+        points.append(new CirclePoint(8.263758, 49.998917,      "Mainz, Münsterplatz", Point::Middle, pen));
+        points.append(new CirclePoint(8.265812, 50.001952,      "Mainz, Neubrunnenplatz", Point::Middle, pen));
+        points.append(new CirclePoint(8.2688, 50.004015,        "Mainz, Bauhofstraße LRP", Point::Middle, pen));
+        points.append(new CirclePoint(8.272845, 50.00495,       "Mainz, Landtag", Point::Middle, pen));
+        points.append(new CirclePoint(8.272845, 50.00495,       "Mainz, Brückenplatz", Point::Middle, pen));
+        points.append(new CirclePoint(8.280349, 50.008173,      "Mainz, Brückenkopf", Point::Middle, pen));
+        points.append(new CirclePoint(8.273573, 50.016315,      "Wiesbaden-Mainz-Kastel, Eleonorenstraße", Point::Middle, pen));
+        points.append(new CirclePoint(8.275145, 50.016992,      "Wiesbaden-Mainz-Kastel, Johannes-Goßner-Straße", Point::Middle, pen));
+        points.append(new CirclePoint(8.270476, 50.021426,      "Wiesbaden-Mainz-Kastel, Ruthof", Point::Middle, pen));
+        points.append(new CirclePoint(8.266445, 50.025913,      "Wiesbaden-Mainz-Kastel, Mudra Kaserne", Point::Middle, pen));
+        points.append(new CirclePoint(8.260378, 50.030345,      "Wiesbaden-Mainz-Amoneburg, Dyckerhoffstraße", Point::Middle, pen));
+
+        // add points to linestring
+        pen = new QPen(QColor(0, 0, 255, 100));
+        pen->setWidth(5);
+        LineString* ls = new LineString(points, "Busline 54", pen);
+        // the linestring is added to the MapLayer l, since it doenst change its points
+        l->addGeometry(ls);
+
+        // this point receives position changes from the "gps modul"
+        ip = new ImagePoint(0,0, QCoreApplication::applicationDirPath() + "/images/marker1.png", "image point", Point::TopRight);
+
+        // so if have to be added to the GeometryLayer l2
+        l2->addGeometry(ip);
+        QPushButton* pb = new QPushButton("test button", mc);
+
+        // widget example
+        Point* wpoint = new  Point(-20,-20, pb, ".", Point::TopLeft);
+        wpoint->setBaselevel(3);
+        l->addGeometry(wpoint);
+        pb->setGeometry(0,0,100,50);
+
+        connect(l, SIGNAL(geometryClicked(Geometry*, QPoint)),
+                          this, SLOT(geometryClickEvent(Geometry*, QPoint)));
+        connect(l2, SIGNAL(geometryClicked(Geometry*, QPoint)),
+                          this, SLOT(geometryClickEvent(Geometry*, QPoint)));
+        connect(mc, SIGNAL(boxDragged(const QRectF)),
+                          this, SLOT(draggedRect(QRectF)));
+        connect(mc, SIGNAL(mouseEventCoordinate(const QMouseEvent*, const QPointF)),
+                          this, SLOT(mouseEventCoordinate(const QMouseEvent*, const QPointF)));
+        connect(mc, SIGNAL(mouseEventCoordinate(const QMouseEvent*, const QPointF)),
+                          this, SLOT(coordinateClicked(const QMouseEvent*, const QPointF)));
+        connect(mc2, SIGNAL(mouseEventCoordinate(const QMouseEvent*, const QPointF)),
+                          this, SLOT(coordinateClicked_mc2(const QMouseEvent*, const QPointF)));
+}
+
+void Multidemo::createLayout()
+{
+        btn1 = new QPushButton("Add Point");
+        btn1->setCheckable(true);
+        btn1->setMaximumWidth(80);
+        btn1->setMaximumHeight(20);
+        btn1->setFont(QFont("Verdana", 5));
+
+        btn2 = new QPushButton("Drag Rect");
+        btn2->setCheckable(true);
+        btn2->setMaximumHeight(20);
+        btn2->setFont(QFont("Verdana", 5));
+        btn2->setMaximumWidth(80);
+
+        btn3 = new QPushButton("Move to Click");
+        btn3->setCheckable(true);
+        btn3->setMaximumHeight(20);
+        btn3->setFont(QFont("Verdana", 5));
+        btn3->setMaximumWidth(80);
+
+        btn4 = new QPushButton("Follow Geom");
+        btn4->setCheckable(true);
+        btn4->setMaximumHeight(20);
+        btn4->setFont(QFont("Verdana", 5));
+        btn4->setMaximumWidth(80);
+
+        btn5 = new QPushButton("GPS");
+        btn5->setCheckable(true);
+        btn5->setMaximumHeight(20);
+        btn5->setFont(QFont("Verdana", 5));
+        btn5->setMaximumWidth(80);
+        btn1->setFocusPolicy(Qt::NoFocus);
+        btn2->setFocusPolicy(Qt::NoFocus);
+        btn3->setFocusPolicy(Qt::NoFocus);
+        btn4->setFocusPolicy(Qt::NoFocus);
+        btn5->setFocusPolicy(Qt::NoFocus);
+
+        QHBoxLayout* layout = new QHBoxLayout;
+        QVBoxLayout* layoutinner = new QVBoxLayout;
+
+        layoutinner->addWidget(mc2);
+        layoutinner->addWidget(btn1);
+        layoutinner->addWidget(btn2);
+        layoutinner->addWidget(btn3);
+        layoutinner->addWidget(btn4);
+        layoutinner->addWidget(btn5);
+        layoutinner->addSpacing(70);
+        layout->addLayout(layoutinner);
+
+        QHBoxLayout* mclayout = new QHBoxLayout;
+        mclayout->addWidget(mc);
+        mclayout->setMargin(0);
+        setLayout(mclayout);
+
+        mc->setLayout(layoutinner);
+
+        connect(btn2, SIGNAL(toggled( bool )),
+                          this, SLOT(buttonToggled(bool)));
+
+        connect(btn4, SIGNAL(toggled( bool )),
+                          this, SLOT(toggleFollow(bool)));
+
+        connect(btn5, SIGNAL(toggled( bool )),
+                          this, SLOT(toggleGPS(bool)));
+}
+
+void Multidemo::coordinateClicked(const QMouseEvent* evnt, const QPointF coord)
+{
+        if (btn1->isChecked() && evnt->type()==QEvent::MouseButtonPress)
+        {
+                mc->layer("Geom Layer")->addGeometry(new CirclePoint(coord.x(), coord.y(), 10, "added point"));
+                mc->updateRequestNew();
+        }
+}
+
+void Multidemo::geometryClickEvent(Geometry* geom, QPoint)
+{
+        if (geom->hasClickedPoints())
+        {
+                QList<Geometry*> pp = geom->clickedPoints();
+                for (int i=0; i<pp.size(); i++)
+                {
+                        QMessageBox::information(this, geom->name(), pp.at(i)->name());
+                }
+        }
+        else if (geom->GeometryType == "Point")
+        {
+                QMessageBox::information(this, geom->name(), QString("Position: ").append(QString().setNum(((Point*)geom)->longitude())).append(QString("/")).append(QString().setNum(((Point*)geom)->latitude())));
+        }
+
+}
+
+Multidemo::~Multidemo()
+{
+}
+
+void Multidemo::keyPressEvent(QKeyEvent* evnt)
+{
+        if (evnt->key() == 49 || evnt->key() == 17825792)  // keyboard '1'
+        {
+                mc->zoomIn();
+        }
+        else if (evnt->key() == 50)
+        {
+                mc->moveTo(QPointF(8.25, 60));
+        }
+        else if (evnt->key() == 51 || evnt->key() == 16777313)     // keyboard '3'
+        {
+                mc->zoomOut();
+        }
+        else if (evnt->key() == 52)     //4
+        {
+                mc->updateRequestNew();
+        }
+        else if (evnt->key() == 16777234) // left
+        {
+                mc->scrollLeft();
+        }
+        else if (evnt->key() == 16777236) // right
+        {
+                mc->scrollRight();
+        }
+        else if (evnt->key() == 16777235 ) // up
+        {
+                mc->scrollUp();
+        }
+        else if (evnt->key() == 16777237) // down
+        {
+                mc->scrollDown();
+        }
+        else if (evnt->key() == 48 || evnt->key() == 17825797) // 0
+        {
+                emit(close());
+        }
+}
+
+void Multidemo::buttonToggled(bool active)
+{
+        if (active)
+                mc->setMouseMode(MapControl::Dragging);
+        else
+                mc->setMouseMode(MapControl::Panning);
+}
+void Multidemo::toggleFollow(bool follow)
+{
+        if (follow)
+                mc->followGeometry(ip);
+        else
+                mc->stopFollowing(ip);
+}
+void Multidemo::toggleGPS(bool gps)
+{
+        if (gps)
+                gm->start();
+        else
+                gm->stop();
+
+}
+
+void Multidemo::draggedRect(QRectF rect)
+{
+        QList<QPointF> coords;
+        coords.append(rect.topLeft());
+        coords.append(rect.bottomRight());
+        mc->setViewAndZoomIn(coords);
+}
+
+void Multidemo::mouseEventCoordinate(const QMouseEvent* evnt, const QPointF coordinate)
+{
+        if (evnt->type() == QEvent::MouseButtonPress && btn3->isChecked())
+        {
+                mc->moveTo(coordinate);
+        }
+        //update mini-window
+        else if(evnt->type() == QEvent::MouseButtonRelease)
+        {
+                mc2->setView(mc->currentCoordinate());
+        }
+}
+void Multidemo::coordinateClicked_mc2(const QMouseEvent* evnt, const QPointF coordinate)
+{
+        if (evnt->type() == QEvent::MouseButtonPress)
+        {
+                mc2->moveTo(coordinate);
+                mc->setView(coordinate);
+        }
+}
+
+
Generated on Wed Jul 29 12:38:09 2009 for QMapControl by  + +doxygen 1.5.9
+ + diff --git a/libs/QMapControl/html/namespaceqmapcontrol.html b/libs/QMapControl/html/namespaceqmapcontrol.html new file mode 100644 index 00000000..a4d2d19a --- /dev/null +++ b/libs/QMapControl/html/namespaceqmapcontrol.html @@ -0,0 +1,136 @@ + + + + + + +QMapControl: qmapcontrol Namespace Reference + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + +
+
+ +
+
qmapcontrol Namespace Reference
+
+
+ +

QMapControl namespace. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Classes

class  ArrowPoint
 Draws a directed arrow (showing orientation) into the map. More...
 
class  CirclePoint
 Draws a circle into the map. More...
 
class  Curve
 A Curve Geometry, implemented to fullfil OGC Spec. More...
 
class  EmptyMapAdapter
 MapAdapter which do not load map tiles. More...
 
class  FixedImageOverlay
 Draws a fixed image into the map. More...
 
class  Geometry
 Main class for objects that should be painted in maps. More...
 
class  GeometryLayer
 GeometryLayer class. More...
 
class  GoogleMapAdapter
 MapAdapter for Google. More...
 
class  GPS_Position
 Represents a coordinate from a GPS receiver.
 
class  ImagePoint
 Draws an image into the map. More...
 
class  InvisiblePoint
 Draws an invisible point into the map. More...
 
class  Layer
 Layer class. More...
 
class  LineString
 A collection of Point objects to describe a line. More...
 
class  MapAdapter
 Used to fit map servers into QMapControl. More...
 
class  MapControl
 The control element of the widget and also the widget itself. More...
 
class  MapLayer
 MapLayer class. More...
 
class  MapNetwork
 
class  OpenAerialMapAdapter
 MapAdapter for OpenStreetMap. More...
 
class  OSMMapAdapter
 MapAdapter for OpenStreetMap. More...
 
class  Point
 A geometric point to draw objects into maps. More...
 
class  TileMapAdapter
 MapAdapter for servers with image tiles. More...
 
class  WMSMapAdapter
 MapAdapter for WMS servers. More...
 
class  YahooMapAdapter
 MapAdapter for Yahoo Maps. More...
 
+

Detailed Description

+

QMapControl namespace.

+
Author
Kai Winter kaiwi.nosp@m.nter.nosp@m.@gmx..nosp@m.de
+
+ + + + diff --git a/libs/QMapControl/html/namespaces.html b/libs/QMapControl/html/namespaces.html new file mode 100644 index 00000000..59213929 --- /dev/null +++ b/libs/QMapControl/html/namespaces.html @@ -0,0 +1,61 @@ + + + + + + +QMapControl: Namespace List + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + +
+
+
+
Namespace List
+
+
+
Here is a list of all documented namespaces with brief descriptions:
+ + +
 NqmapcontrolQMapControl namespace
+
+
+ + + + diff --git a/libs/QMapControl/html/nav_f.png b/libs/QMapControl/html/nav_f.png new file mode 100644 index 0000000000000000000000000000000000000000..72a58a529ed3a9ed6aa0c51a79cf207e026deee2 GIT binary patch literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^j6iI`!2~2XGqLUlQVE_ejv*C{Z|{2ZH7M}7UYxc) zn!W8uqtnIQ>_z8U literal 0 HcmV?d00001 diff --git a/libs/QMapControl/html/nav_g.png b/libs/QMapControl/html/nav_g.png new file mode 100644 index 0000000000000000000000000000000000000000..2093a237a94f6c83e19ec6e5fd42f7ddabdafa81 GIT binary patch literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrB!3HFm1ilyoDK$?Q$B+ufw|5PB85lU25BhtE tr?otc=hd~V+ws&_A@j8Fiv!KF$B+ufw|5=67#uj90@pIL wZ=Q8~_Ju`#59=RjDrmm`tMD@M=!-l18IR?&vFVdQ&MBb@0HFXL1|%O$WD@{VPM$7~Ar*{o?;hlAFyLXmaDC0y znK1_#cQqJWPES%4Uujug^TE?jMft$}Eq^WaR~)%f)vSNs&gek&x%A9X9sM + + + + + +QMapControl: openaerialmapadapter.h Source File + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + +
+
+
+
openaerialmapadapter.h
+
+
+
1 /*
+
2 *
+
3 * This file is part of QMapControl,
+
4 * an open-source cross-platform map widget
+
5 *
+
6 * Copyright (C) 2007 - 2009 Kai Winter
+
7 *
+
8 * This program is free software: you can redistribute it and/or modify
+
9 * it under the terms of the GNU Lesser General Public License as published by
+
10 * the Free Software Foundation, either version 3 of the License, or
+
11 * (at your option) any later version.
+
12 *
+
13 * This program is distributed in the hope that it will be useful,
+
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
+
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+
16 * GNU Lesser General Public License for more details.
+
17 *
+
18 * You should have received a copy of the GNU Lesser General Public License
+
19 * along with QMapControl. If not, see <http://www.gnu.org/licenses/>.
+
20 *
+
21 * Contact e-mail: kaiwinter@gmx.de
+
22 * Program URL : http://qmapcontrol.sourceforge.net/
+
23 *
+
24 */
+
25 
+
26 #ifndef OPENAERIALMAPADAPTER_H
+
27 #define OPENAERIALMAPADAPTER_H
+
28 
+
29 #include "qmapcontrol_global.h"
+
30 #include "tilemapadapter.h"
+
31 namespace qmapcontrol
+
32 {
+
34 
+
38  class QMAPCONTROL_EXPORT OpenAerialMapAdapter : public TileMapAdapter
+
39  {
+
40  Q_OBJECT
+
41  public:
+
43 
+ +
47  virtual ~OpenAerialMapAdapter();
+
48  };
+
49 }
+
50 #endif
+
MapAdapter for servers with image tiles.
Definition: tilemapadapter.h:39
+
MapAdapter for OpenStreetMap.
Definition: openaerialmapadapter.h:38
+
QMapControl namespace.
Definition: arrowpoint.cpp:28
+
+ + + + diff --git a/libs/QMapControl/html/osmmapadapter_8h_source.html b/libs/QMapControl/html/osmmapadapter_8h_source.html new file mode 100644 index 00000000..504c4090 --- /dev/null +++ b/libs/QMapControl/html/osmmapadapter_8h_source.html @@ -0,0 +1,101 @@ + + + + + + +QMapControl: osmmapadapter.h Source File + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + +
+
+
+
osmmapadapter.h
+
+
+
1 /*
+
2 *
+
3 * This file is part of QMapControl,
+
4 * an open-source cross-platform map widget
+
5 *
+
6 * Copyright (C) 2007 - 2008 Kai Winter
+
7 *
+
8 * This program is free software: you can redistribute it and/or modify
+
9 * it under the terms of the GNU Lesser General Public License as published by
+
10 * the Free Software Foundation, either version 3 of the License, or
+
11 * (at your option) any later version.
+
12 *
+
13 * This program is distributed in the hope that it will be useful,
+
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
+
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+
16 * GNU Lesser General Public License for more details.
+
17 *
+
18 * You should have received a copy of the GNU Lesser General Public License
+
19 * along with QMapControl. If not, see <http://www.gnu.org/licenses/>.
+
20 *
+
21 * Contact e-mail: kaiwinter@gmx.de
+
22 * Program URL : http://qmapcontrol.sourceforge.net/
+
23 *
+
24 */
+
25 
+
26 #ifndef OSMMAPADAPTER_H
+
27 #define OSMMAPADAPTER_H
+
28 
+
29 #include "qmapcontrol_global.h"
+
30 #include "tilemapadapter.h"
+
31 namespace qmapcontrol
+
32 {
+
34 
+
38  class QMAPCONTROL_EXPORT OSMMapAdapter : public TileMapAdapter
+
39  {
+
40  Q_OBJECT
+
41  public:
+
43 
+
46  OSMMapAdapter();
+
47  virtual ~OSMMapAdapter();
+
48  };
+
49 }
+
50 #endif
+
MapAdapter for servers with image tiles.
Definition: tilemapadapter.h:39
+
MapAdapter for OpenStreetMap.
Definition: osmmapadapter.h:38
+
QMapControl namespace.
Definition: arrowpoint.cpp:28
+
+ + + + diff --git a/libs/QMapControl/html/point_8h_source.html b/libs/QMapControl/html/point_8h_source.html new file mode 100644 index 00000000..dd35141e --- /dev/null +++ b/libs/QMapControl/html/point_8h_source.html @@ -0,0 +1,203 @@ + + + + + + +QMapControl: point.h Source File + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + +
+
+
+
point.h
+
+
+
1 /*
+
2 *
+
3 * This file is part of QMapControl,
+
4 * an open-source cross-platform map widget
+
5 *
+
6 * Copyright (C) 2007 - 2008 Kai Winter
+
7 *
+
8 * This program is free software: you can redistribute it and/or modify
+
9 * it under the terms of the GNU Lesser General Public License as published by
+
10 * the Free Software Foundation, either version 3 of the License, or
+
11 * (at your option) any later version.
+
12 *
+
13 * This program is distributed in the hope that it will be useful,
+
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
+
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+
16 * GNU Lesser General Public License for more details.
+
17 *
+
18 * You should have received a copy of the GNU Lesser General Public License
+
19 * along with QMapControl. If not, see <http://www.gnu.org/licenses/>.
+
20 *
+
21 * Contact e-mail: kaiwinter@gmx.de
+
22 * Program URL : http://qmapcontrol.sourceforge.net/
+
23 *
+
24 */
+
25 
+
26 #ifndef POINT_H
+
27 #define POINT_H
+
28 
+
29 //#include "qglobal.h"
+
30 #if QT_VERSION >= 0x050000
+
31  // Qt5 code
+
32  //#include <QtWidgets>
+
33 #else
+
34  // Qt4 code
+
35  #include <QWidget>
+
36 #endif
+
37 
+
38 #include "qmapcontrol_global.h"
+
39 #include "geometry.h"
+
40 
+
41 namespace qmapcontrol
+
42 {
+
44 
+
66  class QMAPCONTROL_EXPORT Point : public Geometry
+
67  {
+
68  Q_OBJECT
+
69 
+
70  public:
+
71  friend class Layer;
+
72  friend class LineString;
+
73 
+
75  enum Alignment
+
76  {
+ + + + + + +
83  Middle
+
84  };
+
85 
+
86  Point();
+
87  explicit Point(const Point&);
+
89 
+
96  Point(qreal x, qreal y, QString name = QString(), enum Alignment alignment=Middle);
+
97 
+
99 
+
110  Point(qreal x, qreal y, QWidget* widget, QString name = QString(), enum Alignment alignment = Middle);
+
111 
+
113 
+
122  Point(qreal x, qreal y, QPixmap pixmap, QString name = QString(), enum Alignment alignment = Middle);
+
123  virtual ~Point();
+
124 
+
126 
+
131  virtual QRectF boundingBox();
+
132 
+
134 
+
137  qreal longitude() const;
+
138 
+
140 
+
143  qreal latitude() const;
+
144 
+
146 
+
151  QPointF coordinate() const;
+
152 
+
153  virtual QList<Point*> points();
+
154 
+
158  QWidget* widget();
+
159 
+
161 
+
164  QPixmap pixmap();
+
165 
+
167 
+
173  void setBaselevel(int zoomlevel);
+
174 
+
176 
+
181  void setMinsize(QSize minsize);
+
182 
+
184 
+
189  void setMaxsize(QSize maxsize);
+
190 
+
191  Point::Alignment alignment() const;
+
192 
+
193  virtual void setPixmap( QPixmap qPixmap );
+
194 
+
195  protected:
+
196  qreal X;
+
197  qreal Y;
+
198  QSize size;
+
199 
+
200  QWidget* mywidget;
+
201  QPixmap mypixmap;
+
202  Alignment myalignment;
+
203  int homelevel;
+
204  QSize displaysize;
+
205  QSize minsize;
+
206  QSize maxsize;
+
207 
+
208 
+
209  void drawWidget(const MapAdapter* mapadapter, const QPoint offset);
+
210  // void drawPixmap(QPainter* painter, const MapAdapter* mapadapter, const QRect &viewport, const QPoint versch);
+
211  virtual void draw(QPainter* painter, const MapAdapter* mapadapter, const QRect &viewport, const QPoint offset);
+
212  QPoint alignedPoint(const QPoint point) const;
+
213 
+
215 
+
221  virtual bool Touches(Point* click, const MapAdapter* mapadapter);
+
222 
+
223  public slots:
+
224  void setCoordinate(QPointF point);
+
225  virtual void setVisible(bool visible);
+
226  };
+
227 }
+
228 #endif
+
Definition: point.h:81
+
Main class for objects that should be painted in maps.
Definition: geometry.h:48
+
Used to fit map servers into QMapControl.
Definition: mapadapter.h:56
+ +
Definition: point.h:79
+
Definition: point.h:77
+
Definition: point.h:78
+
Definition: point.h:82
+
Alignment
sets where the point should be aligned
Definition: point.h:75
+
A geometric point to draw objects into maps.
Definition: point.h:66
+
Layer class.
Definition: layer.h:60
+
A collection of Point objects to describe a line.
Definition: linestring.h:39
+
Definition: point.h:80
+
QMapControl namespace.
Definition: arrowpoint.cpp:28
+
+ + + + diff --git a/libs/QMapControl/html/qmapcontrol_8h_source.html b/libs/QMapControl/html/qmapcontrol_8h_source.html new file mode 100644 index 00000000..7e8d62ca --- /dev/null +++ b/libs/QMapControl/html/qmapcontrol_8h_source.html @@ -0,0 +1,46 @@ + + +QMapControl: qmapcontrol.h Source File + + + + + +
Generated on Wed Jul 29 12:38:10 2009 for QMapControl by  + +doxygen 1.5.9
+ + diff --git a/libs/QMapControl/html/qmapcontrol__global_8h_source.html b/libs/QMapControl/html/qmapcontrol__global_8h_source.html new file mode 100644 index 00000000..3facbbd7 --- /dev/null +++ b/libs/QMapControl/html/qmapcontrol__global_8h_source.html @@ -0,0 +1,62 @@ + + + + + + +QMapControl: qmapcontrol_global.h Source File + + + + + + +
+
+ + + + + + +
+
QMapControl +  0.9.7.4 +
+
+
+ + + + +
+
+
+
qmapcontrol_global.h
+
+
+
1 #include <QtGlobal>
+
2 
+
3 #ifdef QMAPCONTROL_LIBRARY
+
4 # define QMAPCONTROL_EXPORT Q_DECL_EXPORT
+
5 #else
+
6 # define QMAPCONTROL_EXPORT Q_DECL_IMPORT
+
7 #endif
+
+ + + + diff --git a/libs/QMapControl/html/sample_citymap.png b/libs/QMapControl/html/sample_citymap.png new file mode 100644 index 0000000000000000000000000000000000000000..126b3465bf085ab70ba4711c18af081f6656750a GIT binary patch literal 79852 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
    f<_%S@3tk{>zcX=>^+*K91G64z2gT|1F{i$ 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 literal 0 HcmV?d00001 diff --git a/libs/QMapControl/html/sample_linesandpoints.png b/libs/QMapControl/html/sample_linesandpoints.png new file mode 100644 index 0000000000000000000000000000000000000000..5bb7d3d14ceac344afeee827250bb0d1c381ba5f GIT binary patch literal 169047 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%0A~&R@v}A?JT)I>~ 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
    %ezTUW?c4X!iJmuG_*nI`GYGz%V; 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ν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 bx<2!lrZnAe{rC)=dic{+)l(_MSrh&b8as}! literal 0 HcmV?d00001 diff --git a/libs/QMapControl/html/sync_off.png b/libs/QMapControl/html/sync_off.png new file mode 100644 index 0000000000000000000000000000000000000000..3b443fc62892114406e3d399421b2a881b897acc GIT binary patch literal 853 zcmV-b1FHOqP)oT|#XixUYy%lpuf3i8{fX!o zUyDD0jOrAiT^tq>fLSOOABs-#u{dV^F$b{L9&!2=9&RmV;;8s^x&UqB$PCj4FdKbh zoB1WTskPUPu05XzFbA}=KZ-GP1fPpAfSs>6AHb12UlR%-i&uOlTpFNS7{jm@mkU1V zh`nrXr~+^lsV-s1dkZOaI|kYyVj3WBpPCY{n~yd%u%e+d=f%`N0FItMPtdgBb@py; zq@v6NVArhyTC7)ULw-Jy8y42S1~4n(3LkrW8mW(F-4oXUP3E`e#g**YyqI7h-J2zK zK{m9##m4ri!7N>CqQqCcnI3hqo1I;Yh&QLNY4T`*ptiQGozK>FF$!$+84Z`xwmeMh zJ0WT+OH$WYFALEaGj2_l+#DC3t7_S`vHpSivNeFbP6+r50cO8iu)`7i%Z4BTPh@_m3Tk!nAm^)5Bqnr%Ov|Baunj#&RPtRuK& z4RGz|D5HNrW83-#ydk}tVKJrNmyYt-sTxLGlJY5nc&Re zU4SgHNPx8~Yxwr$bsju?4q&%T1874xxzq+_%?h8_ofw~(bld=o3iC)LUNR*BY%c0y zWd_jX{Y8`l%z+ol1$@Qa?Cy!(0CVIEeYpKZ`(9{z>3$CIe;pJDQk$m3p}$>xBm4lb zKo{4S)`wdU9Ba9jJbVJ0C=SOefZe%d$8=2r={nu<_^a3~>c#t_U6dye5)JrR(_a^E f@}b6j1K9lwFJq@>o)+Ry00000NkvXXu0mjfWa5j* literal 0 HcmV?d00001 diff --git a/libs/QMapControl/html/sync_on.png b/libs/QMapControl/html/sync_on.png new file mode 100644 index 0000000000000000000000000000000000000000..e08320fb64e6fa33b573005ed6d8fe294e19db76 GIT binary patch literal 845 zcmV-T1G4;yP)Y;xxyHF2B5Wzm| zOOGupOTn@c(JmBOl)e;XMNnZuiTJP>rM8<|Q`7I_))aP?*T)ow&n59{}X4$3Goat zgjs?*aasfbrokzG5cT4K=uG`E14xZl@z)F={P0Y^?$4t z>v!teRnNZym<6h{7sLyF1V0HsfEl+l6TrZpsfr1}luH~F7L}ktXu|*uVX^RG$L0`K zWs3j|0tIvVe(N%_?2{(iCPFGf#B6Hjy6o&}D$A%W%jfO8_W%ZO#-mh}EM$LMn7joJ z05dHr!5Y92g+31l<%i1(=L1a1pXX+OYnalY>31V4K}BjyRe3)9n#;-cCVRD_IG1fT zOKGeNY8q;TL@K{dj@D^scf&VCs*-Jb>8b>|`b*osv52-!A?BpbYtTQBns5EAU**$m zSnVSm(teh>tQi*S*A>#ySc=n;`BHz`DuG4&g4Kf8lLhca+zvZ7t7RflD6-i-mcK=M z!=^P$*u2)bkY5asG4gsss!Hn%u~>}kIW`vMs%lJLH+u*9<4PaV_c6U`KqWXQH%+Nu zTv41O(^ZVi@qhjQdG!fbZw&y+2o!iYymO^?ud3{P*HdoX83YV*Uu_HB=?U&W9%AU# z80}k1SS-CXTU7dcQlsm<^oYLxVSseqY6NO}dc`Nj?8vrhNuCdm@^{a3AQ_>6myOj+ z`1RsLUXF|dm|3k7s2jD(B{rzE>WI2scH8i1;=O5Cc9xB3^aJk%fQjqsu+kH#0=_5a z0nCE8@dbQa-|YIuUVvG0L_IwHMEhOj$Mj4Uq05 X8=0q~qBNan00000NkvXXu0mjfptF>5 literal 0 HcmV?d00001 diff --git a/libs/QMapControl/html/tab_a.png b/libs/QMapControl/html/tab_a.png new file mode 100644 index 0000000000000000000000000000000000000000..3b725c41c5a527a3a3e40097077d0e206a681247 GIT binary patch literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QlXwMjv*C{Z|8b*H5dputLHD# z=<0|*y7z(Vor?d;H&?EG&cXR}?!j-Lm&u1OOI7AIF5&c)RFE;&p0MYK>*Kl@eiymD r@|NpwKX@^z+;{u_Z~trSBfrMKa%3`zocFjEXaR$#tDnm{r-UW|TZ1%4 literal 0 HcmV?d00001 diff --git a/libs/QMapControl/html/tab_b.gif b/libs/QMapControl/html/tab_b.gif new file mode 100644 index 0000000000000000000000000000000000000000..0d623483ffdf5f9f96900108042a7ab0643fe2a3 GIT binary patch literal 35 ncmZ?wbhEHbWMp7uXkcJy*>IeJfk6j|fqX^=1|}vKMh0sDa2W*H literal 0 HcmV?d00001 diff --git a/libs/QMapControl/html/tab_b.png b/libs/QMapControl/html/tab_b.png new file mode 100644 index 0000000000000000000000000000000000000000..e2b4a8638cb3496a016eaed9e16ffc12846dea18 GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QU#tajv*C{Z}0l@H7kg?K0Lnr z!j&C6_(~HV9oQ0Pa6x{-v0AGV_E?vLnZT`}F1e&(Gg}Y(8=I;HA5#Z$3JI=gGB)FQ#odI(O&E^@q;x zK6mr*m3xOS-#u~t!I@i+u0DKm^U160k6t`|^WpV}&n+8{U%dD9&a>B#U%!9-@yol< zU%&tQ{rk_K|NsC0`}dE5ET99@1@a36+kb~?0UJ*yc&I3X_m z!ND^5$O7$#8OFRuDhG}!?8z?cdZK&!`PWjdR;Aj^wZ` zeK{IEYHBJ)6K8VIp1`BVt++swf6j+=L{p1*nO(VhE`pFexG@5$|>uaCcd z`0m=9m+yak{QmXN#Sc$^{$X9h9&q2jiKAI|&T)a;PPx2K9p`YIdw8HtR5k2Q$2-O2 z*;3y{MQ-RnJTgJfI&R5|O)AHxDf_00XbPvDZPy4t=hHd)nfLPvms&O`Ok(sD()5v$ z5U@&h;a=#xbxVbo2~X&Xj0Ie(f{v>vERH+qC+nTG=B8Nca=wU-O$?1&vUgV~9=!H; zx>3p9Yn%*<>t~sk+&0xfyS8RsPfYBd<~wWK%j-LmpU>O7yX^h#UCp1x-p#i7@bE;py8XI6 zmY<)m>~)W~yIWcMVoiPg{duuf<*)9qZ9l$m*Ph&W&$jlv*Vpa+{pH@n=IQ$L?0$ax ec60Ul|8o2P|NVbd{6P)#weSbE3}s?04AuZvx_~SI literal 0 HcmV?d00001 diff --git a/libs/QMapControl/html/tab_r.gif b/libs/QMapControl/html/tab_r.gif new file mode 100644 index 0000000000000000000000000000000000000000..ce9dd9f533cb5486d6941844f442b59d4a9e9175 GIT binary patch literal 2585 zcmbV}`9Bkk1ILFF--w5zJc=ZZT(zjE=;2|_S)Qm~rCWz1Pc)KPl;jv%A#&v2*x}yc zmf2~Jm~&=xjJY?PqwIN}f8qQ2{r$uH{c*nJbmr{cR5??*egHrs-B=MzCF`3%e{FAW z{oL5xTHn~5TM{jaB;@|_Ue5F&Zb@p(kMyG{*;gWDg zyeL|eZf7Qd8=#bXzSiR{yzRgLSj-fJS8>lBjVHN z^o-0eS=nE6a`W;LChBs=`+QAJP~{b93>H^eRb5kCSC1zUNezun%`L5M?RDzv#%jk7 zYVRX=vATPD`+oEfum^{RM@GjuP?-r=yh0!p;Vx^T9G7~`7%5ydH%70=jyJ;;`d;hv92x3R=z{xp+Lg2!*@OK*K15-t&okoPtSED)h&$RLxdbA zseWm^C3d%-yRNi-ryk^!ek+C`n&~cd$#ZWct_cUL{l~i+Nzx^5d!n94(>bW-iL~Rl z&8r)?q|1DIo=0=judQ{FaGcfLERz8gfn3-Qt<2lksh{mzpT}DXxUuR^z=^key&q4! z+wWI45vL0k$R^(F#{qfqhUsN@WA+w-V?LPH33!Q?WFSB3)WBojE@hK41Nb?KfS+Qo zXgrzfsP$wr4Qzy*{OD>uJBjdgGM@VMml5)2f~_}lD*YyOb}Hjeobhz#4c`w(l^>KK zr?Ud;W~Z}*w;%hZ|2^p^+f06gJDJQD zeIhGADbDmm&6arh(q>EZ<7mjzg7l|z$hRL8=1>)Nv=S7CY$B}iYJ&*T_-T_OG*L1q ztZ3Lana33?y3AKnyq^YCF|4x%Rb5WU&2qcl{TFKey%QJeMxn^SdT!hZ5+0i1zeusiYVp-phBl7b5+Px-X&LhByq z0F&<;K0l2+v>qiHlXb#$jXMv$uK-dEGE9L~qtdU(XeRXmvu*K2Q&6!fD**JxYP4b4BR7FdJ$Qx9G9`J%-_X!a#LGpp3g9)VWytGCa;7`S1_e8F~!R+aSJ zOF17p2`H?2kPs8Q`_;U}+D%3p zs2-0BTqFwpUoBk`?P;iPQ(IbEA|JmMx!P&YYG|R@S=5Mnw;-?A6rEEVyV%d7{iU4a zNk`i!%F(Ykpm`}#oH;BjY->@b8vQedv;pza2FL&*6ufjd+*3Ute&>kes~TU?^KkojsTh(o~(3tk1Y6>4(yn( z#U*ID9@eg-beKo1B;HXe+}{Z%n@7m0+yxivuqk9~;!1LGQlah)xYK4>wgL}l6dsaN zIxlRlq`*`j9PG4*0hD6YV_b_2w5b#)o7J?`q#{GjvvKlD`T*dWcZx<-s(ZvLB44E# z=!|sw!?)@%y$oRNL#25WS3lzdii}TuQ3?CLnvQ1_n};2sT_;Y;#d3=+-(O% zMN$>O!3;ke(UuLR%h_&)N zs^!-@A>QR}4yB1bPp`9S19ikTbZ~O{&FF-yHK{En;mmShDUIEw03`j(DBIsM}Rjki2J#SQa3gFZTKBPDeIiLt9Z z%bL3(B@Qw%(B`wSMS~dPh$=R`(}lBoFXKy(s|*{#ru$wjsBc_O#zxNk9w+UUHmx(U zmJ8+M+ndtnZ<7|VU9Mbt61zpo9T&3%Wx&XII=#QJxjR`CZf22ac3d51Z?GD%LEe_&*t46Qf;4`bZ7p2K(Ab5>GfT^}4! zBT&HZD`^PEgWoI&{~o-ID0F?O`75sm(87x%A{(}Ch1)QlzdJ)1B-eqe5a(weg0`4lQIf1evjvbBY50DVbzO7CLf|vP z2#0(U-|jZ`H{y5N^o7%iK6H>_HEGN->U6^!)1{XpJV!!4(Ig7wzZQ*9WYF4X1rG0x z=1uA@i`rIAciubDC{;~b(|&|A@xkjRP5aRcvRU9tvIm}jDB6J eQ0-6-y)mpwdT=ayS0tBxKDA*~;EWmo literal 0 HcmV?d00001 diff --git a/libs/QMapControl/html/tab_s.png b/libs/QMapControl/html/tab_s.png new file mode 100644 index 0000000000000000000000000000000000000000..ab478c95b67371d700a20869f7de1ddd73522d50 GIT binary patch literal 184 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QuUrLjv*C{Z|^p8HaRdjTwH7) zC?wLlL}}I{)n%R&r+1}IGmDnq;&J#%V6)9VsYhS`O^BVBQlxOUep0c$RENLq#g8A$ z)z7%K_bI&n@J+X_=x}fJoEKed-$<>=ZI-;YrdjIl`U`uzuDWSP?o#Dmo{%SgM#oan kX~E1%D-|#H#QbHoIja2U-MgvsK&LQxy85}Sb4q9e0Efg%P5=M^ literal 0 HcmV?d00001 diff --git a/libs/QMapControl/html/tabs.css b/libs/QMapControl/html/tabs.css new file mode 100644 index 00000000..9cf578f2 --- /dev/null +++ b/libs/QMapControl/html/tabs.css @@ -0,0 +1,60 @@ +.tabs, .tabs2, .tabs3 { + background-image: url('tab_b.png'); + width: 100%; + z-index: 101; + font-size: 13px; + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +} + +.tabs2 { + font-size: 10px; +} +.tabs3 { + font-size: 9px; +} + +.tablist { + margin: 0; + padding: 0; + display: table; +} + +.tablist li { + float: left; + display: table-cell; + background-image: url('tab_b.png'); + line-height: 36px; + list-style: none; +} + +.tablist a { + display: block; + padding: 0 20px; + font-weight: bold; + background-image:url('tab_s.png'); + background-repeat:no-repeat; + background-position:right; + color: #283A5D; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; + outline: none; +} + +.tabs3 .tablist a { + padding: 0 10px; +} + +.tablist a:hover { + background-image: url('tab_h.png'); + background-repeat:repeat-x; + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); + text-decoration: none; +} + +.tablist li.current a { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +} diff --git a/libs/QMapControl/html/tilemapadapter_8h_source.html b/libs/QMapControl/html/tilemapadapter_8h_source.html new file mode 100644 index 00000000..8b29ed52 --- /dev/null +++ b/libs/QMapControl/html/tilemapadapter_8h_source.html @@ -0,0 +1,120 @@ + + + + + + +QMapControl: tilemapadapter.h Source File + + + + + + +

    +
    + + + + + + +
    +
    QMapControl +  0.9.7.4 +
    +
    +
    + + + + +
    +
    +
    +
    tilemapadapter.h
    +
    +
    +
    1 /*
    +
    2 *
    +
    3 * This file is part of QMapControl,
    +
    4 * an open-source cross-platform map widget
    +
    5 *
    +
    6 * Copyright (C) 2007 - 2008 Kai Winter
    +
    7 *
    +
    8 * This program is free software: you can redistribute it and/or modify
    +
    9 * it under the terms of the GNU Lesser General Public License as published by
    +
    10 * the Free Software Foundation, either version 3 of the License, or
    +
    11 * (at your option) any later version.
    +
    12 *
    +
    13 * This program is distributed in the hope that it will be useful,
    +
    14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
    +
    15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    +
    16 * GNU Lesser General Public License for more details.
    +
    17 *
    +
    18 * You should have received a copy of the GNU Lesser General Public License
    +
    19 * along with QMapControl. If not, see <http://www.gnu.org/licenses/>.
    +
    20 *
    +
    21 * Contact e-mail: kaiwinter@gmx.de
    +
    22 * Program URL : http://qmapcontrol.sourceforge.net/
    +
    23 *
    +
    24 */
    +
    25 
    +
    26 #ifndef TILEMAPADAPTER_H
    +
    27 #define TILEMAPADAPTER_H
    +
    28 
    +
    29 #include "qmapcontrol_global.h"
    +
    30 #include "mapadapter.h"
    +
    31 
    +
    32 namespace qmapcontrol
    +
    33 {
    +
    35 
    +
    39  class QMAPCONTROL_EXPORT TileMapAdapter : public MapAdapter
    +
    40  {
    +
    41  Q_OBJECT
    +
    42  public:
    +
    44 
    +
    55  TileMapAdapter(const QString& host, const QString& serverPath, int tilesize, int minZoom = 0, int maxZoom = 17);
    +
    56 
    +
    57  virtual ~TileMapAdapter();
    +
    58 
    +
    59  virtual QPoint coordinateToDisplay(const QPointF&) const;
    +
    60  virtual QPointF displayToCoordinate(const QPoint&) const;
    +
    61 
    +
    62  qreal PI;
    +
    63 
    +
    64  protected:
    +
    65  qreal rad_deg(qreal) const;
    +
    66  qreal deg_rad(qreal) const;
    +
    67 
    +
    68  virtual bool isValid(int x, int y, int z) const;
    +
    69  virtual void zoom_in();
    +
    70  virtual void zoom_out();
    +
    71  virtual QString query(int x, int y, int z) const;
    +
    72  virtual int tilesonzoomlevel(int zoomlevel) const;
    +
    73  virtual int xoffset(int x) const;
    +
    74  virtual int yoffset(int y) const;
    +
    75  };
    +
    76 }
    +
    77 #endif
    +
    Used to fit map servers into QMapControl.
    Definition: mapadapter.h:56
    +
    MapAdapter for servers with image tiles.
    Definition: tilemapadapter.h:39
    +
    QMapControl namespace.
    Definition: arrowpoint.cpp:28
    +
    + + + + diff --git a/libs/QMapControl/html/wmsmapadapter_8h_source.html b/libs/QMapControl/html/wmsmapadapter_8h_source.html new file mode 100644 index 00000000..3cee4792 --- /dev/null +++ b/libs/QMapControl/html/wmsmapadapter_8h_source.html @@ -0,0 +1,121 @@ + + + + + + +QMapControl: wmsmapadapter.h Source File + + + + + + +
    +
    + + + + + + +
    +
    QMapControl +  0.9.7.4 +
    +
    +
    + + + + +
    +
    +
    +
    wmsmapadapter.h
    +
    +
    +
    1 /*
    +
    2 *
    +
    3 * This file is part of QMapControl,
    +
    4 * an open-source cross-platform map widget
    +
    5 *
    +
    6 * Copyright (C) 2007 - 2008 Kai Winter
    +
    7 *
    +
    8 * This program is free software: you can redistribute it and/or modify
    +
    9 * it under the terms of the GNU Lesser General Public License as published by
    +
    10 * the Free Software Foundation, either version 3 of the License, or
    +
    11 * (at your option) any later version.
    +
    12 *
    +
    13 * This program is distributed in the hope that it will be useful,
    +
    14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
    +
    15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    +
    16 * GNU Lesser General Public License for more details.
    +
    17 *
    +
    18 * You should have received a copy of the GNU Lesser General Public License
    +
    19 * along with QMapControl. If not, see <http://www.gnu.org/licenses/>.
    +
    20 *
    +
    21 * Contact e-mail: kaiwinter@gmx.de
    +
    22 * Program URL : http://qmapcontrol.sourceforge.net/
    +
    23 *
    +
    24 */
    +
    25 
    +
    26 #ifndef WMSMAPADAPTER_H
    +
    27 #define WMSMAPADAPTER_H
    +
    28 
    +
    29 #include "qmapcontrol_global.h"
    +
    30 #include "mapadapter.h"
    +
    31 
    +
    32 namespace qmapcontrol
    +
    33 {
    +
    35 
    +
    39  class QMAPCONTROL_EXPORT WMSMapAdapter : public MapAdapter
    +
    40  {
    +
    41  public:
    +
    43 
    +
    52  WMSMapAdapter(QString host, QString serverPath, int tilesize = 256);
    +
    53  virtual ~WMSMapAdapter();
    +
    54 
    +
    55  virtual QString serverPath() const;
    +
    56  virtual QPoint coordinateToDisplay(const QPointF&) const;
    +
    57  virtual QPointF displayToCoordinate(const QPoint&) const;
    +
    58  virtual void changeHostAddress( const QString qHost, const QString qServerPath = QString() );
    +
    59 
    +
    60  protected:
    +
    61  virtual void zoom_in();
    +
    62  virtual void zoom_out();
    +
    63  virtual QString query(int x, int y, int z) const;
    +
    64  virtual bool isValid(int x, int y, int z) const;
    +
    65 
    +
    66  private:
    +
    67  virtual QString getQ(qreal ux, qreal uy, qreal ox, qreal oy) const;
    +
    68 
    +
    69  qreal coord_per_x_tile;
    +
    70  qreal coord_per_y_tile;
    +
    71 
    +
    72  QHash<QString,QString> mServerOptions;
    +
    73  QHash<int,qreal> mResolutions;
    +
    74  };
    +
    75 }
    +
    76 #endif
    +
    Used to fit map servers into QMapControl.
    Definition: mapadapter.h:56
    +
    MapAdapter for WMS servers.
    Definition: wmsmapadapter.h:39
    +
    QMapControl namespace.
    Definition: arrowpoint.cpp:28
    +
    + + + + diff --git a/libs/QMapControl/html/yahoomapadapter_8h_source.html b/libs/QMapControl/html/yahoomapadapter_8h_source.html new file mode 100644 index 00000000..83682210 --- /dev/null +++ b/libs/QMapControl/html/yahoomapadapter_8h_source.html @@ -0,0 +1,109 @@ + + + + + + +QMapControl: yahoomapadapter.h Source File + + + + + + +
    +
    + + + + + + +
    +
    QMapControl +  0.9.7.4 +
    +
    +
    + + + + +
    +
    +
    +
    yahoomapadapter.h
    +
    +
    +
    1 /*
    +
    2 *
    +
    3 * This file is part of QMapControl,
    +
    4 * an open-source cross-platform map widget
    +
    5 *
    +
    6 * Copyright (C) 2007 - 2008 Kai Winter
    +
    7 *
    +
    8 * This program is free software: you can redistribute it and/or modify
    +
    9 * it under the terms of the GNU Lesser General Public License as published by
    +
    10 * the Free Software Foundation, either version 3 of the License, or
    +
    11 * (at your option) any later version.
    +
    12 *
    +
    13 * This program is distributed in the hope that it will be useful,
    +
    14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
    +
    15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    +
    16 * GNU Lesser General Public License for more details.
    +
    17 *
    +
    18 * You should have received a copy of the GNU Lesser General Public License
    +
    19 * along with QMapControl. If not, see <http://www.gnu.org/licenses/>.
    +
    20 *
    +
    21 * Contact e-mail: kaiwinter@gmx.de
    +
    22 * Program URL : http://qmapcontrol.sourceforge.net/
    +
    23 *
    +
    24 */
    +
    25 
    +
    26 #ifndef YAHOOMAPADAPTER_H
    +
    27 #define YAHOOMAPADAPTER_H
    +
    28 
    +
    29 #include "qmapcontrol_global.h"
    +
    30 #include "tilemapadapter.h"
    +
    31 
    +
    32 namespace qmapcontrol
    +
    33 {
    +
    35 
    +
    38  class QMAPCONTROL_EXPORT YahooMapAdapter : public TileMapAdapter
    +
    39  {
    +
    40  Q_OBJECT
    +
    41 
    +
    42  public:
    +
    44 
    + +
    48  YahooMapAdapter(QString host, QString url);
    +
    49  virtual ~YahooMapAdapter();
    +
    50  bool isValid(int x, int y, int z) const;
    +
    51 
    +
    52  protected:
    +
    53  virtual int tilesonzoomlevel(int zoomlevel) const;
    +
    54  virtual int yoffset(int y) const;
    +
    55  };
    +
    56 }
    +
    57 #endif
    +
    MapAdapter for servers with image tiles.
    Definition: tilemapadapter.h:39
    +
    MapAdapter for Yahoo Maps.
    Definition: yahoomapadapter.h:38
    +
    QMapControl namespace.
    Definition: arrowpoint.cpp:28
    +
    + + + + diff --git a/libs/QMapControl/images/sample_citymap.png b/libs/QMapControl/images/sample_citymap.png new file mode 100755 index 0000000000000000000000000000000000000000..126b3465bf085ab70ba4711c18af081f6656750a GIT binary patch literal 79852 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
      f<_%S@3tk{>zcX=>^+*K91G64z2gT|1F{i$ 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 literal 0 HcmV?d00001 diff --git a/libs/QMapControl/images/sample_linesandpoints.png b/libs/QMapControl/images/sample_linesandpoints.png new file mode 100644 index 0000000000000000000000000000000000000000..5bb7d3d14ceac344afeee827250bb0d1c381ba5f GIT binary patch literal 169047 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%0A~&R@v}A?JT)I>~ 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
      %ezTUW?c4X!iJmuG_*nI`GYGz%V; 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ν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 bx<2!lrZnAe{rC)=dic{+)l(_MSrh&b8as}! literal 0 HcmV?d00001 diff --git a/libs/QMapControl/src/arrowpoint.cpp b/libs/QMapControl/src/arrowpoint.cpp new file mode 100644 index 00000000..d051636d --- /dev/null +++ b/libs/QMapControl/src/arrowpoint.cpp @@ -0,0 +1,95 @@ +/* +* +* This file is part of QMapControl, +* an open-source cross-platform map widget +* +* Copyright (C) 2010 Jeffery MacEachern +* Based on CirclePoint code by 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 . +* +* Contact e-mail: kaiwinter@gmx.de +* Program URL : http://qmapcontrol.sourceforge.net/ +* +*/ + +#include "arrowpoint.h" +namespace qmapcontrol +{ + ArrowPoint::ArrowPoint(qreal x, qreal y, int sideLength, qreal heading, QString name, qmapcontrol::Point::Alignment alignment, QPen* pen) + : Point(x, y, name, alignment) + { + size = QSize(sideLength, sideLength); + h = heading; + mypen = pen; + mypixmap = QPixmap(sideLength, sideLength); + drawArrow(); + } + + ArrowPoint::~ArrowPoint() + { + } + + void ArrowPoint::setHeading(qreal heading) + { + h = heading; + drawArrow(); + } + + qreal ArrowPoint::getHeading() const + { + return h; + } + + void ArrowPoint::setPen(QPen* pen) + { + mypen = pen; + drawArrow(); + } + + void ArrowPoint::drawArrow() + { + mypixmap = QPixmap(size); + mypixmap.fill(Qt::transparent); + QPainter painter(&mypixmap); +//#if !defined Q_WS_MAEMO_5 //FIXME Maemo has a bug - it will antialias our point out of existence + painter.setRenderHints(QPainter::Antialiasing | QPainter::Qt4CompatiblePainting); +//#endif + + if(mypen) + { + painter.setPen(*mypen); + painter.setBrush(QBrush(mypen->color())); + } + else + { + painter.setBrush(QBrush(painter.pen().color())); + } + + painter.setWindow(-(size.width() / 2), -(size.height() / 2), size.width(), size.height()); + QTransform transform; + transform.rotate(-h); + transform.scale(0.4, 0.75); + painter.setWorldTransform(transform); + + QPolygon arrow; + arrow << QPoint(0, -(size.height() / 2)); + arrow << QPoint(-(size.width() / 2), +(size.height() / 2)); + arrow << QPoint(0, 0); + arrow << QPoint(+(size.width() / 2), +(size.height() / 2)); + + painter.drawPolygon(arrow); + } + +} diff --git a/libs/QMapControl/src/arrowpoint.h b/libs/QMapControl/src/arrowpoint.h new file mode 100644 index 00000000..40abc156 --- /dev/null +++ b/libs/QMapControl/src/arrowpoint.h @@ -0,0 +1,88 @@ +/* +* +* This file is part of QMapControl, +* an open-source cross-platform map widget +* +* Copyright (C) 2010 Jeffery MacEachern +* Based on CirclePoint code by 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 . +* +* Contact e-mail: kaiwinter@gmx.de +* Program URL : http://qmapcontrol.sourceforge.net/ +* +*/ + +#ifndef ARROWPOINT_H +#define ARROWPOINT_H + +#include + +#include "qmapcontrol_global.h" +#include "math.h" +#include "point.h" + +namespace qmapcontrol +{ + //! Draws a directed arrow (showing orientation) into the map + /*! This is a convenience class for Point. + * It configures the pixmap of a Point to draw an arrow in a specific direction. + * A QPen could be used to change the color or line-width of the arrow + * + * @author Jeffery MacEachern + */ + class QMAPCONTROL_EXPORT ArrowPoint : public Point + { + public: + //! + /*! + * + * @param x longitude + * @param y latitude + * @param sideLength side length of the arrow's bounding box (square) + * @param heading compass heading determining direction that arrow faces, measured in degrees clockwise from North + * @param name name of the arrow point + * @param alignment alignment (Middle or TopLeft) + * @param pen QPen for drawing + */ + ArrowPoint(qreal x, qreal y, int sideLength, qreal heading, QString name = QString(), Alignment alignment = Middle, QPen* pen=0); + virtual ~ArrowPoint(); + + //! sets the QPen which is used for drawing the arrow + /*! + * A QPen can be used to modify the look of the drawn arrow + * @param pen the QPen which should be used for drawing + * @see http://doc.trolltech.com/4.3/qpen.html + */ + virtual void setPen(QPen* pen); + + //! sets the heading of the arrow and redraws it in the new orientation + /*! + * @param heading new heading + */ + void setHeading(qreal heading); + + //! gets the current heading of the arrow + qreal getHeading() const; + private: + void drawArrow(); + + // Heading + qreal h; + + // Brush to fill the arrow with - solid colour, same as pen + QBrush mybrush; + }; +} +#endif diff --git a/libs/QMapControl/src/bingapimapadapter.cpp b/libs/QMapControl/src/bingapimapadapter.cpp new file mode 100644 index 00000000..0163edb1 --- /dev/null +++ b/libs/QMapControl/src/bingapimapadapter.cpp @@ -0,0 +1,157 @@ +/* +* +* This file is part of QMapControl, +* an open-source cross-platform map widget +* +* Copyright (C) 2007 - 2008 Kai Winter +* Copyright (C) 2014 Mattes Jaehne +* +* 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 . +* +* original software by Kai Winter +* Contact e-mail: kaiwinter@gmx.de +* Program URL : http://qmapcontrol.sourceforge.net/ +* +* modified to use Google Static Maps API V2 by +* Mattes Jaehne +* for +* NGOS - The Next Generation multicopter OS +* http://ng.uavp.ch +* +*/ + +#include "bingapimapadapter.h" + +#define _USE_MATH_DEFINES +#include + +namespace qmapcontrol +{ + bingApiMapadapter::bingApiMapadapter(QString mapType, QString apiKey) + : TileMapAdapter("dev.virtualearth.net", "/REST/v1/Imagery/Map/", 256, 0, 21), + myKey(apiKey), + myMapType(mapType) + { + mNumberOfTiles = pow(2., mCurrent_zoom + 0.0); + coord_per_x_tile = 360. / mNumberOfTiles; + coord_per_y_tile = 180. / mNumberOfTiles; + + if (! myKey.isEmpty()) + myKey.prepend("&key="); + if (myMapType.isEmpty()) + myMapType.append("Road"); + } + + bingApiMapadapter::~bingApiMapadapter() + { + } + + QPoint bingApiMapadapter::coordinateToDisplay(const QPointF& coordinate) const + { + qreal x = (coordinate.x() + 180.) * (mNumberOfTiles * mTileSize) / 360.; // coord to pixel! + qreal y = (1. - log(tan(coordinate.y() * M_PI / 180.) + 1. / cos(coordinate.y() * M_PI / 180.)) / M_PI) / 2. * (mNumberOfTiles*mTileSize); + x += mTileSize / 2; + y += mTileSize / 2; + + return QPoint(int(x), int(y)); + } + + QPointF bingApiMapadapter::displayToCoordinate(const QPoint& point) const + { + qreal lon = (point.x() - mTileSize / 2) / (mNumberOfTiles * mTileSize) * 360. - 180.; + qreal lat = M_PI - 2. * M_PI * (point.y() - mTileSize / 2) / (mNumberOfTiles * mTileSize); + lat = 180. / M_PI * atan(0.5 * (exp(lat) - exp(-lat))); + + return QPointF(lon, lat); + } + + qreal bingApiMapadapter::getMercatorLatitude(qreal YCoord) const + { + if (YCoord > M_PI) return 9999.; + if (YCoord < -M_PI) return -9999.; + + qreal t = atan(exp(YCoord)); + qreal res = (2. * t) - (M_PI / 2.); + + return res; + } + + qreal bingApiMapadapter::getMercatorYCoord(qreal lati) const + { + qreal phi = M_PI * lati / 180.; + qreal res = 0.5 * log((1. + sin(phi)) / (1. - sin(phi))); + + return res; + } + + void bingApiMapadapter::zoom_in() + { + if (mCurrent_zoom >= maxZoom()) + return; + + mCurrent_zoom += 1; + mNumberOfTiles = pow(2, mCurrent_zoom + 0.0); + coord_per_x_tile = 360. / mNumberOfTiles; + coord_per_y_tile = 180. / mNumberOfTiles; + } + + void bingApiMapadapter::zoom_out() + { + if (mCurrent_zoom <= minZoom()) + return; + + mCurrent_zoom -= 1; + mNumberOfTiles = pow(2, mCurrent_zoom + 0.0); + coord_per_x_tile = 360. / mNumberOfTiles; + coord_per_y_tile = 180. / mNumberOfTiles; + } + + QString bingApiMapadapter::getQ(qreal longitude, qreal latitude, int zoom) const + { + QString location = "/REST/v1/Imagery/Map/"; + if (! myMapType.isEmpty()) + location.append(myMapType + "/"); + else + location.append("Road/"); + location.append(QVariant(latitude).toString() + ","); + location.append(QVariant(longitude).toString() + "/"); + location.append(QString::number(zoom) + "?"); + location.append("&mapSize=" + QString::number(mTileSize) + "," + QString::number(mTileSize)); + + if (! myKey.isEmpty()) + location.append(myKey); + else + fprintf(stderr, "You are useing Bing Maps API without a (valid) key. This is not possible...\r\n"); + + return location; + } + + void bingApiMapadapter::setKey(QString apiKey) + { + if (apiKey.isEmpty()) + return; + + myKey.clear(); + myKey.append("&key=" + apiKey); + } + + void bingApiMapadapter::setMapType(QString mapType) /* Aerial, AerialWithLabels, Road */ + { + if (mapType.isEmpty()) + return; + + myMapType.clear(); + myMapType.append(mapType); + } +} diff --git a/libs/QMapControl/src/bingapimapadapter.h b/libs/QMapControl/src/bingapimapadapter.h new file mode 100644 index 00000000..b1173374 --- /dev/null +++ b/libs/QMapControl/src/bingapimapadapter.h @@ -0,0 +1,73 @@ +/* +* +* This file is part of QMapControl, +* an open-source cross-platform map widget +* +* Copyright (C) 2007 - 2008 Kai Winter +* Copyright (C) 2014 Mattes Jaehne +* +* 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 . +* +* original software by Kai Winter +* Contact e-mail: kaiwinter@gmx.de +* Program URL : http://qmapcontrol.sourceforge.net/ +* +* modified to use Bing Maps by +* Mattes Jaehne +* for +* NGOS - The Next Generation multicopter OS +* http://ng.uavp.ch +* +*/ + + +#ifndef BINGAPIMAPADAPTER_H +#define BINGAPIMAPADAPTER_H + +#include "qmapcontrol_global.h" +#include "tilemapadapter.h" + +namespace qmapcontrol +{ + class QMAPCONTROL_EXPORT bingApiMapadapter : public TileMapAdapter + { + Q_OBJECT + public: + bingApiMapadapter(QString mapType = "Road", QString apiKey = ""); + virtual ~bingApiMapadapter(); + + virtual QPoint coordinateToDisplay(const QPointF&) const; + virtual QPointF displayToCoordinate(const QPoint&) const; + + void setKey(QString apiKey); + void setMapType(QString mapType); /* Aerial, AerialWithLabels, Road */ + + protected: + virtual void zoom_in(); + virtual void zoom_out(); + + private: + virtual QString getQ(qreal longitude, qreal latitude, int zoom) const; + qreal getMercatorLatitude(qreal YCoord) const; + qreal getMercatorYCoord(qreal lati) const; + + qreal coord_per_x_tile; + qreal coord_per_y_tile; + int srvNum; + QString myKey; + QString myMapType; + }; +} + +#endif // BINGAPIMAPADAPTER_H diff --git a/libs/QMapControl/src/circlepoint.cpp b/libs/QMapControl/src/circlepoint.cpp new file mode 100644 index 00000000..860af43c --- /dev/null +++ b/libs/QMapControl/src/circlepoint.cpp @@ -0,0 +1,71 @@ +/* +* +* This file is part of QMapControl, +* an open-source cross-platform map widget +* +* Copyright (C) 2007 - 2008 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 . +* +* Contact e-mail: kaiwinter@gmx.de +* Program URL : http://qmapcontrol.sourceforge.net/ +* +*/ + +#include "circlepoint.h" +namespace qmapcontrol +{ + CirclePoint::CirclePoint(qreal x, qreal y, int radius, QString name, Alignment alignment, QPen* pen) + : Point(x, y, name, alignment) + { + size = QSize(radius, radius); + mypen = pen; + mypixmap = QPixmap(radius+1, radius+1); + drawCircle(); + } + + CirclePoint::CirclePoint(qreal x, qreal y, QString name, Alignment alignment, QPen* pen) + : Point(x, y, name, alignment) + { + int radius = 10; + size = QSize(radius, radius); + mypen = pen; + mypixmap = QPixmap(radius+1, radius+1); + drawCircle(); + } + + CirclePoint::~CirclePoint() + { + } + + void CirclePoint::setPen(QPen* pen) + { + mypen = pen; + drawCircle(); + } + + void CirclePoint::drawCircle() + { + mypixmap.fill(Qt::transparent); + QPainter painter(&mypixmap); +//#if !defined Q_WS_MAEMO_5 //FIXME Maemo has a bug - it will antialias our point out of existence + painter.setRenderHints(QPainter::Antialiasing | QPainter::Qt4CompatiblePainting); +//#endif + if (mypen != 0) + { + painter.setPen(*mypen); + } + painter.drawEllipse(0,0, size.width(), size.height()); + } +} diff --git a/libs/QMapControl/src/circlepoint.h b/libs/QMapControl/src/circlepoint.h new file mode 100644 index 00000000..c21e0fb2 --- /dev/null +++ b/libs/QMapControl/src/circlepoint.h @@ -0,0 +1,80 @@ +/* +* +* This file is part of QMapControl, +* an open-source cross-platform map widget +* +* Copyright (C) 2007 - 2008 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 . +* +* Contact e-mail: kaiwinter@gmx.de +* Program URL : http://qmapcontrol.sourceforge.net/ +* +*/ + +#ifndef CIRCLEPOINT_H +#define CIRCLEPOINT_H + +#include "qmapcontrol_global.h" +#include "point.h" + +namespace qmapcontrol +{ + //! Draws a circle into the map + /*! This is a conveniece class for Point. + * It configures the pixmap of a Point to draw a circle. + * A QPen could be used to change the color or line-width of the circle + * + * @author Kai Winter + */ + class QMAPCONTROL_EXPORT CirclePoint : public Point + { + public: + //! + /*! + * + * @param x longitude + * @param y latitude + * @param name name of the circle point + * @param alignment alignment (Middle or TopLeft) + * @param pen QPen for drawing + */ + CirclePoint(qreal x, qreal y, QString name = QString(), Alignment alignment = Middle, QPen* pen=0); + + //! + /*! + * + * @param x longitude + * @param y latitude + * @param radius the radius of the circle + * @param name name of the circle point + * @param alignment alignment (Middle or TopLeft) + * @param pen QPen for drawing + */ + CirclePoint(qreal x, qreal y, int radius = 10, QString name = QString(), Alignment alignment = Middle, QPen* pen=0); + virtual ~CirclePoint(); + + //! sets the QPen which is used for drawing the circle + /*! + * A QPen can be used to modify the look of the drawn circle + * @param pen the QPen which should be used for drawing + * @see http://doc.trolltech.com/4.3/qpen.html + */ + virtual void setPen(QPen* pen); + + private: + void drawCircle(); + }; +} +#endif diff --git a/libs/QMapControl/src/curve.cpp b/libs/QMapControl/src/curve.cpp new file mode 100644 index 00000000..41453182 --- /dev/null +++ b/libs/QMapControl/src/curve.cpp @@ -0,0 +1,41 @@ +/* +* +* This file is part of QMapControl, +* an open-source cross-platform map widget +* +* Copyright (C) 2007 - 2008 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 . +* +* Contact e-mail: kaiwinter@gmx.de +* Program URL : http://qmapcontrol.sourceforge.net/ +* +*/ + +#include "curve.h" +namespace qmapcontrol +{ + Curve::Curve(QString name) + : Geometry(name) + { + } + + + Curve::~Curve() + { + } +} +// Geometry Curve::Clone(){} + +// QRectF Curve::GetBoundingBox(){} diff --git a/libs/QMapControl/src/curve.h b/libs/QMapControl/src/curve.h new file mode 100644 index 00000000..bef464a0 --- /dev/null +++ b/libs/QMapControl/src/curve.h @@ -0,0 +1,66 @@ +/* +* +* This file is part of QMapControl, +* an open-source cross-platform map widget +* +* Copyright (C) 2007 - 2008 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 . +* +* Contact e-mail: kaiwinter@gmx.de +* Program URL : http://qmapcontrol.sourceforge.net/ +* +*/ + +#ifndef CURVE_H +#define CURVE_H + +#include "qmapcontrol_global.h" +#include "geometry.h" +#include "point.h" + +namespace qmapcontrol +{ + //! A Curve Geometry, implemented to fullfil OGC Spec + /*! + * The Curve class is used by LineString as parent class. + * This class could not be used directly. + * + * From the OGC Candidate Implementation Specification: + * "A Curve is a 1-dimensional geometric object usually stored as a sequence of Points, with the subtype of Curve + * specifying the form of the interpolation between Points. This specification defines only one subclass of Curve, + * LineString, which uses a linear interpolation between Points." + * @author Kai Winter + */ + class QMAPCONTROL_EXPORT Curve : public Geometry + { + Q_OBJECT + public: + virtual ~Curve(); + + double Length; + + // virtual Geometry Clone(); + // virtual QRectF GetBoundingBox(); + + // virtual Point EndPoint() = 0; + // virtual Point StartPoint() = 0; + // virtual Point Value() = 0; + + protected: + Curve(QString name = QString()); + virtual void draw(QPainter* painter, const MapAdapter* mapadapter, const QRect &screensize, const QPoint offset) = 0; + }; +} +#endif diff --git a/libs/QMapControl/src/emptymapadapter.cpp b/libs/QMapControl/src/emptymapadapter.cpp new file mode 100644 index 00000000..849eef4e --- /dev/null +++ b/libs/QMapControl/src/emptymapadapter.cpp @@ -0,0 +1,125 @@ +/* +* +* This file is part of QMapControl, +* an open-source cross-platform map widget +* +* Copyright (C) 2007 - 2008 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 . +* +* Contact e-mail: kaiwinter@gmx.de +* Program URL : http://qmapcontrol.sourceforge.net/ +* +*/ + +#include "emptymapadapter.h" +namespace qmapcontrol +{ + EmptyMapAdapter::EmptyMapAdapter(int tileSize, int minZoom, int maxZoom) + :MapAdapter("", "", 256, minZoom, maxZoom) + { + Q_UNUSED(tileSize) + PI = acos(-1.0); + + mNumberOfTiles = tilesonzoomlevel(minZoom); + } + + EmptyMapAdapter::~EmptyMapAdapter() + { + } + + void EmptyMapAdapter::zoom_in() + { + if (mCurrent_zoom < mMax_zoom) + { + mCurrent_zoom = mCurrent_zoom + 1; + } + mNumberOfTiles = tilesonzoomlevel(mCurrent_zoom); + } + + void EmptyMapAdapter::zoom_out() + { + if (mCurrent_zoom > mMin_zoom) + { + mCurrent_zoom = mCurrent_zoom - 1; + } + mNumberOfTiles = tilesonzoomlevel(mCurrent_zoom); + } + + qreal EmptyMapAdapter::deg_rad(qreal x) const + { + return x * (PI/180.0); + } + + qreal EmptyMapAdapter::rad_deg(qreal x) const + { + return x * (180/PI); + } + + QString EmptyMapAdapter::query(int x, int y, int z) const + { + Q_UNUSED(x) + Q_UNUSED(y) + Q_UNUSED(z) + return QString(); + } + + QPoint EmptyMapAdapter::coordinateToDisplay(const QPointF& coordinate) const + { + qreal x = (coordinate.x()+180) * (mNumberOfTiles*mTileSize)/360.; // coord to pixel! + qreal y = (1-(log(tan(PI/4+deg_rad(coordinate.y())/2)) /PI)) /2 * (mNumberOfTiles*mTileSize); + + return QPoint(int(x), int(y)); + } + + QPointF EmptyMapAdapter::displayToCoordinate(const QPoint& point) const + { + qreal longitude = (point.x()*(360/(mNumberOfTiles*mTileSize)))-180; + qreal latitude = rad_deg(atan(sinh((1-point.y()*(2/(mNumberOfTiles*mTileSize)))*PI))); + + return QPointF(longitude, latitude); + + } + + bool EmptyMapAdapter::isTileValid(int x, int y, int z) const + { + if (mMax_zoom < mMin_zoom) + { + z= mMin_zoom - z; + } + + bool result = true; + if (x<0 || x>pow(2.0,z)-1 || + y<0 || y>pow(2.0,z)-1) + { + result = false; + } + return result; + } + + int EmptyMapAdapter::tilesonzoomlevel(int zoomlevel) const + { + return int(pow(2.0, zoomlevel)); + } + + int EmptyMapAdapter::xoffset(int x) const + { + return x; + } + + int EmptyMapAdapter::yoffset(int y) const + { + return y; + } +} diff --git a/libs/QMapControl/src/emptymapadapter.h b/libs/QMapControl/src/emptymapadapter.h new file mode 100644 index 00000000..6b677ebc --- /dev/null +++ b/libs/QMapControl/src/emptymapadapter.h @@ -0,0 +1,74 @@ +/* +* +* This file is part of QMapControl, +* an open-source cross-platform map widget +* +* Copyright (C) 2007 - 2008 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 . +* +* Contact e-mail: kaiwinter@gmx.de +* Program URL : http://qmapcontrol.sourceforge.net/ +* +*/ + +#ifndef EMPTYMAPADAPTER_H +#define EMPTYMAPADAPTER_H + +#include "qmapcontrol_global.h" +#include "mapadapter.h" + +namespace qmapcontrol +{ + //! MapAdapter which do not load map tiles. + /*! + * The EmptyMapAdapter can be used if QMapControl should not load any map tiles. This is useful if you + * only want to display an image through a FixedImageOverlay e.g. + * @author Kai Winter + */ + class QMAPCONTROL_EXPORT EmptyMapAdapter : public MapAdapter + { + Q_OBJECT + public: + //! Constructor. + /*! + * @param tileSize This parameter seems unnecessary for this type of MapAdaper on first sight. But since + * this parameter defines the size of the offscreen image it could be used for a little performance + * tuning (larger offscreen-images have to be redrawed less times). + * @param minZoom the minimum zoom level + * @param maxZoom the maximum zoom level + */ + EmptyMapAdapter(int tileSize = 256, int minZoom = 0, int maxZoom = 17); + + virtual ~EmptyMapAdapter(); + + virtual QPoint coordinateToDisplay(const QPointF&) const; + virtual QPointF displayToCoordinate(const QPoint&) const; + + qreal PI; + + protected: + qreal rad_deg(qreal) const; + qreal deg_rad(qreal) const; + + virtual bool isTileValid(int x, int y, int z) const; + virtual void zoom_in(); + virtual void zoom_out(); + virtual QString query(int x, int y, int z) const; + virtual int tilesonzoomlevel(int zoomlevel) const; + virtual int xoffset(int x) const; + virtual int yoffset(int y) const; + }; +} +#endif diff --git a/libs/QMapControl/src/fixedimageoverlay.cpp b/libs/QMapControl/src/fixedimageoverlay.cpp new file mode 100644 index 00000000..2af7d25a --- /dev/null +++ b/libs/QMapControl/src/fixedimageoverlay.cpp @@ -0,0 +1,66 @@ +/* +* +* 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 . +* +* 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 = 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 &, const QPoint) + { + if (!visible) + return; + + 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() + { + } +} diff --git a/libs/QMapControl/src/fixedimageoverlay.h b/libs/QMapControl/src/fixedimageoverlay.h new file mode 100644 index 00000000..8b10d206 --- /dev/null +++ b/libs/QMapControl/src/fixedimageoverlay.h @@ -0,0 +1,81 @@ +/* +* +* 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 . +* +* Contact e-mail: kaiwinter@gmx.de +* Program URL : http://qmapcontrol.sourceforge.net/ +* +*/ + +#ifndef FIXEDIMAGEOVERLAY_H +#define FIXEDIMAGEOVERLAY_H + +#include "qmapcontrol_global.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 + */ + class QMAPCONTROL_EXPORT 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 diff --git a/libs/QMapControl/src/geometry.cpp b/libs/QMapControl/src/geometry.cpp new file mode 100644 index 00000000..0f59258a --- /dev/null +++ b/libs/QMapControl/src/geometry.cpp @@ -0,0 +1,87 @@ +/* +* +* This file is part of QMapControl, +* an open-source cross-platform map widget +* +* Copyright (C) 2007 - 2008 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 . +* +* Contact e-mail: kaiwinter@gmx.de +* Program URL : http://qmapcontrol.sourceforge.net/ +* +*/ + +#include "geometry.h" +namespace qmapcontrol +{ + Geometry::Geometry(QString name) + : GeometryType("Geometry"), myparentGeometry(0), mypen(0), visible(true), myname(name) + { + } + + Geometry::~Geometry() + { + } + + QString Geometry::name() const + { + return myname; + } + Geometry* Geometry::parentGeometry() const + { + return myparentGeometry; + } + void Geometry::setParentGeometry(Geometry* geom) + { + myparentGeometry = geom; + } + bool Geometry::hasPoints() const + { + return false; + } + bool Geometry::hasClickedPoints() const + { + return false; + } + + QList& Geometry::clickedPoints() + { + return touchedPoints; + } + + bool Geometry::isVisible() const + { + return visible; + } + void Geometry::setVisible(bool visible) + { + this->visible = visible; + emit(updateRequest(boundingBox())); + } + + void Geometry::setName(QString name) + { + myname = name; + } + + void Geometry::setPen(QPen* pen) + { + mypen = pen; + } + QPen* Geometry::pen() const + { + return mypen; + } +} diff --git a/libs/QMapControl/src/geometry.h b/libs/QMapControl/src/geometry.h new file mode 100644 index 00000000..f635c527 --- /dev/null +++ b/libs/QMapControl/src/geometry.h @@ -0,0 +1,157 @@ +/* +* +* This file is part of QMapControl, +* an open-source cross-platform map widget +* +* Copyright (C) 2007 - 2008 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 . +* +* Contact e-mail: kaiwinter@gmx.de +* Program URL : http://qmapcontrol.sourceforge.net/ +* +*/ + +#ifndef GEOMETRY_H +#define GEOMETRY_H + +#include "qmapcontrol_global.h" +#include +#include +#include +#include "mapadapter.h" + +namespace qmapcontrol +{ + class Point; + //! Main class for objects that should be painted in maps + /*! + * Geometry is the root class of the hierarchy. Geometry is an abstract (non-instantiable) class. + * + * This class and the derived classes Point, Curve and LineString are leant on the Simple + * Feature Specification of the Open Geospatial Consortium. + * @see www.opengeospatial.com + * + * @author Kai Winter + */ + class QMAPCONTROL_EXPORT Geometry : public QObject + { + friend class LineString; + Q_OBJECT + public: + explicit Geometry(QString name = QString()); + virtual ~Geometry(); + + QString GeometryType; + + //! + /*! returns true if the given Geometry is equal to this Geometry + * not implemented yet! + * @param geom The Geometry to be tested + * @return true if the given Geometry is equal to this + */ + bool Equals(Geometry* geom); + + //! returns a String representation of this Geometry + /*! + * not implemented yet! + * @return a String representation of this Geometry + */ + QString toString(); + + //! returns the name of this Geometry + /*! + * @return the name of this Geometry + */ + QString name() const; + + //! returns the parent Geometry of this Geometry + /*! + * A LineString is a composition of many Points. This methods returns the parent (the LineString) of a Point + * @return the parent Geometry of this Geometry + */ + Geometry* parentGeometry() const; + + //! returns true if this Geometry is visible + /*! + * @return true if this Geometry is visible + */ + bool isVisible() const; + + //! sets the name of the geometry + /*! + * @param name the new name of the geometry + */ + void setName(QString name); + + //! returns the QPen which is used on drawing + /*! + * The pen is set depending on the Geometry. A CirclePoint for example takes one with the constructor. + * @return the QPen which is used for drawing + */ + QPen* pen() const; + + //! returns the BoundingBox + /*! + * The bounding box in world coordinates + * @return the BoundingBox + */ + virtual QRectF boundingBox()=0; + virtual bool Touches(Point* geom, const MapAdapter* mapadapter)=0; + virtual void draw(QPainter* painter, const MapAdapter* mapadapter, const QRect &viewport, const QPoint offset)=0; + virtual bool hasPoints() const; + virtual bool hasClickedPoints() const; + virtual void setPen(QPen* pen); + virtual QList& clickedPoints(); + virtual QList points()=0; + + private: + Q_DISABLE_COPY( Geometry ) + + Geometry* myparentGeometry; + QList touchedPoints; + + protected: + QPen* mypen; + bool visible; + QString myname; + void setParentGeometry(Geometry* geom); + + signals: + void updateRequest(Geometry* geom); + void updateRequest(QRectF rect); + //! This signal is emitted when a Geometry is clicked + /*! + * A Geometry is clickable, if the containing layer is clickable. + * The objects emits a signal if it gets clicked + * @param geometry The clicked Geometry + * @param point -unused- + */ + void geometryClicked(Geometry* geometry, QPoint point); + + //! A Geometry emits this signal, when its position gets changed + /*! + * @param geom the Geometry + */ + void positionChanged(Geometry* geom); + + public slots: + //! if visible is true, the layer is made visible + /*! + * @param visible if the layer should be visible + */ + virtual void setVisible(bool visible); + }; +} +#endif diff --git a/libs/QMapControl/src/geometrylayer.cpp b/libs/QMapControl/src/geometrylayer.cpp new file mode 100644 index 00000000..2d0f748a --- /dev/null +++ b/libs/QMapControl/src/geometrylayer.cpp @@ -0,0 +1,38 @@ +/* +* +* This file is part of QMapControl, +* an open-source cross-platform map widget +* +* Copyright (C) 2007 - 2008 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 . +* +* Contact e-mail: kaiwinter@gmx.de +* Program URL : http://qmapcontrol.sourceforge.net/ +* +*/ + +#include "geometrylayer.h" +namespace qmapcontrol +{ + GeometryLayer::GeometryLayer(QString layername, MapAdapter* mapadapter, bool takeevents) + : Layer(layername, mapadapter, Layer::GeometryLayer, takeevents) + { + } + + + GeometryLayer::~GeometryLayer() + { + } +} diff --git a/libs/QMapControl/src/geometrylayer.h b/libs/QMapControl/src/geometrylayer.h new file mode 100644 index 00000000..f35fc0fb --- /dev/null +++ b/libs/QMapControl/src/geometrylayer.h @@ -0,0 +1,66 @@ +/* +* +* This file is part of QMapControl, +* an open-source cross-platform map widget +* +* Copyright (C) 2007 - 2008 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 . +* +* Contact e-mail: kaiwinter@gmx.de +* Program URL : http://qmapcontrol.sourceforge.net/ +* +*/ + +#ifndef GEOMETRYLAYER_H +#define GEOMETRYLAYER_H + +#include "qmapcontrol_global.h" +#include "layer.h" + +namespace qmapcontrol +{ + //! GeometryLayer class + /*! + * There are two different layer types: + * - MapLayer: Displays Maps, but also Geometries. The configuration for displaying maps have to be done in the MapAdapter + * - GeometryLayer: Only displays Geometry objects. + * + * MapLayers also can display Geometry objects. The difference to the GeometryLayer is the repainting. Objects that are + * added to a MapLayer are "baken" on the map. This means, when you change it´s position for example the changes are + * not visible until a new offscreen image has been drawn. If you have "static" Geometries which won´t change their + * position this is fine. But if you want to change the objects position or pen you should use a GeometryLayer. Those + * are repainted immediately on changes. + * + * @author Kai Winter + */ + class QMAPCONTROL_EXPORT GeometryLayer : public Layer + { + Q_OBJECT + + public: + //! GeometryLayer constructor + /*! + * This is used to construct a map layer. + * + * @param layername The name of the Layer + * @param mapadapter The MapAdapter which does coordinate translation and Query-String-Forming + * @param takeevents Should the Layer receive MouseEvents? This is set to true by default. Setting it to false could + * be something like a "speed up hint" + */ + GeometryLayer(QString layername, MapAdapter* mapadapter, bool takeevents=true); + virtual ~GeometryLayer(); + }; +} +#endif diff --git a/libs/QMapControl/src/googleapimapadapter.cpp b/libs/QMapControl/src/googleapimapadapter.cpp new file mode 100644 index 00000000..59ae1782 --- /dev/null +++ b/libs/QMapControl/src/googleapimapadapter.cpp @@ -0,0 +1,266 @@ +/* +* +* This file is part of QMapControl, +* an open-source cross-platform map widget +* +* Copyright (C) 2007 - 2008 Kai Winter +* Copyright (C) 2014 Mattes Jaehne +* +* 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 . +* +* original software by Kai Winter +* Contact e-mail: kaiwinter@gmx.de +* Program URL : http://qmapcontrol.sourceforge.net/ +* +* modified to use Google Static Maps API V2 by +* Mattes Jaehne +* for +* NGOS - The Next Generation multicopter OS +* http://ng.uavp.ch +* +*/ + +#include "googleapimapadapter.h" +#include + +#define _USE_MATH_DEFINES +#include + +namespace qmapcontrol +{ + googleApiMapadapter::googleApiMapadapter(layerType qMapType, apiType qApiType, QString qApiKey, QString qApiClientID, QString qServerAddress) + : TileMapAdapter(qServerAddress, "/maps/api/staticmap?", 256, 1, 22), + mApiKey(qApiKey), + mApiClientID(qApiClientID), + mApiType( qApiType ) + { + mMapLayerType = typeToString(qMapType); + mNumberOfTiles = pow(2., mCurrent_zoom + 0.0); + mCoord_per_x_tile = 360. / mNumberOfTiles; + mCoord_per_y_tile = 180. / mNumberOfTiles; + + bool usingBusinessAPI = (mApiType == GoogleMapsForBusinessesAPI); + + if ( !mApiKey.isEmpty() && !usingBusinessAPI ) + { + mApiKey.prepend("&key="); + } + + if ( !mApiClientID.isEmpty() && usingBusinessAPI ) + { + mApiClientID.prepend("&client="); + } + + if ( !mMapLayerType.isEmpty() ) + { + mMapLayerType.prepend("&maptype="); + } + } + + googleApiMapadapter::~googleApiMapadapter() + { + } + + QString googleApiMapadapter::getHost() const + { + return QString("maps.googleapis.com"); + } + + QPoint googleApiMapadapter::coordinateToDisplay(const QPointF& coordinate) const + { + qreal x = (coordinate.x() + 180.) * (mNumberOfTiles * mTileSize) / 360.; // coord to pixel! + qreal y = (1. - log(tan(coordinate.y() * PI / 180.) + 1. / cos(coordinate.y() * PI / 180.)) / PI) / 2. * (mNumberOfTiles*mTileSize); + x += mTileSize / 2; + y += mTileSize / 2; + + return QPoint(int(x), int(y)); + } + + QPointF googleApiMapadapter::displayToCoordinate(const QPoint& point) const + { + qreal lon = (point.x() - mTileSize / 2) / (mNumberOfTiles * mTileSize) * 360. - 180.; + qreal lat = PI - 2. * PI * (point.y() - mTileSize / 2) / (mNumberOfTiles * mTileSize); + lat = 180. / PI * atan(0.5 * (exp(lat) - exp(-lat))); + + return QPointF(lon, lat); + } + + qreal googleApiMapadapter::getMercatorLatitude(qreal YCoord) const + { + if (YCoord > PI) return 9999.; + if (YCoord < -PI) return -9999.; + + qreal t = atan(exp(YCoord)); + qreal res = (2. * t) - (PI / 2.); + + return res; + } + + qreal googleApiMapadapter::getMercatorYCoord(qreal lati) const + { + qreal phi = PI * lati / 180.; + qreal res = 0.5 * log((1. + sin(phi)) / (1. - sin(phi))); + + return res; + } + + void googleApiMapadapter::zoom_in() + { + if (mCurrent_zoom >= maxZoom()) + return; + + mCurrent_zoom += 1; + mNumberOfTiles = pow(2, mCurrent_zoom + 0.0); + mCoord_per_x_tile = 360. / mNumberOfTiles; + mCoord_per_y_tile = 180. / mNumberOfTiles; + } + + void googleApiMapadapter::zoom_out() + { + if (mCurrent_zoom <= minZoom()) + return; + + mCurrent_zoom -= 1; + mNumberOfTiles = pow(2, mCurrent_zoom + 0.0); + mCoord_per_x_tile = 360. / mNumberOfTiles; + mCoord_per_y_tile = 180. / mNumberOfTiles; + } + + bool googleApiMapadapter::isValid(int x, int y, int z) const + { + if ((x >= 0 && x < mNumberOfTiles) && (y >= 0 && y < mNumberOfTiles) && z >= 0) + return true; + + return false; + } + + QString googleApiMapadapter::typeToString(layerType qLayerType) + { + switch (qLayerType) + { + case layerType_SATELLITE: return "satellite"; + case layerType_HYBRID: return "hybrid"; + case layerType_TERRAIN: return "terrain"; + case layerType_ROADMAP: + default: + return "roadmap"; + } + } + + QString googleApiMapadapter::query(int i, int j, int z) const + { + qreal longi = ((i * mTileSize) - (mTileSize * pow(2.0, z - 1))) / ((mTileSize * pow(2.0, z)) / 360.); + qreal latit = PI - 2. * PI * j / pow(2., z); + latit = 180. / PI * atan(0.5 * (exp(latit) - exp(-latit))); + + return getQ(longi, latit, z); + } + + QString googleApiMapadapter::getQ(qreal longitude, qreal latitude, int zoom) const + { + QString location = "/maps/api/staticmap?&sensor=false¢er="; + location.append(QVariant(latitude).toString()); + location.append(","); + location.append(QVariant(longitude).toString()); + location.append("&zoom="); + location.append(QString::number(zoom)); + location.append("&size=" + QString::number(mTileSize) + "x" + QString::number(mTileSize) + "&scale=1"); + + if (! mMapLayerType.isEmpty()) + { + location.append(mMapLayerType); + } + + if ( mApiType == GoogleMapsAPI ) + { + if (mApiClientID.isEmpty()) + { + fprintf(stderr, "You are using Google Maps API without a (valid) key. This is against \"Terms of use\" of Google Maps\r\n"); + } + else + { + location.append(mApiClientID); + } + } + else if ( mApiType == GoogleMapsForBusinessesAPI ) + { + if (mApiClientID.isEmpty()) + { + fprintf(stderr, "You are using Google Maps API without a (valid) key. This is against \"Terms of use\" of Google Maps\r\n"); + } + else + { + // Google maps for business requires we sign every URL request against our apiKey + + //Example as taken from https://developers.google.com/maps/documentation/business/webservices/auth#digital_signatures + // + // URL: https://maps.googleapis.com/maps/api/geocode/json?address=New+York&client=clientID + // Private Key: vNIXE0xscrmjlyV-12Nj_BvUPaw= + // URL Portion to Sign: /maps/api/geocode/json?address=New+York&client=clientID + // Signature: chaRF2hTJKOScPr-RQCEhZbSzIE= + QString urlSignature = "&signature="; + QString computedHash = signURL( location, mApiKey ); + urlSignature.append( computedHash ); + location.append( urlSignature ); + } + } + + return location; + } + + QString googleApiMapadapter::signURL(const QString &qURL, const QString &qCryptoKey) const + { + // Convert the key from 'web safe' base 64 to binary + QString usablePrivateKey = qCryptoKey; + usablePrivateKey.replace("-", "+"); + usablePrivateKey.replace("_", "/"); + QByteArray privateKeyBytes; + privateKeyBytes.append(qPrintable(usablePrivateKey)); + + QCryptographicHash hash(QCryptographicHash::Sha1); + hash.addData(qPrintable(qURL)); + + QString rawSignature = hash.hash(privateKeyBytes, QCryptographicHash::Sha1); + + // convert the bytes to string and make url-safe by replacing '+' and '/' characters + QByteArray base64signature; + base64signature.append(rawSignature.toUtf8()); + + // base 64 encode the binary signature + QString result = base64signature.toBase64(); + + // convert the signature to 'web safe' base 64 + result.replace("+", "-"); + result.replace("/", "_"); + + return result; + } + + void googleApiMapadapter::setKey(QString qApiKey) + { + if (qApiKey.isEmpty()) + return; + + mApiKey.clear(); + mApiKey.append("&key="); + mApiKey.append(qApiKey); + } + + void googleApiMapadapter::setMapLayerType(layerType qMapType) + { + mMapLayerType.clear(); + mMapLayerType.append("&maptype="); + mMapLayerType.append(typeToString(qMapType)); + } +} diff --git a/libs/QMapControl/src/googleapimapadapter.h b/libs/QMapControl/src/googleapimapadapter.h new file mode 100644 index 00000000..65e07c5b --- /dev/null +++ b/libs/QMapControl/src/googleapimapadapter.h @@ -0,0 +1,96 @@ +/* +* +* This file is part of QMapControl, +* an open-source cross-platform map widget +* +* Copyright (C) 2007 - 2008 Kai Winter +* Copyright (C) 2014 Mattes Jaehne +* +* 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 . +* +* original software by Kai Winter +* Contact e-mail: kaiwinter@gmx.de +* Program URL : http://qmapcontrol.sourceforge.net/ +* +* modified to use Google Static Maps API V2 by +* Mattes Jaehne +* for +* NGOS - The Next Generation multicopter OS +* http://ng.uavp.ch +* +*/ + + +#ifndef GOOGLEAPIMAPADAPTER_H +#define GOOGLEAPIMAPADAPTER_H + +#include "qmapcontrol_global.h" +#include "tilemapadapter.h" + +namespace qmapcontrol +{ + class QMAPCONTROL_EXPORT googleApiMapadapter : public TileMapAdapter + { + Q_OBJECT + public: + + enum layerType + { + layerType_ROADMAP = 0, //displays the default road map view. This is the default map type. + layerType_SATELLITE , //displays Google Earth satellite images + layerType_HYBRID , //displays a mixture of normal and satellite views + layerType_TERRAIN //displays a physical map based on terrain information + }; + + enum apiType + { + GoogleMapsAPI = 0, + GoogleMapsForBusinessesAPI + }; + + googleApiMapadapter(layerType qMapType = layerType_ROADMAP, apiType qApiType = GoogleMapsAPI, QString qApiKey = "", QString qApiClientID = "", QString qServerAddress = "maps.googleapis.com"); + virtual ~googleApiMapadapter(); + + virtual QPoint coordinateToDisplay(const QPointF&) const; + virtual QPointF displayToCoordinate(const QPoint&) const; + + QString getHost() const; + void setKey(QString apiKey); + void setMapLayerType(layerType qMapType = layerType_ROADMAP); + + protected: + virtual void zoom_in(); + virtual void zoom_out(); + virtual QString query(int x, int y, int z) const; + virtual bool isValid(int x, int y, int z) const; + + virtual QString signURL( const QString& qURL, const QString& qCryptoKey ) const; + + private: + QString typeToString( layerType qLayerType ); + virtual QString getQ(qreal longitude, qreal latitude, int zoom) const; + qreal getMercatorLatitude(qreal YCoord) const; + qreal getMercatorYCoord(qreal lati) const; + + qreal mCoord_per_x_tile; + qreal mCoord_per_y_tile; + + QString mApiKey; + QString mApiClientID; + apiType mApiType; + QString mMapLayerType; + }; +} + +#endif // GOOGLEAPIMAPADAPTER_H diff --git a/libs/QMapControl/src/googlemapadapter.cpp b/libs/QMapControl/src/googlemapadapter.cpp new file mode 100644 index 00000000..a15caf27 --- /dev/null +++ b/libs/QMapControl/src/googlemapadapter.cpp @@ -0,0 +1,52 @@ +/* +* +* This file is part of QMapControl, +* an open-source cross-platform map widget +* +* Copyright (C) 2007 - 2008 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 . +* +* Contact e-mail: kaiwinter@gmx.de +* Program URL : http://qmapcontrol.sourceforge.net/ +* +*/ + +#include "googlemapadapter.h" +namespace qmapcontrol +{ + GoogleMapAdapter::GoogleMapAdapter( googleLayerType qLayerType ) + : TileMapAdapter("mt1.google.com", "/vt/v=ap.106&hl=en&x=%2&y=%3&zoom=%1&lyrs=" + typeToString(qLayerType), 256, 17, 0) + //: TileMapAdapter("tile.openstreetmap.org", "/%1/%2/%3.png", 256, 0, 17) + { + QString layerType = typeToString( qLayerType ); + } + + GoogleMapAdapter::~GoogleMapAdapter() + { + } + + QString GoogleMapAdapter::typeToString( googleLayerType qLayerType ) + { + switch (qLayerType) + { + case satellite: return "s"; + case terrain: return "t"; + case hybrid: return "h"; + case roadmap: + default: + return "m"; + } + } +} diff --git a/libs/QMapControl/src/googlemapadapter.h b/libs/QMapControl/src/googlemapadapter.h new file mode 100644 index 00000000..d74aa3e3 --- /dev/null +++ b/libs/QMapControl/src/googlemapadapter.h @@ -0,0 +1,61 @@ +/* +* +* This file is part of QMapControl, +* an open-source cross-platform map widget +* +* Copyright (C) 2007 - 2008 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 . +* +* Contact e-mail: kaiwinter@gmx.de +* Program URL : http://qmapcontrol.sourceforge.net/ +* +*/ + +#ifndef GOOGLEMAPADAPTER_H +#define GOOGLEMAPADAPTER_H + +#include "qmapcontrol_global.h" +#include "tilemapadapter.h" + +namespace qmapcontrol +{ + //! MapAdapter for Google + /*! + * This is a conveniece class, which extends and configures a TileMapAdapter + * @author Kai Winter + */ + class QMAPCONTROL_EXPORT GoogleMapAdapter : public TileMapAdapter + { + Q_OBJECT + + public: + enum googleLayerType + { + roadmap = 0, + satellite, + terrain, + hybrid + }; + //! constructor + /*! + * This construct a Google Adapter + */ + GoogleMapAdapter( googleLayerType qLayerType = roadmap ); + virtual ~GoogleMapAdapter(); + private: + QString typeToString( googleLayerType qLayerType ); + }; +} +#endif diff --git a/libs/QMapControl/src/gps_position.cpp b/libs/QMapControl/src/gps_position.cpp new file mode 100644 index 00000000..fd3d6194 --- /dev/null +++ b/libs/QMapControl/src/gps_position.cpp @@ -0,0 +1,33 @@ +/* +* +* This file is part of QMapControl, +* an open-source cross-platform map widget +* +* Copyright (C) 2007 - 2008 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 . +* +* Contact e-mail: kaiwinter@gmx.de +* Program URL : http://qmapcontrol.sourceforge.net/ +* +*/ + +#include "gps_position.h" +namespace qmapcontrol +{ + GPS_Position::GPS_Position(float time, float longitude, QString longitude_dir, float latitude, QString latitude_dir) + :time(time), longitude(longitude), latitude(latitude), longitude_dir(longitude_dir), latitude_dir(latitude_dir) + { + } +} diff --git a/libs/QMapControl/src/gps_position.h b/libs/QMapControl/src/gps_position.h new file mode 100644 index 00000000..21614c92 --- /dev/null +++ b/libs/QMapControl/src/gps_position.h @@ -0,0 +1,53 @@ +/* +* +* This file is part of QMapControl, +* an open-source cross-platform map widget +* +* Copyright (C) 2007 - 2008 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 . +* +* Contact e-mail: kaiwinter@gmx.de +* Program URL : http://qmapcontrol.sourceforge.net/ +* +*/ + +#ifndef GPS_POSITION_H +#define GPS_POSITION_H + +#include "qmapcontrol_global.h" +#include + +namespace qmapcontrol +{ + //! Represents a coordinate from a GPS receiver + /*! + * This class is used to represent a coordinate which has been parsed from a NMEA string. + * This is not fully integrated in the API. An example which uses this data type can be found under Samples. + * @author Kai Winter + */ + class QMAPCONTROL_EXPORT GPS_Position + { + public: + GPS_Position(float time, float longitude, QString longitude_dir, float latitude, QString latitude_dir); + float time; /*!< time of the string*/ + float longitude; /*!< longitude coordinate*/ + float latitude; /*!< latitude coordinate*/ + + private: + QString longitude_dir; + QString latitude_dir; + }; +} +#endif diff --git a/libs/QMapControl/src/imagemanager.cpp b/libs/QMapControl/src/imagemanager.cpp new file mode 100644 index 00000000..9e142e6e --- /dev/null +++ b/libs/QMapControl/src/imagemanager.cpp @@ -0,0 +1,183 @@ +/* +* +* This file is part of QMapControl, +* an open-source cross-platform map widget +* +* Copyright (C) 2007 - 2008 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 . +* +* Contact e-mail: kaiwinter@gmx.de +* Program URL : http://qmapcontrol.sourceforge.net/ +* +*/ + +#include "imagemanager.h" +#include "mapnetwork.h" +#include +#include +#include + +static const int kDefaultTimeoutDelaySecs = 30; +static const int kDefaultPixmapCacheSizeKB = 20000; + +namespace qmapcontrol +{ + ImageManager::ImageManager(QObject* parent) + : QObject(parent), + emptyPixmap(QPixmap(1,1)), + loadingPixmap(QPixmap(256,256)), + net(new MapNetwork(this)), + diskCache( new QNetworkDiskCache(this)) + { + emptyPixmap.fill(Qt::transparent); + + //initialize loading image + loadingPixmap.fill( Qt::transparent ); + QPainter paint(&loadingPixmap); + QBrush brush( Qt::lightGray, Qt::Dense5Pattern ); + paint.fillRect(loadingPixmap.rect(), brush ); + paint.end(); + + if (QPixmapCache::cacheLimit() <= kDefaultPixmapCacheSizeKB) + { + QPixmapCache::setCacheLimit(kDefaultPixmapCacheSizeKB); + } + } + + ImageManager::~ImageManager() + { + delete net; + net = 0; + } + + QPixmap ImageManager::getImage(const QString& host, const QString& url) + { + //qDebug() << "ImageManager::getImage"; + QPixmap pm; + + if ( net->imageIsLoading(url) ) + { + //currently loading an image + return loadingPixmap; + } + else if ( QPixmapCache::find(url, &pm) ) + { + //image found in cache, use this version + return pm; + } + //is image cached (memory) + else if ( QPixmapCache::find(url, &pm) && + !pm.isNull() ) + { + //we had a valid copy cached in memory (not disk) so return this + return pm; + } + else if ( failedFetches.contains(url) && + failedFetches[url].secsTo(QDateTime::currentDateTime()) < kDefaultTimeoutDelaySecs ) + { + //prevents spamming public servers when requests fail to return an image or server returns error code (busy/ivalid useragent etc) + qDebug() << "Ignored: " << url << " - last request failed less than 30 seconds ago"; + } + else + { + //load from net, add empty image + net->loadImage(host, url); + } + return emptyPixmap; + } + + QPixmap ImageManager::prefetchImage(const QString& host, const QString& url) + { + // TODO See if this actually helps on the N900 & Symbian Phones + #if defined Q_WS_QWS || defined Q_WS_MAEMO_5 || defined Q_WS_S60 + // on mobile devices we don´t want the display refreshing when tiles are received which are + // prefetched... This is a performance issue, because mobile devices are very slow in + // repainting the screen + prefetch.append(url); + #endif + return getImage(host, url); + } + + void ImageManager::receivedImage(const QPixmap pixmap, const QString& url) + { + //qDebug() << "ImageManager::receivedImage"; + QPixmapCache::insert(url, pixmap); + + //remove from failed list (if exists) as it has now come good + if (failedFetches.contains(url)) + { + failedFetches.remove(url); + } + + if (!prefetch.contains(url)) + { + emit imageReceived(); + } + else + { + #if defined Q_WS_QWS || defined Q_WS_MAEMO_5 || defined Q_WS_S60 + prefetch.remove(prefetch.indexOf(url)); + #endif + } + } + + void ImageManager::loadingQueueEmpty() + { + emit loadingFinished(); + } + + void ImageManager::abortLoading() + { + net->abortLoading(); + } + + void ImageManager::setProxy(QString host, int port, const QString username, const QString password) + { + net->setProxy(host, port, username, password); + } + + void ImageManager::setCacheDir(const QDir& path, const int qDiskSizeMB) + { + if ( !path.absolutePath().isEmpty() ) + { + QDir cacheDir = path; + if (!cacheDir.exists()) + { + cacheDir.mkpath( cacheDir.absolutePath() ); + } + diskCache->setCacheDirectory( cacheDir.absolutePath() ); + diskCache->setMaximumCacheSize( qDiskSizeMB *1024*1024 ); //Megabytes to bytes + net->setDiskCache(diskCache); + } + else + { + net->setDiskCache(0); + } + } + + int ImageManager::loadQueueSize() const + { + return net->loadQueueSize(); + } + + void qmapcontrol::ImageManager::fetchFailed(const QString &url) + { + qDebug() << "ImageManager::fetchFailed" << url; + + //store current time for this failed image to prevent loading it again until + failedFetches.insert(url, QDateTime::currentDateTime()); + } + +} diff --git a/libs/QMapControl/src/imagemanager.h b/libs/QMapControl/src/imagemanager.h new file mode 100644 index 00000000..8edc04c6 --- /dev/null +++ b/libs/QMapControl/src/imagemanager.h @@ -0,0 +1,123 @@ +/* +* +* This file is part of QMapControl, +* an open-source cross-platform map widget +* +* Copyright (C) 2007 - 2008 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 . +* +* Contact e-mail: kaiwinter@gmx.de +* Program URL : http://qmapcontrol.sourceforge.net/ +* +*/ + +#ifndef IMAGEMANAGER_H +#define IMAGEMANAGER_H + +#include "qmapcontrol_global.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace qmapcontrol +{ + class MapNetwork; + /** + @author Kai Winter + */ + class QMAPCONTROL_EXPORT ImageManager : public QObject + { + Q_OBJECT + + public: + ImageManager(QObject* parent = 0); + virtual ~ImageManager(); + + //! returns a QPixmap of the asked image + /*! + * If this component doesn´t have the image a network query gets started to load it. + * @param host the host of the image + * @param path the path to the image + * @return the pixmap of the asked image + */ + QPixmap getImage(const QString& host, const QString& path); + + QPixmap prefetchImage(const QString& host, const QString& path); + + void receivedImage(const QPixmap pixmap, const QString& url); + void fetchFailed(const QString &url); + + /*! + * This method is called by MapNetwork, after all images in its queue were loaded. + * The ImageManager emits a signal, which is used in MapControl to remove the zoom image. + * The zoom image should be removed on Tile Images with transparency. + * Else the zoom image stay visible behind the newly loaded tiles. + */ + void loadingQueueEmpty(); + + /*! + * Aborts all current loading threads. + * This is useful when changing the zoom-factor, though newly needed images loads faster + */ + void abortLoading(); + + //! 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 + * @param username the proxy´s username + * @param password the proxy´s password + */ + void setProxy(QString host, int port, const QString username = QString(), const QString password = QString()); + + //! sets the cache directory for persistently saving map tiles + /*! + * + * @param path the path where map tiles should be stored + * @param qDiskSizeMB the about of disk space to use for caching. Default is 250MB + */ + void setCacheDir(const QDir& path, const int qDiskSizeMB = 250); + + /*! + * @return Number of images pending in the load queue + */ + int loadQueueSize() const; + + private: + Q_DISABLE_COPY( ImageManager ) + + QPixmap emptyPixmap; + QPixmap loadingPixmap; + + MapNetwork* net; + QNetworkDiskCache* diskCache; + QVector prefetch; + + QHash failedFetches; + + signals: + void imageReceived(); + void loadingFinished(); + }; +} +#endif diff --git a/libs/QMapControl/src/imagepoint.cpp b/libs/QMapControl/src/imagepoint.cpp new file mode 100644 index 00000000..53e1e58b --- /dev/null +++ b/libs/QMapControl/src/imagepoint.cpp @@ -0,0 +1,49 @@ +/* +* +* This file is part of QMapControl, +* an open-source cross-platform map widget +* +* Copyright (C) 2007 - 2008 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 . +* +* Contact e-mail: kaiwinter@gmx.de +* Program URL : http://qmapcontrol.sourceforge.net/ +* +*/ + +#include "imagepoint.h" +namespace qmapcontrol +{ + ImagePoint::ImagePoint(qreal x, qreal y, QString filename, QString name, Alignment alignment) + : Point(x, y, name, alignment) + { + //qDebug() << "loading image: " << filename; + mypixmap = QPixmap(filename); + size = mypixmap.size(); + //qDebug() << "image size: " << size; + } + + ImagePoint::ImagePoint(qreal x, qreal y, QPixmap pixmap, QString name, Alignment alignment) + : Point(x, y, name, alignment) + { + mypixmap = pixmap; + size = mypixmap.size(); + } + + + ImagePoint::~ImagePoint() + { + } +} diff --git a/libs/QMapControl/src/imagepoint.h b/libs/QMapControl/src/imagepoint.h new file mode 100644 index 00000000..a426208d --- /dev/null +++ b/libs/QMapControl/src/imagepoint.h @@ -0,0 +1,71 @@ +/* +* +* This file is part of QMapControl, +* an open-source cross-platform map widget +* +* Copyright (C) 2007 - 2008 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 . +* +* Contact e-mail: kaiwinter@gmx.de +* Program URL : http://qmapcontrol.sourceforge.net/ +* +*/ + +#ifndef IMAGEPOINT_H +#define IMAGEPOINT_H + +#include "qmapcontrol_global.h" +#include "point.h" + +namespace qmapcontrol +{ + + //! Draws an image into the map + /*! This is a convenience class for Point. + * It configures the pixmap of a Point to draw the given image. + * The image will be loaded from the given path and written in the points pixmap. + * + * @author Kai Winter + */ + class QMAPCONTROL_EXPORT ImagePoint : public Point + { + public: + //! Creates a point 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 longitude + * @param y latitude + * @param filename the file which should be loaded and displayed + * @param name the name of the image point + * @param alignment alignment (Middle or TopLeft) + */ + ImagePoint(qreal x, qreal y, QString filename, QString name = QString(), Alignment alignment = Middle); + + //! Creates a point which displays the given image + /*! + * Use this contructor to display the given image. + * You have to load that image yourself, but can use it for multiple points. + * @param x longitude + * @param y latitude + * @param pixmap pointer to the image pixmap + * @param name the name of the image point + * @param alignment alignment (Middle or TopLeft) + */ + ImagePoint(qreal x, qreal y, QPixmap pixmap, QString name = QString(), Alignment alignment = Middle); + virtual ~ImagePoint(); + }; +} +#endif diff --git a/libs/QMapControl/src/invisiblepoint.cpp b/libs/QMapControl/src/invisiblepoint.cpp new file mode 100644 index 00000000..f85d497c --- /dev/null +++ b/libs/QMapControl/src/invisiblepoint.cpp @@ -0,0 +1,52 @@ +/* +* +* This file is part of QMapControl, +* an open-source cross-platform map widget +* +* Copyright (C) 2014 Frederic Bourgeois +* Based on CirclePoint code by 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 . +* +* Contact e-mail: kaiwinter@gmx.de +* Program URL : http://qmapcontrol.sourceforge.net/ +* +*/ + +#include "invisiblepoint.h" +namespace qmapcontrol +{ + InvisiblePoint::InvisiblePoint(qreal x, qreal y, int sideLength, QString name) + : Point(x, y, name, Point::Middle) + { + size = QSize(sideLength, sideLength); + } + + InvisiblePoint::InvisiblePoint(qreal x, qreal y, int width, int height, QString name) + : Point(x, y, name, Point::Middle) + { + size = QSize(width, height); + } + + InvisiblePoint::InvisiblePoint(qreal x, qreal y, QString name) + : Point(x, y, name, Point::Middle) + { + int sideLength = 10; + size = QSize(sideLength, sideLength); + } + + InvisiblePoint::~InvisiblePoint() + { + } +} diff --git a/libs/QMapControl/src/invisiblepoint.h b/libs/QMapControl/src/invisiblepoint.h new file mode 100644 index 00000000..0fb26a10 --- /dev/null +++ b/libs/QMapControl/src/invisiblepoint.h @@ -0,0 +1,77 @@ +/* +* +* This file is part of QMapControl, +* an open-source cross-platform map widget +* +* Copyright (C) 2014 Frederic Bourgeois +* Based on CirclePoint code by 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 . +* +* Contact e-mail: kaiwinter@gmx.de +* Program URL : http://qmapcontrol.sourceforge.net/ +* +*/ + +#ifndef INVISIBLEPOINT_H +#define INVISIBLEPOINT_H + +#include "qmapcontrol_global.h" +#include "point.h" + +namespace qmapcontrol +{ + //! Draws an invisible point into the map + /*! This is a convenience class for point. + * It configures the pixmap of a point to draw nothing, + * still being a clickable point. + * + * @author Frederic Bourgeois + */ + class QMAPCONTROL_EXPORT InvisiblePoint : public Point + { + public: + //! + /*! + * + * @param x longitude + * @param y latitude + * @param name name of the invisible point + */ + InvisiblePoint(qreal x, qreal y, QString name = QString()); + + //! + /*! + * + * @param x longitude + * @param y latitude + * @param width width + * @param height height + * @param name name of the invisible point + */ + InvisiblePoint(qreal x, qreal y, int width = 10, int height = 10, QString name = QString()); + + //! + /*! + * + * @param x longitude + * @param y latitude + * @param sideLength side length of the bounding box (square) + * @param name name of the invisible point + */ + InvisiblePoint(qreal x, qreal y, int sideLength = 10, QString name = QString()); + virtual ~InvisiblePoint(); + }; +} +#endif diff --git a/libs/QMapControl/src/layer.cpp b/libs/QMapControl/src/layer.cpp new file mode 100644 index 00000000..e2de8769 --- /dev/null +++ b/libs/QMapControl/src/layer.cpp @@ -0,0 +1,386 @@ +/* +* +* This file is part of QMapControl, +* an open-source cross-platform map widget +* +* Copyright (C) 2007 - 2008 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 . +* +* Contact e-mail: kaiwinter@gmx.de +* Program URL : http://qmapcontrol.sourceforge.net/ +* +*/ + +#include "layer.h" +namespace qmapcontrol +{ + Layer::Layer() + : visible(true), + mylayertype(MapLayer), + mapAdapter(0), + takeevents(true), + myoffscreenViewport(QRect(0,0,0,0)), + m_ImageManager(0) + { + } + Layer::Layer(QString layername, MapAdapter* mapadapter, enum LayerType layertype, bool takeevents) + : visible(true), + mylayername(layername), + mylayertype(layertype), + mapAdapter(mapadapter), + takeevents(takeevents), + myoffscreenViewport(QRect(0,0,0,0)), + m_ImageManager(0) + { + } + + Layer::~Layer() + { + if( mapAdapter ) + { + mapAdapter->deleteLater(); + mapAdapter = 0; + } + } + + void Layer::setSize(QSize size) + { + this->size = size; + screenmiddle = QPoint(size.width()/2, size.height()/2); + emit(updateRequest()); + } + + QString Layer::layername() const + { + return mylayername; + } + + MapAdapter* Layer::mapadapter() + { + return mapAdapter; + } + + void Layer::setVisible(bool visible) + { + this->visible = visible; + emit(updateRequest()); + } + + QList& Layer::getGeometries() + { + return geometries; + } + + bool Layer::containsGeometry( Geometry* geometry ) + { + return geometry && geometries.contains( geometry ); + } + + void Layer::sendGeometryToFront(Geometry *geometry) + { + if ( !geometry || !geometries.contains( geometry ) ) + { + return; + } + geometries.removeAll(geometry); + geometries.prepend(geometry); + emit(updateRequest()); + } + + void Layer::sendGeometryToBack(Geometry *geometry) + { + if ( !geometry || !geometries.contains( geometry ) ) + { + return; + } + geometries.removeAll(geometry); + geometries.append(geometry); + emit(updateRequest()); + } + + void Layer::addGeometry(Geometry* geom) + { + if ( !geom || containsGeometry( geom ) ) + { + return; + } + + geometries.append(geom); + emit(updateRequest(geom->boundingBox())); + //a geometry can request a redraw, e.g. when its position has been changed + connect(geom, SIGNAL(updateRequest(QRectF)), + this, SIGNAL(updateRequest(QRectF))); + } + + void Layer::removeGeometry(Geometry* geometry, bool qDeleteObject) + { + if ( !geometry ) + { + return; + } + + QRectF boundingBox = geometry->boundingBox(); + + foreach( Geometry* geo, geometries ) + { + if ( geo && geo == geometry ) + { + disconnect(geometry); + geometries.removeAll( geometry ); + if (qDeleteObject) + { + delete geo; + geo = 0; + } + } + } + emit(updateRequest(boundingBox)); + } + + void Layer::clearGeometries( bool qDeleteObject ) + { + foreach(Geometry *geometry, geometries) + { + disconnect(geometry); + if ( qDeleteObject ) + { + delete geometry; + geometry = 0; + } + } + geometries.clear(); + } + + bool Layer::isVisible() const + { + return visible; + } + void Layer::zoomIn() const + { + mapAdapter->zoom_in(); + } + void Layer::zoomOut() const + { + mapAdapter->zoom_out(); + } + + void Layer::mouseEvent(const QMouseEvent* evnt, const QPoint mapmiddle_px) + { + if (takesMouseEvents()) + { + if ( geometries.size() > 0 && + evnt->button() == Qt::LeftButton && + evnt->type() == QEvent::MouseButtonPress) + { + // check for collision + QPointF c = mapAdapter->displayToCoordinate(QPoint(evnt->x()-screenmiddle.x()+mapmiddle_px.x(), + evnt->y()-screenmiddle.y()+mapmiddle_px.y())); + Point* tmppoint = new Point(c.x(), c.y()); + for(QList::const_iterator iter = geometries.begin(); iter != geometries.end(); ++iter) + { + Geometry *geo = *iter; + if (geo && geo->isVisible() && geo->Touches(tmppoint, mapAdapter)) + { + emit(geometryClicked(geo, QPoint(evnt->x(), evnt->y()))); + } + } + delete tmppoint; + } + } + } + + bool Layer::takesMouseEvents() const + { + return takeevents; + } + + void Layer::drawYourImage(QPainter* painter, const QPoint mapmiddle_px) const + { + if (mylayertype == MapLayer) + { + _draw(painter, mapmiddle_px); + } + + drawYourGeometries(painter, QPoint(mapmiddle_px.x()-screenmiddle.x(), mapmiddle_px.y()-screenmiddle.y()), myoffscreenViewport); + } + void Layer::drawYourGeometries(QPainter* painter, const QPoint mapmiddle_px, QRect viewport) const + { + QPoint offset; + if (mylayertype == MapLayer) + { + offset = mapmiddle_px; + } + else + { + offset = mapmiddle_px-screenmiddle; + } + + painter->translate(-mapmiddle_px+screenmiddle); + + for(QList::const_iterator iter = geometries.begin(); iter != geometries.end(); ++iter) + { + Geometry *geo = *iter; + geo->draw(painter, mapAdapter, viewport, offset); + } + painter->translate(mapmiddle_px-screenmiddle); + + } + + void Layer::_draw(QPainter* painter, const QPoint mapmiddle_px) const + { + if ( m_ImageManager == 0 ) + { + return; + } + + // screen middle... + int tilesize = mapAdapter->tilesize(); + int cross_x = int(mapmiddle_px.x())%tilesize; // position on middle tile + int cross_y = int(mapmiddle_px.y())%tilesize; + + // calculate how many surrounding tiles have to be drawn to fill the display + int space_left = screenmiddle.x() - cross_x; + int tiles_left = space_left/tilesize; + if (space_left>0) + tiles_left+=1; + + int space_above = screenmiddle.y() - cross_y; + int tiles_above = space_above/tilesize; + if (space_above>0) + tiles_above+=1; + + int space_right = screenmiddle.x() - (tilesize-cross_x); + int tiles_right = space_right/tilesize; + if (space_right>0) + tiles_right+=1; + + int space_bottom = screenmiddle.y() - (tilesize-cross_y); + int tiles_bottom = space_bottom/tilesize; + if (space_bottom>0) + tiles_bottom+=1; + + //int tiles_displayed = 0; + int mapmiddle_tile_x = mapmiddle_px.x()/tilesize; + int mapmiddle_tile_y = mapmiddle_px.y()/tilesize; + + const QPoint from = QPoint((-tiles_left+mapmiddle_tile_x)*tilesize, (-tiles_above+mapmiddle_tile_y)*tilesize); + const QPoint to = QPoint((tiles_right+mapmiddle_tile_x+1)*tilesize, (tiles_bottom+mapmiddle_tile_y+1)*tilesize); + + myoffscreenViewport = QRect(from, to); + + // for the EmptyMapAdapter no tiles should be loaded and painted. + if (mapAdapter->host().isEmpty()) + { + return; + } + + //grab the middle tile (under the pointer) first + if (mapAdapter->isTileValid(mapmiddle_tile_x, mapmiddle_tile_y, mapAdapter->currentZoom())) + { + painter->drawPixmap(-cross_x+size.width(), + -cross_y+size.height(), + m_ImageManager->getImage(mapAdapter->host(), mapAdapter->query(mapmiddle_tile_x, mapmiddle_tile_y, mapAdapter->currentZoom())) ); + } + + for (int i=-tiles_left+mapmiddle_tile_x; i<=tiles_right+mapmiddle_tile_x; ++i) + { + for (int j=-tiles_above+mapmiddle_tile_y; j<=tiles_bottom+mapmiddle_tile_y; ++j) + { + // check if image is valid + if (!(i==mapmiddle_tile_x && j==mapmiddle_tile_y)) + { + if (mapAdapter->isTileValid(i, j, mapAdapter->currentZoom())) + { + painter->drawPixmap(((i-mapmiddle_tile_x)*tilesize)-cross_x+size.width(), + ((j-mapmiddle_tile_y)*tilesize)-cross_y+size.height(), + m_ImageManager->getImage(mapAdapter->host(), mapAdapter->query(i, j, mapAdapter->currentZoom()))); + } + } + } + } + + bool enabledPrefetch = false; + if ( enabledPrefetch ) + { + // Prefetch the next set of rows/column tiles (ready for when the user starts panning). + const int prefetch_tile_left = tiles_left - 1; + const int prefetch_tile_top = tiles_above - 1; + const int prefetch_tile_right = tiles_right + 1; + const int prefetch_tile_bottom = tiles_bottom + 1; + + // Fetch the top/bottom rows + for (int i=prefetch_tile_left; i<=prefetch_tile_right; ++i) + { + if (mapAdapter->isTileValid(i, prefetch_tile_top, mapAdapter->currentZoom())) + { + m_ImageManager->prefetchImage(mapAdapter->host(), mapAdapter->query(i, prefetch_tile_top, mapAdapter->currentZoom())); + } + if (mapAdapter->isTileValid(i, prefetch_tile_bottom, mapAdapter->currentZoom())) + { + m_ImageManager->prefetchImage(mapAdapter->host(), mapAdapter->query(i, prefetch_tile_bottom, mapAdapter->currentZoom())); + } + } + + for (int i=prefetch_tile_top; i<=prefetch_tile_bottom; ++i) + { + if (mapAdapter->isTileValid(prefetch_tile_left, i, mapAdapter->currentZoom())) + { + m_ImageManager->prefetchImage(mapAdapter->host(), mapAdapter->query(prefetch_tile_left, i, mapAdapter->currentZoom())); + } + if (mapAdapter->isTileValid(prefetch_tile_right, i, mapAdapter->currentZoom())) + { + m_ImageManager->prefetchImage(mapAdapter->host(), mapAdapter->query(prefetch_tile_right, i, mapAdapter->currentZoom())); + } + } + } + } + + QRect Layer::offscreenViewport() const + { + return myoffscreenViewport; + } + + void Layer::moveWidgets(const QPoint mapmiddle_px) const + { + foreach( Geometry* geometry, geometries ) + { + if (geometry->GeometryType == "Point") + { + Point* point = dynamic_cast(geometry); + if (point !=0) + { + QPoint topleft_relative = QPoint(mapmiddle_px-screenmiddle); + point->drawWidget(mapAdapter, topleft_relative); + } + } + } + } + + Layer::LayerType Layer::layertype() const + { + return mylayertype; + } + + void Layer::setMapAdapter(MapAdapter* mapadapter) + { + mapAdapter = mapadapter; + emit(updateRequest()); + } + + void Layer::setImageManager(ImageManager *qImageManager) + { + m_ImageManager = qImageManager; + } +} diff --git a/libs/QMapControl/src/layer.h b/libs/QMapControl/src/layer.h new file mode 100644 index 00000000..9811ce7a --- /dev/null +++ b/libs/QMapControl/src/layer.h @@ -0,0 +1,221 @@ +/* +* +* This file is part of QMapControl, +* an open-source cross-platform map widget +* +* Copyright (C) 2007 - 2008 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 . +* +* Contact e-mail: kaiwinter@gmx.de +* Program URL : http://qmapcontrol.sourceforge.net/ +* +*/ + +#ifndef LAYER_H +#define LAYER_H + +#include "qmapcontrol_global.h" +#include +#include +#include +#include + +#include "mapadapter.h" +#include "layermanager.h" +#include "imagemanager.h" +#include "geometry.h" +#include "point.h" + +#include "wmsmapadapter.h" +#include "tilemapadapter.h" + +namespace qmapcontrol +{ + //! Layer class + /*! + * There are two different layer types: + * - MapLayer: Displays Maps, but also Geometries. The configuration for displaying maps have to be done in the MapAdapter + * - GeometryLayer: Only displays Geometry objects. + * + * MapLayers also can display Geometry objects. The difference to the GeometryLayer is the repainting. Objects that are + * added to a MapLayer are "baken" on the map. This means, when you change it´s position for example the changes are + * not visible until a new offscreen image has been drawn. If you have "static" Geometries which won´t change their + * position this is fine. But if you want to change the objects position or pen you should use a GeometryLayer. Those + * are repainted immediately on changes. + * You can either use this class and give a layertype on creation or you can use the classes MapLayer and GeometryLayer. + * + * @author Kai Winter + */ + class QMAPCONTROL_EXPORT Layer : public QObject + { + Q_OBJECT + + public: + friend class LayerManager; + + //! sets the type of a layer, see Layer class doc for further information + enum LayerType + { + MapLayer, /*!< uses the MapAdapter to display maps, only gets refreshed when a new offscreen image is needed */ + GeometryLayer /*!< gets refreshed everytime when a geometry changes */ + }; + + //! Layer default constructor + /*! + * This is used to construct a layer. + */ + Layer(); + + //! Layer constructor + /*! + * This is used to construct a layer. + * + * @param layername The name of the Layer + * @param mapadapter The MapAdapter which does coordinate translation and Query-String-Forming + * @param layertype The above explained LayerType + * @param takeevents Should the Layer receive MouseEvents? This is set to true by default. Setting it to false could + * be something like a "speed up hint" + */ + + Layer(QString layername, MapAdapter* mapadapter, enum LayerType layertype, bool takeevents=true); + virtual ~Layer(); + + //! returns the layer's name + /*! + * @return the name of this layer + */ + QString layername() const; + + //! returns the layer´s MapAdapter + /*! + * This method returns the MapAdapter of this Layer, which can be useful + * to do coordinate transformations. + * @return the MapAdapter which us used by this Layer + */ + MapAdapter* mapadapter(); + + //! adds a Geometry object to this Layer + /*! + * Please notice the different LayerTypes (MapLayer and GeometryLayer) and the differences + * @param geometry the new Geometry + */ + void addGeometry(Geometry* geometry); + + //! removes the Geometry object from this Layer + /*! + * This method removes a Geometry object from this Layer. + * NOTE: this method does not delete the object unless qDeleteObject is set + * @param qDeleteObject cleans up memory of object after removal + */ + void removeGeometry(Geometry* geometry, bool qDeleteObject = false); + + //! removes all Geometry objects from this Layer + /*! + * This method removes all Geometry objects from this Layer. + * NOTE: this method does not delete the object unless qDeleteObject is set + * @param qDeleteObject cleans up memory of object after removal + */ + void clearGeometries( bool qDeleteObject = false); + + //! returns all Geometry objects from this Layer + /*! + * This method removes all Geometry objects from this Layer. + * @return a list of geometries that are on this Layer + */ + QList& getGeometries(); + + //! returns true if Layer contains geometry + /*! + * This method returns if a Geometry objects is on this Layer. + */ + bool containsGeometry( Geometry* geometry ); + + //! allow moving a geometry to the top of the list (drawing last) + /*! + * This method re-order the Geometry objects so the desired + * geometry is drawn last and visible above all geometries + */ + void sendGeometryToFront( Geometry* geometry ); + + //! allow moving a geometry to the top of the list (drawing last) + /*! + * This method re-order the Geometry objects so the desired + * geometry is drawn first and under all other geometries + */ + void sendGeometryToBack( Geometry* geometry ); + + //! return true if the layer is visible + /*! + * @return if the layer is visible + */ + bool isVisible() const; + + //! returns the LayerType of the Layer + /*! + * There are two LayerTypes: MapLayer and GeometryLayer + * @return the LayerType of this Layer + */ + Layer::LayerType layertype() const; + + void setMapAdapter(MapAdapter* mapadapter); + void setImageManager(ImageManager* qImageManager); + + private: + void moveWidgets(const QPoint mapmiddle_px) const; + void drawYourImage(QPainter* painter, const QPoint mapmiddle_px) const; + void drawYourGeometries(QPainter* painter, const QPoint mapmiddle_px, QRect viewport) const; + void setSize(QSize size); + QRect offscreenViewport() const; + bool takesMouseEvents() const; + void mouseEvent(const QMouseEvent*, const QPoint mapmiddle_px); + void zoomIn() const; + void zoomOut() const; + void _draw(QPainter* painter, const QPoint mapmiddle_px) const; + + bool visible; + QString mylayername; + LayerType mylayertype; + QSize size; + QPoint screenmiddle; + + QList geometries; + MapAdapter* mapAdapter; + bool takeevents; + mutable QRect myoffscreenViewport; + + ImageManager* m_ImageManager; + + signals: + //! This signal is emitted when a Geometry is clicked + /*! + * A Geometry is clickable, if the containing layer is clickable. + * The layer emits a signal for every clicked geometry + * @param geometry The clicked Geometry + * @param point The coordinate (in widget coordinates) of the click + */ + void geometryClicked(Geometry* geometry, QPoint point); + + void updateRequest(QRectF rect); + void updateRequest(); + + public slots: + //! if visible is true, the layer is made visible + /*! + * @param visible if the layer should be visible + */ + void setVisible(bool visible); + }; +} +#endif diff --git a/libs/QMapControl/src/layermanager.cpp b/libs/QMapControl/src/layermanager.cpp new file mode 100644 index 00000000..a603bc80 --- /dev/null +++ b/libs/QMapControl/src/layermanager.cpp @@ -0,0 +1,602 @@ +/* +* +* This file is part of QMapControl, +* an open-source cross-platform map widget +* +* Copyright (C) 2007 - 2008 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 . +* +* Contact e-mail: kaiwinter@gmx.de +* Program URL : http://qmapcontrol.sourceforge.net/ +* +*/ + +#include "layermanager.h" +namespace qmapcontrol +{ + LayerManager::LayerManager(MapControl* mapcontrol, QSize size) + :mapcontrol(mapcontrol), scroll(QPoint(0,0)), size(size), whilenewscroll(QPoint(0,0)) + { + // genauer berechnen? + offSize = size *2; + composedOffscreenImage = QPixmap(offSize); + zoomImage = QPixmap(size); + zoomImage.fill(Qt::white); + screenmiddle = QPoint(size.width()/2, size.height()/2); + useBoundingBox = false; + } + + + LayerManager::~LayerManager() + { + mylayers.clear(); + } + + QPointF LayerManager::currentCoordinate() const + { + return mapmiddle; + } + + QPixmap LayerManager::getImage() const + { + return composedOffscreenImage; + } + + Layer* LayerManager::layer() const + { + if ( mylayers.isEmpty() ) + { + qDebug() << "LayerManager::getLayer() - No layers were added"; + return 0; + } + return mylayers.at(0) ? mylayers.at(0) : 0; + } + + Layer* LayerManager::layer(const QString& layername) const + { + QListIterator layerit(mylayers); + while (layerit.hasNext()) + { + Layer* l = layerit.next(); + if (l->layername() == layername) + return l; + } + return 0; + } + + QList LayerManager::layers() const + { + QList keys; + QListIterator layerit(mylayers); + while (layerit.hasNext()) + { + keys.append(layerit.next()->layername()); + } + return keys; + } + + + void LayerManager::scrollView(const QPoint& point) + { + QPointF tempMiddle = layer()->mapadapter()->displayToCoordinate(mapmiddle_px + point); + + if((useBoundingBox && boundingBox.contains(tempMiddle)) || !useBoundingBox) + { + scroll += point; + zoomImageScroll += point; + mapmiddle_px += point; + + mapmiddle = tempMiddle; + + if (!checkOffscreen()) + { + newOffscreenImage(); + } + else + { + moveWidgets(); + } + } + } + + void LayerManager::moveWidgets() + { + QListIterator it(mylayers); + while (it.hasNext()) + { + it.next()->moveWidgets(mapmiddle_px); + } + } + + void LayerManager::setView(const QPointF& coordinate) + { + if ( !layer() ) + { + qDebug() << "LayerManager::setView() - cannot set view settings with no layers configured"; + return; + } + + if ( !layer()->mapadapter() ) + { + qDebug() << "LayerManager::setView() - cannot set view settings with no map adapter configured"; + return; + } + + mapmiddle_px = layer()->mapadapter()->coordinateToDisplay(coordinate); + mapmiddle = coordinate; + + newOffscreenImage(true, false); + } + + void LayerManager::setView(QList coordinates) + { + setMiddle(coordinates); + mapcontrol->update(); + } + + void LayerManager::setViewAndZoomIn(const QList coordinates) + { + if ( !layer() ) + { + qDebug() << "LayerManager::setViewAndZoomIn() - no layers configured"; + return; + } + + + while (!containsAll(coordinates)) + { + setMiddle(coordinates); + zoomOut(); + // bugfix Tl + // if points are too close -> Loop of death... + if ( layer()->mapadapter()->currentZoom() == 0 ) + { + qDebug() << "LayerManager::setViewAndZoomIn() - reached minium zoom level"; + break; + } + } + + while (containsAll(coordinates)) + { + setMiddle(coordinates); + zoomIn(); + // bugfix Tl + // if points are too close -> Loop of death... + if ( layer()->mapadapter()->currentZoom() == 17 ) + { + qDebug() << "LayerManager::setViewAndZoomIn() - reached maximum zoom level"; + break; + } + } + + if (!containsAll(coordinates)) + { + zoomOut(); + } + + mapcontrol->update(); + } + + void LayerManager::setMiddle(QList coordinates) + { + if ( !layer() ) + { + qDebug() << "LayerManager::setMiddle() - no layers configured"; + return; + } + + int sum_x = 0; + int sum_y = 0; + for (int i=0; imapadapter()->coordinateToDisplay(coordinates.at(i)); + sum_x += p.x(); + sum_y += p.y(); + } + QPointF middle = layer()->mapadapter()->displayToCoordinate(QPoint(sum_x/coordinates.size(), sum_y/coordinates.size())); + // middle in px rechnen! + + setView(middle); + } + + bool LayerManager::containsAll(QList coordinates) const + { + QRectF bb = getViewport(); + bool containsall = true; + for (int i=0; imapadapter()->displayToCoordinate(upperLeft); + QPointF lrCoord = layer()->mapadapter()->displayToCoordinate(lowerRight); + + QRectF coordinateBB = QRectF(ulCoord, QSizeF( (lrCoord-ulCoord).x(), (lrCoord-ulCoord).y())); + return coordinateBB; + } + + void LayerManager::addLayer(Layer* layer) + { + mylayers.append(layer); + + layer->setSize(size); + + //sanity check first + disconnect( layer, 0, this, 0 ); + + connect(layer, SIGNAL(updateRequest(QRectF)), + this, SLOT(updateRequest(QRectF))); + connect(layer, SIGNAL(updateRequest()), + this, SLOT(updateRequest())); + + if (mylayers.size() > 0) + { + //setView(QPointF(0,0)); + } + mapcontrol->update(); + } + + void LayerManager::removeLayer(Layer* layer) + { + if ( layer ) + { + disconnect( layer, 0, this, 0 ); + mylayers.removeAll(layer); + } + + if (mylayers.size() > 0) + { + //setView(QPointF(0,0)); + } + mapcontrol->update(); + } + + void LayerManager::newOffscreenImage(bool clearImage, bool showZoomImage) + { + // qDebug() << "LayerManager::newOffscreenImage()"; + whilenewscroll = mapmiddle_px; + + if (clearImage || mapcontrol->getImageManager()->loadQueueSize() == 0) + { + composedOffscreenImage.fill(Qt::white); + } + + QPainter painter(&composedOffscreenImage); + if (showZoomImage|| mapcontrol->getImageManager()->loadQueueSize() != 0) + { + painter.drawPixmap(screenmiddle.x()-zoomImageScroll.x(), screenmiddle.y()-zoomImageScroll.y(),zoomImage); + } + + //only draw basemaps + foreach(const Layer* l, mylayers) + { + if (l->isVisible() && l->layertype() == Layer::MapLayer) + { + l->drawYourImage(&painter, whilenewscroll); + } + } + + //stop the painter now that we've finished drawing + painter.end(); + + //composedOffscreenImage = composedOffscreenImage2; + scroll = mapmiddle_px-whilenewscroll; + + mapcontrol->update(); + } + + void LayerManager::zoomIn() + { + if ( !layer() ) + { + qDebug() << "LayerManager::zoomIn() - no layers configured"; + return; + } + + mapcontrol->getImageManager()->abortLoading(); + //QCoreApplication::processEvents(); + + // layer rendern abbrechen? + zoomImageScroll = QPoint(0,0); + + zoomImage.fill(Qt::white); + QPixmap tmpImg = composedOffscreenImage.copy(screenmiddle.x()+scroll.x(),screenmiddle.y()+scroll.y(), size.width(), size.height()); + + QPainter painter(&zoomImage); + painter.translate(screenmiddle); + painter.scale(2, 2); + painter.translate(-screenmiddle); + + painter.drawPixmap(0,0,tmpImg); + + QListIterator it(mylayers); + //TODO: remove hack, that mapadapters wont get set zoom multiple times + QList doneadapters; + while (it.hasNext()) + { + Layer* l = it.next(); + if (!doneadapters.contains(l->mapadapter())) + { + l->zoomIn(); + doneadapters.append(l->mapadapter()); + } + } + mapmiddle_px = layer()->mapadapter()->coordinateToDisplay(mapmiddle); + whilenewscroll = mapmiddle_px; + + newOffscreenImage(true, true); //show zoomed image while map loads + } + + bool LayerManager::checkOffscreen() const + { + if ( !layer() ) + { + qDebug() << "LayerManager::checkOffscreen() - no layers configured"; + return true; + } + + // calculate offscreenImage dimension (px) + QPoint upperLeft = mapmiddle_px - screenmiddle; + QPoint lowerRight = mapmiddle_px + screenmiddle; + QRect viewport = QRect(upperLeft, lowerRight); + + QRect testRect = layer()->offscreenViewport(); + + if (!testRect.contains(viewport)) + { + return false; + } + + return true; + } + void LayerManager::zoomOut() + { + if ( !layer() ) + { + qDebug() << "LayerManager::zoomOut() - no layers configured"; + return; + } + + //QCoreApplication::processEvents(); + mapcontrol->getImageManager()->abortLoading(); + zoomImageScroll = QPoint(0,0); + zoomImage.fill(Qt::white); + QPixmap tmpImg = composedOffscreenImage.copy(screenmiddle.x()+scroll.x(),screenmiddle.y()+scroll.y(), size.width(), size.height()); + QPainter painter(&zoomImage); + painter.translate(screenmiddle); + painter.scale(0.500001,0.500001); + painter.translate(-screenmiddle); + painter.drawPixmap(0,0,tmpImg); + + painter.translate(screenmiddle); + painter.scale(2,2); + painter.translate(-screenmiddle); + + QListIterator it(mylayers); + //TODO: remove hack, that mapadapters wont get set zoom multiple times + QList doneadapters; + while (it.hasNext()) + { + Layer* l = it.next(); + if (!doneadapters.contains(l->mapadapter())) + { + l->zoomOut(); + doneadapters.append(l->mapadapter()); + } + } + mapmiddle_px = layer()->mapadapter()->coordinateToDisplay(mapmiddle); + whilenewscroll = mapmiddle_px; + + newOffscreenImage(true, true); //show zoomed image while map loads + } + + void LayerManager::setZoom(int zoomlevel) + { + if ( !layer() ) + { + qDebug() << "LayerManager::setZoom() - no layers configured"; + return; + } + + int current_zoom; + if (layer()->mapadapter()->minZoom() < layer()->mapadapter()->maxZoom()) + { + current_zoom = layer()->mapadapter()->currentZoom(); + } + else + { + current_zoom = layer()->mapadapter()->minZoom() - layer()->mapadapter()->currentZoom(); + } + + + if (zoomlevel < current_zoom) + { + for (int i=current_zoom; i>zoomlevel; --i) + { + zoomOut(); + } + } + else + { + for (int i=current_zoom; imouseWheelEventsEnabled() ) + { + return; + } + + foreach( Layer* l, mylayers ) + { + if (l && l->isVisible() ) + { + l->mouseEvent(evnt, mapmiddle_px); + } + } + } + + void LayerManager::updateRequest(QRectF rect) + { + if (getViewport().contains(rect.topLeft()) || getViewport().contains(rect.bottomRight())) + { + // QPoint point = getLayer()->getMapAdapter()->coordinateToDisplay(c); + // const QPoint topleft = mapmiddle_px - screenmiddle; + // QPoint finalpoint = point-topleft; + // QRect rect_px = QRect(int(finalpoint.x()-(rect.width()-1)/2), int(finalpoint.y()-(rect.height()-1)/2), + // int(rect.width()+1), int(rect.height()+1)); + // + // mapcontrol->updateRequest(rect_px); + newOffscreenImage(false, false); + } + } + void LayerManager::updateRequest() + { + newOffscreenImage(true, false); + } + void LayerManager::forceRedraw() + { + newOffscreenImage(true, false); + } + void LayerManager::removeZoomImage() + { + zoomImage.fill(Qt::white); + forceRedraw(); + } + + void LayerManager::drawGeoms(QPainter* painter) + { + if ( !layer() ) + { + qDebug() << "LayerManager::drawGeoms() - no layers configured"; + return; + } + QListIterator it(mylayers); + while (it.hasNext()) + { + Layer* l = it.next(); + if (l->layertype() == Layer::GeometryLayer && l->isVisible()) + { + l->drawYourGeometries(painter, mapmiddle_px, layer()->offscreenViewport()); + } + } + } + void LayerManager::drawImage(QPainter* painter) + { + painter->drawPixmap(-scroll.x()-screenmiddle.x(), + -scroll.y()-screenmiddle.y(), + composedOffscreenImage); + } + + int LayerManager::currentZoom() const + { + if ( !layer() ) + { + qDebug() << "LayerManager::currentZoom() - no layers configured"; + return 0; + } + return layer()->mapadapter()->currentZoom(); + } + + int LayerManager::minZoom() + { + if ( !layer() ) + { + qDebug() << "LayerManager::minZoom() - no layers configured"; + return 0; + } + return layer()->mapadapter()->minZoom(); + } + + int LayerManager::maxZoom() + { + if ( !layer() ) + { + qDebug() << "LayerManager::maxZoom() - no layers configured"; + return 0; + } + return layer()->mapadapter()->maxZoom(); + } + + void LayerManager::resize(QSize newSize) + { + size = newSize; + offSize = newSize *2; + composedOffscreenImage = QPixmap(offSize); + zoomImage = QPixmap(newSize); + + screenmiddle = QPoint(newSize.width()/2, newSize.height()/2); + + QListIterator it(mylayers); + while (it.hasNext()) + { + Layer* l = it.next(); + l->setSize(newSize); + } + + forceRedraw(); + } + + void LayerManager::setUseBoundingBox( bool usebounds ) + { + useBoundingBox = usebounds; + } + + bool LayerManager::isBoundingBoxEnabled() + { + return useBoundingBox; + } + + void LayerManager::setBoundingBox( QRectF &rect ) + { + if( rect.right() < rect.left() ) + qDebug() << "LayerManager::setBoundingBox() - min longitude is bigger than max"; + + if( rect.top() < rect.bottom() ) + qDebug() << "LayerManager::setBoundingBox() - min latitude is bigger than max"; + + boundingBox = rect; + } + + QRectF LayerManager::getBoundingBox() + { + return boundingBox; + } +} diff --git a/libs/QMapControl/src/layermanager.h b/libs/QMapControl/src/layermanager.h new file mode 100644 index 00000000..6eeae4fb --- /dev/null +++ b/libs/QMapControl/src/layermanager.h @@ -0,0 +1,257 @@ +/* +* +* This file is part of QMapControl, +* an open-source cross-platform map widget +* +* Copyright (C) 2007 - 2008 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 . +* +* Contact e-mail: kaiwinter@gmx.de +* Program URL : http://qmapcontrol.sourceforge.net/ +* +*/ + +#ifndef LAYERMANAGER_H +#define LAYERMANAGER_H + +#include "qmapcontrol_global.h" +#include +#include +#include +#include +#include "layer.h" +#include "mapadapter.h" +#include "mapcontrol.h" + +namespace qmapcontrol +{ + class Layer; + class MapAdapter; + class MapControl; + + class LayerManager; + + //! Handles Layers and viewport related settings + /*! + * This class handles internally all layers which were added to the MapControl. + * It also stores values for scrolling. + * It initiates the creation of a new offscreen image and on zooming the zoom images gets here created. + * @author Kai Winter + */ + class QMAPCONTROL_EXPORT LayerManager : public QObject + { + Q_OBJECT + + public: + LayerManager(MapControl*, QSize); + ~LayerManager(); + + //! 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 offscreen image + /*! + * @return the current offscreen image + */ + QPixmap getImage() 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&) const; + + //! returns the base layer + /*! + * This will return the base layer of the LayerManager. + * The base layer is the one which is used to do internal coordinate calculations. + * @return the base layer + */ + Layer* layer() const; + + //! returns the names of all layers + /*! + * @return returns a QList with the names of all layers + */ + QList layers() 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); + + //! sets the view, so all coordinates are visible + /*! + * @param coordinates the Coorinates which should be visible + */ + void setView(const QList coordinates); + + //! 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); + + //! zooms in one step + void zoomIn(); + + //! zooms out one step + void zoomOut(); + + //! return min Zoom Level + int minZoom(); + + //! return max Zoom Level + int maxZoom(); + + //! sets the given zoomlevel + /*! + * @param zoomlevel the zoomlevel + */ + void setZoom(int zoomlevel); + + //! The Viewport of the display + /*! + * Returns the visible viewport in world coordinates + * @return the visible viewport in world coordinates + */ + QRectF getViewport() const; + + //! scrolls the view + /*! + * Scrolls the view by the given value in pixels and in display coordinates + * @param offset the distance which the view should be scrolled + */ + void scrollView(const QPoint& offset); + + //! forwards mouseevents to the layers + /*! + * This method is invoked by the MapControl which receives Mouse Events. + * These events are forwarded to the layers, so they can check for clicked geometries. + * @param evnt the mouse event + */ + void mouseEvent(const QMouseEvent* evnt); + + //! returns the middle of the map in projection coordinates + /*! + * + * @return the middle of the map in projection coordinates + */ + QPoint getMapmiddle_px() const; + + void forceRedraw(); + void removeZoomImage(); + + //! 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); + + //! removes a layer + /*! + * Removes a layer and redraws existing layers + * @param layer the layer which should be removed + */ + void removeLayer( Layer* layer ); + + //! returns the current zoom level + /*! + * @return returns the current zoom level + */ + int currentZoom() const; + + void drawGeoms(QPainter* painter); + void drawImage(QPainter* painter); + + + //! Set whether to enable a view bounding box + /*! + * + * @param usebounds enable/disable use of bounding box + */ + void setUseBoundingBox( bool usebounds ); + + //! Check if bounding box is being used + /*! + * + * @return if bounding box is being used + */ + bool isBoundingBoxEnabled(); + + //! Set constraints for bounding box + /*! + * + * @param rect specified bounds for view to stay within + */ + void setBoundingBox( QRectF &rect ); + + //! Get current bounding box + /*! + * + * @return bounding box + */ + QRectF getBoundingBox(); + + private: + LayerManager& operator=(const LayerManager& rhs); + LayerManager(const LayerManager& old); + //! This method have to be invoked to draw a new offscreen image + /*! + * @param clearImage if the current offscreeen image should be cleared + * @param showZoomImage if a zoom image should be painted + */ + void newOffscreenImage(bool clearImage=true, bool showZoomImage=true); + inline bool checkOffscreen() const; + inline bool containsAll(QList coordinates) const; + inline void moveWidgets(); + inline void setMiddle(QList coordinates); + + MapControl* mapcontrol; + QPoint screenmiddle; // middle of the screen + QPoint scroll; // scrollvalue of the offscreen image + QPoint zoomImageScroll; // scrollvalue of the zoom image + + QSize size; // widget size + QSize offSize; // size of the offscreen image + + QPixmap composedOffscreenImage; + QPixmap zoomImage; + + QList mylayers; + + QPoint mapmiddle_px; // projection-display coordinates + QPointF mapmiddle; // world coordinate + + QPoint whilenewscroll; + + QRectF boundingBox; // limit viewing area if desired + bool useBoundingBox; + + public slots: + void updateRequest(QRectF rect); + void updateRequest(); + void resize(QSize newSize); + }; +} +#endif diff --git a/libs/QMapControl/src/linestring.cpp b/libs/QMapControl/src/linestring.cpp new file mode 100644 index 00000000..bb7c5f13 --- /dev/null +++ b/libs/QMapControl/src/linestring.cpp @@ -0,0 +1,224 @@ +/* +* +* This file is part of QMapControl, +* an open-source cross-platform map widget +* +* Copyright (C) 2007 - 2008 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 . +* +* Contact e-mail: kaiwinter@gmx.de +* Program URL : http://qmapcontrol.sourceforge.net/ +* +*/ + +#include "linestring.h" +namespace qmapcontrol +{ + LineString::LineString() + : Curve() + { + GeometryType = "LineString"; + } + + LineString::LineString(QList const points, QString name, QPen* pen) + :Curve(name) + { + mypen = pen; + LineString(); + setPoints(points); + } + + LineString::~LineString() + { + removePoints(); + } + + void LineString::removePoints() + { + QListIterator iter(childPoints); + while(iter.hasNext()) + { + Point *pt = iter.next(); + if (pt && pt->parentGeometry() == this) + { + delete pt; + pt = 0; + } + } + childPoints.clear(); + } + + void LineString::addPoint(Point* point) + { + point->setParentGeometry(this); + childPoints.append(point); + } + + QList LineString::points() + { + return childPoints; + } + + void LineString::setPoints(QList points) + { + removePoints(); + + for (int i=0; isetParentGeometry(this); + } + childPoints = points; + } + + void LineString::draw(QPainter* painter, const MapAdapter* mapadapter, const QRect &screensize, const QPoint offset) + { + if (!visible) + return; + + QPolygon p = QPolygon(); + + QPointF c; + for (int i=0; icoordinate(); + p.append(mapadapter->coordinateToDisplay(c)); + } + if (mypen != 0) + { + painter->save(); + painter->setPen(*mypen); + } + painter->drawPolyline(p); + if (mypen != 0) + { + painter->restore(); + } + for (int i=0; idraw(painter, mapadapter, screensize, offset); + } + } + + int LineString::numberOfPoints() const + { + return childPoints.count(); + } + + bool LineString::Touches(Point* geom, const MapAdapter* mapadapter) + { + touchedPoints.clear(); + + if (points().size() < 2) + { + // really shouldn't end up here since we always add atleast points to create a line + return false; + } + + bool touches = false; + + QPointF clickPt = mapadapter->coordinateToDisplay(geom->coordinate()); + + qreal halfwidth = 2; // use 2 pixels by default + if (mypen && mypen->width() > 0) + { + halfwidth = static_cast (mypen->width())/ static_cast (2); + } + + QPointF pt1 = mapadapter->coordinateToDisplay(points().at(0)->coordinate()); + qreal pt1x1 = pt1.x() - halfwidth; + qreal pt1x2 = pt1.x() + halfwidth; + qreal pt1y1 = pt1.y() - halfwidth; + qreal pt1y2 = pt1.y() + halfwidth; + for (int i = 1; i < childPoints.size(); ++i) + { + QPointF pt2 = mapadapter->coordinateToDisplay(childPoints.at(i)->coordinate()); + qreal pt2x1 = pt2.x() - halfwidth; + qreal pt2x2 = pt2.x() + halfwidth; + qreal pt2y1 = pt2.y() - halfwidth; + qreal pt2y2 = pt2.y() + halfwidth; + + // build lazy bounding box + qreal upperLeftX = qMin(pt1x1, qMin(pt1x2, qMin(pt2x1, pt2x2))); + qreal upperLeftY = qMin(pt1y1, qMin(pt1y2, qMin(pt2y1, pt2y2))); + qreal lowerRightX = qMax(pt1x1, qMax(pt1x2, qMax(pt2x1, pt2x2))); + qreal lowerRightY = qMax(pt1y1, qMax(pt1y2, qMax(pt2y1, pt2y2))); + + QRectF bounds(QPointF(upperLeftX, upperLeftY), + QPointF(lowerRightX,lowerRightY)); + + if (bounds.contains(clickPt)) + { + touchedPoints.append(childPoints.at(i)); + touches = true; + } + + pt1x1 = pt2x1; + pt1x2 = pt2x2; + pt1y1 = pt2y1; + pt1y2 = pt2y2; + } + + if (touches) + { + emit(geometryClicked(this, QPoint(0,0))); + } + + return touches; + } + + bool LineString::Touches(Geometry* /*geom*/, const MapAdapter* /*mapadapter*/) + { + touchedPoints.clear(); + + return false; + } + + QList& LineString::clickedPoints() + { + return Geometry::clickedPoints(); + } + + bool LineString::hasPoints() const + { + return childPoints.size() > 0 ? true : false; + } + + bool LineString::hasClickedPoints() const + { + return touchedPoints.size() > 0 ? true : false; + } + + QRectF LineString::boundingBox() + { + qreal minlon=180; + qreal maxlon=-180; + qreal minlat=90; + qreal maxlat=-90; + for (int i=0; ilongitude() < minlon) minlon = tmp->longitude(); + if (tmp->longitude() > maxlon) maxlon = tmp->longitude(); + if (tmp->latitude() < minlat) minlat = tmp->latitude(); + if (tmp->latitude() > maxlat) maxlat = tmp->latitude(); + } + QPointF min = QPointF(minlon, minlat); + QPointF max = QPointF(maxlon, maxlat); + QPointF dist = max - min; + QSizeF si = QSizeF(dist.x(), dist.y()); + + return QRectF(min, si); + } +} diff --git a/libs/QMapControl/src/linestring.h b/libs/QMapControl/src/linestring.h new file mode 100644 index 00000000..15148994 --- /dev/null +++ b/libs/QMapControl/src/linestring.h @@ -0,0 +1,127 @@ +/* +* +* This file is part of QMapControl, +* an open-source cross-platform map widget +* +* Copyright (C) 2007 - 2008 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 . +* +* Contact e-mail: kaiwinter@gmx.de +* Program URL : http://qmapcontrol.sourceforge.net/ +* +*/ + +#ifndef LINESTRING_H +#define LINESTRING_H + +#include "qmapcontrol_global.h" +#include "curve.h" + +namespace qmapcontrol +{ + //! A collection of Point objects to describe a line + /*! + * A LineString is a Curve with linear interpolation between Points. Each consecutive pair of Points defines a Line segment. + * @author Kai Winter + */ + class QMAPCONTROL_EXPORT LineString : public Curve + { + Q_OBJECT + + public: + LineString(); + //! constructor + /*! + * The constructor of a LineString takes a list of Points to form a line. + * @param points a list of points + * @param name the name of the LineString + * @param pen a QPen can be used to modify the look of the line. + * @see http://doc.trolltech.com/4.3/qpen.html + */ + LineString ( QList const points, QString name = QString(), QPen* pen = 0 ); + virtual ~LineString(); + + //! returns the points of the LineString + /*! + * @return a list with the points of the LineString + */ + QList points(); + + //! adds a point at the end of the LineString + /*! + * @param point the point which should be added to the LineString + */ + void addPoint ( Point* point ); + + //! sets the given list as points of the LineString + //! NOTE: these points will get reparented and cleaned up automatically + /*! + * @param points the points which should be set for the LineString + */ + void setPoints ( QList points); + + //! returns the number of Points the LineString consists of + /*! + * @return the number of the LineString´s Points + */ + int numberOfPoints() const; + + //! returns the bounding box (rect) that contains all points + /*! + * @return the rect that contains all points + */ + virtual QRectF boundingBox(); + + //! returns true if the LineString has Childs + /*! + * This is equal to: numberOfPoints() > 0 + * @return true it the LineString has Childs (=Points) + * @see clickedPoints() + */ + virtual bool hasPoints() const; + + //! returns true if the LineString has clicked Points + /*! + * @return true if childs of a LineString were clicked + * @see clickedPoints() + */ + virtual bool hasClickedPoints() const; + + //! returns the clicked Points + /*! + * If a LineString was clicked it could be neccessary to figure out which of its points where clicked. + * Do do so the methods hasPoints() and clickedPoints() can be used. + * When a point is added to a LineString the Point becomes its child. + * It is possible (depending on the zoomfactor) to click more than one Point of a LineString, so this method returns a list. + * @return the clicked Points of the LineString + */ + virtual QList & clickedPoints(); + + protected: + virtual bool Touches ( Geometry* geom, const MapAdapter* mapadapter ); + virtual bool Touches ( Point* geom, const MapAdapter* mapadapter ); + virtual void draw ( QPainter* painter, const MapAdapter* mapadapter, const QRect &screensize, const QPoint offset ); + + private: + //! removes cleans up memory of child points that were reparented with setPoints() + /*! + * @see setPoints() + */ + void removePoints(); + + QList childPoints; + }; +} +#endif diff --git a/libs/QMapControl/src/mapadapter.cpp b/libs/QMapControl/src/mapadapter.cpp new file mode 100644 index 00000000..2fb28fbb --- /dev/null +++ b/libs/QMapControl/src/mapadapter.cpp @@ -0,0 +1,90 @@ +/* +* +* This file is part of QMapControl, +* an open-source cross-platform map widget +* +* Copyright (C) 2007 - 2008 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 . +* +* Contact e-mail: kaiwinter@gmx.de +* Program URL : http://qmapcontrol.sourceforge.net/ +* +*/ + +#include "mapadapter.h" +namespace qmapcontrol +{ + MapAdapter::MapAdapter(const QString& qHost, const QString& qServerPath, int qTilesize, int qMinZoom, int qMaxZoom) + :mTileSize(qTilesize), mMin_zoom(qMinZoom), mMax_zoom(qMaxZoom) + { + mCurrent_zoom = qMinZoom; + changeHostAddress( qHost, qServerPath ); + } + + MapAdapter::~MapAdapter() + { + } + + void MapAdapter::changeHostAddress( const QString qHost, const QString qServerPath ) + { + mServerHost = qHost; + mServerPath = qServerPath; + } + + QString MapAdapter::host() const + { + return mServerHost; + } + + QString MapAdapter::serverPath() const + { + return mServerPath; + } + + int MapAdapter::tilesize() const + { + return mTileSize; + } + + int MapAdapter::minZoom() const + { + return mMin_zoom; + } + + int MapAdapter::maxZoom() const + { + return mMax_zoom; + } + + int MapAdapter::currentZoom() const + { + return mCurrent_zoom; + } + + int MapAdapter::adaptedZoom() const + { + return mMax_zoom < mMin_zoom ? mMin_zoom - mCurrent_zoom : mCurrent_zoom; + } + + void MapAdapter::setBoundingBox(qreal qMinX, qreal qMinY, qreal qMaxX, qreal qMaxY ) + { + mBoundingBox = QRectF( QPointF( qMinX, qMinY ), QPointF(qMaxX, qMaxY ) ); + } + + int MapAdapter::tileSize() + { + return mTileSize; + } +} diff --git a/libs/QMapControl/src/mapadapter.h b/libs/QMapControl/src/mapadapter.h new file mode 100644 index 00000000..400bddde --- /dev/null +++ b/libs/QMapControl/src/mapadapter.h @@ -0,0 +1,178 @@ +/* +* +* This file is part of QMapControl, +* an open-source cross-platform map widget +* +* Copyright (C) 2007 - 2008 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 . +* +* Contact e-mail: kaiwinter@gmx.de +* Program URL : http://qmapcontrol.sourceforge.net/ +* +*/ + +#ifndef MAPADAPTER_H +#define MAPADAPTER_H + +#include "qmapcontrol_global.h" +#include +#include +#include +#include +#include +#include +#include +#include + +namespace qmapcontrol +{ + //! Used to fit map servers into QMapControl + /*! + * MapAdapters are needed to convert between world- and display coordinates. + * This calculations depend on the used map projection. + * There are two ready-made MapAdapters: + * - TileMapAdapter, which is ready to use for OpenStreetMap or Google (Mercator projection) + * - WMSMapAdapter, which could be used for the most WMS-Server (some servers show errors, because of image ratio) + * + * MapAdapters are also needed to form the HTTP-Queries to load the map tiles. + * The maps from WMS Servers are also divided into tiles, because those can be better cached. + * + * @see TileMapAdapter, @see WMSMapAdapter + * + * @author Kai Winter + */ + class QMAPCONTROL_EXPORT MapAdapter : public QObject + { + friend class Layer; + + Q_OBJECT + + public: + virtual ~MapAdapter(); + + //! returns the host of this MapAdapter + /*! + * @return the host of this MapAdapter + */ + QString host() const; + + //! returns the server path part of this MapAdapter + /*! + * @return the serverpath of this MapAdapter + */ + virtual QString serverPath() const; + + //! change or update server host address post init + /*! + * @param host the host address + * @param serverPath the server path + */ + virtual void changeHostAddress( const QString qHost, const QString qServerPath = QString() ); + + //! returns the size of the tiles + /*! + * @return the size of the tiles + */ + int tilesize() const; + + //! returns the min zoom value + /*! + * @return the min zoom value + */ + int minZoom() const; + + //! returns the max zoom value + /*! + * @return the max zoom value + */ + int maxZoom() const; + + //! returns the current zoom + /*! + * @return the current zoom + */ + int currentZoom() const; + + virtual int adaptedZoom()const; + + //! translates a world coordinate to display coordinate + /*! + * The calculations also needs the current zoom. The current zoom is managed by the MapAdapter, so this is no problem. + * To divide model from view the current zoom should be moved to the layers. + * @param coordinate the world coordinate + * @return the display coordinate (in widget coordinates) + */ + virtual QPoint coordinateToDisplay(const QPointF& coordinate) const = 0; + + //! translates display coordinate to world coordinate + /*! + * The calculations also needs the current zoom. The current zoom is managed by the MapAdapter, so this is no problem. + * To divide model from view the current zoom should be moved to the layers. + * @param point the display coordinate + * @return the world coordinate + */ + virtual QPointF displayToCoordinate(const QPoint& point) const = 0; + + QRectF getBoundingbox() const { return mBoundingBox; } + void setBoundingBox(qreal qMinX, qreal qMinY, qreal qMaxX, qreal qMaxY ); + + //! returns the tilesize for the mapadapter + /*! + * returns the tilesize for the mapadapter + * @return the tile size + */ + int tileSize(); + + protected: + MapAdapter(const QString& qHost, const QString& qServerPath, int qTilesize, int qMinZoom = 0, int qMaxZoom = 0); + virtual void zoom_in() = 0; + virtual void zoom_out() = 0; + virtual bool isTileValid(int x, int y, int z) const = 0; + virtual QString query(int x, int y, int z) const = 0; + + QSize mSize; + QString mServerHost; + QString mServerPath; + + int mTileSize; + int mMin_zoom; + int mMax_zoom; + int mCurrent_zoom; + + int param1; + int param2; + int param3; + int param4; + int param5; + int param6; + + QString sub1; + QString sub2; + QString sub3; + QString sub4; + QString sub5; + QString sub6; + + int order[3][2]; + + int mMiddle_x; + int mMiddle_y; + + qreal mNumberOfTiles; + QLocale loc; + QRectF mBoundingBox; + }; +} +#endif diff --git a/libs/QMapControl/src/mapcontrol.cpp b/libs/QMapControl/src/mapcontrol.cpp new file mode 100644 index 00000000..fa8a80c4 --- /dev/null +++ b/libs/QMapControl/src/mapcontrol.cpp @@ -0,0 +1,607 @@ +/* +* +* This file is part of QMapControl, +* an open-source cross-platform map widget +* +* Copyright (C) 2007 - 2008 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 . +* +* Contact e-mail: kaiwinter@gmx.de +* Program URL : http://qmapcontrol.sourceforge.net/ +* +*/ + +#include "mapcontrol.h" +#include + +namespace qmapcontrol +{ + MapControl::MapControl (QWidget * parent, Qt::WindowFlags windowFlags) + : QFrame( parent, windowFlags ), + m_layermanager(0), + m_imagemanager(0), + size(100,100), + mouse_wheel_events(true), + mousepressed(false), + mymousemode(Panning), + scaleVisible(false), + crosshairsVisible(true), + m_loadingFlag(false), + steps(0), + m_doubleBuffer(0) + { + __init(); + } + + MapControl::MapControl(QSize size, MouseMode mousemode, bool showScale, bool showCrosshairs, QWidget * parent, Qt::WindowFlags windowFlags) + : QFrame( parent, windowFlags ), + m_layermanager(0), + m_imagemanager(0), + size(size), + mouse_wheel_events(true), + mousepressed(false), + mymousemode(mousemode), + scaleVisible(showScale), + crosshairsVisible(showCrosshairs), + m_loadingFlag(false), + steps(0), + m_doubleBuffer(0) + { + __init(); + } + + MapControl::~MapControl() + { + if ( m_layermanager ) + { + m_layermanager->deleteLater(); + m_layermanager = 0; + } + + if ( m_imagemanager ) + { + m_imagemanager->deleteLater(); + m_imagemanager = 0; + } + } + + void MapControl::__init() + { + m_layermanager = new LayerManager(this, size); + m_imagemanager = new ImageManager(this); + screen_middle = QPoint(size.width()/2, size.height()/2); + + mousepressed = false; + + connect(m_imagemanager, SIGNAL(imageReceived()), + this, SLOT(updateRequestNew())); + + connect(m_imagemanager, SIGNAL(loadingFinished()), + this, SLOT(loadingFinished())); + + this->setMaximumSize(size.width()+1, size.height()+1); + mouse_wheel_events = true; + } + + void MapControl::enableMouseWheelEvents( bool enabled ) + { + mouse_wheel_events = enabled; + } + + bool MapControl::mouseWheelEventsEnabled() + { + return mouse_wheel_events; + } + + QPointF MapControl::currentCoordinate() const + { + return m_layermanager->currentCoordinate(); + } + + Layer* MapControl::layer(const QString& layername) const + { + return m_layermanager->layer(layername); + } + + QList MapControl::layers() const + { + return m_layermanager->layers(); + } + + int MapControl::numberOfLayers() const + { + return m_layermanager->layers().size(); + } + + void MapControl::followGeometry(const Geometry* geom) const + { + if ( geom == 0 ) + { + return; + } + + //ensures only one signal is ever connected + stopFollowing(geom); + + connect(geom, SIGNAL(positionChanged(Geometry*)), + this, SLOT(positionChanged(Geometry*))); + } + + void MapControl::positionChanged(Geometry* geom) + { + if ( !m_layermanager->layer() || !m_layermanager->layer()->mapadapter() ) + { + qDebug() << "MapControl::positionChanged() - no layers configured"; + return; + } + + Point* point = dynamic_cast(geom); + if (point!=0) + { + QPoint start = m_layermanager->layer()->mapadapter()->coordinateToDisplay(currentCoordinate()); + QPoint dest = m_layermanager->layer()->mapadapter()->coordinateToDisplay(point->coordinate()); + QPoint step = (dest-start); + m_layermanager->scrollView(step); + updateRequestNew(); + } + } + + void MapControl::moveTo(QPointF coordinate) + { + target = coordinate; + steps = 25; + if (moveMutex.tryLock()) + { + QTimer::singleShot(40, this, SLOT(tick())); + } + else + { + // stopMove(coordinate); + moveMutex.unlock(); + } + } + void MapControl::tick() + { + if ( !m_layermanager->layer() || !m_layermanager->layer()->mapadapter() ) + { + qDebug() << "MapControl::tick() - no layers configured"; + return; + } + + QPoint start = m_layermanager->layer()->mapadapter()->coordinateToDisplay(currentCoordinate()); + QPoint dest = m_layermanager->layer()->mapadapter()->coordinateToDisplay(target); + + QPoint step = (dest-start)/steps; + m_layermanager->scrollView(step); + + update(); + m_layermanager->updateRequest(); + steps--; + if (steps>0) + { + QTimer::singleShot(50, this, SLOT(tick())); + } + else + { + moveMutex.unlock(); + } + } + + void MapControl::paintEvent(QPaintEvent* evnt) + { + Q_UNUSED(evnt); + + if ( m_doubleBuffer == 0 ) + { + m_doubleBuffer = new QPixmap(width(), height()); + } + //check for resize change + else if ( m_doubleBuffer->width() != width() || m_doubleBuffer->height() != height() ) + { + delete m_doubleBuffer; + m_doubleBuffer = new QPixmap(width(), height()); + } + + QPainter dbPainter; + dbPainter.begin(m_doubleBuffer); + + m_layermanager->drawImage(&dbPainter); + m_layermanager->drawGeoms(&dbPainter); + + // draw scale + if (scaleVisible) + { + static QList distanceList; + if (distanceList.isEmpty()) + { + distanceList<<5000000<<2000000<<1000000<<1000000<<1000000<<100000<<100000<<50000<<50000<<10000<<10000<<10000<<1000<<1000<<500<<200<<100<<50<<25; + } + + if (currentZoom() >= m_layermanager->minZoom() && distanceList.size() > currentZoom()) + { + double line; + line = distanceList.at( currentZoom() ) / pow(2.0, 18-currentZoom() ) / 0.597164; + + // draw the scale + dbPainter.setPen(Qt::black); + QPoint p1(10,size.height()-20); + QPoint p2((int)line,size.height()-20); + dbPainter.drawLine(p1,p2); + + dbPainter.drawLine(10,size.height()-15, 10,size.height()-25); + dbPainter.drawLine((int)line,size.height()-15, (int)line,size.height()-25); + + QString distance; + if (distanceList.at(currentZoom()) >= 1000) + { + distance = QVariant( distanceList.at(currentZoom())/1000 ) .toString()+ " km"; + } + else + { + distance = QVariant( distanceList.at(currentZoom()) ).toString() + " m"; + } + + dbPainter.drawText(QPoint((int)line+10,size.height()-15), distance); + } + } + + if (crosshairsVisible) + { + dbPainter.drawLine(screen_middle.x(), screen_middle.y()-10, + screen_middle.x(), screen_middle.y()+10); // | + dbPainter.drawLine(screen_middle.x()-10, screen_middle.y(), + screen_middle.x()+10, screen_middle.y()); // - + } + + dbPainter.drawRect(0,0, size.width(), size.height()); + + if (mousepressed && mymousemode == Dragging) + { + QRect rect = QRect(pre_click_px, current_mouse_pos); + dbPainter.drawRect(rect); + } + dbPainter.end(); + QPainter painter; + painter.begin( this ); + painter.drawPixmap( rect(), *m_doubleBuffer, m_doubleBuffer->rect() ); + painter.end(); + } + + // mouse events + void MapControl::mousePressEvent(QMouseEvent* evnt) + { + m_layermanager->mouseEvent(evnt); + + if (m_layermanager->layers().size()>0) + { + if (evnt->button() == 1) + { + mousepressed = true; + pre_click_px = QPoint(evnt->x(), evnt->y()); + } + else if ( evnt->button() == 2 && + mouseWheelEventsEnabled() && + mymousemode != None) // zoom in + { + zoomIn(); + } + else if ( evnt->button() == 4 && + mouseWheelEventsEnabled() && + mymousemode != None) // zoom out + { + zoomOut(); + } + } + + // emit(mouseEvent(evnt)); + emit(mouseEventCoordinate(evnt, clickToWorldCoordinate(evnt->pos()))); + } + + void MapControl::mouseReleaseEvent(QMouseEvent* evnt) + { + mousepressed = false; + if (mymousemode == Dragging) + { + QPointF ulCoord = clickToWorldCoordinate(pre_click_px); + QPointF lrCoord = clickToWorldCoordinate(current_mouse_pos); + + QRectF coordinateBB = QRectF(ulCoord, QSizeF( (lrCoord-ulCoord).x(), (lrCoord-ulCoord).y())); + + emit(boxDragged(coordinateBB)); + } + + emit(mouseEventCoordinate(evnt, clickToWorldCoordinate(evnt->pos()))); + } + + void MapControl::mouseMoveEvent(QMouseEvent* evnt) + { + if (mousepressed && mymousemode == Panning) + { + QPoint offset = pre_click_px - QPoint(evnt->x(), evnt->y()); + m_layermanager->scrollView(offset); + pre_click_px = QPoint(evnt->x(), evnt->y()); + } + else if (mousepressed && mymousemode == Dragging) + { + current_mouse_pos = QPoint(evnt->x(), evnt->y()); + } + + update(); + } + + void MapControl::wheelEvent(QWheelEvent *evnt) + { + /*if(mouse_wheel_events && evnt->angleDelta() ) + { + if(evnt->delta() > 0) + { + if( currentZoom() == m_layermanager->maxZoom() ) + { + return; + } + + setView(clickToWorldCoordinate(evnt->pos())); //zoom in under mouse cursor + zoomIn(); + } + else + { + if( currentZoom() == m_layermanager->minZoom() ) + { + return; + } + zoomOut(); + } + evnt->accept(); + } + else + { + evnt->ignore(); + }*/ + } + + ImageManager* MapControl::getImageManager() + { + return m_imagemanager; + } + + QPointF MapControl::clickToWorldCoordinate(QPoint click) + { + if ( !m_layermanager->layer() || !m_layermanager->layer()->mapadapter() ) + { + qDebug() << "MapControl::clickToWorldCoordinate() - no layers configured"; + return QPointF(); + } + // click coordinate to image coordinate + QPoint displayToImage= QPoint(click.x()-screen_middle.x()+m_layermanager->getMapmiddle_px().x(), + click.y()-screen_middle.y()+m_layermanager->getMapmiddle_px().y()); + + // image coordinate to world coordinate + return m_layermanager->layer()->mapadapter()->displayToCoordinate(displayToImage); + } + + void MapControl::updateRequest(QRect rect) + { + update(rect); + } + + void MapControl::updateRequestNew() + { + m_layermanager->forceRedraw(); + } + + // slots + void MapControl::zoomIn() + { + m_layermanager->zoomIn(); + updateView(); + emit viewChanged(currentCoordinate(), currentZoom()); + } + + void MapControl::zoomOut() + { + m_layermanager->zoomOut(); + updateView(); + emit viewChanged(currentCoordinate(), currentZoom()); + } + + void MapControl::setZoom(int zoomlevel) + { + m_layermanager->setZoom(zoomlevel); + updateView(); + emit viewChanged(currentCoordinate(), currentZoom()); + } + + int MapControl::currentZoom() const + { + return m_layermanager->currentZoom(); + } + + void MapControl::scrollLeft(int pixel) + { + m_layermanager->scrollView(QPoint(-pixel,0)); + updateView(); + } + + void MapControl::scrollRight(int pixel) + { + m_layermanager->scrollView(QPoint(pixel,0)); + updateView(); + } + + void MapControl::scrollUp(int pixel) + { + m_layermanager->scrollView(QPoint(0,-pixel)); + updateView(); + } + + void MapControl::scrollDown(int pixel) + { + m_layermanager->scrollView(QPoint(0,pixel)); + updateView(); + } + + void MapControl::scroll(const QPoint scroll) + { + m_layermanager->scrollView(scroll); + updateView(); + } + + void MapControl::updateView() const + { + m_layermanager->setView( currentCoordinate() ); + emit viewChanged(currentCoordinate(), currentZoom()); + } + + void MapControl::setView(const QPointF& coordinate) const + { + m_layermanager->setView(coordinate); + emit viewChanged(currentCoordinate(), currentZoom()); + } + + void MapControl::setView(const QList coordinates) const + { + m_layermanager->setView(coordinates); + emit viewChanged(currentCoordinate(), currentZoom()); + } + + void MapControl::setViewAndZoomIn(const QList coordinates) const + { + m_layermanager->setViewAndZoomIn(coordinates); + emit viewChanged(currentCoordinate(), currentZoom()); + } + + void MapControl::setView(const Point* point) const + { + m_layermanager->setView(point->coordinate()); + } + + void MapControl::loadingFinished() + { + m_layermanager->removeZoomImage(); + } + + void MapControl::addLayer(Layer* layer) + { + layer->setImageManager(m_imagemanager); + m_layermanager->addLayer(layer); + update(); + } + + void MapControl::removeLayer( Layer* layer ) + { + disconnect(layer, 0, 0, 0); + m_layermanager->removeLayer( layer ); + update(); + } + + void MapControl::setMouseMode(MouseMode mousemode) + { + mymousemode = mousemode; + } + + MapControl::MouseMode MapControl::mouseMode() + { + return mymousemode; + } + + void MapControl::stopFollowing(const Geometry* geom) const + { + disconnect(geom,SIGNAL(positionChanged(Geometry*)), this, SLOT(positionChanged(Geometry*))); + } + + void MapControl::enablePersistentCache( const QDir& path, const int qDiskSizeMB ) + { + m_imagemanager->setCacheDir( path, qDiskSizeMB ); + } + + void MapControl::setProxy(QString host, int port, const QString username, const QString password) + { + m_imagemanager->setProxy(host, port, username, password); + } + + void MapControl::showScale(bool visible) + { + scaleVisible = visible; + } + + void MapControl::showCrosshairs(bool visible) + { + crosshairsVisible = visible; + } + + void MapControl::resize(const QSize newSize) + { + this->size = newSize; + screen_middle = QPoint(newSize.width()/2, newSize.height()/2); + + this->setMaximumSize(newSize.width()+1, newSize.height()+1); + m_layermanager->resize(newSize); + + QFrame::resize(newSize); + + emit viewChanged(currentCoordinate(), currentZoom()); + } + + void MapControl::setUseBoundingBox( bool usebounds ) + { + if( m_layermanager ) + m_layermanager->setUseBoundingBox( usebounds ); + } + + bool MapControl::isBoundingBoxEnabled() + { + if( m_layermanager ) + return m_layermanager->isBoundingBoxEnabled(); + return false; + } + + void MapControl::setBoundingBox( QRectF &rect ) + { + if( m_layermanager ) + m_layermanager->setBoundingBox( rect ); + } + + QRectF MapControl::getBoundingBox() + { + if( m_layermanager ) + return m_layermanager->getBoundingBox(); + + // Return an empty QRectF if there is no m_layermanager + return QRectF(); + } + + QRectF MapControl::getViewport() + { + if( m_layermanager ) + return m_layermanager->getViewport(); + + // Return an empty QRectF if there is no m_layermanager + return QRectF(); + } + + bool MapControl::isGeometryVisible( Geometry * geometry) + { + if ( !geometry || getViewport() == QRectF() ) + return false; + + return getViewport().contains( geometry->boundingBox() ); + } + + int MapControl::loadingQueueSize() + { + return m_imagemanager->loadQueueSize(); + } + +} diff --git a/libs/QMapControl/src/mapcontrol.h b/libs/QMapControl/src/mapcontrol.h new file mode 100644 index 00000000..bfb84911 --- /dev/null +++ b/libs/QMapControl/src/mapcontrol.h @@ -0,0 +1,437 @@ +/* +* +* This file is part of QMapControl, +* an open-source cross-platform map widget +* +* Copyright (C) 2007 - 2008 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 . +* +* Contact e-mail: kaiwinter@gmx.de +* Program URL : http://qmapcontrol.sourceforge.net/ +* +*/ + +#ifndef MAPCONTROL_H +#define MAPCONTROL_H + +#include "qmapcontrol_global.h" +#include "layermanager.h" +#include "layer.h" +#include "mapadapter.h" +#include "geometry.h" +#include "imagemanager.h" + +#include +#include +#include + +//! QMapControl namespace +namespace qmapcontrol +{ + class LayerManager; + class MapAdapter; + class Layer; + + //! The control element of the widget and also the widget itself + /*! + * This is the main widget. + * To this control layers can be added. + * A MapControl has to be instantiated with a QSize which sets the size the widget takes in a layout. + * The given size is also the size which is assured to be filled with map images. + * + * @author Kai Winter + */ + class QMAPCONTROL_EXPORT MapControl : public QFrame + { + Q_OBJECT + + public: + //! Declares what actions mouse movements have 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 QWidget constructor of MapControl for use with QtDesigner + /*! + * @param qParent QWidget parent + * @param windowFlags QWidget Window flags + */ + MapControl (QWidget * parent = 0, Qt::WindowFlags windowFlags = Qt::WindowFlags()); + + //! 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 moves the map. + * You can change the MouseMode at runtime, e.g. to 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 mouse events are handled + * @param showScale true if the scale should be displayed + * @param showCrossHairs true if crosshairs should be shown at the centre of the map + * @param parent QWidget parent + * @param windowFlags QWidget Window flags + */ + MapControl ( QSize size, MouseMode mousemode = Panning, bool showScale = false, bool showCrosshairs = true, QWidget * parent = 0, Qt::WindowFlags windowFlags = Qt::WindowFlags()); + + ~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 ); + + //! removes a layer + /*! + * Removes a layer and redraws existing layers + * @param layer the layer which should be removed + */ + void removeLayer ( 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 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 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; + + //! update screen + void updateView() const; + + //! enable mouse wheel events + /*! + * @parm enable mouse event + */ + void enableMouseWheelEvents( bool enabled = true ); + + //! returns mouse wheel allowed + /*! + * @return mouse wheel events enabled + */ + bool mouseWheelEventsEnabled(); + + //! 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 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; + + //! 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; + + //! 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 ( const Geometry* geometry ) const; + + //! 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 ); + + //! returns the current MouseMode + /*! + * For a explanation for the MouseModes see setMouseMode() + * @return the current MouseMode + */ + MapControl::MouseMode mouseMode(); + + //! 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 + * @param tileExpiry how long to keep in cache before requesting a new image. 0 or -1 to disable and keep forever + */ + void enablePersistentCache ( const QDir& path= QDir::homePath() + "/QMapControl.cache", const int qDiskSizeMB = 250 ); + + //! 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 + * @param username the proxy´s username + * @param password the proxy´s password + */ + void setProxy(QString host, int port, const QString username = QString(), const QString password = QString()); + + //! Displays the scale within the widget + /*! + * + * @param show true if the scale should be displayed + */ + void showScale ( bool visible ); + + void showCrosshairs ( bool visible ); + + //! Set whether to enable a view bounding box + /*! + * + * @param usebounds enable/disable use of bounding box + */ + void setUseBoundingBox( bool usebounds ); + + //! Check if bounding box is being used + /*! + * + * @return if bounding box is being used + */ + bool isBoundingBoxEnabled(); + + //! Set constraints for bounding box + /*! + * + * @param rect specified bounds for view to stay within + */ + void setBoundingBox( QRectF &rect ); + + //! Get current bounding box + /*! + * + * @return bounding box + */ + QRectF getBoundingBox(); + + //! Get viewport rect + /*! + * + * @return view port rect + */ + QRectF getViewport(); + + //! returns if a geometry is visible on viewport + /*! + * + * @param geometry the Geometry object to check + * @return true if geometry is visible + */ + bool isGeometryVisible( Geometry * geometry); + + //! returns loading images queue size + /*! + * + * @return int pending loading images (queue size) + */ + int loadingQueueSize(); + + //! returns the imagemanager pointer + /*! + * + * @return imagemanager pointer + */ + ImageManager* getImageManager(); + + private: + void __init(); + LayerManager* m_layermanager; + ImageManager* m_imagemanager; + + 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) + + QSize size; // size of the widget + + bool mouse_wheel_events; + bool mousepressed; + MouseMode mymousemode; + bool scaleVisible; + bool crosshairsVisible; + + bool m_loadingFlag; + + QMutex moveMutex; // used for method moveTo() + QPointF target; // used for method moveTo() + int steps; // used for method moveTo() + + QPixmap *m_doubleBuffer; + + QPointF clickToWorldCoordinate ( QPoint click ); + + Q_DISABLE_COPY( MapControl ) + + protected: + void paintEvent ( QPaintEvent* evnt ); + void mousePressEvent ( QMouseEvent* evnt ); + void mouseReleaseEvent ( QMouseEvent* evnt ); + void mouseMoveEvent ( QMouseEvent* evnt ); + void wheelEvent( QWheelEvent* evnt ); + + signals: + // 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 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, after the view have changed + /*! + * @param coordinate The current coordinate + * @param zoom The current zoom + */ + void viewChanged ( const QPointF &coordinate, int zoom ) const; + + public slots: + //! zooms in one step + void zoomIn(); + + //! zooms out one step + void zoomOut(); + + //! 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 right + void scrollRight ( int pixel=10 ); + + //! scrolls the view up + void scrollUp ( int pixel=10 ); + + //! scrolls the view down + void scrollDown ( int pixel=10 ); + + //! 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 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); + + private slots: + void tick(); + void loadingFinished(); + void positionChanged ( Geometry* geom ); + + }; +} +#endif diff --git a/libs/QMapControl/src/maplayer.cpp b/libs/QMapControl/src/maplayer.cpp new file mode 100644 index 00000000..904bd075 --- /dev/null +++ b/libs/QMapControl/src/maplayer.cpp @@ -0,0 +1,38 @@ +/* +* +* This file is part of QMapControl, +* an open-source cross-platform map widget +* +* Copyright (C) 2007 - 2008 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 . +* +* Contact e-mail: kaiwinter@gmx.de +* Program URL : http://qmapcontrol.sourceforge.net/ +* +*/ + +#include "maplayer.h" +namespace qmapcontrol +{ + MapLayer::MapLayer(QString layername, MapAdapter* mapadapter, bool takeevents) + : Layer(layername, mapadapter, Layer::MapLayer, takeevents) + { + } + + + MapLayer::~MapLayer() + { + } +} diff --git a/libs/QMapControl/src/maplayer.h b/libs/QMapControl/src/maplayer.h new file mode 100644 index 00000000..3febae31 --- /dev/null +++ b/libs/QMapControl/src/maplayer.h @@ -0,0 +1,66 @@ +/* +* +* This file is part of QMapControl, +* an open-source cross-platform map widget +* +* Copyright (C) 2007 - 2008 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 . +* +* Contact e-mail: kaiwinter@gmx.de +* Program URL : http://qmapcontrol.sourceforge.net/ +* +*/ + +#ifndef MAPLAYER_H +#define MAPLAYER_H + +#include "qmapcontrol_global.h" +#include "layer.h" + +namespace qmapcontrol +{ + //! MapLayer class + /*! + * There are two different layer types: + * - MapLayer: Displays Maps, but also Geometries. The configuration for displaying maps have to be done in the MapAdapter + * - GeometryLayer: Only displays Geometry objects. + * + * MapLayers also can display Geometry objects. The difference to the GeometryLayer is the repainting. Objects that are + * added to a MapLayer are "baken" on the map. This means, when you change it´s position for example the changes are + * not visible until a new offscreen image has been drawn. If you have "static" Geometries which won´t change their + * position this is fine. But if you want to change the objects position or pen you should use a GeometryLayer. Those + * are repainted immediately on changes. + * + * @author Kai Winter + */ + class QMAPCONTROL_EXPORT MapLayer : public Layer + { + Q_OBJECT + + public: + //! MapLayer constructor + /*! + * This is used to construct a map layer. + * + * @param layername The name of the Layer + * @param mapadapter The MapAdapter which does coordinate translation and Query-String-Forming + * @param takeevents Should the Layer receive MouseEvents? This is set to true by default. Setting it to false could + * be something like a "speed up hint" + */ + MapLayer(QString layername, MapAdapter* mapadapter, bool takeevents=true); + virtual ~MapLayer(); + }; +} +#endif diff --git a/libs/QMapControl/src/mapnetwork.cpp b/libs/QMapControl/src/mapnetwork.cpp new file mode 100644 index 00000000..7bd3cc15 --- /dev/null +++ b/libs/QMapControl/src/mapnetwork.cpp @@ -0,0 +1,214 @@ +/* +* +* This file is part of QMapControl, +* an open-source cross-platform map widget +* +* Copyright (C) 2007 - 2008 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 . +* +* Contact e-mail: kaiwinter@gmx.de +* Program URL : http://qmapcontrol.sourceforge.net/ +* +*/ + +#include "mapnetwork.h" +#include +#include +#include +#include + +#include + +namespace qmapcontrol +{ + MapNetwork::MapNetwork(ImageManager* parent) + : parent(parent), + http(new QNetworkAccessManager(this)), + loaded(0), + networkActive( false ), + cacheEnabled(false) + { + connect(http, SIGNAL(finished(QNetworkReply *)), this, SLOT(requestFinished(QNetworkReply *))); + } + + MapNetwork::~MapNetwork() + { + foreach(QNetworkReply *reply, replyList) + { + if(reply->isRunning()) + { + reply->abort(); + } + reply->deleteLater(); + reply = 0; + } + + http->deleteLater(); + http = 0; + } + + void MapNetwork::loadImage(const QString& host, const QString& url) + { + QString hostName = host; + QString portNumber = QString("80"); + + QRegExp r(".:."); + + if(r.indexIn(host) >= 0) + { + QStringList s = host.split(":"); + + hostName = s.at(0); + portNumber = s.at(1); + } + + QString finalUrl = QString("http://%1:%2%3").arg(hostName).arg(portNumber).arg(url); + QNetworkRequest request = QNetworkRequest(QUrl(finalUrl)); + + if( cacheEnabled ) + { + // prefer our cached version (if enabled) over fresh network query + request.setAttribute( QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::PreferCache ); + // Data obtained should be saved to cache for future uses + request.setAttribute( QNetworkRequest::CacheSaveControlAttribute, true ); + } + + request.setRawHeader("User-Agent", "Mozilla/5.0 (PC; U; Intel; Linux; en) AppleWebKit/420+ (KHTML, like Gecko)"); + + QMutexLocker lock(&vectorMutex); + replyList.append( http->get(request) ); + loadingMap.insert( finalUrl, url ); +} + + void MapNetwork::requestFinished(QNetworkReply *reply) + { + if (!reply) + { + //qDebug() << "MapNetwork::requestFinished - reply no longer valid"; + return; + } + + //qDebug() << "MapNetwork::requestFinished" << reply->url().toString(); + if (reply->error() == QNetworkReply::NoError) + { + QString id = reply->url().toString(); + // check if id is in map? + bool idInMap = false; + QString url; + { + QMutexLocker lock(&vectorMutex); + idInMap = loadingMap.contains(id); + if(idInMap) + { + url = loadingMap[id]; + loadingMap.remove(id); + } + } + + if (idInMap) + { + //qDebug() << "request finished for reply: " << reply << ", belongs to: " << url << endl; + QByteArray ax; + + if (reply->bytesAvailable()>0) + { + QPixmap pm; + ax = reply->readAll(); + + if (pm.loadFromData(ax) && pm.size().width() > 1 && pm.size().height() > 1) + { + loaded += pm.size().width()*pm.size().height()*pm.depth()/8/1024; + //qDebug() << "Network loaded: " << loaded << " width:" << pm.size().width() << " height:" <receivedImage(pm, url); + } + else + { + parent->fetchFailed(url); + } + } + } + } + + if (loadQueueSize() == 0) + { + //qDebug () << "all loaded"; + parent->loadingQueueEmpty(); + } + + QMutexLocker lock(&vectorMutex); + replyList.removeAll(reply); + + reply->deleteLater(); + reply = 0; + } + + int MapNetwork::loadQueueSize() const + { + QMutexLocker lock(&vectorMutex); + return loadingMap.size(); + } + + void MapNetwork::setDiskCache(QNetworkDiskCache *qCache) + { + cacheEnabled = (qCache != 0); + if (http) + { + http->setCache(qCache); + } + } + + void MapNetwork::abortLoading() + { + //qDebug() << "MapNetwork::abortLoading"; + // be sure that replyList is copied in case it's modified in another thread + QListIterator iter(replyList); + while(iter.hasNext()) + { + QNetworkReply *reply = iter.next(); + if (reply) + { + if(reply->isRunning()) + { + reply->abort(); + } + reply->deleteLater(); + reply = 0; + } + } + QMutexLocker lock(&vectorMutex); + replyList.clear(); + loadingMap.clear(); + } + + bool MapNetwork::imageIsLoading(QString url) + { + QMutexLocker lock(&vectorMutex); + return loadingMap.values().contains(url); + } + + void MapNetwork::setProxy(const QString host, const int port, const QString username, const QString password) + { + // do not set proxy on qt/extended +#ifndef Q_WS_QWS + if (http) + { + QNetworkProxy proxy = QNetworkProxy( QNetworkProxy::HttpProxy, host, port ); + proxy.setUser( username ); + proxy.setPassword( password ); + http->setProxy( proxy ); + } +#endif + } +} diff --git a/libs/QMapControl/src/mapnetwork.h b/libs/QMapControl/src/mapnetwork.h new file mode 100644 index 00000000..ec360647 --- /dev/null +++ b/libs/QMapControl/src/mapnetwork.h @@ -0,0 +1,105 @@ +/* +* +* This file is part of QMapControl, +* an open-source cross-platform map widget +* +* Copyright (C) 2007 - 2008 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 . +* +* Contact e-mail: kaiwinter@gmx.de +* Program URL : http://qmapcontrol.sourceforge.net/ +* +*/ + +#ifndef MAPNETWORK_H +#define MAPNETWORK_H + +#include "qmapcontrol_global.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "imagemanager.h" + +/** + @author Kai Winter + */ +namespace qmapcontrol +{ + class ImageManager; + class QMAPCONTROL_EXPORT MapNetwork : QObject + { + Q_OBJECT + + public: + MapNetwork(ImageManager* parent); + ~MapNetwork(); + + void loadImage(const QString& host, const QString& url); + + /*! + * checks if the given url is already loading + * @param url the url of the image + * @return boolean, if the image is already loading + */ + bool imageIsLoading(QString url); + + /*! + * Aborts all current loading threads. + * This is useful when changing the zoom-factor, though newly needed images loads faster + */ + void abortLoading(); + void setProxy(QString host, int port, const QString username = QString(), const QString password = QString()); + + /*! + * + * @return number of elements in the load queue + */ + int loadQueueSize() const; + + /*! + * + * @return next free http downloader thread + */ + QNetworkAccessManager* nextFreeHttp(); + + /*! + * sets the disk cache for each network manager + * @param qCache the disk cache object to set + */ + void setDiskCache( QNetworkDiskCache* qCache ); + + private: + Q_DISABLE_COPY (MapNetwork) + + ImageManager* parent; + QNetworkAccessManager* http; + QList replyList; + QMap loadingMap; + qreal loaded; + mutable QMutex vectorMutex; + bool networkActive; + bool cacheEnabled; + + private slots: + void requestFinished(QNetworkReply *reply); + }; +} +#endif diff --git a/libs/QMapControl/src/openaerialmapadapter.cpp b/libs/QMapControl/src/openaerialmapadapter.cpp new file mode 100644 index 00000000..5bc49355 --- /dev/null +++ b/libs/QMapControl/src/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 . +* +* 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() + { + } +} diff --git a/libs/QMapControl/src/openaerialmapadapter.h b/libs/QMapControl/src/openaerialmapadapter.h new file mode 100644 index 00000000..f2e1b529 --- /dev/null +++ b/libs/QMapControl/src/openaerialmapadapter.h @@ -0,0 +1,50 @@ +/* +* +* 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 . +* +* Contact e-mail: kaiwinter@gmx.de +* Program URL : http://qmapcontrol.sourceforge.net/ +* +*/ + +#ifndef OPENAERIALMAPADAPTER_H +#define OPENAERIALMAPADAPTER_H + +#include "qmapcontrol_global.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 + */ + class QMAPCONTROL_EXPORT OpenAerialMapAdapter : public TileMapAdapter + { + Q_OBJECT + public: + //! constructor + /*! + * This construct a OpenAerialMap Adapter + */ + OpenAerialMapAdapter(); + virtual ~OpenAerialMapAdapter(); + }; +} +#endif diff --git a/libs/QMapControl/src/osmmapadapter.cpp b/libs/QMapControl/src/osmmapadapter.cpp new file mode 100644 index 00000000..6be83a0e --- /dev/null +++ b/libs/QMapControl/src/osmmapadapter.cpp @@ -0,0 +1,37 @@ +/* +* +* This file is part of QMapControl, +* an open-source cross-platform map widget +* +* Copyright (C) 2007 - 2008 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 . +* +* Contact e-mail: kaiwinter@gmx.de +* Program URL : http://qmapcontrol.sourceforge.net/ +* +*/ + +#include "osmmapadapter.h" +namespace qmapcontrol +{ + OSMMapAdapter::OSMMapAdapter() + : TileMapAdapter("tile.openstreetmap.org", "/%1/%2/%3.png", 256, 0, 17) + { + } + + OSMMapAdapter::~OSMMapAdapter() + { + } +} diff --git a/libs/QMapControl/src/osmmapadapter.h b/libs/QMapControl/src/osmmapadapter.h new file mode 100644 index 00000000..18d5bcec --- /dev/null +++ b/libs/QMapControl/src/osmmapadapter.h @@ -0,0 +1,50 @@ +/* +* +* This file is part of QMapControl, +* an open-source cross-platform map widget +* +* Copyright (C) 2007 - 2008 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 . +* +* Contact e-mail: kaiwinter@gmx.de +* Program URL : http://qmapcontrol.sourceforge.net/ +* +*/ + +#ifndef OSMMAPADAPTER_H +#define OSMMAPADAPTER_H + +#include "qmapcontrol_global.h" +#include "tilemapadapter.h" +namespace qmapcontrol +{ + //! MapAdapter for OpenStreetMap + /*! + * This is a conveniece class, which extends and configures a TileMapAdapter + * @author Kai Winter + */ + class QMAPCONTROL_EXPORT OSMMapAdapter : public TileMapAdapter + { + Q_OBJECT + public: + //! constructor + /*! + * This construct a OpenStreetmap Adapter + */ + OSMMapAdapter(); + virtual ~OSMMapAdapter(); + }; +} +#endif diff --git a/libs/QMapControl/src/point.cpp b/libs/QMapControl/src/point.cpp new file mode 100644 index 00000000..59f85f10 --- /dev/null +++ b/libs/QMapControl/src/point.cpp @@ -0,0 +1,372 @@ +/* +* +* This file is part of QMapControl, +* an open-source cross-platform map widget +* +* Copyright (C) 2007 - 2008 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 . +* +* Contact e-mail: kaiwinter@gmx.de +* Program URL : http://qmapcontrol.sourceforge.net/ +* +*/ + +#include "point.h" +namespace qmapcontrol +{ + Point::Point() + {} + Point::Point(const Point& point) + :Geometry(point.name()), X(point.longitude()), Y(point.latitude()) + { + visible = point.isVisible(); + mywidget = 0; + mypixmap = QPixmap(); + mypen = point.mypen; + homelevel = -1; + minsize = QSize(-1,-1); + maxsize = QSize(-1,-1); + } + + Point::Point(qreal x, qreal y, QString name, enum Alignment alignment) + : Geometry(name), X(x), Y(y), myalignment(alignment) + { + GeometryType = "Point"; + mywidget = 0; + mypixmap = QPixmap(); + visible = true; + homelevel = -1; + minsize = QSize(-1,-1); + maxsize = QSize(-1,-1); + } + + Point::Point(qreal x, qreal y, QWidget* widget, QString name, enum Alignment alignment) + : Geometry(name), X(x), Y(y), mywidget(widget), myalignment(alignment) + { + // Point(x, y, name, alignment); + GeometryType = "Point"; + mypixmap = QPixmap(); + visible = true; + size = widget->size(); + homelevel = -1; + minsize = QSize(-1,-1); + maxsize = QSize(-1,-1); + + if(mywidget!=0) + { + mywidget->show(); + } + } + Point::Point(qreal x, qreal y, QPixmap pixmap, QString name, enum Alignment alignment) + : Geometry(name), X(x), Y(y), mypixmap(pixmap), myalignment(alignment) + { + GeometryType = "Point"; + mywidget = 0; + visible = true; + size = pixmap.size(); + homelevel = -1; + minsize = QSize(-1,-1); + maxsize = QSize(-1,-1); + } + /* + Point& Point::operator=(const Point& rhs) + { + if (this == &rhs) + return *this; + else + { + X = rhs.X; + Y = rhs.Y; + size = rhs.size; + + mywidget = rhs.mywidget; + mypixmap = rhs.mypixmap; + alignment = rhs.alignment; + homelevel = rhs.homelevel; + minsize = rhs.minsize; + maxsize = rhs.maxsize; +} +} +*/ + Point::~Point() + { + if(mywidget!=0) + { + delete mywidget; + mywidget = 0; + } + } + + void Point::setPixmap( QPixmap qPixmap ) + { + mypixmap = qPixmap; + size = mypixmap.size(); + + //forces redraw + emit(updateRequest(QRectF(X, Y, size.width(), size.height()))); + emit(positionChanged(this)); + } + + void Point::setVisible(bool visible) + { + this->visible = visible; + if (mywidget !=0) + { + mywidget->setVisible(visible); + } + } + + QRectF Point::boundingBox() + { + qreal minlon=180; + qreal maxlon=-180; + qreal minlat=90; + qreal maxlat=-90; + + if (longitude() < minlon) minlon = longitude(); + if (longitude() > maxlon) maxlon = longitude(); + if (latitude() < minlat) minlat = latitude(); + if (latitude() > maxlat) maxlat = latitude(); + + QPointF min = QPointF(minlon, minlat); + QPointF max = QPointF(maxlon, maxlat); + QPointF dist = max - min; + QSizeF si = QSizeF(dist.x(), dist.y()); + + return QRectF(min, si); + } + + qreal Point::longitude() const + { + return X; + } + qreal Point::latitude() const + { + return Y; + } + QPointF Point::coordinate() const + { + return QPointF(X, Y); + } + + void Point::draw(QPainter* painter, const MapAdapter* mapadapter, const QRect &viewport, const QPoint offset) + { + if (!visible) + return; + + if (homelevel > 0) + { + + int currentzoom = mapadapter->maxZoom() < mapadapter->minZoom() ? mapadapter->minZoom() - mapadapter->currentZoom() : mapadapter->currentZoom(); + + // int currentzoom = mapadapter->getZoom(); + int diffzoom = homelevel-currentzoom; + int viewheight = size.height(); + int viewwidth = size.width(); + viewheight = int(viewheight / pow(2.0, diffzoom)); + viewwidth = int(viewwidth / pow(2.0, diffzoom)); + + if (minsize.height()!= -1 && viewheight < minsize.height()) + viewheight = minsize.height(); + else if (maxsize.height() != -1 && viewheight > maxsize.height()) + viewheight = maxsize.height(); + + + if (minsize.width()!= -1 && viewwidth < minsize.width()) + viewwidth = minsize.width(); + else if (maxsize.width() != -1 && viewwidth > maxsize.width()) + viewwidth = maxsize.width(); + + displaysize = QSize(viewwidth, viewheight); + } + else + { + displaysize = size; + } + + + if (mypixmap.size().width() > 0) + { + const QPointF c = QPointF(X, Y); + QPoint point = mapadapter->coordinateToDisplay(c); + + if (viewport.contains(point)) + { + QPoint alignedtopleft = alignedPoint(point); + painter->drawPixmap(alignedtopleft.x(), alignedtopleft.y(), displaysize.width(), displaysize.height(), mypixmap); + } + + } + else if (mywidget!=0) + { + drawWidget(mapadapter, offset); + } + + } + + void Point::drawWidget(const MapAdapter* mapadapter, const QPoint offset) + { + const QPointF c = QPointF(X, Y); + QPoint point = mapadapter->coordinateToDisplay(c); + point -= offset; + + QPoint alignedtopleft = alignedPoint(point); + + if (mywidget!=0) + { + mywidget->setGeometry(alignedtopleft.x(), alignedtopleft.y(), displaysize.width(), displaysize.height()); + } + } + + QPoint Point::alignedPoint(const QPoint point) const + { + QPoint alignedtopleft; + if (myalignment == Middle) + { + alignedtopleft.setX(point.x()-displaysize.width()/2); + alignedtopleft.setY(point.y()-displaysize.height()/2); + } + else if (myalignment == TopLeft) + { + alignedtopleft.setX(point.x()); + alignedtopleft.setY(point.y()); + } + else if (myalignment == TopRight) + { + alignedtopleft.setX(point.x()-displaysize.width()); + alignedtopleft.setY(point.y()); + } + else if (myalignment == BottomLeft) + { + alignedtopleft.setX(point.x()); + alignedtopleft.setY(point.y()-displaysize.height()); + } + else if (myalignment == BottomRight) + { + alignedtopleft.setX(point.x()-displaysize.width()); + alignedtopleft.setY(point.y()-displaysize.height()); + } + else if (myalignment == BottomMiddle) + { + alignedtopleft.setX(point.x()-displaysize.width()/2); + alignedtopleft.setY(point.y()-displaysize.height()); + } + else if (myalignment == TopMiddle) + { + alignedtopleft.setX(point.x()-displaysize.width()/2); + alignedtopleft.setY(point.y()); + } + return alignedtopleft; + } + + bool Point::Touches(Point* click, const MapAdapter* mapadapter) + { + if (this->isVisible() == false) + return false; + + if ( !click || !mapadapter ) + return false; + + if (points().size() < 1) + { + return false; + } + + QPointF clickPt = mapadapter->coordinateToDisplay(click->coordinate()); + qreal halfwidth = 2; // use 2 pixels by default + if (mypixmap.width() > 0) + { + halfwidth = static_cast (mypixmap.width()) / static_cast (2); + } + + QPointF pt1 = mapadapter->coordinateToDisplay(coordinate()); + qreal pt1x1 = pt1.x() - halfwidth; + qreal pt1x2 = pt1.x() + halfwidth; + qreal pt1y1 = pt1.y() - halfwidth; + qreal pt1y2 = pt1.y() + halfwidth; + + QPointF pt2 = mapadapter->coordinateToDisplay(coordinate()); + qreal pt2x1 = pt2.x() - halfwidth; + qreal pt2x2 = pt2.x() + halfwidth; + qreal pt2y1 = pt2.y() - halfwidth; + qreal pt2y2 = pt2.y() + halfwidth; + + // build lazy bounding box + qreal upperLeftX = qMin(pt1x1, qMin(pt1x2, qMin(pt2x1, pt2x2))); + qreal upperLeftY = qMin(pt1y1, qMin(pt1y2, qMin(pt2y1, pt2y2))); + qreal lowerRightX = qMax(pt1x1, qMax(pt1x2, qMax(pt2x1, pt2x2))); + qreal lowerRightY = qMax(pt1y1, qMax(pt1y2, qMax(pt2y1, pt2y2))); + QRectF bounds(QPointF(upperLeftX, upperLeftY), QPointF(lowerRightX, + lowerRightY)); + + if ( bounds.contains(clickPt) ) + { + emit(geometryClicked(this, QPoint(0, 0))); + return true; + } + + return false; + } + + void Point::setCoordinate(QPointF point) + { + if ( X == point.x() && + Y == point.y() ) + { + //no change, prevent unessessary update/redraw + return; + } + + X = point.x(); + Y = point.y(); + + emit(updateRequest(QRectF(X, Y, size.width(), size.height()))); + emit(positionChanged(this)); + } + QList Point::points() + { + //TODO: assigning temp?! + QList points; + points.append(this); + return points; + } + + QWidget* Point::widget() + { + return mywidget; + } + + QPixmap Point::pixmap() + { + return mypixmap; + } + + void Point::setBaselevel(int zoomlevel) + { + homelevel = zoomlevel; + } + void Point::setMinsize(QSize minsize) + { + this->minsize = minsize; + } + void Point::setMaxsize(QSize maxsize) + { + this->maxsize = maxsize; + } + Point::Alignment Point::alignment() const + { + return myalignment; + } +} diff --git a/libs/QMapControl/src/point.h b/libs/QMapControl/src/point.h new file mode 100644 index 00000000..b41a2296 --- /dev/null +++ b/libs/QMapControl/src/point.h @@ -0,0 +1,228 @@ +/* +* +* This file is part of QMapControl, +* an open-source cross-platform map widget +* +* Copyright (C) 2007 - 2008 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 . +* +* Contact e-mail: kaiwinter@gmx.de +* Program URL : http://qmapcontrol.sourceforge.net/ +* +*/ + +#ifndef POINT_H +#define POINT_H + +//#include "qglobal.h" +#if QT_VERSION >= 0x050000 + // Qt5 code + //#include +#else + // Qt4 code + #include +#endif + +#include "qmapcontrol_global.h" +#include "geometry.h" + +namespace qmapcontrol +{ + //! A geometric point to draw objects into maps + /*! + * This class can be used to draw your custom QPixmap or other QWidgets into maps. + * You can instantiate a Point with any Pixmap you want. The objects cares about collision detection (for clickable objects) + * + * When drawing a pixmap, take care you are adding the point to a GeometryLayer. + * You can also add a point to a MapLayer, but this should only be done, if the point is not changing its position or color etc. + * (GeometryLayers are assured to be repainted on any changes at the point. MapLayers only gets repainted, if a new + * offscreenImage is painter. This is a performance issue.) + * + * Points emit click events, if the containing layer receives clickevents (the default) + * + * You can also add a widget into maps. But keep in mind, that widgets always are drawn on top of all layers. + * You also have to handle click events yourself. + * + * To create "zoomable objects" (objects that increases size on zooming), a base level have to be set. + * The base level is the zoom level on which the point´s pixmap gets displayed on full size. + * On lower zoom levels it gets displayed smaller and on higher zoom levels larger. + * A minimal size can be set as well as a maximum size. + * @see setBaselevel, setMinsize, setMaxsize + * + * @author Kai Winter + */ + class QMAPCONTROL_EXPORT Point : public Geometry + { + Q_OBJECT + + public: + friend class Layer; + friend class LineString; + + //! sets where the point should be aligned + enum Alignment + { + TopLeft, /*!< Align on TopLeft*/ + TopRight, /*!< Align on TopRight*/ + TopMiddle, /*!< Align on TopLeft*/ + BottomLeft, /*!< Align on BottomLeft*/ + BottomRight,/*!< Align on BottomRight*/ + BottomMiddle, /*!< Align on BottomMiddle*/ + Middle /*!< Align on Middle*/ + }; + + Point(); + explicit Point(const Point&); + //! Copy Constructor + /*! + * This constructor creates a Point with no image or widget. + * @param x longitude + * @param y latitude + * @param name name of the point + * @param alignment alignment of the point (Middle or TopLeft) + */ + Point(qreal x, qreal y, QString name = QString(), enum Alignment alignment=Middle); + + //! Constructor + /*! + * This constructor creates a point which will display the given widget. + * You can set an alignment on which corner the widget should be aligned to the coordinate. + * You have to set the size of the widget, before adding it to + * IMPORTANT: You have to set the QMapControl as parent for the widget! + * @param x longitude + * @param y latitude + * @param widget the widget which should be displayed by this point + * @param name name of the point + * @param alignment allignment of the point (Middle or TopLeft) + */ + Point(qreal x, qreal y, QWidget* widget, QString name = QString(), enum Alignment alignment = Middle); + + //! Constructor + /*! + * This constructor creates a point which will display the give pixmap. + * You can set an alignment on which corner the pixmap should be aligned to the coordinate. + * @param x longitude + * @param y latitude + * @param pixmap the pixmap which should be displayed by this point + * @param name name of the point + * @param alignment allignment of the point (Middle or TopLeft) + */ + Point(qreal x, qreal y, QPixmap pixmap, QString name = QString(), enum Alignment alignment = Middle); + virtual ~Point(); + + //! returns the bounding box of the point + /*! + * The Bounding contains the coordinate of the point and its size. + * The size is set, if the point contains a pixmap or a widget + * @return the bounding box of the point + */ + virtual QRectF boundingBox(); + + //! returns the longitude of the point + /*! + * @return the longitude of the point + */ + qreal longitude() const; + + //! returns the latitude of the point + /*! + * @return the latitude of the point + */ + qreal latitude() const; + + //! returns the coordinate of the point + /*! + * The x component of the returned QPointF is the longitude value, + * the y component the latitude + * @return the coordinate of a point + */ + QPointF coordinate() const; + + virtual QList points(); + + /*! \brief returns the widget of the point + @return the widget of the point + */ + QWidget* widget(); + + //! returns the pixmap of the point + /*! + * @return the pixmap of the point + */ + QPixmap pixmap(); + + //! Sets the zoom level on which the points 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 + * @see setMinsize, setMaxsize + * @param zoomlevel the zoomlevel on which the point will be displayed on full size + */ + void setBaselevel(int zoomlevel); + + //! sets a minimal size for the pixmap + /*! + * 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 + */ + void setMinsize(QSize minsize); + + //! sets a maximal size for the pixmap + /*! + * When the point´s pixmap should change its size on zooming, this method sets the maximal size. + * @see setBaselevel + * @param maxsize the maximal size which the pixmap should have + */ + void setMaxsize(QSize maxsize); + + Point::Alignment alignment() const; + + virtual void setPixmap( QPixmap qPixmap ); + + protected: + qreal X; + qreal Y; + QSize size; + + QWidget* mywidget; + QPixmap mypixmap; + Alignment myalignment; + int homelevel; + QSize displaysize; + QSize minsize; + QSize maxsize; + + + void drawWidget(const MapAdapter* mapadapter, const QPoint offset); + // void drawPixmap(QPainter* painter, const MapAdapter* mapadapter, const QRect &viewport, const QPoint versch); + virtual void draw(QPainter* painter, const MapAdapter* mapadapter, const QRect &viewport, const QPoint offset); + QPoint alignedPoint(const QPoint point) const; + + //! returns true if the given Point touches this Point + /*! + * The collision detection checks for the bounding rectangulars. + * @param geom the other point which should be tested on collision + * @param mapadapter the mapadapter which is used for calculations + * @return + */ + virtual bool Touches(Point* p, const MapAdapter* mapadapter); + + public slots: + void setCoordinate(QPointF point); + virtual void setVisible(bool visible); + }; +} +#endif diff --git a/libs/QMapControl/src/qmapcontrol_global.h b/libs/QMapControl/src/qmapcontrol_global.h new file mode 100644 index 00000000..dd5608d1 --- /dev/null +++ b/libs/QMapControl/src/qmapcontrol_global.h @@ -0,0 +1,7 @@ +#include + +#ifdef QMAPCONTROL_LIBRARY +# define QMAPCONTROL_EXPORT Q_DECL_EXPORT +#else +# define QMAPCONTROL_EXPORT Q_DECL_IMPORT +#endif diff --git a/libs/QMapControl/src/tilemapadapter.cpp b/libs/QMapControl/src/tilemapadapter.cpp new file mode 100644 index 00000000..fb7f4831 --- /dev/null +++ b/libs/QMapControl/src/tilemapadapter.cpp @@ -0,0 +1,189 @@ +/* +* +* This file is part of QMapControl, +* an open-source cross-platform map widget +* +* Copyright (C) 2007 - 2008 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 . +* +* Contact e-mail: kaiwinter@gmx.de +* Program URL : http://qmapcontrol.sourceforge.net/ +* +*/ + +#include "tilemapadapter.h" +namespace qmapcontrol +{ + TileMapAdapter::TileMapAdapter(const QString& host, const QString& serverPath, int tilesize, int minZoom, int maxZoom) + :MapAdapter(host, serverPath, tilesize, minZoom, maxZoom) + { + PI = acos(-1.0); + + /* + Initialize the "substring replace engine". First the string replacement + in getQuery was made by QString().arg() but this was very slow. So this + splits the servers path into substrings and when calling getQuery the + substrings get merged with the parameters of the URL. + Pretty complicated, but fast. + */ + param1 = serverPath.indexOf("%1"); + param2 = serverPath.indexOf("%2"); + param3 = serverPath.indexOf("%3"); + + int min = param1 < param2 ? param1 : param2; + min = param3 < min ? param3 : min; + + int max = param1 > param2 ? param1 : param2; + max = param3 > max ? param3 : max; + + int middle = param1+param2+param3-min-max; + + order[0][0] = min; + if (min == param1) + order[0][1] = 0; + else if (min == param2) + order[0][1] = 1; + else + order[0][1] = 2; + + order[1][0] = middle; + if (middle == param1) + order[1][1] = 0; + else if (middle == param2) + order[1][1] = 1; + else + order[1][1] = 2; + + order[2][0] = max; + if (max == param1) + order[2][1] = 0; + else if(max == param2) + order[2][1] = 1; + else + order[2][1] = 2; + + int zoom = mMax_zoom < mMin_zoom ? mMin_zoom - mCurrent_zoom : mCurrent_zoom; + mNumberOfTiles = tilesonzoomlevel(zoom); + loc.setNumberOptions(QLocale::OmitGroupSeparator); + } + + TileMapAdapter::~TileMapAdapter() + { + } + //TODO: pull out + void TileMapAdapter::zoom_in() + { + if (mMin_zoom > mMax_zoom) + { + //mCurrent_zoom = mCurrent_zoom-1; + mCurrent_zoom = mCurrent_zoom > mMax_zoom ? mCurrent_zoom-1 : mMax_zoom; + } + else if (mMin_zoom < mMax_zoom) + { + //mCurrent_zoom = mCurrent_zoom+1; + mCurrent_zoom = mCurrent_zoom < mMax_zoom ? mCurrent_zoom+1 : mMax_zoom; + } + + int zoom = mMax_zoom < mMin_zoom ? mMin_zoom - mCurrent_zoom : mCurrent_zoom; + mNumberOfTiles = tilesonzoomlevel(zoom); + + } + void TileMapAdapter::zoom_out() + { + if (mMin_zoom > mMax_zoom) + { + //mCurrent_zoom = mCurrent_zoom+1; + mCurrent_zoom = mCurrent_zoom < mMin_zoom ? mCurrent_zoom+1 : mMin_zoom; + } + else if (mMin_zoom < mMax_zoom) + { + //mCurrent_zoom = mCurrent_zoom-1; + mCurrent_zoom = mCurrent_zoom > mMin_zoom ? mCurrent_zoom-1 : mMin_zoom; + } + + int zoom = mMax_zoom < mMin_zoom ? mMin_zoom - mCurrent_zoom : mCurrent_zoom; + mNumberOfTiles = tilesonzoomlevel(zoom); + } + + qreal TileMapAdapter::deg_rad(qreal x) const + { + return x * (PI/180.0); + } + qreal TileMapAdapter::rad_deg(qreal x) const + { + return x * (180/PI); + } + + QString TileMapAdapter::query(int x, int y, int z) const + { + x = xoffset(x); + y = yoffset(y); + + int a[3] = {z, x, y}; + return QString(serverPath().replace(order[2][0],2, loc.toString(a[order[2][1]])) + .replace(order[1][0],2, loc.toString(a[order[1][1]])) + .replace(order[0][0],2, loc.toString(a[order[0][1]]))); + + } + + QPoint TileMapAdapter::coordinateToDisplay(const QPointF& coordinate) const + { + qreal x = (coordinate.x()+180) * (mNumberOfTiles*mTileSize)/360.; // coord to pixel! + qreal y = (1-(log(tan(PI/4+deg_rad(coordinate.y())/2)) /PI)) /2 * (mNumberOfTiles*mTileSize); + + return QPoint(int(x), int(y)); + } + + QPointF TileMapAdapter::displayToCoordinate(const QPoint& point) const + { + qreal longitude = (point.x()*(360/(mNumberOfTiles*mTileSize)))-180; + qreal latitude = rad_deg(atan(sinh((1-point.y()*(2/(mNumberOfTiles*mTileSize)))*PI))); + + return QPointF(longitude, latitude); + + } + + bool TileMapAdapter::isTileValid(int x, int y, int z) const + { + if (mMax_zoom < mMin_zoom) + { + z= mMin_zoom - z; + } + + if (x<0 || x > (1 << z)-1 || + y<0 || y > (1 << z)-1) + { + return false; + } + + return true; + + } + + int TileMapAdapter::tilesonzoomlevel(int zoomlevel) const + { + return int(pow(2.0, zoomlevel)); + } + + int TileMapAdapter::xoffset(int x) const + { + return x; + } + + int TileMapAdapter::yoffset(int y) const + { + return y; + } +} diff --git a/libs/QMapControl/src/tilemapadapter.h b/libs/QMapControl/src/tilemapadapter.h new file mode 100644 index 00000000..7ab34994 --- /dev/null +++ b/libs/QMapControl/src/tilemapadapter.h @@ -0,0 +1,77 @@ +/* +* +* This file is part of QMapControl, +* an open-source cross-platform map widget +* +* Copyright (C) 2007 - 2008 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 . +* +* Contact e-mail: kaiwinter@gmx.de +* Program URL : http://qmapcontrol.sourceforge.net/ +* +*/ + +#ifndef TILEMAPADAPTER_H +#define TILEMAPADAPTER_H + +#include "qmapcontrol_global.h" +#include "mapadapter.h" + +namespace qmapcontrol +{ + //! MapAdapter for servers with image tiles + /*! + * Use this derived MapAdapter to display maps from OpenStreetMap + * @author Kai Winter + */ + class QMAPCONTROL_EXPORT TileMapAdapter : public MapAdapter + { + Q_OBJECT + public: + //! constructor + /*! + * Sample of a correct initialization of a MapAdapter:
      + * TileMapAdapter* ta = new TileMapAdapter("192.168.8.1", "/img/img_cache.php/%1/%2/%3.png", 256, 0,17);
      + * The placeholders %1, %2, %3 stands for x, y, z
      + * The minZoom is 0 (means the whole world is visible). The maxZoom is 17 (means it is zoomed in to the max) + * @param host The servers URL + * @param serverPath The path to the tiles with placeholders + * @param tilesize the size of the tiles + * @param minZoom the minimum zoom level + * @param maxZoom the maximum zoom level + */ + TileMapAdapter(const QString& host, const QString& serverPath, int tilesize, int minZoom = 0, int maxZoom = 17); + + virtual ~TileMapAdapter(); + + virtual QPoint coordinateToDisplay(const QPointF&) const; + virtual QPointF displayToCoordinate(const QPoint&) const; + + qreal PI; + + protected: + qreal rad_deg(qreal) const; + qreal deg_rad(qreal) const; + + virtual bool isTileValid(int x, int y, int z) const; + virtual void zoom_in(); + virtual void zoom_out(); + virtual QString query(int x, int y, int z) const; + virtual int tilesonzoomlevel(int zoomlevel) const; + virtual int xoffset(int x) const; + virtual int yoffset(int y) const; + }; +} +#endif diff --git a/libs/QMapControl/src/wmsmapadapter.cpp b/libs/QMapControl/src/wmsmapadapter.cpp new file mode 100644 index 00000000..de0d6591 --- /dev/null +++ b/libs/QMapControl/src/wmsmapadapter.cpp @@ -0,0 +1,212 @@ +/* +* +* This file is part of QMapControl, +* an open-source cross-platform map widget +* +* Copyright (C) 2007 - 2008 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 . +* +* Contact e-mail: kaiwinter@gmx.de +* Program URL : http://qmapcontrol.sourceforge.net/ +* +*/ + +#include "wmsmapadapter.h" +#include + +namespace qmapcontrol +{ + WMSMapAdapter::WMSMapAdapter(QString host, QString serverPath, int tilesize) + : MapAdapter(host, serverPath, tilesize, 0, 17) + { + mNumberOfTiles = pow(2.0, mCurrent_zoom); + coord_per_x_tile = 360. / mNumberOfTiles; + coord_per_y_tile = 180. / mNumberOfTiles; + changeHostAddress( host, serverPath ); + + loc = QLocale(QLocale::English); + loc.setNumberOptions( QLocale::OmitGroupSeparator ); + setBoundingBox( -180, -90, 180, 90 ); + + qreal res = 0.703125; + for( int z = 0; z < 17; z++ ) + { + mResolutions[z] = res; + res = res / 2; + } + + } + + WMSMapAdapter::~WMSMapAdapter() + { + } + + void WMSMapAdapter::changeHostAddress( const QString qHost, const QString qServerPath ) + { + mServerOptions.clear(); + QString serverPathPrefix; + + if ( qServerPath.contains("?") && + qServerPath.split("?").size() > 1 ) + { + serverPathPrefix = qServerPath.split("?").at( 0 ); + foreach( QString opt, qServerPath.split("?").at(1).split("&") ) + { + if (opt.contains( "=")) + { + mServerOptions[ opt.split("=").at(0).toUpper() ] = opt.split("=").at(1); + } + } + } + else + { + serverPathPrefix = "/wms/"; + } + + MapAdapter::changeHostAddress(qHost,serverPathPrefix); + + //force expected parameters + if (!mServerOptions.contains("VERSION")) + { + mServerOptions["VERSION"] = "1.1.1"; + } + if (!mServerOptions.contains("TRANSPARENT")) + { + mServerOptions["TRANSPARENT"]= "TRUE"; + } + //if (!mServerOptions.contains("LAYERS")) + //{ + // mServerOptions["LAYERS"] = TBD; + //} + if (!mServerOptions.contains("SRS") && + !mServerOptions.contains("CRS")) + { + mServerOptions["SRS"] = "EPSG:4326"; + //mServerOptions["SRS"] = "EPSG:900913"; //google mercator + //mServerOptions["SRS"] = "EPSG:3857"; //EPSG:3857 is a Spherical Mercator projection + } + if (!mServerOptions.contains("STYLES")) + { + mServerOptions["STYLES"]= QString(); + } + if (!mServerOptions.contains("FORMAT")) + { + mServerOptions["FORMAT"] = "IMAGE/PNG"; + } + + mServerOptions["SRS"] = "EPSG:4326"; //mercator + mServerOptions["SERVICE"]= "WMS"; + mServerOptions["TILED"]= "TRUE"; + mServerOptions["REQUEST"]= "GetMap"; + mServerOptions["WIDTH"]= loc.toString(tilesize()); + mServerOptions["HEIGHT"]= loc.toString(tilesize()); + mServerOptions.remove("BBOX"); //added at time of query string + } + + QString WMSMapAdapter::serverPath() const + { + QString urlPath; + + foreach( QString key, mServerOptions.keys() ) + { + if (!urlPath.isEmpty()) + { + urlPath.append("&"); + } + urlPath.append( QString("%1=%2").arg( key ).arg( mServerOptions[key] ) ); + } + + return QString("%1?%2").arg( MapAdapter::serverPath() ).arg( urlPath ); + } + + QPoint WMSMapAdapter::coordinateToDisplay(const QPointF& coordinate) const + { + qreal x = (coordinate.x()+180) * (mNumberOfTiles*mTileSize)/360.; // coord to pixel! + qreal y = -1*(coordinate.y()-90) * (mNumberOfTiles*mTileSize)/180.; // coord to pixel! + return QPoint(int(x), int(y)); + } + QPointF WMSMapAdapter::displayToCoordinate(const QPoint& point) const + { + qreal lon = (point.x()*(360./(mNumberOfTiles*mTileSize)))-180; + qreal lat = -(point.y()*(180./(mNumberOfTiles*mTileSize)))+90; + return QPointF(lon, lat); + } + void WMSMapAdapter::zoom_in() + { + mCurrent_zoom+=1; + mNumberOfTiles = pow(2.0, mCurrent_zoom); + coord_per_x_tile = 360. / mNumberOfTiles; + coord_per_y_tile = 180. / mNumberOfTiles; + } + void WMSMapAdapter::zoom_out() + { + mCurrent_zoom-=1; + mNumberOfTiles = pow(2.0, mCurrent_zoom); + coord_per_x_tile = 360. / mNumberOfTiles; + coord_per_y_tile = 180. / mNumberOfTiles; + } + + bool WMSMapAdapter::isTileValid(int /*x*/, int /*y*/, int /*z*/) const + { + // if (x>0 && y>0 && z>0) + { + return true; + } + // return false; + } + QString WMSMapAdapter::query(int i, int j, int /*z*/) const + { + return getQ(-180+i*coord_per_x_tile, + 90-(j+1)*coord_per_y_tile, + -180+i*coord_per_x_tile+coord_per_x_tile, + 90-(j+1)*coord_per_y_tile+coord_per_y_tile); + } + + QString WMSMapAdapter::getQ(qreal ux, qreal uy, qreal ox, qreal oy) const + { + qreal x1 = ux; + qreal y1 = uy; + qreal x2 = ox; + qreal y2 = oy; + + //if ( mServerOptions["SRS"].toUpper() == "EPSG:4326" ) + //{ + // if ( x1 < 0 ) + // { + // x1 += 180; + // } + // if ( x1 > 360 ) + // { + // x1 -= 180; + // } + + // if ( x2 < 0 ) + // { + // x2 += 180; + // } + // if ( x2 > 360 ) + // { + // x2 -= 180; + // } + //} + + return QString("%1&BBOX=%2,%3,%4,%5") + .arg(serverPath()) + .arg(QString::number(x1,'f',6)) + .arg(QString::number(y1,'f',6)) + .arg(QString::number(x2,'f',6)) + .arg(QString::number(y2,'f',6)); + } +} diff --git a/libs/QMapControl/src/wmsmapadapter.h b/libs/QMapControl/src/wmsmapadapter.h new file mode 100644 index 00000000..ad90931c --- /dev/null +++ b/libs/QMapControl/src/wmsmapadapter.h @@ -0,0 +1,76 @@ +/* +* +* This file is part of QMapControl, +* an open-source cross-platform map widget +* +* Copyright (C) 2007 - 2008 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 . +* +* Contact e-mail: kaiwinter@gmx.de +* Program URL : http://qmapcontrol.sourceforge.net/ +* +*/ + +#ifndef WMSMAPADAPTER_H +#define WMSMAPADAPTER_H + +#include "qmapcontrol_global.h" +#include "mapadapter.h" + +namespace qmapcontrol +{ + //! MapAdapter for WMS servers + /*! + * Use this derived MapAdapter to display maps from WMS servers + * @author Kai Winter + */ + class QMAPCONTROL_EXPORT WMSMapAdapter : public MapAdapter + { + public: + //! constructor + /*! + * Sample of a correct initialization of a MapAdapter:
      + * MapAdapter* mapadapter = new WMSMapAdapter("www2.demis.nl", "/wms/wms.asp?wms=WorldMap[...]&BBOX=%1,%2,%3,%4&WIDTH=%5&HEIGHT=%5&TRANSPARENT=TRUE", 256);
      + * The placeholders %1, %2, %3, %4 creates the bounding box, %5 is for the tilesize + * The minZoom is 0 (means the whole world is visible). The maxZoom is 17 (means it is zoomed in to the max) + * @param host The servers URL + * @param serverPath The path to the tiles with placeholders + * @param tilesize the size of the tiles + */ + WMSMapAdapter(QString host, QString serverPath, int tilesize = 256); + virtual ~WMSMapAdapter(); + + virtual QString serverPath() const; + virtual QPoint coordinateToDisplay(const QPointF&) const; + virtual QPointF displayToCoordinate(const QPoint&) const; + virtual void changeHostAddress( const QString qHost, const QString qServerPath = QString() ); + + protected: + virtual void zoom_in(); + virtual void zoom_out(); + virtual QString query(int x, int y, int z) const; + virtual bool isTileValid(int x, int y, int z) const; + + private: + virtual QString getQ(qreal ux, qreal uy, qreal ox, qreal oy) const; + + qreal coord_per_x_tile; + qreal coord_per_y_tile; + + QHash mServerOptions; + QHash mResolutions; + }; +} +#endif