version 2.13.0
add Map library (MapView with OSM maps and items) and mapviewer util
This commit is contained in:
34
libs/map/mapitemgeopolyline.cpp
Normal file
34
libs/map/mapitemgeopolyline.cpp
Normal file
@@ -0,0 +1,34 @@
|
||||
#include "mapitemgeopolyline.h"
|
||||
|
||||
#include "osm_math_p.h"
|
||||
|
||||
|
||||
MapItemGeoPolyline::MapItemGeoPolyline(const QPolygonF & p) {
|
||||
ignore_scale = true;
|
||||
setPolyline(p);
|
||||
}
|
||||
|
||||
|
||||
void MapItemGeoPolyline::setPolyline(const QPolygonF & p) {
|
||||
pol = p;
|
||||
updatePolygon();
|
||||
}
|
||||
|
||||
|
||||
void MapItemGeoPolyline::draw(QPainter * p) {
|
||||
p->setPen(pen());
|
||||
QPolygonF dp(norm_polygon);
|
||||
QPointF pos_offset = mapToView(norm_pos);
|
||||
for (auto & i: dp)
|
||||
i = mapToView(i) - pos_offset;
|
||||
p->drawPolyline(dp);
|
||||
setBoundingRect(dp.boundingRect());
|
||||
}
|
||||
|
||||
|
||||
void MapItemGeoPolyline::updatePolygon() {
|
||||
norm_polygon.resize(pol.size());
|
||||
for (int i = 0; i < pol.size(); ++i)
|
||||
norm_polygon[i] = OSM::geo2xy(pol[i]);
|
||||
updateParent();
|
||||
}
|
||||
Reference in New Issue
Block a user