mirror of
https://github.com/tumic0/GPXSee.git
synced 2024-11-27 21:24:47 +01:00
Display one-way streets info in IMG maps
This commit is contained in:
parent
56c77df176
commit
b4be5ea206
@ -55,6 +55,11 @@
|
|||||||
<file alias="transform-move_32@2x.png">icons/GUI/transform-move_32@2x.png</file>
|
<file alias="transform-move_32@2x.png">icons/GUI/transform-move_32@2x.png</file>
|
||||||
</qresource>
|
</qresource>
|
||||||
|
|
||||||
|
<!-- Common map stuff -->
|
||||||
|
<qresource prefix="/map">
|
||||||
|
<file alias="arrow.png">icons/map/arrow.png</file>
|
||||||
|
</qresource>
|
||||||
|
|
||||||
<!-- POIs (IMG & ENC style) -->
|
<!-- POIs (IMG & ENC style) -->
|
||||||
<qresource prefix="/POI">
|
<qresource prefix="/POI">
|
||||||
<file alias="airfield-11.png">icons/map/POI/airfield-11.png</file>
|
<file alias="airfield-11.png">icons/map/POI/airfield-11.png</file>
|
||||||
|
BIN
icons/map/arrow.png
Normal file
BIN
icons/map/arrow.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 180 B |
@ -25,6 +25,8 @@ class MapData
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
struct Poly {
|
struct Poly {
|
||||||
|
Poly() : oneway(false) {}
|
||||||
|
|
||||||
/* QPointF insted of Coordinates for performance reasons (no need to
|
/* QPointF insted of Coordinates for performance reasons (no need to
|
||||||
duplicate all the vectors for drawing). Note, that we do not want to
|
duplicate all the vectors for drawing). Note, that we do not want to
|
||||||
ll2xy() the points in the MapData class as this can not be done in
|
ll2xy() the points in the MapData class as this can not be done in
|
||||||
@ -34,6 +36,7 @@ public:
|
|||||||
Raster raster;
|
Raster raster;
|
||||||
quint32 type;
|
quint32 type;
|
||||||
RectC boundingRect;
|
RectC boundingRect;
|
||||||
|
bool oneway;
|
||||||
|
|
||||||
bool operator<(const Poly &other) const
|
bool operator<(const Poly &other) const
|
||||||
{return type > other.type;}
|
{return type > other.type;}
|
||||||
|
@ -25,6 +25,12 @@ 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;
|
||||||
@ -327,16 +333,27 @@ void RasterTile::processStreetNames(const QList<MapData::Poly> &lines,
|
|||||||
const QFont *fnt = font(style.textFontSize(), Style::Small);
|
const QFont *fnt = font(style.textFontSize(), Style::Small);
|
||||||
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 QImage *img = poly.oneway ? arrow() : 0;
|
||||||
|
|
||||||
TextPathItem *item = new TextPathItem(poly.points,
|
TextPathItem *item = new TextPathItem(poly.points,
|
||||||
&poly.label.text(), _rect, fnt, color, Style::isContourLine(poly.type)
|
&poly.label.text(), _rect, fnt, color, hColor, img);
|
||||||
? 0 : &haloColor);
|
if (item->isValid() && !item->collides(textItems))
|
||||||
|
textItems.append(item);
|
||||||
|
else {
|
||||||
|
delete item;
|
||||||
|
|
||||||
|
if (img) {
|
||||||
|
TextPathItem *item = new TextPathItem(poly.points, 0, _rect, 0,
|
||||||
|
0, 0, img);
|
||||||
if (item->isValid() && !item->collides(textItems))
|
if (item->isValid() && !item->collides(textItems))
|
||||||
textItems.append(item);
|
textItems.append(item);
|
||||||
else
|
else
|
||||||
delete item;
|
delete item;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void RasterTile::processShields(const QList<MapData::Poly> &lines,
|
void RasterTile::processShields(const QList<MapData::Poly> &lines,
|
||||||
QList<TextItem*> &textItems)
|
QList<TextItem*> &textItems)
|
||||||
|
@ -292,6 +292,8 @@ bool RGNFile::polyObjects(Handle &hdl, const SubDiv *subdiv,
|
|||||||
|
|
||||||
poly.type = (segmentType == Polygon)
|
poly.type = (segmentType == Polygon)
|
||||||
? ((quint32)(type & 0x7F)) << 8 : ((quint32)(type & 0x3F)) << 8;
|
? ((quint32)(type & 0x7F)) << 8 : ((quint32)(type & 0x3F)) << 8;
|
||||||
|
if (segmentType == Line && type & 0x40)
|
||||||
|
poly.oneway = true;
|
||||||
|
|
||||||
|
|
||||||
QPoint pos(subdiv->lon() + LS(lon, 24-subdiv->bits()),
|
QPoint pos(subdiv->lon() + LS(lon, 24-subdiv->bits()),
|
||||||
|
Loading…
Reference in New Issue
Block a user