mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-20 16:50:48 +00:00
Changed strategy to "Franklin"
This commit is contained in:
parent
5e21a06559
commit
d2cd941f47
@ -107,7 +107,7 @@ private:
|
||||
|
||||
|
||||
/// Simple algorithm with bounding box.
|
||||
template <typename CoordinateType>
|
||||
template <typename Strategy, typename CoordinateType>
|
||||
class PointInPolygon
|
||||
{
|
||||
public:
|
||||
@ -136,7 +136,7 @@ public:
|
||||
if (!boost::geometry::within(point, box))
|
||||
return false;
|
||||
|
||||
return boost::geometry::covered_by(point, polygon);
|
||||
return boost::geometry::covered_by(point, polygon, strategy);
|
||||
}
|
||||
|
||||
UInt64 getAllocatedBytes() const { return sizeof(*this); }
|
||||
@ -145,6 +145,7 @@ private:
|
||||
const Polygon & polygon;
|
||||
Box box;
|
||||
bool has_empty_bound = false;
|
||||
Strategy strategy;
|
||||
};
|
||||
|
||||
|
||||
|
@ -42,16 +42,16 @@ namespace ErrorCodes
|
||||
}
|
||||
|
||||
|
||||
using CoordinateType = Float64;
|
||||
using Point = boost::geometry::model::d2::point_xy<CoordinateType>;
|
||||
using Polygon = boost::geometry::model::polygon<Point, false>;
|
||||
using Box = boost::geometry::model::box<Point>;
|
||||
|
||||
|
||||
template <typename PointInConstPolygonImpl, typename PointInNonConstPolygonImpl>
|
||||
class FunctionPointInPolygon : public IFunction
|
||||
{
|
||||
public:
|
||||
using CoordinateType = Float64;
|
||||
|
||||
using Point = boost::geometry::model::d2::point_xy<CoordinateType>;
|
||||
using Polygon = boost::geometry::model::polygon<Point, false>;
|
||||
using Box = boost::geometry::model::box<Point>;
|
||||
|
||||
static inline const char * name = "pointInPolygon";
|
||||
|
||||
explicit FunctionPointInPolygon(bool validate_) : validate(validate_) {}
|
||||
@ -381,7 +381,9 @@ private:
|
||||
|
||||
void registerFunctionPointInPolygon(FunctionFactory & factory)
|
||||
{
|
||||
factory.registerFunction<FunctionPointInPolygon<PointInPolygonWithGrid<Float64>, PointInPolygon<Float64>>>();
|
||||
factory.registerFunction<FunctionPointInPolygon<
|
||||
PointInPolygonWithGrid<Float64>,
|
||||
PointInPolygon<boost::geometry::strategy::within::franklin<Point>, Float64>>>();
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user