+ add resolution to mapwidget

+ add resolution command option
This commit is contained in:
Artem Pavlenko 2010-06-17 08:26:08 +00:00
parent e645338237
commit 3e2a82ed16
5 changed files with 76 additions and 58 deletions

View file

@ -62,7 +62,7 @@ int main( int argc, char **argv )
MainWindow window;
window.show();
if (argc > 1) window.open(argv[1]);
if (argc == 3)
if (argc >= 3)
{
QStringList list = QString(argv[2]).split(",");
if (list.size()==4)
@ -79,5 +79,11 @@ int main( int argc, char **argv )
{
window.zoom_all();
}
if (argc == 4)
{
bool ok;
double scaling_factor = QString(argv[3]).toDouble(&ok);
if (ok) window.set_scaling_factor(scaling_factor);
}
return app.exec();
}

View file

@ -387,6 +387,11 @@ void MainWindow::set_default_extent(double x0,double y0, double x1, double y1)
catch (...) {}
}
void MainWindow::set_scaling_factor(double scaling_factor)
{
mapWidget_->set_scaling_factor(scaling_factor);
}
void MainWindow::zoom_all()
{
boost::shared_ptr<mapnik::Map> map_ptr = mapWidget_->getMap();

View file

@ -43,6 +43,7 @@ class MainWindow : public QMainWindow
MainWindow();
virtual ~MainWindow();
void set_default_extent(double x0,double y0,double x1, double y1);
void set_scaling_factor(double scaling_factor);
protected:
void closeEvent(QCloseEvent* event);
public slots:
@ -104,7 +105,6 @@ private:
//status bar
QStatusBar *status;
QSlider * slider_;
mapnik::box2d<double> default_extent_;
};

View file

@ -74,7 +74,8 @@ MapWidget::MapWidget(QWidget *parent)
drag_(false),
first_(true),
pen_(QColor(0,0,255,96)),
selectedLayer_(-1)
selectedLayer_(-1),
scaling_factor_(1.0)
{
pen_.setWidth(3);
pen_.setCapStyle(Qt::RoundCap);
@ -444,6 +445,10 @@ void MapWidget::export_to_file(unsigned ,unsigned ,std::string const&,std::strin
//image.saveToFile(filename,type);
}
void MapWidget::set_scaling_factor(double scaling_factor)
{
scaling_factor_ = scaling_factor;
}
void MapWidget::updateMap()
{
@ -456,7 +461,7 @@ void MapWidget::updateMap()
try
{
mapnik::agg_renderer<image_32> ren(*map_,buf);
mapnik::agg_renderer<image_32> ren(*map_,buf,scaling_factor_);
ren.apply();
QImage image((uchar*)buf.raw_data(),width,height,QImage::Format_ARGB32);

View file

@ -44,7 +44,7 @@ class MapWidget : public QWidget
Info,
};
private:
private:
boost::shared_ptr<mapnik::Map> map_;
int selected_;
QPixmap pix_;
@ -58,7 +58,8 @@ class MapWidget : public QWidget
bool first_;
QPen pen_;
int selectedLayer_;
public:
double scaling_factor_;
public:
MapWidget(QWidget *parent=0);
void setTool(eTool tool);
boost::shared_ptr<mapnik::Map> getMap();
@ -72,13 +73,14 @@ class MapWidget : public QWidget
void panRight();
void panUp();
void panDown();
public slots:
void set_scaling_factor(double);
public slots:
void zoomToLevel(int level);
void updateMap();
void layerSelected(int);
signals:
signals:
void mapViewChanged();
protected:
protected:
void paintEvent(QPaintEvent* ev);
void resizeEvent(QResizeEvent* ev);
void mousePressEvent(QMouseEvent* e);