added set_datasource method (TODO!!!)

fixed pointz in shapeindex
This commit is contained in:
Artem Pavlenko 2006-03-28 08:29:36 +00:00
parent bc10495517
commit 8986108775
5 changed files with 50 additions and 24 deletions

View file

@ -29,27 +29,27 @@
namespace mapnik namespace mapnik
{ {
template <typename T> template <typename T>
class MAPNIK_DECL agg_renderer : public feature_style_processor<agg_renderer<T> >, class MAPNIK_DECL agg_renderer : public feature_style_processor<agg_renderer<T> >,
private boost::noncopyable private boost::noncopyable
{ {
public: public:
agg_renderer(Map const& m, T & pixmap); agg_renderer(Map const& m, T & pixmap);
void start_map_processing(Map const& map); void start_map_processing(Map const& map);
void end_map_processing(Map const& map); void end_map_processing(Map const& map);
void start_layer_processing(Layer const& lay); void start_layer_processing(Layer const& lay);
void end_layer_processing(Layer const& lay); void end_layer_processing(Layer const& lay);
void process(point_symbolizer const& sym,Feature const& feature); void process(point_symbolizer const& sym,Feature const& feature);
void process(line_symbolizer const& sym,Feature const& feature); void process(line_symbolizer const& sym,Feature const& feature);
void process(line_pattern_symbolizer const& sym,Feature const& feature); void process(line_pattern_symbolizer const& sym,Feature const& feature);
void process(polygon_symbolizer const& sym,Feature const& feature); void process(polygon_symbolizer const& sym,Feature const& feature);
void process(polygon_pattern_symbolizer const& sym,Feature const& feature); void process(polygon_pattern_symbolizer const& sym,Feature const& feature);
void process(raster_symbolizer const& sym,Feature const& feature); void process(raster_symbolizer const& sym,Feature const& feature);
void process(text_symbolizer const& sym,Feature const& feature); void process(text_symbolizer const& sym,Feature const& feature);
private: private:
T & pixmap_; T & pixmap_;
CoordTransform t_; CoordTransform t_;
face_manager<freetype_engine> font_manager_; face_manager<freetype_engine> font_manager_;
label_collision_detector2 detector_; label_collision_detector2 detector_;
}; };
} }

View file

@ -81,6 +81,7 @@ namespace mapnik
void add_to_selection(boost::shared_ptr<Feature>& feature) const; void add_to_selection(boost::shared_ptr<Feature>& feature) const;
std::vector<boost::shared_ptr<Feature> >& selection() const; std::vector<boost::shared_ptr<Feature> >& selection() const;
void clear_selection() const; void clear_selection() const;
void set_datasource(datasource_p const& ds);
datasource_p const& datasource() const; datasource_p const& datasource() const;
Envelope<double> envelope() const; Envelope<double> envelope() const;
virtual ~Layer(); virtual ~Layer();

View file

@ -106,6 +106,7 @@ namespace mapnik
void agg_renderer<T>::start_layer_processing(Layer const& lay) void agg_renderer<T>::start_layer_processing(Layer const& lay)
{ {
std::clog << "start layer processing : " << lay.name() << std::endl; std::clog << "start layer processing : " << lay.name() << std::endl;
std::clog << "datasource = " << lay.datasource().get() << std::endl;
} }
template <typename T> template <typename T>

View file

@ -30,7 +30,16 @@
namespace mapnik namespace mapnik
{ {
using namespace std; using namespace std;
Layer::Layer() {} Layer::Layer()
: params_(),
name_("uknown"),
minZoom_(0),
maxZoom_(std::numeric_limits<double>::max()),
active_(true),
selectable_(false),
selection_style_("default_selection")
{}
Layer::Layer(const parameters& params) Layer::Layer(const parameters& params)
:params_(params), :params_(params),
name_(params_["name"]), name_(params_["name"]),
@ -48,7 +57,7 @@ namespace mapnik
maxZoom_(rhs.maxZoom_), maxZoom_(rhs.maxZoom_),
active_(rhs.active_), active_(rhs.active_),
selectable_(rhs.selectable_), selectable_(rhs.selectable_),
//ds_(rhs.ds_), ds_(rhs.ds_),
styles_(rhs.styles_), styles_(rhs.styles_),
selection_style_(rhs.selection_style_) {} selection_style_(rhs.selection_style_) {}
@ -154,11 +163,16 @@ namespace mapnik
} }
catch (...) catch (...)
{ {
std::clog << "exception caught : can not create datasorce" << std::endl; std::clog << "exception caught : can not create datasource" << std::endl;
} }
} }
return ds_; return ds_;
} }
// TODO: !!!!
void Layer::set_datasource(datasource_p const& ds)
{
ds_ = ds;
}
Envelope<double> Layer::envelope() const Envelope<double> Layer::envelope() const
{ {

View file

@ -149,13 +149,23 @@ int main (int argc,char** argv)
shp.skip(2*content_length-2*8-4); shp.skip(2*content_length-2*8-4);
item_ext=Envelope<double>(x,y,x,y); item_ext=Envelope<double>(x,y,x,y);
}
if (shape_type==shape_io::shape_pointm)
{
double x=shp.read_double();
double y=shp.read_double();
shp.read_double();
shp.skip(2*content_length-3*8-4);
item_ext=Envelope<double>(x,y,x,y);
} }
else if (shape_type==shape_io::shape_pointz) else if (shape_type==shape_io::shape_pointz)
{ {
double x=shp.read_double(); double x=shp.read_double();
double y=shp.read_double(); double y=shp.read_double();
shp.read_double(); shp.read_double();
shp.skip(2*content_length-2*8-4); shp.read_double();
shp.skip(2*content_length-4*8-4);
item_ext=Envelope<double>(x,y,x,y); item_ext=Envelope<double>(x,y,x,y);
} }