#include "mapitemgeopolygon.h" #include "osm_math_p.h" MapItemGeoPolygon::MapItemGeoPolygon(const QPolygonF & p) { ignore_scale = true; setPolygon(p); } void MapItemGeoPolygon::setPolygon(const QPolygonF & p) { pol = p; updatePolygon(); } void MapItemGeoPolygon::draw(QPainter * p) { p->setPen(pen()); p->setBrush(brush()); QPolygonF dp(norm_polygon); QPointF pos_offset = mapToView(norm_pos); for (auto & i: dp) i = mapToView(i) - pos_offset; p->drawPolygon(dp); setBoundingRect(dp.boundingRect()); } void MapItemGeoPolygon::updatePolygon() { norm_polygon.resize(pol.size()); for (int i = 0; i < pol.size(); ++i) norm_polygon[i] = OSM::geo2xy(pol[i]); updateParent(); }