Инициализация полигона в повышении:: геометрия

К сожалению, Вы не можете сослаться на свой псевдоним в операторе GROUP BY, необходимо будет записать логику снова, удивительный, поскольку это кажется.

SELECT       LastName + ', ' + FirstName AS 'FullName'
FROM         customers
GROUP BY     LastName + ', ' + FirstName

Поочередно Вы могли поместить выбор в подызбранное или общее выражение таблицы, после которого Вы могли сгруппироваться на имени столбца (больше псевдоним.)

5
задан genpfault 25 April 2019 в 18:36
поделиться

2 ответа

append(P, make<point_2d>(*xi, *yi));
6
ответ дан 18 December 2019 в 09:08
поделиться

Вот пример к расширению вашего первоначального вопроса, который вы спросили в качестве комментариев ниже ответа Кирилла: являются ли возможными пересечениями между многоугольниками?

Да, пересечения многоугольника-многоугольниками поддерживаются Boost.Geometry (AKA GGL)

#include <iostream>
#include <vector>
#include <boost/geometry/geometry.hpp>
#include <boost/geometry/geometries/cartesian2d.hpp>
#include <boost/geometry/geometries/adapted/c_array_cartesian.hpp>

using namespace boost::geometry;

int main(void)
{
    // Define a polygons and fill the outer rings.
    polygon_2d a;
    {
        const double c[][2] = {
            {160, 330}, {60, 260}, {20, 150}, {60, 40}, {190, 20}, {270, 130}, {260, 250}, {160, 330}
        };
        assign(a, c);
    }
    correct(a);
    std::cout << "A: " << dsv(a) << std::endl;

    polygon_2d b;
    {
        const double c[][3] = {
            {300, 330}, {190, 270}, {150, 170}, {150, 110}, {250, 30}, {380, 50}, {380, 250}, {300, 330}
        };
        assign(b, c);
    }
    correct(b);
    std::cout << "B: " << dsv(b) << std::endl;

    // Calculate interesection
    typedef std::vector<polygon_2d > polygon_list;
    polygon_list v;

    intersection_inserter<polygon_2d>(a, b, std::back_inserter(v));
    std::cout << "Intersection of polygons A and B" << std::endl;
    for (polygon_list::const_iterator it = v.begin(); it != v.end(); ++it)
    {
        std::cout << dsv(*it) << std::endl;
    }

    return 0;
}

Здесь - это результат (пересечение многоугольника перемещается на юг для лучшей видимости):

alt text

Я надеюсь, что это будет работать для вас.

12
ответ дан 18 December 2019 в 09:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: