simplify scale_denominator interface
This commit is contained in:
parent
12dfcef3a0
commit
86a873857f
6 changed files with 12 additions and 10 deletions
|
@ -8,6 +8,8 @@ For a complete change history, see the git log.
|
|||
|
||||
## Future
|
||||
|
||||
- Changed scale_denominator C++ interface to take scale as first argument rather than map.
|
||||
|
||||
- Added support for `background-image` in cairo_renderer (#1724)
|
||||
|
||||
- Added Layer `buffer-size` that can be used to override Map `buffer-size` to avoid
|
||||
|
|
|
@ -329,7 +329,7 @@ void render_to_file3(const mapnik::Map& map,
|
|||
|
||||
double scale_denominator(mapnik::Map const &map, bool geographic)
|
||||
{
|
||||
return mapnik::scale_denominator(map, geographic);
|
||||
return mapnik::scale_denominator(map.scale(), geographic);
|
||||
}
|
||||
|
||||
// http://docs.python.org/c-api/exceptions.html#standard-exceptions
|
||||
|
@ -691,6 +691,7 @@ BOOST_PYTHON_MODULE(_mapnik)
|
|||
#endif
|
||||
|
||||
def("scale_denominator", &scale_denominator,
|
||||
(arg("map"),arg("is_geographic")),
|
||||
"\n"
|
||||
"Return the Map Scale Denominator.\n"
|
||||
"Also available as Map.scale_denominator()\n"
|
||||
|
|
|
@ -157,7 +157,7 @@ void feature_style_processor<Processor>::apply()
|
|||
try
|
||||
{
|
||||
projection proj(m_.srs(),true);
|
||||
double scale_denom = mapnik::scale_denominator(m_,proj.is_geographic());
|
||||
double scale_denom = mapnik::scale_denominator(m_.scale(),proj.is_geographic());
|
||||
scale_denom *= scale_factor_;
|
||||
|
||||
BOOST_FOREACH ( layer const& lyr, m_.layers() )
|
||||
|
@ -191,7 +191,7 @@ void feature_style_processor<Processor>::apply(mapnik::layer const& lyr, std::se
|
|||
try
|
||||
{
|
||||
projection proj(m_.srs(),true);
|
||||
double scale_denom = mapnik::scale_denominator(m_,proj.is_geographic());
|
||||
double scale_denom = mapnik::scale_denominator(m_.scale(),proj.is_geographic());
|
||||
scale_denom *= scale_factor_;
|
||||
|
||||
if (lyr.visible(scale_denom))
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
namespace mapnik {
|
||||
|
||||
class Map;
|
||||
MAPNIK_DECL double scale_denominator(Map const& map, bool geographic);
|
||||
MAPNIK_DECL double scale_denominator(double map_scale, bool geographic);
|
||||
}
|
||||
|
||||
#endif // MAPNIK_SCALE_DENOMINATOR_HPP
|
||||
|
|
|
@ -530,7 +530,7 @@ double Map::scale() const
|
|||
double Map::scale_denominator() const
|
||||
{
|
||||
projection map_proj(srs_);
|
||||
return mapnik::scale_denominator( *this, map_proj.is_geographic());
|
||||
return mapnik::scale_denominator( scale(), map_proj.is_geographic());
|
||||
}
|
||||
|
||||
CoordTransform Map::view_transform() const
|
||||
|
|
|
@ -22,19 +22,18 @@
|
|||
|
||||
// mapnik
|
||||
#include <mapnik/scale_denominator.hpp>
|
||||
#include <mapnik/map.hpp>
|
||||
#include <mapnik/global.hpp>
|
||||
|
||||
// stl
|
||||
#include <cmath>
|
||||
|
||||
namespace mapnik {
|
||||
|
||||
static const double pi = 3.14159265359;
|
||||
static const double meters_per_degree = 6378137 * 2 * pi/ 360;
|
||||
static const double meters_per_degree = 6378137 * 2 * M_PI / 360;
|
||||
|
||||
double scale_denominator(Map const& map, bool geographic)
|
||||
double scale_denominator(double map_scale, bool geographic)
|
||||
{
|
||||
double denom = map.scale() / 0.00028;
|
||||
double denom = map_scale / 0.00028;
|
||||
if (geographic) denom *= meters_per_degree;
|
||||
return denom;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue