#pragma once #ifdef _MSC_VER #pragma warning(push) #pragma warning(disable : 4244) #pragma warning(disable : 4267) #endif #include #ifdef _MSC_VER #pragma warning(pop) #endif #include #include namespace mbgl { namespace style { namespace expression { class Distance final : public Expression { public: Distance(GeoJSON geoJSONSource_, Feature::geometry_type geometries_); ~Distance() override; EvaluationResult evaluate(const EvaluationContext&) const override; static ParseResult parse(const mbgl::style::conversion::Convertible&, ParsingContext&); void eachChild(const std::function&) const noexcept override {} bool operator==(const Expression& e) const noexcept override; std::vector> possibleOutputs() const override { return {std::nullopt}; } mbgl::Value serialize() const override; std::string getOperator() const override { return "distance"; } private: GeoJSON geoJSONSource; Feature::geometry_type geometries; }; } // namespace expression } // namespace style } // namespace mbgl