Hi,

    DualBox db(grid_point(0,0), grid_point(2,2));
    world_point wpi(1.0,1.0);
    world_point wpo(3.0,3.0);
    grid_point gpi(1,1);
    grid_point gpo(3,3);

    bool wptrue  = boost::geometry::within(wpi,db);
    bool wpfalse = boost::geometry::within(wpo,db);
    bool gptrue = boost::geometry::within(gpi,db);
    bool gpfalse = boost::geometry::within(gpo,db);

Since within() can take 2 different geometries with potentially different point types, I'm not sure to understand what can't be done in the code above using a mere grid point box. I.e. a grid point box can be passed as first argument of within() while passing a world point as 2nd argument. But maybe this particular code doesn't tell the full story of what you're trying to achieve?

Regarding the possible difference of scale between a grid point and a world point (your comment in the code), this is a different issue that probably appeals for something like a transformed view...

Regards
Bruno