mirror of
https://github.com/tumic0/GPXSee.git
synced 2024-11-24 11:45:53 +01:00
Added hi-dpi one-way street (+ water ways) arrows
This commit is contained in:
parent
c6af082fa3
commit
3e8b54f605
@ -58,6 +58,9 @@
|
|||||||
<!-- Common map stuff -->
|
<!-- Common map stuff -->
|
||||||
<qresource prefix="/map">
|
<qresource prefix="/map">
|
||||||
<file alias="arrow.png">icons/map/arrow.png</file>
|
<file alias="arrow.png">icons/map/arrow.png</file>
|
||||||
|
<file alias="arrow@2x.png">icons/map/arrow@2x.png</file>
|
||||||
|
<file alias="water-arrow.png">icons/map/water-arrow.png</file>
|
||||||
|
<file alias="water-arrow@2x.png">icons/map/water-arrow@2x.png</file>
|
||||||
</qresource>
|
</qresource>
|
||||||
|
|
||||||
<!-- POIs (IMG & ENC style) -->
|
<!-- POIs (IMG & ENC style) -->
|
||||||
|
BIN
icons/map/arrow@2x.png
Normal file
BIN
icons/map/arrow@2x.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 241 B |
BIN
icons/map/water-arrow.png
Normal file
BIN
icons/map/water-arrow.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 181 B |
BIN
icons/map/water-arrow@2x.png
Normal file
BIN
icons/map/water-arrow@2x.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 249 B |
@ -25,12 +25,6 @@ static const QColor shieldBgColor1("#dd3e3e");
|
|||||||
static const QColor shieldBgColor2("#379947");
|
static const QColor shieldBgColor2("#379947");
|
||||||
static const QColor shieldBgColor3("#4a7fc1");
|
static const QColor shieldBgColor3("#4a7fc1");
|
||||||
|
|
||||||
static const QImage *arrow()
|
|
||||||
{
|
|
||||||
static QImage img(":/map/arrow.png");
|
|
||||||
return &img;
|
|
||||||
}
|
|
||||||
|
|
||||||
static QFont pixelSizeFont(int pixelSize)
|
static QFont pixelSizeFont(int pixelSize)
|
||||||
{
|
{
|
||||||
QFont f;
|
QFont f;
|
||||||
@ -308,17 +302,17 @@ void RasterTile::processPolygons(const QList<MapData::Poly> &polygons,
|
|||||||
}
|
}
|
||||||
|
|
||||||
void RasterTile::processLines(QList<MapData::Poly> &lines,
|
void RasterTile::processLines(QList<MapData::Poly> &lines,
|
||||||
QList<TextItem*> &textItems)
|
QList<TextItem*> &textItems, const QImage &arrow, const QImage &waterArrow)
|
||||||
{
|
{
|
||||||
std::stable_sort(lines.begin(), lines.end());
|
std::stable_sort(lines.begin(), lines.end());
|
||||||
|
|
||||||
if (_zoom >= 22)
|
if (_zoom >= 22)
|
||||||
processStreetNames(lines, textItems);
|
processStreetNames(lines, textItems, arrow, waterArrow);
|
||||||
processShields(lines, textItems);
|
processShields(lines, textItems);
|
||||||
}
|
}
|
||||||
|
|
||||||
void RasterTile::processStreetNames(const QList<MapData::Poly> &lines,
|
void RasterTile::processStreetNames(const QList<MapData::Poly> &lines,
|
||||||
QList<TextItem*> &textItems)
|
QList<TextItem*> &textItems, const QImage &arrow, const QImage &waterArrow)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < lines.size(); i++) {
|
for (int i = 0; i < lines.size(); i++) {
|
||||||
const MapData::Poly &poly = lines.at(i);
|
const MapData::Poly &poly = lines.at(i);
|
||||||
@ -334,7 +328,9 @@ void RasterTile::processStreetNames(const QList<MapData::Poly> &lines,
|
|||||||
const QColor *color = style.textColor().isValid()
|
const QColor *color = style.textColor().isValid()
|
||||||
? &style.textColor() : 0;
|
? &style.textColor() : 0;
|
||||||
const QColor *hColor = Style::isContourLine(poly.type) ? 0 : &haloColor;
|
const QColor *hColor = Style::isContourLine(poly.type) ? 0 : &haloColor;
|
||||||
const QImage *img = poly.oneway ? arrow() : 0;
|
const QImage *img = poly.oneway
|
||||||
|
? Style::isWaterLine(poly.type)
|
||||||
|
? &waterArrow : &arrow : 0;
|
||||||
|
|
||||||
TextPathItem *item = new TextPathItem(poly.points,
|
TextPathItem *item = new TextPathItem(poly.points,
|
||||||
&poly.label.text(), _rect, fnt, color, hColor, img);
|
&poly.label.text(), _rect, fnt, color, hColor, img);
|
||||||
@ -479,6 +475,10 @@ void RasterTile::render()
|
|||||||
QList<MapData::Poly> lines;
|
QList<MapData::Poly> lines;
|
||||||
QList<MapData::Point> points;
|
QList<MapData::Point> points;
|
||||||
QList<TextItem*> textItems;
|
QList<TextItem*> textItems;
|
||||||
|
QImage arrow = (_ratio >= 2)
|
||||||
|
? QImage(":/map/arrow@2x.png") : QImage(":/map/arrow.png");
|
||||||
|
QImage waterArrow = (_ratio >= 2)
|
||||||
|
? QImage(":/map/water-arrow@2x.png") : QImage(":/map/water-arrow.png");
|
||||||
|
|
||||||
fetchData(polygons, lines, points);
|
fetchData(polygons, lines, points);
|
||||||
ll2xy(polygons);
|
ll2xy(polygons);
|
||||||
@ -487,7 +487,7 @@ void RasterTile::render()
|
|||||||
|
|
||||||
processPoints(points, textItems);
|
processPoints(points, textItems);
|
||||||
processPolygons(polygons, textItems);
|
processPolygons(polygons, textItems);
|
||||||
processLines(lines, textItems);
|
processLines(lines, textItems, arrow, waterArrow);
|
||||||
|
|
||||||
_pixmap.setDevicePixelRatio(_ratio);
|
_pixmap.setDevicePixelRatio(_ratio);
|
||||||
_pixmap.fill(Qt::transparent);
|
_pixmap.fill(Qt::transparent);
|
||||||
|
@ -45,13 +45,13 @@ private:
|
|||||||
void processPolygons(const QList<MapData::Poly> &polygons,
|
void processPolygons(const QList<MapData::Poly> &polygons,
|
||||||
QList<TextItem *> &textItems);
|
QList<TextItem *> &textItems);
|
||||||
void processLines(QList<MapData::Poly> &lines,
|
void processLines(QList<MapData::Poly> &lines,
|
||||||
QList<TextItem*> &textItems);
|
QList<TextItem*> &textItems, const QImage &arrow, const QImage &waterArrow);
|
||||||
void processPoints(QList<MapData::Point> &points,
|
void processPoints(QList<MapData::Point> &points,
|
||||||
QList<TextItem*> &textItems);
|
QList<TextItem*> &textItems);
|
||||||
void processShields(const QList<MapData::Poly> &lines,
|
void processShields(const QList<MapData::Poly> &lines,
|
||||||
QList<TextItem*> &textItems);
|
QList<TextItem*> &textItems);
|
||||||
void processStreetNames(const QList<MapData::Poly> &lines,
|
void processStreetNames(const QList<MapData::Poly> &lines,
|
||||||
QList<TextItem*> &textItems);
|
QList<TextItem*> &textItems, const QImage &arrow, const QImage &waterArrow);
|
||||||
|
|
||||||
Projection _proj;
|
Projection _proj;
|
||||||
Transform _transform;
|
Transform _transform;
|
||||||
|
@ -104,6 +104,9 @@ public:
|
|||||||
static bool isWaterArea(quint32 type)
|
static bool isWaterArea(quint32 type)
|
||||||
{return ((type >= TYPE(0x3c) && type <= TYPE(0x44))
|
{return ((type >= TYPE(0x3c) && type <= TYPE(0x44))
|
||||||
|| (type & 0xffff00) == TYPE(0x10b));}
|
|| (type & 0xffff00) == TYPE(0x10b));}
|
||||||
|
static bool isWaterLine(quint32 type)
|
||||||
|
{return (type == TYPE(0x26) || type == TYPE(0x18)
|
||||||
|
|| type == TYPE(0x1f));}
|
||||||
static bool isMilitaryArea(quint32 type)
|
static bool isMilitaryArea(quint32 type)
|
||||||
{return (type == TYPE(0x04) || type == 0x10901);}
|
{return (type == TYPE(0x04) || type == 0x10901);}
|
||||||
static bool isNatureReserve(quint32 type)
|
static bool isNatureReserve(quint32 type)
|
||||||
|
Loading…
Reference in New Issue
Block a user