diff --git a/gpxsee.qrc b/gpxsee.qrc index 9c52a432..cca66769 100644 --- a/gpxsee.qrc +++ b/gpxsee.qrc @@ -1,5 +1,6 @@ + icons/gpxsee.png icons/gpxsee@2x.png icons/GUI/dialog-close.png @@ -42,5 +43,83 @@ icons/GUI/view-filter@2x.png icons/GUI/applications-internet_32.png icons/GUI/applications-internet_32@2x.png + + + icons/POI/airfield-11.png + icons/POI/airport-11.png + icons/POI/amusement-park-11.png + icons/POI/bakery-11.png + icons/POI/bank-11.png + icons/POI/bar-11.png + icons/POI/bbq-11.png + icons/POI/beach-11.png + icons/POI/bowling-alley-11.png + icons/POI/building-alt1-11.png + icons/POI/bridge-11.png + icons/POI/bus-11.png + icons/POI/cafe-11.png + icons/POI/campsite-11.png + icons/POI/car-11.png + icons/POI/car-rental-11.png + icons/POI/car-repair-11.png + icons/POI/casino-11.png + icons/POI/cemetery-11.png + icons/POI/cinema-11.png + icons/POI/clothing-store-11.png + icons/POI/communications-tower-11.png + icons/POI/dam-11.png + icons/POI/danger-11.png + icons/POI/drinking-water-11.png + icons/POI/fast-food-11.png + icons/POI/fire-station-11.png + icons/POI/fitness-centre-11.png + icons/POI/fuel-11.png + icons/POI/furniture-11.png + icons/POI/garden-11.png + icons/POI/garden-centre-11.png + icons/POI/golf-11.png + icons/POI/grocery-11.png + icons/POI/hairdresser-11.png + icons/POI/harbor-11.png + icons/POI/hardware-11.png + icons/POI/heliport-11.png + icons/POI/hospital-11.png + icons/POI/information-11.png + icons/POI/landmark-11.png + icons/POI/library-11.png + icons/POI/lodging-11.png + icons/POI/mountain-11.png + icons/POI/museum-11.png + icons/POI/park-11.png + icons/POI/parking-11.png + icons/POI/pharmacy-11.png + icons/POI/picnic-site-11.png + icons/POI/place-of-worship-11.png + icons/POI/police-11.png + icons/POI/post-11.png + icons/POI/prison-11.png + icons/POI/religious-christian-11.png + icons/POI/religious-jewish-11.png + icons/POI/religious-muslim-11.png + icons/POI/restaurant-11.png + icons/POI/restaurant-noodle-11.png + icons/POI/restaurant-pizza-11.png + icons/POI/restaurant-seafood-11.png + icons/POI/roadblock-11.png + icons/POI/school-11.png + icons/POI/shelter-11.png + icons/POI/shop-11.png + icons/POI/skiing-11.png + icons/POI/soccer-11.png + icons/POI/swimming-11.png + icons/POI/theatre-11.png + icons/POI/telephone-11.png + icons/POI/toilet-11.png + icons/POI/town-hall-11.png + icons/POI/viewpoint-11.png + icons/POI/village-11.png + icons/POI/waterfall-11.png + icons/POI/wetland-11.png + icons/POI/zoo-11.png diff --git a/icons/POI/airfield-11.png b/icons/POI/airfield-11.png new file mode 100644 index 00000000..c9d4da8d Binary files /dev/null and b/icons/POI/airfield-11.png differ diff --git a/icons/POI/airport-11.png b/icons/POI/airport-11.png new file mode 100644 index 00000000..69ed65f1 Binary files /dev/null and b/icons/POI/airport-11.png differ diff --git a/icons/POI/amusement-park-11.png b/icons/POI/amusement-park-11.png new file mode 100644 index 00000000..485fc601 Binary files /dev/null and b/icons/POI/amusement-park-11.png differ diff --git a/icons/POI/bakery-11.png b/icons/POI/bakery-11.png new file mode 100644 index 00000000..c9c3178b Binary files /dev/null and b/icons/POI/bakery-11.png differ diff --git a/icons/POI/bank-11.png b/icons/POI/bank-11.png new file mode 100644 index 00000000..d40cd0ef Binary files /dev/null and b/icons/POI/bank-11.png differ diff --git a/icons/POI/bar-11.png b/icons/POI/bar-11.png new file mode 100644 index 00000000..b28300b0 Binary files /dev/null and b/icons/POI/bar-11.png differ diff --git a/icons/POI/bbq-11.png b/icons/POI/bbq-11.png new file mode 100644 index 00000000..f1f24b6c Binary files /dev/null and b/icons/POI/bbq-11.png differ diff --git a/icons/POI/beach-11.png b/icons/POI/beach-11.png new file mode 100644 index 00000000..0a8cc59c Binary files /dev/null and b/icons/POI/beach-11.png differ diff --git a/icons/POI/bowling-alley-11.png b/icons/POI/bowling-alley-11.png new file mode 100644 index 00000000..efab183d Binary files /dev/null and b/icons/POI/bowling-alley-11.png differ diff --git a/icons/POI/bridge-11.png b/icons/POI/bridge-11.png new file mode 100644 index 00000000..0f811d63 Binary files /dev/null and b/icons/POI/bridge-11.png differ diff --git a/icons/POI/building-alt1-11.png b/icons/POI/building-alt1-11.png new file mode 100644 index 00000000..bf64c08f Binary files /dev/null and b/icons/POI/building-alt1-11.png differ diff --git a/icons/POI/bus-11.png b/icons/POI/bus-11.png new file mode 100644 index 00000000..7b024d81 Binary files /dev/null and b/icons/POI/bus-11.png differ diff --git a/icons/POI/cafe-11.png b/icons/POI/cafe-11.png new file mode 100644 index 00000000..53dc4937 Binary files /dev/null and b/icons/POI/cafe-11.png differ diff --git a/icons/POI/campsite-11.png b/icons/POI/campsite-11.png new file mode 100644 index 00000000..01ccf452 Binary files /dev/null and b/icons/POI/campsite-11.png differ diff --git a/icons/POI/car-11.png b/icons/POI/car-11.png new file mode 100644 index 00000000..bb318f1d Binary files /dev/null and b/icons/POI/car-11.png differ diff --git a/icons/POI/car-rental-11.png b/icons/POI/car-rental-11.png new file mode 100644 index 00000000..e6f8cc3c Binary files /dev/null and b/icons/POI/car-rental-11.png differ diff --git a/icons/POI/car-repair-11.png b/icons/POI/car-repair-11.png new file mode 100644 index 00000000..728edb37 Binary files /dev/null and b/icons/POI/car-repair-11.png differ diff --git a/icons/POI/casino-11.png b/icons/POI/casino-11.png new file mode 100644 index 00000000..aa3a1d1b Binary files /dev/null and b/icons/POI/casino-11.png differ diff --git a/icons/POI/cemetery-11.png b/icons/POI/cemetery-11.png new file mode 100644 index 00000000..b8d5128b Binary files /dev/null and b/icons/POI/cemetery-11.png differ diff --git a/icons/POI/cinema-11.png b/icons/POI/cinema-11.png new file mode 100644 index 00000000..ce13da28 Binary files /dev/null and b/icons/POI/cinema-11.png differ diff --git a/icons/POI/clothing-store-11.png b/icons/POI/clothing-store-11.png new file mode 100644 index 00000000..2e8032d1 Binary files /dev/null and b/icons/POI/clothing-store-11.png differ diff --git a/icons/POI/communications-tower-11.png b/icons/POI/communications-tower-11.png new file mode 100644 index 00000000..d0f24a28 Binary files /dev/null and b/icons/POI/communications-tower-11.png differ diff --git a/icons/POI/dam-11.png b/icons/POI/dam-11.png new file mode 100644 index 00000000..4a85c69b Binary files /dev/null and b/icons/POI/dam-11.png differ diff --git a/icons/POI/danger-11.png b/icons/POI/danger-11.png new file mode 100644 index 00000000..18af2152 Binary files /dev/null and b/icons/POI/danger-11.png differ diff --git a/icons/POI/drinking-water-11.png b/icons/POI/drinking-water-11.png new file mode 100644 index 00000000..ff78b6a0 Binary files /dev/null and b/icons/POI/drinking-water-11.png differ diff --git a/icons/POI/fast-food-11.png b/icons/POI/fast-food-11.png new file mode 100644 index 00000000..9459dcf0 Binary files /dev/null and b/icons/POI/fast-food-11.png differ diff --git a/icons/POI/fire-station-11.png b/icons/POI/fire-station-11.png new file mode 100644 index 00000000..b52d311a Binary files /dev/null and b/icons/POI/fire-station-11.png differ diff --git a/icons/POI/fitness-centre-11.png b/icons/POI/fitness-centre-11.png new file mode 100644 index 00000000..5c7f00ca Binary files /dev/null and b/icons/POI/fitness-centre-11.png differ diff --git a/icons/POI/fuel-11.png b/icons/POI/fuel-11.png new file mode 100644 index 00000000..2b1aed56 Binary files /dev/null and b/icons/POI/fuel-11.png differ diff --git a/icons/POI/furniture-11.png b/icons/POI/furniture-11.png new file mode 100644 index 00000000..7960fa24 Binary files /dev/null and b/icons/POI/furniture-11.png differ diff --git a/icons/POI/garden-11.png b/icons/POI/garden-11.png new file mode 100644 index 00000000..ba931bc7 Binary files /dev/null and b/icons/POI/garden-11.png differ diff --git a/icons/POI/garden-centre-11.png b/icons/POI/garden-centre-11.png new file mode 100644 index 00000000..d1e061e5 Binary files /dev/null and b/icons/POI/garden-centre-11.png differ diff --git a/icons/POI/golf-11.png b/icons/POI/golf-11.png new file mode 100644 index 00000000..2f710a4f Binary files /dev/null and b/icons/POI/golf-11.png differ diff --git a/icons/POI/grocery-11.png b/icons/POI/grocery-11.png new file mode 100644 index 00000000..49a3d912 Binary files /dev/null and b/icons/POI/grocery-11.png differ diff --git a/icons/POI/hairdresser-11.png b/icons/POI/hairdresser-11.png new file mode 100644 index 00000000..a647aa0f Binary files /dev/null and b/icons/POI/hairdresser-11.png differ diff --git a/icons/POI/harbor-11.png b/icons/POI/harbor-11.png new file mode 100644 index 00000000..c2bce4fa Binary files /dev/null and b/icons/POI/harbor-11.png differ diff --git a/icons/POI/hardware-11.png b/icons/POI/hardware-11.png new file mode 100644 index 00000000..d24b4340 Binary files /dev/null and b/icons/POI/hardware-11.png differ diff --git a/icons/POI/heliport-11.png b/icons/POI/heliport-11.png new file mode 100644 index 00000000..92fa1213 Binary files /dev/null and b/icons/POI/heliport-11.png differ diff --git a/icons/POI/hospital-11.png b/icons/POI/hospital-11.png new file mode 100644 index 00000000..e71694e3 Binary files /dev/null and b/icons/POI/hospital-11.png differ diff --git a/icons/POI/information-11.png b/icons/POI/information-11.png new file mode 100644 index 00000000..c171967a Binary files /dev/null and b/icons/POI/information-11.png differ diff --git a/icons/POI/landmark-11.png b/icons/POI/landmark-11.png new file mode 100644 index 00000000..e409faaf Binary files /dev/null and b/icons/POI/landmark-11.png differ diff --git a/icons/POI/library-11.png b/icons/POI/library-11.png new file mode 100644 index 00000000..7e1ac37b Binary files /dev/null and b/icons/POI/library-11.png differ diff --git a/icons/POI/licence.txt b/icons/POI/licence.txt new file mode 100644 index 00000000..73caf1b7 --- /dev/null +++ b/icons/POI/licence.txt @@ -0,0 +1,126 @@ +The POI icons are Mapbox Maki icons (https://labs.mapbox.com/maki-icons/) +licensed under CC0. + +----- + +Creative Commons Legal Code + +CC0 1.0 Universal + + CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE + LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN + ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS + INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES + REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS + PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM + THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED + HEREUNDER. + +Statement of Purpose + +The laws of most jurisdictions throughout the world automatically confer +exclusive Copyright and Related Rights (defined below) upon the creator +and subsequent owner(s) (each and all, an "owner") of an original work of +authorship and/or a database (each, a "Work"). + +Certain owners wish to permanently relinquish those rights to a Work for +the purpose of contributing to a commons of creative, cultural and +scientific works ("Commons") that the public can reliably and without fear +of later claims of infringement build upon, modify, incorporate in other +works, reuse and redistribute as freely as possible in any form whatsoever +and for any purposes, including without limitation commercial purposes. +These owners may contribute to the Commons to promote the ideal of a free +culture and the further production of creative, cultural and scientific +works, or to gain reputation or greater distribution for their Work in +part through the use and efforts of others. + +For these and/or other purposes and motivations, and without any +expectation of additional consideration or compensation, the person +associating CC0 with a Work (the "Affirmer"), to the extent that he or she +is an owner of Copyright and Related Rights in the Work, voluntarily +elects to apply CC0 to the Work and publicly distribute the Work under its +terms, with knowledge of his or her Copyright and Related Rights in the +Work and the meaning and intended legal effect of CC0 on those rights. + +1. Copyright and Related Rights. A Work made available under CC0 may be +protected by copyright and related or neighboring rights ("Copyright and +Related Rights"). Copyright and Related Rights include, but are not +limited to, the following: + + i. the right to reproduce, adapt, distribute, perform, display, + communicate, and translate a Work; + ii. moral rights retained by the original author(s) and/or performer(s); +iii. publicity and privacy rights pertaining to a person's image or + likeness depicted in a Work; + iv. rights protecting against unfair competition in regards to a Work, + subject to the limitations in paragraph 4(a), below; + v. rights protecting the extraction, dissemination, use and reuse of data + in a Work; + vi. database rights (such as those arising under Directive 96/9/EC of the + European Parliament and of the Council of 11 March 1996 on the legal + protection of databases, and under any national implementation + thereof, including any amended or successor version of such + directive); and +vii. other similar, equivalent or corresponding rights throughout the + world based on applicable law or treaty, and any national + implementations thereof. + +2. Waiver. To the greatest extent permitted by, but not in contravention +of, applicable law, Affirmer hereby overtly, fully, permanently, +irrevocably and unconditionally waives, abandons, and surrenders all of +Affirmer's Copyright and Related Rights and associated claims and causes +of action, whether now known or unknown (including existing as well as +future claims and causes of action), in the Work (i) in all territories +worldwide, (ii) for the maximum duration provided by applicable law or +treaty (including future time extensions), (iii) in any current or future +medium and for any number of copies, and (iv) for any purpose whatsoever, +including without limitation commercial, advertising or promotional +purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each +member of the public at large and to the detriment of Affirmer's heirs and +successors, fully intending that such Waiver shall not be subject to +revocation, rescission, cancellation, termination, or any other legal or +equitable action to disrupt the quiet enjoyment of the Work by the public +as contemplated by Affirmer's express Statement of Purpose. + +3. Public License Fallback. Should any part of the Waiver for any reason +be judged legally invalid or ineffective under applicable law, then the +Waiver shall be preserved to the maximum extent permitted taking into +account Affirmer's express Statement of Purpose. In addition, to the +extent the Waiver is so judged Affirmer hereby grants to each affected +person a royalty-free, non transferable, non sublicensable, non exclusive, +irrevocable and unconditional license to exercise Affirmer's Copyright and +Related Rights in the Work (i) in all territories worldwide, (ii) for the +maximum duration provided by applicable law or treaty (including future +time extensions), (iii) in any current or future medium and for any number +of copies, and (iv) for any purpose whatsoever, including without +limitation commercial, advertising or promotional purposes (the +"License"). The License shall be deemed effective as of the date CC0 was +applied by Affirmer to the Work. Should any part of the License for any +reason be judged legally invalid or ineffective under applicable law, such +partial invalidity or ineffectiveness shall not invalidate the remainder +of the License, and in such case Affirmer hereby affirms that he or she +will not (i) exercise any of his or her remaining Copyright and Related +Rights in the Work or (ii) assert any associated claims and causes of +action with respect to the Work, in either case contrary to Affirmer's +express Statement of Purpose. + +4. Limitations and Disclaimers. + + a. No trademark or patent rights held by Affirmer are waived, abandoned, + surrendered, licensed or otherwise affected by this document. + b. Affirmer offers the Work as-is and makes no representations or + warranties of any kind concerning the Work, express, implied, + statutory or otherwise, including without limitation warranties of + title, merchantability, fitness for a particular purpose, non + infringement, or the absence of latent or other defects, accuracy, or + the present or absence of errors, whether or not discoverable, all to + the greatest extent permissible under applicable law. + c. Affirmer disclaims responsibility for clearing rights of other persons + that may apply to the Work or any use thereof, including without + limitation any person's Copyright and Related Rights in the Work. + Further, Affirmer disclaims responsibility for obtaining any necessary + consents, permissions or other rights required for any use of the + Work. + d. Affirmer understands and acknowledges that Creative Commons is not a + party to this document and has no duty or obligation with respect to + this CC0 or use of the Work. diff --git a/icons/POI/lodging-11.png b/icons/POI/lodging-11.png new file mode 100644 index 00000000..a5603a0f Binary files /dev/null and b/icons/POI/lodging-11.png differ diff --git a/icons/POI/mountain-11.png b/icons/POI/mountain-11.png new file mode 100644 index 00000000..089094f3 Binary files /dev/null and b/icons/POI/mountain-11.png differ diff --git a/icons/POI/museum-11.png b/icons/POI/museum-11.png new file mode 100644 index 00000000..736a3078 Binary files /dev/null and b/icons/POI/museum-11.png differ diff --git a/icons/POI/park-11.png b/icons/POI/park-11.png new file mode 100644 index 00000000..bd719557 Binary files /dev/null and b/icons/POI/park-11.png differ diff --git a/icons/POI/parking-11.png b/icons/POI/parking-11.png new file mode 100644 index 00000000..457de25c Binary files /dev/null and b/icons/POI/parking-11.png differ diff --git a/icons/POI/pharmacy-11.png b/icons/POI/pharmacy-11.png new file mode 100644 index 00000000..18346a54 Binary files /dev/null and b/icons/POI/pharmacy-11.png differ diff --git a/icons/POI/picnic-site-11.png b/icons/POI/picnic-site-11.png new file mode 100644 index 00000000..1729899e Binary files /dev/null and b/icons/POI/picnic-site-11.png differ diff --git a/icons/POI/place-of-worship-11.png b/icons/POI/place-of-worship-11.png new file mode 100644 index 00000000..cfabfebf Binary files /dev/null and b/icons/POI/place-of-worship-11.png differ diff --git a/icons/POI/police-11.png b/icons/POI/police-11.png new file mode 100644 index 00000000..a39c936c Binary files /dev/null and b/icons/POI/police-11.png differ diff --git a/icons/POI/post-11.png b/icons/POI/post-11.png new file mode 100644 index 00000000..5a728a01 Binary files /dev/null and b/icons/POI/post-11.png differ diff --git a/icons/POI/prison-11.png b/icons/POI/prison-11.png new file mode 100644 index 00000000..74601c36 Binary files /dev/null and b/icons/POI/prison-11.png differ diff --git a/icons/POI/religious-christian-11.png b/icons/POI/religious-christian-11.png new file mode 100644 index 00000000..8a8d21eb Binary files /dev/null and b/icons/POI/religious-christian-11.png differ diff --git a/icons/POI/religious-jewish-11.png b/icons/POI/religious-jewish-11.png new file mode 100644 index 00000000..75621596 Binary files /dev/null and b/icons/POI/religious-jewish-11.png differ diff --git a/icons/POI/religious-muslim-11.png b/icons/POI/religious-muslim-11.png new file mode 100644 index 00000000..6c17baf8 Binary files /dev/null and b/icons/POI/religious-muslim-11.png differ diff --git a/icons/POI/restaurant-11.png b/icons/POI/restaurant-11.png new file mode 100644 index 00000000..e3ad0d64 Binary files /dev/null and b/icons/POI/restaurant-11.png differ diff --git a/icons/POI/restaurant-noodle-11.png b/icons/POI/restaurant-noodle-11.png new file mode 100644 index 00000000..42cb11f2 Binary files /dev/null and b/icons/POI/restaurant-noodle-11.png differ diff --git a/icons/POI/restaurant-pizza-11.png b/icons/POI/restaurant-pizza-11.png new file mode 100644 index 00000000..b1471fa3 Binary files /dev/null and b/icons/POI/restaurant-pizza-11.png differ diff --git a/icons/POI/restaurant-seafood-11.png b/icons/POI/restaurant-seafood-11.png new file mode 100644 index 00000000..f59d10ec Binary files /dev/null and b/icons/POI/restaurant-seafood-11.png differ diff --git a/icons/POI/roadblock-11.png b/icons/POI/roadblock-11.png new file mode 100644 index 00000000..931cd005 Binary files /dev/null and b/icons/POI/roadblock-11.png differ diff --git a/icons/POI/school-11.png b/icons/POI/school-11.png new file mode 100644 index 00000000..757f8f15 Binary files /dev/null and b/icons/POI/school-11.png differ diff --git a/icons/POI/shelter-11.png b/icons/POI/shelter-11.png new file mode 100644 index 00000000..07205ee9 Binary files /dev/null and b/icons/POI/shelter-11.png differ diff --git a/icons/POI/shop-11.png b/icons/POI/shop-11.png new file mode 100644 index 00000000..3c1b14c8 Binary files /dev/null and b/icons/POI/shop-11.png differ diff --git a/icons/POI/skiing-11.png b/icons/POI/skiing-11.png new file mode 100644 index 00000000..8394a2bf Binary files /dev/null and b/icons/POI/skiing-11.png differ diff --git a/icons/POI/soccer-11.png b/icons/POI/soccer-11.png new file mode 100644 index 00000000..6d0f1eec Binary files /dev/null and b/icons/POI/soccer-11.png differ diff --git a/icons/POI/swimming-11.png b/icons/POI/swimming-11.png new file mode 100644 index 00000000..183af715 Binary files /dev/null and b/icons/POI/swimming-11.png differ diff --git a/icons/POI/telephone-11.png b/icons/POI/telephone-11.png new file mode 100644 index 00000000..292d492f Binary files /dev/null and b/icons/POI/telephone-11.png differ diff --git a/icons/POI/theatre-11.png b/icons/POI/theatre-11.png new file mode 100644 index 00000000..de4a10fa Binary files /dev/null and b/icons/POI/theatre-11.png differ diff --git a/icons/POI/toilet-11.png b/icons/POI/toilet-11.png new file mode 100644 index 00000000..90dd8dc9 Binary files /dev/null and b/icons/POI/toilet-11.png differ diff --git a/icons/POI/town-hall-11.png b/icons/POI/town-hall-11.png new file mode 100644 index 00000000..5e8207ac Binary files /dev/null and b/icons/POI/town-hall-11.png differ diff --git a/icons/POI/viewpoint-11.png b/icons/POI/viewpoint-11.png new file mode 100644 index 00000000..4e0c948b Binary files /dev/null and b/icons/POI/viewpoint-11.png differ diff --git a/icons/POI/village-11.png b/icons/POI/village-11.png new file mode 100644 index 00000000..ebb88fb9 Binary files /dev/null and b/icons/POI/village-11.png differ diff --git a/icons/POI/waterfall-11.png b/icons/POI/waterfall-11.png new file mode 100644 index 00000000..044909e0 Binary files /dev/null and b/icons/POI/waterfall-11.png differ diff --git a/icons/POI/wetland-11.png b/icons/POI/wetland-11.png new file mode 100644 index 00000000..06e7c3e7 Binary files /dev/null and b/icons/POI/wetland-11.png differ diff --git a/icons/POI/zoo-11.png b/icons/POI/zoo-11.png new file mode 100644 index 00000000..8dbda792 Binary files /dev/null and b/icons/POI/zoo-11.png differ diff --git a/src/map/IMG/img.cpp b/src/map/IMG/img.cpp index 045db113..9fda3e9a 100644 --- a/src/map/IMG/img.cpp +++ b/src/map/IMG/img.cpp @@ -255,3 +255,18 @@ bool IMG::readBlock(int blockNum, QByteArray &data) return true; } + +#ifndef QT_NO_DEBUG +QDebug operator<<(QDebug dbg, const IMG::Point &point) +{ + dbg.nospace() << "Point(" << hex << point.type << ", " << point.label + << ", " << point.poi << ")"; + return dbg.space(); +} + +QDebug operator<<(QDebug dbg, const IMG::Poly &poly) +{ + dbg.nospace() << "Poly(" << hex << poly.type << ", " << poly.label << ")"; + return dbg.space(); +} +#endif // QT_NO_DEBUG diff --git a/src/map/IMG/img.h b/src/map/IMG/img.h index cef4fb6c..8e0dab29 100644 --- a/src/map/IMG/img.h +++ b/src/map/IMG/img.h @@ -40,7 +40,7 @@ public: quint64 id; bool operator<(const Point &other) const - {return id < other.id;} + {return id > other.id;} }; @@ -84,4 +84,9 @@ private: QString _errorString; }; +#ifndef QT_NO_DEBUG +QDebug operator<<(QDebug dbg, const IMG::Point &point); +QDebug operator<<(QDebug dbg, const IMG::Poly &poly); +#endif // QT_NO_DEBUG + #endif // IMG_H diff --git a/src/map/IMG/rgnfile.cpp b/src/map/IMG/rgnfile.cpp index c8dc7185..f8586f38 100644 --- a/src/map/IMG/rgnfile.cpp +++ b/src/map/IMG/rgnfile.cpp @@ -338,7 +338,8 @@ bool RGNFile::pointObjects(const RectC &rect, Handle &hdl, const SubDiv *subdiv, point.poi = labelPtr & 0x400000; if (lbl && (labelPtr & 0x3FFFFF)) { point.label = lbl->label(lblHdl, labelPtr & 0x3FFFFF, point.poi); - point.id = ((quint64)lbl->offset())<<24 | (labelPtr & 0x3FFFFF); + point.id = ((quint64)point.type)<<40 | ((quint64)lbl->offset())<<24 + | (labelPtr & 0x3FFFFF); } points->append(point); @@ -383,7 +384,8 @@ bool RGNFile::extPointObjects(const RectC &rect, Handle &hdl, point.poi = labelPtr & 0x400000; if (lbl && (labelPtr & 0x3FFFFF)) { point.label = lbl->label(lblHdl, labelPtr & 0x3FFFFF, point.poi); - point.id = ((quint64)lbl->offset())<<24 | (labelPtr & 0x3FFFFF); + point.id = ((quint64)point.type)<<40 + | ((quint64)lbl->offset())<<24 | (labelPtr & 0x3FFFFF); } } diff --git a/src/map/IMG/style.cpp b/src/map/IMG/style.cpp index d0f3560b..ecc2bd8d 100644 --- a/src/map/IMG/style.cpp +++ b/src/map/IMG/style.cpp @@ -147,6 +147,137 @@ void Style::defaultLineStyle() _lines[TYPE(0x29)].setTextFontSize(Style::None); } +void Style::defaultPOIStyle() +{ + _points[0x2a00] = Point(QImage(":/restaurant-11.png")); + _points[0x2a01] = Point(QImage(":/restaurant-11.png")); + _points[0x2a02] = Point(QImage(":/restaurant-noodle-11.png")); + _points[0x2a03] = Point(QImage(":/bbq-11.png")); + _points[0x2a04] = Point(QImage(":/restaurant-noodle-11.png")); + _points[0x2a05] = Point(QImage(":/bakery-11.png")); + _points[0x2a06] = Point(QImage(":/restaurant-11.png")); + _points[0x2a07] = Point(QImage(":/fast-food-11.png")); + _points[0x2a08] = Point(QImage(":/restaurant-pizza-11.png")); + _points[0x2a09] = Point(QImage(":/restaurant-11.png")); + _points[0x2a0a] = Point(QImage(":/restaurant-pizza-11.png")); + _points[0x2a0b] = Point(QImage(":/restaurant-seafood-11.png")); + _points[0x2a0c] = Point(QImage(":/restaurant-11.png")); + _points[0x2a0d] = Point(QImage(":/bakery-11.png")); + _points[0x2a0e] = Point(QImage(":/cafe-11.png")); + _points[0x2a0f] = Point(QImage(":/restaurant-11.png")); + _points[0x2a10] = Point(QImage(":/restaurant-11.png")); + _points[0x2a11] = Point(QImage(":/restaurant-11.png")); + _points[0x2a12] = Point(QImage(":/restaurant-11.png")); + _points[0x2a13] = Point(QImage(":/restaurant-11.png")); + + _points[0x2b01] = Point(QImage(":/lodging-11.png")); + _points[0x2b02] = Point(QImage(":/lodging-11.png")); + _points[0x2b03] = Point(QImage(":/campsite-11.png")); + _points[0x2b04] = Point(QImage(":/village-11.png")); + _points[0x2b06] = Point(QImage(":/shelter-11.png")); + + _points[0x2c01] = Point(QImage(":/amusement-park-11.png")); + _points[0x2c02] = Point(QImage(":/museum-11.png")); + _points[0x2c03] = Point(QImage(":/library-11.png")); + _points[0x2c04] = Point(QImage(":/landmark-11.png")); + _points[0x2c05] = Point(QImage(":/school-11.png")); + _points[0x2c06] = Point(QImage(":/garden-11.png")); + _points[0x2c07] = Point(QImage(":/zoo-11.png")); + _points[0x2c08] = Point(QImage(":/soccer-11.png")); + _points[0x2c0a] = Point(QImage(":/bar-11.png")); + _points[0x2c0b] = Point(QImage(":/place-of-worship-11.png")); + _points[0x2c0d] = Point(QImage(":/religious-muslim-11.png")); + _points[0x2c0e] = Point(QImage(":/religious-christian-11.png")); + _points[0x2c10] = Point(QImage(":/religious-jewish-11.png")); + _points[0x2d01] = Point(QImage(":/theatre-11.png")); + _points[0x2d02] = Point(QImage(":/bar-11.png")); + _points[0x2d03] = Point(QImage(":/cinema-11.png")); + _points[0x2d04] = Point(QImage(":/casino-11.png")); + _points[0x2d05] = Point(QImage(":/golf-11.png")); + _points[0x2d06] = Point(QImage(":/skiing-11.png")); + _points[0x2d07] = Point(QImage(":/bowling-alley-11.png")); + _points[0x2d09] = Point(QImage(":/swimming-11.png")); + _points[0x2d0a] = Point(QImage(":/fitness-centre-11.png")); + _points[0x2d0b] = Point(QImage(":/airfield-11.png")); + + _points[0x2e02] = Point(QImage(":/grocery-11.png")); + _points[0x2e05] = Point(QImage(":/pharmacy-11.png")); + _points[0x2e07] = Point(QImage(":/clothing-store-11.png")); + _points[0x2e08] = Point(QImage(":/garden-centre-11.png")); + _points[0x2e09] = Point(QImage(":/furniture-11.png")); + _points[0x2e0c] = Point(QImage(":/shop-11.png")); + + _points[0x2f01] = Point(QImage(":/fuel-11.png")); + _points[0x2f02] = Point(QImage(":/car-rental-11.png")); + _points[0x2f03] = Point(QImage(":/car-repair-11.png")); + _points[0x2f04] = Point(QImage(":/airport-11.png")); + _points[0x2f05] = Point(QImage(":/post-11.png")); + _points[0x2f06] = Point(QImage(":/bank-11.png")); + _points[0x2f07] = Point(QImage(":/car-11.png")); + _points[0x2f08] = Point(QImage(":/bus-11.png")); + _points[0x2f09] = Point(QImage(":/harbor-11.png")); + _points[0x2f0b] = Point(QImage(":/parking-11.png")); + _points[0x2f0b].setTextFontSize(None); + _points[0x2f0c] = Point(QImage(":/toilet-11.png")); + _points[0x2f0c].setTextFontSize(None); + _points[0x2f10] = Point(QImage(":/hairdresser-11.png")); + _points[0x2f12].setTextFontSize(None); + _points[0x2f13] = Point(QImage(":/hardware-11.png")); + _points[0x2f17] = Point(QImage(":/bus-11.png")); + + _points[0x3001] = Point(QImage(":/police-11.png")); + _points[0x3002] = Point(QImage(":/hospital-11.png")); + _points[0x3003] = Point(QImage(":/town-hall-11.png")); + _points[0x3007] = Point(QImage(":/prison-11.png")); + _points[0x3008] = Point(QImage(":/fire-station-11.png")); + + _points[0x4000] = Point(QImage(":/golf-11.png")); + _points[0x4300] = Point(QImage(":/harbor-11.png")); + _points[0x4400] = Point(QImage(":/fuel-11.png")); + _points[0x4500] = Point(QImage(":/restaurant-11.png")); + _points[0x4600] = Point(QImage(":/bar-11.png")); + _points[0x4900] = Point(QImage(":/park-11.png")); + _points[0x4a00] = Point(QImage(":/picnic-site-11.png")); + _points[0x4c00] = Point(QImage(":/information-11.png")); + _points[0x4800] = Point(QImage(":/campsite-11.png")); + _points[0x4a00] = Point(QImage(":/picnic-site-11.png")); + _points[0x4b00] = Point(QImage(":/hospital-11.png")); + _points[0x4c00] = Point(QImage(":/information-11.png")); + _points[0x4d00] = Point(QImage(":/parking-11.png")); + _points[0x4d00].setTextFontSize(None); + _points[0x4e00] = Point(QImage(":/toilet-11.png")); + _points[0x4e00].setTextFontSize(None); + _points[0x5000] = Point(QImage(":/drinking-water-11.png")); + _points[0x5000].setTextFontSize(None); + _points[0x5100] = Point(QImage(":/telephone-11.png")); + _points[0x5200] = Point(QImage(":/viewpoint-11.png")); + _points[0x5300] = Point(QImage(":/skiing-11.png")); + _points[0x5400] = Point(QImage(":/swimming-11.png")); + _points[0x5500] = Point(QImage(":/dam-11.png")); + _points[0x5700] = Point(QImage(":/danger-11.png")); + _points[0x5800] = Point(QImage(":/roadblock-11.png")); + _points[0x5900] = Point(QImage(":/airport-11.png")); + _points[0x5901] = Point(QImage(":/airport-11.png")); + _points[0x5904] = Point(QImage(":/heliport-11.png")); + + _points[0x6401] = Point(QImage(":/bridge-11.png")); + _points[0x6402] = Point(QImage(":/building-alt1-11.png")); + _points[0x6403] = Point(QImage(":/cemetery-11.png")); + _points[0x6404] = Point(QImage(":/religious-christian-11.png")); + _points[0x6407] = Point(QImage(":/dam-11.png")); + _points[0x6408] = Point(QImage(":/hospital-11.png")); + _points[0x6409] = Point(QImage(":/dam-11.png")); + _points[0x640d] = Point(QImage(":/communications-tower-11.png")); + _points[0x640e] = Point(QImage(":/park-11.png")); + _points[0x640f] = Point(QImage(":/post-11.png")); + _points[0x6411] = Point(QImage(":/communications-tower-11.png")); + + _points[0x6508] = Point(QImage(":/waterfall-11.png")); + _points[0x6513] = Point(QImage(":/wetland-11.png")); + _points[0x6604] = Point(QImage(":/beach-11.png")); + _points[0x6616] = Point(QImage(":/mountain-11.png")); +} + static bool readBitmap(SubFile *file, SubFile::Handle &hdl, QImage &img, int bpp) { @@ -790,6 +921,7 @@ Style::Style(SubFile *typ) { defaultLineStyle(); defaultPolygonStyle(); + defaultPOIStyle(); if (typ && typ->isValid()) parseTYPFile(typ); @@ -830,6 +962,32 @@ bool Style::isSpot(quint32 type) return (type == TYPE(0x62) || type == TYPE(0x63)); } +Style::POIClass Style::poiClass(quint32 type) +{ + if ((type >= 0x2a00 && type < 0x2b00) || type == 0x2c0a || type == 0x2d02) + return Food; + else if (type >= 0x2b00 && type < 0x2c00) + return Accommodation; + else if (type >= 0x2c00 && type < 0x2e00) + return Recreation; + else if (type >= 0x2e00 && type < 0x2f00) + return Shopping; + else if (type >= 0x2f00 && type < 0x2f0f) + return Transport; + else if (type >= 0x2f0f && type < 0x3000) + return Services; + else if (type >= 0x3000 && type < 0x3100) + return Community; + else if (type >= 0x4000 && type < 0x6000) + return Elementary; + else if (type >= 0x6400 && type < 0x6500) + return ManmadePlaces; + else if (type >= 0x6500 && type < 0x6700) + return NaturePlaces; + else + return Unknown; +} + #ifndef QT_NO_DEBUG static QString penColor(const QPen &pen) { diff --git a/src/map/IMG/style.h b/src/map/IMG/style.h index cf36ff23..1091416a 100644 --- a/src/map/IMG/style.h +++ b/src/map/IMG/style.h @@ -18,6 +18,20 @@ public: Large = 4 }; + enum POIClass { + Unknown, + Food, + Accommodation, + Recreation, + Shopping, + Transport, + Services, + Community, + Elementary, + ManmadePlaces, + NaturePlaces + }; + class Polygon { public: Polygon() : _brush(Qt::NoBrush), _pen(Qt::NoPen) {} @@ -91,6 +105,7 @@ public: static bool isContourLine(quint32 type); static bool isSpot(quint32 type); + static POIClass poiClass(quint32 type); private: struct Section { @@ -121,6 +136,7 @@ private: const Section §ion, ItemInfo &info); void defaultPolygonStyle(); void defaultLineStyle(); + void defaultPOIStyle(); QMap _lines; QMap _polygons; diff --git a/src/map/imgmap.cpp b/src/map/imgmap.cpp index a16405b1..9ba184b1 100644 --- a/src/map/imgmap.cpp +++ b/src/map/imgmap.cpp @@ -25,8 +25,6 @@ #define POI_FONT_SIZE 9 #define LINE_TEXT_MIN_ZOOM 23 -#define POI_MIN_ZOOM 25 -#define POI_TEXT_MIN_ZOOM 26 class RasterTile { @@ -76,6 +74,26 @@ static void convertUnits(QString &str) str = QString::number(qRound(number * 0.3048)); } +static int minPOIZoom(Style::POIClass cl) +{ + switch (cl) { + case Style::Food: + case Style::Shopping: + case Style::Services: + return 27; + case Style::Accommodation: + case Style::Recreation: + return 25; + case Style::ManmadePlaces: + case Style::NaturePlaces: + case Style::Transport: + case Style::Community: + case Style::Elementary: + return 23; + default: + return 0; + } +} IMGMap::IMGMap(const QString &fileName, QObject *parent) : Map(parent), _fileName(fileName), _img(fileName), @@ -280,17 +298,20 @@ void IMGMap::drawPoints(QPainter *painter, QList &points) for (int i = 0; i < points.size(); i++) { IMG::Point &point = points[i]; const Style::Point &style = _img.style().point(point.type); + int mz = minPOIZoom(Style::poiClass(point.type)); - if (point.poi && _zoom < POI_MIN_ZOOM) + if (point.poi && _zoom < mz) continue; - const QString *label = ((point.poi && _zoom < POI_TEXT_MIN_ZOOM) - || point.label.isEmpty()) ? 0 : &(point.label); + const QString *label = point.label.isEmpty() ? 0 : &(point.label); const QImage *img = style.img().isNull() ? 0 : &style.img(); const QFont *font = 0; - if (point.poi) - font = &_poiFont; - else { + if (point.poi) { + if (style.textFontSize() == Style::None) + label = 0; + else + font = &_poiFont; + } else { switch (style.textFontSize()) { case Style::None: label = 0;