Skip to content

Commit 75946c1

Browse files
committed
Add remaining Symbolizers [WIP] [skip ci]
1 parent 7cd02d8 commit 75946c1

5 files changed

Lines changed: 189 additions & 1 deletion

File tree

setup.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,11 @@ def check_output(args):
100100
"src/mapnik_parameters.cpp",
101101
"src/python_grid_utils.cpp",
102102
"src/mapnik_raster_colorizer.cpp",
103-
"src/mapnik_label_collision_detector.cpp"
103+
"src/mapnik_label_collision_detector.cpp",
104+
"src/mapnik_dot_symbolizer.cpp",
105+
"src/mapnik_building_symbolizer.cpp",
106+
"src/mapnik_shield_symbolizer.cpp",
107+
"src/mapnik_group_symbolizer.cpp"
104108
],
105109
extra_compile_args=extra_comp_args,
106110
extra_link_args=linkflags,

src/mapnik_building_symbolizer.cpp

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
/*****************************************************************************
2+
*
3+
* This file is part of Mapnik (c++ mapping toolkit)
4+
*
5+
* Copyright (C) 2024 Artem Pavlenko
6+
*
7+
* This library is free software; you can redistribute it and/or
8+
* modify it under the terms of the GNU Lesser General Public
9+
* License as published by the Free Software Foundation; either
10+
* version 2.1 of the License, or (at your option) any later version.
11+
*
12+
* This library is distributed in the hope that it will be useful,
13+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15+
* Lesser General Public License for more details.
16+
*
17+
* You should have received a copy of the GNU Lesser General Public
18+
* License along with this library; if not, write to the Free Software
19+
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
20+
*
21+
*****************************************************************************/
22+
23+
// mapnik
24+
#include <mapnik/config.hpp>
25+
#include <mapnik/symbolizer.hpp>
26+
#include <mapnik/symbolizer_hash.hpp>
27+
#include <mapnik/symbolizer_utils.hpp>
28+
#include <mapnik/symbolizer_keys.hpp>
29+
#include "mapnik_symbolizer.hpp"
30+
//pybind11
31+
#include <pybind11/pybind11.h>
32+
33+
namespace py = pybind11;
34+
35+
void export_building_symbolizer(py::module const& m)
36+
{
37+
using namespace python_mapnik;
38+
using mapnik::building_symbolizer;
39+
40+
py::class_<building_symbolizer, symbolizer_base>(m, "BuildingSymbolizer")
41+
.def(py::init<>(), "Default ctor")
42+
.def("__hash__", hash_impl_2<building_symbolizer>)
43+
;
44+
45+
}

src/mapnik_dot_symbolizer.cpp

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
/*****************************************************************************
2+
*
3+
* This file is part of Mapnik (c++ mapping toolkit)
4+
*
5+
* Copyright (C) 2024 Artem Pavlenko
6+
*
7+
* This library is free software; you can redistribute it and/or
8+
* modify it under the terms of the GNU Lesser General Public
9+
* License as published by the Free Software Foundation; either
10+
* version 2.1 of the License, or (at your option) any later version.
11+
*
12+
* This library is distributed in the hope that it will be useful,
13+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15+
* Lesser General Public License for more details.
16+
*
17+
* You should have received a copy of the GNU Lesser General Public
18+
* License along with this library; if not, write to the Free Software
19+
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
20+
*
21+
*****************************************************************************/
22+
23+
// mapnik
24+
#include <mapnik/config.hpp>
25+
#include <mapnik/symbolizer.hpp>
26+
#include <mapnik/symbolizer_hash.hpp>
27+
#include <mapnik/symbolizer_utils.hpp>
28+
#include <mapnik/symbolizer_keys.hpp>
29+
#include "mapnik_symbolizer.hpp"
30+
//pybind11
31+
#include <pybind11/pybind11.h>
32+
33+
namespace py = pybind11;
34+
35+
void export_dot_symbolizer(py::module const& m)
36+
{
37+
using namespace python_mapnik;
38+
using mapnik::dot_symbolizer;
39+
40+
py::class_<dot_symbolizer, symbolizer_base>(m, "DotSymbolizer")
41+
.def(py::init<>(), "Default ctor")
42+
.def("__hash__", hash_impl_2<dot_symbolizer>)
43+
;
44+
45+
}

src/mapnik_group_symbolizer.cpp

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
/*****************************************************************************
2+
*
3+
* This file is part of Mapnik (c++ mapping toolkit)
4+
*
5+
* Copyright (C) 2024 Artem Pavlenko
6+
*
7+
* This library is free software; you can redistribute it and/or
8+
* modify it under the terms of the GNU Lesser General Public
9+
* License as published by the Free Software Foundation; either
10+
* version 2.1 of the License, or (at your option) any later version.
11+
*
12+
* This library is distributed in the hope that it will be useful,
13+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15+
* Lesser General Public License for more details.
16+
*
17+
* You should have received a copy of the GNU Lesser General Public
18+
* License along with this library; if not, write to the Free Software
19+
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
20+
*
21+
*****************************************************************************/
22+
23+
// mapnik
24+
#include <mapnik/config.hpp>
25+
#include <mapnik/symbolizer.hpp>
26+
#include <mapnik/symbolizer_hash.hpp>
27+
#include <mapnik/symbolizer_utils.hpp>
28+
#include <mapnik/symbolizer_keys.hpp>
29+
#include "mapnik_symbolizer.hpp"
30+
//pybind11
31+
#include <pybind11/pybind11.h>
32+
33+
namespace py = pybind11;
34+
35+
void export_group_symbolizer(py::module const& m)
36+
{
37+
using namespace python_mapnik;
38+
using mapnik::group_symbolizer;
39+
40+
py::class_<group_symbolizer, symbolizer_base>(m, "GroupSymbolizer")
41+
.def(py::init<>(), "Default ctor")
42+
.def("__hash__", hash_impl_2<group_symbolizer>)
43+
;
44+
45+
}

src/mapnik_shield_symbolizer.cpp

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
/*****************************************************************************
2+
*
3+
* This file is part of Mapnik (c++ mapping toolkit)
4+
*
5+
* Copyright (C) 2024 Artem Pavlenko
6+
*
7+
* This library is free software; you can redistribute it and/or
8+
* modify it under the terms of the GNU Lesser General Public
9+
* License as published by the Free Software Foundation; either
10+
* version 2.1 of the License, or (at your option) any later version.
11+
*
12+
* This library is distributed in the hope that it will be useful,
13+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15+
* Lesser General Public License for more details.
16+
*
17+
* You should have received a copy of the GNU Lesser General Public
18+
* License along with this library; if not, write to the Free Software
19+
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
20+
*
21+
*****************************************************************************/
22+
23+
// mapnik
24+
#include <mapnik/config.hpp>
25+
#include <mapnik/symbolizer.hpp>
26+
#include <mapnik/symbolizer_hash.hpp>
27+
#include <mapnik/symbolizer_utils.hpp>
28+
#include <mapnik/symbolizer_keys.hpp>
29+
#include "mapnik_symbolizer.hpp"
30+
//pybind11
31+
#include <pybind11/pybind11.h>
32+
33+
namespace py = pybind11;
34+
35+
void export_shield_symbolizer(py::module const& m)
36+
{
37+
using namespace python_mapnik;
38+
using mapnik::shield_symbolizer;
39+
40+
py::class_<shield_symbolizer, symbolizer_base>(m, "ShieldSymbolizer")
41+
.def(py::init<>(), "Default ctor")
42+
.def("__hash__", hash_impl_2<shield_symbolizer>)
43+
.def_property("file",
44+
&get_property<shield_symbolizer, mapnik::keys::file>,
45+
&set_path_property<shield_symbolizer, mapnik::keys::file>,
46+
"File path or mapnik.PathExpression")
47+
;
48+
49+
}

0 commit comments

Comments
 (0)