Compare commits

...
Sign in to create a new pull request.

7453 commits

Author SHA1 Message Date
Artem Pavlenko
bb3106d04f
Merge pull request #4480 from mapnik/configure-unbound-variable
Check for if VARS is set (ref #4478)
2024-11-04 18:21:55 +00:00
Artem Pavlenko
8ebd792258 Check for if VARS is set (ref #4478) 2024-11-04 16:39:09 +00:00
Artem Pavlenko
e7a2bacb5d update CHANGELOG for mapnik v4.0.3 release [skip ci] 2024-10-30 08:45:55 +00:00
Artem Pavlenko
05389e3c73 setting up for mapnik v4.0.3 release [skip ci] 2024-10-30 08:44:01 +00:00
Artem Pavlenko
abeace5167
Merge pull request #4479 from mapnik/empty_featureset
Empty featureset
2024-10-29 11:04:26 +00:00
Artem Pavlenko
92b1ea9ceb Commit staged changes 2024-10-29 10:19:22 +00:00
Artem Pavlenko
cd082c5872 Update version to 4.0.3 2024-10-29 09:56:03 +00:00
Artem Pavlenko
c1117a4d33 Empty featureset instead of invalid + bool is_empty(featureset_ptr) 2024-10-29 09:52:35 +00:00
Artem Pavlenko
20b154ae49 Remove 'final' specifier as it was breaking dynamic_cast<invalid_featureset*> in 'is_valid' test when building on macOS arm64
```
Apple clang version 16.0.0 (clang-1600.0.26.3)
Target: arm64-apple-darwin24.0.0
```
Also remove empty dtor as not required
2024-10-28 11:02:08 +00:00
Artem Pavlenko
379261434b Upgrade to SCons v4.8.1 2024-09-09 10:56:17 +01:00
Artem Pavlenko
3d172b94f7 Unit tests - fix #endif statement (via @bgardner-noggin) 2024-09-04 09:39:11 +01:00
Artem Pavlenko
5f327ff3c8 update CHANGELOG for mapnik v4.0.2 release [skip ci] 2024-08-21 14:00:44 +01:00
Artem Pavlenko
dc97085b31 Upgrade SCons to v4.8.0 [skip ci] 2024-08-21 13:57:11 +01:00
Artem Pavlenko
7a1663f0a2 Update version to 4.0.2 2024-08-15 11:07:05 +01:00
Artem Pavlenko
924123e9c7
Merge pull request #4470 from mapnik/cmake-soversion
CMake - set `SOVERSION` to `${MAPNIK_MAJOR_VERSION}.${MAPNIK_MINOR_VERSION}`
2024-07-31 15:34:43 +01:00
Artem Pavlenko
75756b33f3 CMake - set SOVERSION to ${MAPNIK_MAJOR_VERSION}.${MAPNIK_MINOR_VERSION} 2024-07-31 10:30:50 +01:00
Artem Pavlenko
f1a3d6d7da Update CHANGELOG [skip ci] 2024-07-30 11:12:51 +01:00
Artem Pavlenko
3348f97c76
Merge pull request #4468 from mapnik/bounding-box-split
Split bounding box along (0, 0) before reprojecting  [WIP] [skip ci]
2024-07-30 10:27:47 +01:00
Artem Pavlenko
a982e69525 clang-format 2024-07-29 12:35:31 +01:00
Artem Pavlenko
4f6a7a2571 Add basic forward/backward test for reprojection bounding box for epsg:3995 (WGS 84 / Arctic Polar Stereographic) 2024-07-29 11:23:39 +01:00
Artem Pavlenko
7358a66c2f mapnik::projection - add area_of_use method returning std::optional<mapnik::box2d<double>> (WGS84) [WIP] [skip ci] 2024-07-29 11:21:54 +01:00
Artem Pavlenko
727e3a1ca7 Split bounding box along (0, 0) before reprojecting [WIP] [skip ci]
(improves handling stereographic projections e.g epsg:3995)
2024-07-26 14:28:41 +01:00
Artem Pavlenko
fc029ae5a5 Update Coopyright year 2024-07-22 10:20:47 +01:00
Artem Pavlenko
4df58036aa Update version to 4.0.1 2024-07-22 09:53:04 +01:00
Artem Pavlenko
5e7b478627
Merge pull request #4456 from hummeltech/GCC14
Fix building with GCC 14
2024-07-15 15:54:03 +01:00
David Hummel
0526c603d4 Workaround for Windows builds with GCC 14 patches 2024-06-26 08:44:30 -07:00
David Hummel
2ef5003283 Fix building with GCC 14
Co-authored-by: Tom Hughes <tom@compton.nu>
2024-06-26 08:44:30 -07:00
Artem Pavlenko
eb99057a47
Merge pull request #4466 from hummeltech/GitHubActionsVCPkgCache
Speed up the GitHub Actions CI jobs
2024-06-26 10:29:52 +01:00
David Hummel
d9a6494858 Minor change to demonstrate cache usage 2024-06-25 13:23:11 -07:00
David Hummel
7f743210a0 Speed up the GitHub Actions jobs 2024-06-25 11:33:45 -07:00
Artem Pavlenko
53900d359c use MAPNIK_LIB_DIR via @hummeltech 2024-06-20 16:41:45 +01:00
Artem Pavlenko
507a834264 Merge branch 'tomhughes-libdir' 2024-06-20 16:40:52 +01:00
Tom Hughes
0e0aed3bde Use CMAKE_INSTALL_LIBDIR for libdir in pkg-config files 2024-06-19 19:44:01 +01:00
Artem Pavlenko
e7d0b85dbc
Merge pull request #4462 from hummeltech/InstallDoc
Update `INSTALL.md`
2024-06-17 09:06:20 +01:00
David Hummel
1a878af2f7 Update INSTALL.md 2024-06-16 13:01:46 -07:00
Artem Pavlenko
85801bd402 Mapnik 4.0.0 release. 2024-06-16 14:56:13 +01:00
Artem Pavlenko
02049bb811 Update publish_release.sh script [skip ci] 2024-06-16 14:53:46 +01:00
Artem Pavlenko
52bde246d2 Fix escape char (python >= v3.12) 2024-06-14 14:36:25 +01:00
Artem Pavlenko
ffcf059556
Merge pull request #4461 from hummeltech/MapnikTestsTempDir
Use `temp_directory_path` rather than hard-coded `/tmp` for `image io` tests
2024-06-14 12:45:19 +01:00
Artem Pavlenko
054c2a18a9 Downgrade to ubuntu-22.04 2024-06-14 09:41:49 +01:00
Artem Pavlenko
f91f522e71 runners - use explicit versioning + remove macos-13 2024-06-14 09:30:55 +01:00
David Hummel
9a0d7445be Use temp_directory_path rather than hard-coded /tmp for tests 2024-06-13 08:31:12 -07:00
Artem Pavlenko
63d7e51b84 Update data-visual (cairo) 2024-06-13 10:05:59 +01:00
Artem Pavlenko
3da7a3b1a1 Fix year :) 2024-06-12 16:06:42 +01:00
Artem Pavlenko
cde255852d Attempting to address #4460 by swithing to windows-19 runner 2024-06-12 16:04:48 +01:00
Artem Pavlenko
8c3048bf99 Use python3 by default 2024-06-10 15:39:10 +01:00
Artem Pavlenko
9610c4e2ad SConstruct - use pkg-config proj --variable=datadir ro determine PROJ_LIB directory 2024-06-10 15:35:30 +01:00
Artem Pavlenko
b8166f81a6 Update vcpkg-sha to ad25766aefb5313b6bc4e2a4b78a2946f84fbf66 2024-06-10 09:34:09 +01:00
Artem Pavlenko
84cd5864e7 demo/viewer - use std::optional 2024-06-07 14:12:24 +01:00
Artem Pavlenko
61cb187dbb Check if text_symbolizer has 'placement finder'(keys::text_placements) before any text processing 2024-06-04 12:15:10 +01:00
Artem Pavlenko
d7a8f1d04a clang-format 2024-06-04 12:13:02 +01:00
Artem Pavlenko
f5acdb3efd Update comment. 2024-06-04 12:11:28 +01:00
Artem Pavlenko
c87b245f71 Remove unused 'simplify_prefilter_' parameter (ref #4459) 2024-06-04 12:09:24 +01:00
Artem Pavlenko
4798be914c Set default font-size -> 16px/1em 2024-06-03 12:47:34 +01:00
Artem Pavlenko
653d8b7310 grid_view - delete assignment op 2024-05-30 09:17:14 +01:00
Artem Pavlenko
d7a490ffc2
Merge pull request #4445 from mapnik/feature/drop_boost_cpp17
replace majority of boost->std optional and boost->std string_view
2024-05-22 14:10:17 +01:00
Artem Pavlenko
2c9e55b770
Merge pull request #4458 from mapnik/delete_unused
Delete unused files
2024-05-22 11:11:21 +01:00
Mathis Logemann
9510cd68a3 delete appveyor.yml 2024-05-21 21:17:49 +02:00
Mathis Logemann
0a10de3827 delete bootstrap.sh 2024-05-21 21:17:32 +02:00
Mathis Logemann
b3dd7a0e7d delete .travis.yml 2024-05-21 21:17:16 +02:00
Artem Pavlenko
34bb44e490 clang-format 2024-05-21 09:41:19 +01:00
Artem Pavlenko
658a8bb080 symbolizer_property_value_string - handle value_bool, value_integer, value_double + dash_array 2024-05-21 09:15:50 +01:00
Mathis Logemann
21276ab2a0 use explicit type for std::array 2024-05-18 10:47:51 +02:00
Mathis Logemann
9292899240 remove boost-fileystem from vcpkg, since c++17 is min req. 2024-05-18 10:22:29 +02:00
Mathis Logemann
ab626ac052 update pre-commit and format sources 2024-05-18 10:22:29 +02:00
Mathis Logemann
7ef431ece2 use std::optional instead of boost::optional 2024-05-18 10:22:29 +02:00
Mathis Logemann
e1feef5a79 Use std::string_view instead of boost::string_view 2024-05-18 10:22:29 +02:00
Artem Pavlenko
4114824e6b pre-commit run --show-diff-on-failure --color=always --all-files 2024-05-15 10:29:13 +01:00
Artem Pavlenko
99aa246b73 Remove comment - duplicate names are OK 2024-05-15 10:25:47 +01:00
Artem Pavlenko
3a461630f7 remove extra space character for ouput (tidy) 2024-05-15 10:25:14 +01:00
Artem Pavlenko
1283ca5b77 Revive Symbolizer to json functionality 2024-05-15 10:24:27 +01:00
Artem Pavlenko
454837070d Fix typo 2024-05-14 09:10:51 +01:00
Artem Pavlenko
f89f221445
Merge pull request #4449 from hummeltech/macOSCI
`macos-latest` was migrated from `macOS 12` on `amd64` to `macOS 14` on `arm64`
2024-05-06 11:14:29 +01:00
David Hummel
09067f55fa Account for difference of PROJ_LIB 2024-05-05 13:04:14 -07:00
Artem Pavlenko
f84c30f20c
Merge pull request #4450 from mapnik/svg-refactor
Svg refactor
2024-04-30 10:07:21 +01:00
Artem Pavlenko
3176749613 clang-format
(pre-commit run --show-diff-on-failure --color=always --all-files)
2024-04-30 10:04:57 +01:00
Artem Pavlenko
e412e12599 svg_parser - cleanup + consistent push/pop attributes 2024-04-30 10:01:02 +01:00
Artem Pavlenko
77cd733258 svg_group - check parent is not nullptr 2024-04-30 09:59:35 +01:00
David Hummel
bbeac846d7 Address issues after recent upgrade to LCOV v2.1 2024-04-26 14:01:39 -07:00
David Hummel
e18643ed08 Install missing libtool package on macos-14 2024-04-26 13:16:47 -07:00
David Hummel
8afed63683 macos-latest changed from macOS 12 on amd64 to arm64
This seems to have happened around 2024.04.23

https://github.blog/changelog/2024-04-01-macos-14-sonoma-is-generally-available-and-the-latest-macos-runner-image/
2024-04-26 12:03:16 -07:00
Artem Pavlenko
6e81004cfb add const qualifier to comparison operator 2024-04-25 10:55:04 +01:00
Artem Pavlenko
0d0c471eb5
Merge pull request #4446 from hummeltech/GitHubActionsNodeJS16
Resolve `Node.js 16 actions are deprecated` GitHub Actions warnings
2024-04-23 14:16:38 +01:00
Artem Pavlenko
751c96ec4a tidy [skip ci] 2024-04-22 15:33:11 +01:00
Artem Pavlenko
7350d0a653
Merge pull request #4447 from hummeltech/MapnikTestVisual
No need to install `mapnik-test-visual`
2024-04-22 15:29:51 +01:00
Artem Pavlenko
e1d7d3deb5 Fix dasharray grammar 2024-04-22 15:22:19 +01:00
Artem Pavlenko
6e44fb052c Expose parse_dasharray method (+MAPNIK_DECL), needed by python-bindings 2024-04-22 15:05:05 +01:00
David Hummel
7c45369e88 No need to install mapnik-test-visual 2024-04-21 16:54:28 -07:00
David Hummel
754b12b008 Resolve Node.js 16 actions are deprecated warnings 2024-04-19 16:27:48 -07:00
Mathis Logemann
a85bc95135
Merge pull request #4444 from mapnik/feature/increase_min_cxx_standard
Increase min cxx standard to 17
2024-04-19 20:04:58 +02:00
Mathis Logemann
15abda8b3e [workflow] Remove unused matrix options 2024-04-19 18:20:33 +02:00
Mathis Logemann
dc5ad24ef8 Increase min cxx standard to 17 2024-04-19 18:17:01 +02:00
Artem Pavlenko
e3b0044f8e github actions - build shared libs 2024-04-19 14:17:12 +01:00
Artem Pavlenko
a8d1797bcf
Merge pull request #4442 from hummeltech/macOSLCOV
Address `lcov`/`geninfo` errors on macOS CI builds
2024-04-19 08:57:01 +01:00
Artem Pavlenko
283e2762d4
Merge pull request #4443 from hummeltech/png_io.hppMissingString
Add missing `#include <string>` to `include/mapnik/png_io.hpp`
2024-04-18 09:09:50 +01:00
David Hummel
3ef2e8e3da Address lcov/geninfo error on macOS 2024-04-17 18:12:40 -07:00
David Hummel
0ffd196010 Add missing #include <string> to include/mapnik/png_io.hpp 2024-04-17 13:43:02 -07:00
Artem Pavlenko
15f6745223
Merge pull request #4441 from mapnik/bugfix/dont_pollute_global_install
don't pollute global include dir when installing agg
2024-04-17 09:13:45 +01:00
Mathis Logemann
6c58ae3ae1 don't pollute global include dir when installing agg 2024-04-16 20:05:38 +02:00
Artem Pavlenko
0897271a8e upgrade vcpkg-sha : b4a3d89125e45bc8f80fb94bef9761d4f4e14fb9 + reduce number of runners for now. 2024-04-16 09:24:55 +01:00
Artem Pavlenko
d6fc3b1ddc Upgrade SCons to latest production release (v4.7.0) [skip ci] 2024-04-15 14:35:35 +01:00
Artem Pavlenko
5cc57566cc Fix typo in CSS color unit test 2024-04-15 14:28:22 +01:00
Artem Pavlenko
658d5e69a4
Merge pull request #4438 from mapnik/css_color_fractional_percent
css color fractional percentage values
2024-04-15 14:17:10 +01:00
Artem Pavlenko
7afaa7e6cc clang-format 2024-04-15 14:13:14 +01:00
Artem Pavlenko
5ac45af78e Allow percentage values with a fractional component (implements https://github.com/mapnik/mapnik/issues/4437)
(https://www.w3.org/TR/css-color-4/#funcdef-rgba)
2024-04-15 14:09:04 +01:00
Artem Pavlenko
93ab8b4690 Fix compiler warning - definition of implicit copy constructor for 'enumeration<mapnik::colorizer_mode_enum, &mapnik::colorizer_mode_to_string, &mapnik::colorizer_mode_from_string, &mapnik::colorizer_mode_lookup>' is deprecated because it has a user-provided copy assignment operator [-Wdeprecated-copy-with-user-provided-copy] void operator=(const enumeration& other) { value_ = other.value_; } 2024-04-12 14:20:23 +01:00
Artem Pavlenko
7864289291 Update data-visual 2024-04-04 17:37:02 +01:00
Artem Pavlenko
0708ee8724 Use pkg-config to determine static linking dependencies, default to original behaviour. 2024-04-04 11:01:17 +01:00
Artem Pavlenko
c2c6d2ed60 gdal-config - use both --libs and --dep-libs when RUNTIME_LINK
+ `ogr.input` needs `pkg-config libpq --libs --static`
2024-04-03 18:18:13 +01:00
Artem Pavlenko
83f833f1ce clang-format 2024-03-28 16:49:57 +00:00
Artem Pavlenko
7aceade7c5 Update visual-data [skip ci] 2024-03-28 16:17:05 +00:00
Artem Pavlenko
a9e0bf5bee Link to sharpyuv when 'RUNTIME_LINK'=='static' (webp) 2024-03-28 15:57:14 +00:00
Artem Pavlenko
1e4c17256a WEBP - add fallback pkg-config check if WEBP_INCLUDES and/or WEBP_LIBS aren't set. 2024-03-28 15:55:30 +00:00
Artem Pavlenko
6479059c7e Add specialisation for nodata->rgba8 conversion for mapnik::image_gray8
( fixes gdal-overview-gray8 visual test)
2024-03-28 15:33:41 +00:00
Artem Pavlenko
e394db6c8f add boost-format 2024-03-13 09:10:17 +00:00
Artem Pavlenko
fb61b3fb12 Upgrade to actions/setup-python@v5 (node 20) 2024-03-12 14:29:59 +00:00
Artem Pavlenko
493c7fd5a1 Attempting to fix deb package path 2024-03-12 13:55:23 +00:00
Artem Pavlenko
ba2125b095 Fix -> pre-commit/action@v3.0.1 2024-03-12 13:28:14 +00:00
Artem Pavlenko
6d420b0911 Upgrade to node20 actions e.g @v4 2024-03-12 13:24:34 +00:00
Artem Pavlenko
f9b9261d53 Update vcpkg-sha : e105a86c97b8ab13d4dbe3f7bd9ebc17ece31634 2024-03-12 10:58:56 +00:00
Artem Pavlenko
61b5ff26f2 tidy - remoce PROJ.4 references [skip ci] 2024-03-12 10:58:36 +00:00
Artem Pavlenko
2b932be0ca Update test data (GDAL/OGR 3.5.3) 2024-03-07 09:23:03 +00:00
Artem Pavlenko
02e3b1577c Use __APPLE__ to check OS platform 2024-03-07 09:09:56 +00:00
Artem Pavlenko
8d2388870a
Merge pull request #4364 from mapnik/svg-group-render
Svg group renderer [WIP]
2024-03-01 09:13:49 +00:00
Artem Pavlenko
62c449e6d1 Use the same flags when calling FT_Load_Glyph
+ `revive missing check_object_status_and_throw_exceptiona` in `set_font_face`
2024-03-01 09:05:05 +00:00
Artem Pavlenko
d4173b022d Merge branch 'master' into svg-group-render [skip ci] 2024-02-27 09:05:50 +00:00
Artem Pavlenko
34c95df267
Merge pull request #4432 from mapnik/geojson-empty-geometries
Geojson - empty positions arrays handling
2024-02-27 09:04:24 +00:00
Artem Pavlenko
5b08c21eb0 Actually enable 'is_empty' test + cleanup 2024-02-26 16:25:40 +00:00
Artem Pavlenko
38193817de pre-commit run --show-diff-on-failure --color=always --all-files [skip ci] 2024-02-26 14:48:49 +00:00
Artem Pavlenko
c067399041 GeoJSON unit tests - require expected geometries are "empty". 2024-02-26 14:45:59 +00:00
Artem Pavlenko
0e9f8b06a3 Fix is_empty unit test e.g if multi geometry consists of empty geometries it is "empty". 2024-02-26 14:44:19 +00:00
Artem Pavlenko
b911464472 correct 'is_empty' implementation for multi geometries 2024-02-26 14:40:36 +00:00
Artem Pavlenko
127f9ba143 add missing copy 2024-02-26 14:39:41 +00:00
Artem Pavlenko
995d3044a4 GeoJSON - allow empty arrays in "coordinates" element for Multi* geometries (ref #4431) 2024-02-26 14:01:09 +00:00
Artem Pavlenko
1da533b5e5 Fix building on Ubuntu 23.10 (add <cstdint>) [skip ci] 2024-02-23 14:11:04 +00:00
Artem Pavlenko
6350e1b259 Update test data (+visual) 2024-02-21 16:06:53 +00:00
Artem Pavlenko
dcfb2d692c SVG - improve handling of gradientUnits and gradientTransform attributes (radial gradient) + correct default values [skip ci] 2024-02-15 11:47:57 +00:00
Artem Pavlenko
1c6d14eb85 viewer.app - Increase max scale factor to 10 2024-02-09 09:19:26 +00:00
Artem Pavlenko
cc1c990a2a clang-format : pre-commit run --show-diff-on-failure --color=always --all-files
xsx
2024-02-06 09:37:48 +00:00
Artem Pavlenko
45f954c578 Merge branch 'master' into svg-group-render 2024-02-05 09:41:31 +00:00
Artem Pavlenko
4f6ab6a4a2 Fix spurious ',' in operator== 2024-02-05 09:36:56 +00:00
Artem Pavlenko
2e1b32512b
Merge pull request #4421 from hummeltech/ogr-open-options-CMake
Fix CMake build issues after OGR open_options support addition
2023-11-28 08:54:08 +00:00
Artem Pavlenko
9d5c458405
Merge pull request #4426 from geofabrik/configure-fix
Fix bugs in configure script
2023-11-24 14:05:45 +00:00
Michael Reichert
ee76817d14 Fix bugs in configure script
The script expected that the shell supports arrays but only Z shell and
Bash do so. Other shells return syntax errors.

In addition, the script expected the mapnik-settings.env file to exist
and crashed otherwise.
2023-11-24 13:46:29 +01:00
Artem Pavlenko
88652012a9
Merge pull request #4424 from geofabrik/configure
Fix configure script for variables read from mapnik-settings.env
2023-11-24 08:50:04 +00:00
Michael Reichert
a5a96aacad Fix configure script for variables read from mapnik-settings.env
Custom build variables (e.g. CXX_STD or CXX) read from
mapnik-settings.env have to be provided as command line arguments
because SCons does not respect the environment variables.
2023-11-23 22:04:58 +01:00
David Hummel
c8fd548133 Fix build issues after addition of OGR open_options support 2023-11-22 09:45:23 -07:00
Artem Pavlenko
437feebaf1
Merge pull request #4423 from hummeltech/LibXML2_2.12.0_Support
Fix broken builds with libxml2 >= v2.12.0
2023-11-21 09:16:08 +00:00
David Hummel
8cdca5f5be Fix broken builds with libxml2 >= v2.12.0
**I.E.**
```
src/libxml2_loader.cpp:91:50: error: invalid conversion from ‘const xmlError*’ {aka ‘const _xmlError*’} to ‘xmlError*’ {aka ‘_xmlError*’} [-fpermissive]
src/libxml2_loader.cpp:131:50: error: invalid conversion from ‘const xmlError*’ {aka ‘const _xmlError*’} to ‘xmlError*’ {aka ‘_xmlError*’} [-fpermissive]
```
2023-11-20 10:21:12 -07:00
Artem Pavlenko
d745e43eb1 pre-commit run --show-diff-on-failure --color=always --all-files 2023-11-17 16:33:01 +00:00
Artem Pavlenko
7d2029165e Merge branch 'geofabrik-ogr-open-options-pr' 2023-11-17 16:31:13 +00:00
Michael Reichert
2d20d5a3c5 Add support for open options in OGR input plugin 2023-11-17 11:06:18 +01:00
Artem Pavlenko
738a7f19b7 Merge branch 'master' into svg-group-render 2023-11-17 09:43:02 +00:00
Artem Pavlenko
279acf4c36
Merge pull request #4419 from geofabrik/drop-old-gdal-pr
Drop support for old versions of GDAL/OGR (older than 2.0)
2023-11-17 09:10:49 +00:00
Michael Reichert
bff4fdde77 Drop support for old versions of GDAL/OGR (older than 2.0)
Fixes #4403.

GDAL 2.0.0 was released in March 2018 (more than five years ago).
Almost all Linux distributions (apart from few long-term support versions)
should come with at least GDAL >= 2.0.
2023-11-16 20:16:05 +01:00
Artem Pavlenko
f391178af0 Upgrade to SCons 4.5.2 2023-09-22 14:38:30 +01:00
Artem Pavlenko
50f1b05f86 boost/algorithm/string/trim.hpp is needed for `trim_if' (boost 1.83) 2023-09-22 14:37:34 +01:00
Artem Pavlenko
47f7f6bd4d Merge branch 'master' into svg-group-render 2023-09-15 14:48:44 +01:00
Artem Pavlenko
d69a0902d4 Forward declaration of 'mapnik::rule' is not sufficient when building on macOS :
Apple clang version 14.0.3 (clang-1403.0.22.14.1)
Target: arm64-apple-darwin22.6.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
2023-09-15 14:46:29 +01:00
Artem Pavlenko
cb352ac609 Remove unused local variable 2023-09-15 14:45:18 +01:00
Artem Pavlenko
388d3fd8da Add missing scons-local-4.5.1 2023-09-15 12:34:31 +01:00
Artem Pavlenko
b7332b07a1
Merge pull request #4404 from hummeltech/include_mapnik_geometry_cstdint_header
Add cstdint header include to `include/mapnik/geometry/boost_spirit_karma_adapter.hpp`
2023-09-15 09:12:49 +01:00
David Hummel
b1282fe32c Add cstdint header include to include/mapnik/geometry/boost_spirit_karma_adapter.hpp 2023-09-14 17:38:27 -07:00
Artem Pavlenko
ee8c403779 Merge branch 'master' into svg-group-render 2023-06-12 08:29:49 +01:00
Artem Pavlenko
123232ffde
Merge pull request #4390 from mapnik/feature/updateVcpkg
Update vcpkg commit ref in the ci
2023-06-12 08:29:12 +01:00
Mathis Logemann
2445dbe063 remove boost foreach include 2023-06-11 20:10:50 +02:00
Artem Pavlenko
ed0f8dcb48 Add missing scons-local-4.5.1 2023-06-11 11:31:23 +01:00
Artem Pavlenko
f226d4fd93 Conditionally apply BOOST_SPIRIT_X3_HIDE_CXX17_WARNING if cxx_std < 17 2023-06-11 11:22:49 +01:00
Artem Pavlenko
708e2a4009 Include rule.hpp as fwd decl no longer sufficient with clang++-14
(Apple clang version 14.0.3 (clang-1403.0.22.14.1)
2023-06-11 11:20:16 +01:00
Artem Pavlenko
92426bfc8e Merge branch 'master' into svg-group-render 2023-06-11 09:49:37 +01:00
Artem Pavlenko
20acc0e656
Merge pull request #4389 from MoeSzyslak98/gcc-13-fix
add cstdint header for gcc13 compilation.
2023-06-11 09:44:02 +01:00
Mathis Logemann
6003293e25
Update build_and_test.yml 2023-06-11 08:30:42 +02:00
kian
76c5fd047d add cstdint header for gcc13 compilation. 2023-06-09 15:32:59 +03:30
Artem Pavlenko
3b81effb3e remove unused local variable 2023-04-25 14:23:08 +01:00
Artem Pavlenko
35d901072b mapnik-render: use mapnik/filesystem.hpp 2023-03-27 09:34:03 +01:00
Artem Pavlenko
e847bb738b Set USE_BOOST_FILESYSTEM=True if CXX_STD < 17 + fix typo 2023-03-26 11:36:14 +01:00
Artem Pavlenko
cd4069f91e Merge branch 'master' into svg-group-render 2023-03-20 09:03:18 +00:00
Artem Pavlenko
c4aa24496a
Merge pull request #4385 from hummeltech/C++17Build
Add build & test for `CXX_STANDARD=17` to GitHub Actions
2023-03-20 09:01:13 +00:00
Hummeltech
63f33eed4b
List advanced cached variables in CI [skip ci] 2023-03-19 14:05:58 -07:00
Hummeltech
bc09efb8f5
Fixed typo USE_BOOST_FILESYSYTEM 2023-03-19 14:01:14 -07:00
Hummeltech
bb280a2815
Fixing issues with USE_BOOST_FILESYSTEM definition 2023-03-19 13:39:20 -07:00
Hummeltech
93e488a6cf
Only test for !defined(USE_BOOST_FILESYSTEM) in filesystem.hpp 2023-03-19 09:39:13 -07:00
Hummeltech
9f88d4c3a4
Revert CMAKE_CXX_FLAGS msvc-cl change 2023-03-19 09:38:27 -07:00
David Hummel
f6cd056552 Attempting to fix Windows build with C++17 2023-03-18 09:06:34 -07:00
David Hummel
0e9996dde0 Add build & test for CXX_STANDARD=17 to GitHub Actions 2023-03-18 08:03:58 -07:00
Artem Pavlenko
fc2d27d349
Merge pull request #4384 from hummeltech/cplusplus17
Fixed check for `__cpp_lib_filesystem` in `filesystem.hpp`
2023-03-18 14:35:07 +00:00
David Hummel
e4557c016f Oops, it looks like <version> does not exist until C++20 2023-03-17 10:31:30 -07:00
David Hummel
edec46e8c3 Fixed check for '__cpp_lib_filesystem' always false until after '#include <filesystem>' 2023-03-17 10:20:24 -07:00
Artem Pavlenko
b7fdeeeb02 Move rotation struct definition into pixel_position.hpp 2023-03-15 10:29:30 +00:00
Artem Pavlenko
ecfccdd36c Merge branch 'master' into svg-group-render 2023-03-15 08:37:06 +00:00
Artem Pavlenko
338942b490
Merge pull request #4383 from mapnik/std-filesystem 2023-03-15 07:47:55 +00:00
Artem Pavlenko
00199754a2
Update test/visual/CMakeLists.txt
Co-authored-by: Mathis Logemann <mathisloge@gmail.com>
2023-03-14 16:54:04 +00:00
Artem Pavlenko
49912a423e
Update CMakeLists.txt
Co-authored-by: Mathis Logemann <mathisloge@gmail.com>
2023-03-14 16:53:37 +00:00
Artem Pavlenko
5504aea704 clang-format 2023-03-14 14:53:44 +00:00
Artem Pavlenko
779c04af06 demo/viewer - fix currentIndexChanged signal signature 2023-03-14 14:44:45 +00:00
Artem Pavlenko
a244effa91 Add mapnik/filesystem.hpp ref:https://github.com/mapnik/mapnik/pull/4383#discussion_r1131405532 2023-03-13 14:27:02 +00:00
Artem Pavlenko
45b48721fa replace std::tmpnam (deprecated) with make_unique 2023-03-13 09:34:58 +00:00
Artem Pavlenko
106a46bbf6
Update CMakeLists.txt
Co-authored-by: Mathis Logemann <mathisloge@gmail.com>
2023-03-09 21:14:54 +00:00
Artem Pavlenko
96a6fcd941
Update CMakeLists.txt
Co-authored-by: Mathis Logemann <mathisloge@gmail.com>
2023-03-09 21:14:45 +00:00
Artem Pavlenko
d680d1d7f5
Update CMakeLists.txt
Co-authored-by: Mathis Logemann <mathisloge@gmail.com>
2023-03-09 21:14:28 +00:00
Artem Pavlenko
be0b537f52 Use std::filesystem when CXX_STD >= 17 and not USE_BOOST_FILESYSTEM 2023-03-09 13:17:28 +00:00
Artem Pavlenko
a3f65197dd Merge branch 'master' into svg-group-render 2023-03-08 12:02:34 +00:00
Artem Pavlenko
c646d245b4 Upgrade SCons to v4.5.1 2023-03-08 12:01:16 +00:00
Artem Pavlenko
f36ac22f82 MAPNIK_DECL only on __GNUC__ builds
ref: error C2491: 'mapnik::feature_style_processor<Processor>::prepare_layers': definition of dllimport function not allowed
2023-03-07 11:25:52 +00:00
Artem Pavlenko
87ac079bb6 Add -fvisibility=hidden -fvisibility-inlines-hidden to mapnik target (CMake) 2023-03-07 10:02:50 +00:00
Artem Pavlenko
accb28eb80 external linking (MAPNIK_DECL) requires for -fvisibility=hidden -fvisibility-inlines-hidden to work for GCC/g++ builds 2023-03-07 10:00:18 +00:00
Artem Pavlenko
7035b3e399 small typo 2023-03-07 09:57:36 +00:00
Artem Pavlenko
692c2faa0e
Merge pull request #4382 from hummeltech/master
Add `fonts_dir` & `plugins_dir` variables to `libmapnik.pc`
2023-03-02 15:48:40 +00:00
David Hummel
db9c4bc340 Add fonts & input_plugins variables to libmapnik.pc 2023-03-01 14:48:30 -07:00
Artem Pavlenko
52b5cab584 Update data-visual 2023-02-28 10:37:15 +00:00
Artem Pavlenko
41bb612e5d Merge branch 'master' into svg-group-render 2023-02-27 11:18:48 +00:00
Artem Pavlenko
3dbeb1ee4f Use explicit boost::filesystem::path::value_type to std::string conversion (win) 2023-02-27 09:22:17 +00:00
Artem Pavlenko
21d31bf62e Fix deprecated headers warning 2023-02-27 09:17:55 +00:00
Artem Pavlenko
02445f43ed mini cleanup 2023-02-27 09:17:37 +00:00
Artem Pavlenko
1351d90d51 Use boost::filesystem when __cplusplus < 201703L 2023-02-26 14:40:00 +00:00
Artem Pavlenko
8839f5774a pre-commit run --all-files 2023-02-24 18:07:09 +00:00
Artem Pavlenko
a499989b1d add missing header 2023-02-24 18:05:01 +00:00
Artem Pavlenko
d1f16479d1 pre-commit run --all-files 2023-02-24 17:51:40 +00:00
Artem Pavlenko
5e980ec853 mapnik-render
New options :
 * --bbox -- bounding box to zoom in (expected in Map's SRS unless "--geographic" is used)
 * --geographic,-g  -- bounding box is in WGS 84 lon/lat
 * --plugins-dir -- directory contaning input plugins (default:./plugins/input)
 * --fonts-dir -- directory containing fonts (default: relative to plugins-dir or ./fonts if no plugins-dir specified)
2023-02-24 11:23:26 +00:00
Artem Pavlenko
8efaa959f0 projection - rename 'expanded' to 'definition' (PJ_PROJ_INFO) + add 'description' method 2023-02-24 09:23:52 +00:00
Artem Pavlenko
e0da4468d2
Merge pull request #4379 from mapnik/update/vcpkg-sha
Update vcpkg-sha
2023-02-03 13:54:16 +00:00
Mathis Logemann
b4f1bc09f8
Update vcpkg-sha 2023-02-03 12:38:51 +01:00
Artem Pavlenko
ce073c64c7 Merge branch 'master' into svg-group-render 2023-01-24 14:30:28 +00:00
Artem Pavlenko
b9175100bd
Merge pull request #4378 from tomhughes/stdint
Include cstdint for uint16_t
2023-01-24 14:22:21 +00:00
Artem Pavlenko
fb97fb10f7
Merge pull request #4377 from mathisloge/fix/python-mapnik-findings
move datasource_plugin into mapnik target
2023-01-24 14:21:17 +00:00
Tom Hughes
c62e03344f Include cstdint for uint16_t 2023-01-23 22:37:16 +00:00
Mathis Logemann
ccbf27400c move datasource_plugin into mapnik target 2023-01-23 16:13:32 +01:00
Artem Pavlenko
00e2027d86 Merge branch 'master' into svg-group-render 2023-01-18 09:52:43 +00:00
Artem Pavlenko
43a7d7e455 Fix compiler warning (consistent class or struct declarations) 2023-01-18 09:50:26 +00:00
Artem Pavlenko
edddd08d73 Merge branch 'master' into svg-group-render 2023-01-18 09:48:29 +00:00
Artem Pavlenko
4e064b8b8e
Merge pull request #4291 from mathisloge/feature/cmake-static
Feature/cmake static plugins
2023-01-17 11:27:42 +00:00
Mathis Logemann
7cce5ce346 Merge branch 'master' of https://github.com/mapnik/mapnik into feature/cmake-static 2023-01-16 19:55:02 +01:00
Artem Pavlenko
e811958745
Merge pull request #4372 from mathisloge/refactor/enumarations
Refactor/enumerations
2022-12-19 12:37:32 +00:00
Mathis Logemann
64a031a19b changelog 2022-12-16 15:36:22 +01:00
Artem Pavlenko
51b5c9604a including <memory> - "src/test_png_encoding2.cpp:6:10: error: ‘shared_ptr’ in namespace ‘std’ does not name a template type" 2022-12-12 14:23:39 +00:00
Artem Pavlenko
6afcb73135 Merge branch 'master' into svg-group-render 2022-12-12 12:10:43 +00:00
Artem Pavlenko
e27bc63887 SVG parser - update test data 2022-12-12 11:48:45 +00:00
Artem Pavlenko
f4eec2e24f pre-commit run --all-files 2022-12-12 10:46:41 +00:00
Artem Pavlenko
d29aeb2ddb SVG parser unit test - add attribute comparison framework + test data 2022-12-11 10:24:14 +00:00
Mathis Logemann
dd38dd18f9 rework enumeration<...> 2022-12-10 16:55:24 +01:00
Mathis Logemann
bc38652079 Finalize static plugins 2022-12-09 14:48:52 +01:00
Mathis Logemann
be46202511 Merge branch 'master' of https://github.com/mapnik/mapnik into feature/cmake-static 2022-11-28 08:29:20 +01:00
Artem Pavlenko
d417b8933a
Merge pull request #4366 from mathisloge/feature/refactor_actions
[CI] refactor github actions
2022-11-26 17:27:17 +00:00
Mathis Logemann
2ff1f4228d [CI] fail-fast: false 2022-11-26 16:40:16 +01:00
Mathis Logemann
d949acb925 [CI] only build if the check source code step is succesfull 2022-11-26 16:10:16 +01:00
Mathis Logemann
cbb80aa0db refactor actions 2022-11-26 16:07:44 +01:00
Artem Pavlenko
0b62415225 Export comp_op_rgba_xxx to fix linking on Windows via @mathisloge 2022-11-26 15:01:39 +00:00
Artem Pavlenko
d436c94c25 SVG cairo - push/pop group 2022-11-26 12:50:57 +00:00
Artem Pavlenko
0e5e77121c SVG - implement Cairo group renderer [WIP] [skip ci] 2022-11-26 11:13:37 +00:00
Mathis Logemann
0071eb1163 fix vcpkg for static 2022-11-26 08:36:42 +01:00
Mathis Logemann
df1ff425b7 Merge branch 'master' of https://github.com/mapnik/mapnik into feature/cmake-static 2022-11-26 08:32:20 +01:00
Artem Pavlenko
7c24ff09ee clang-format 2022-11-25 13:54:41 +00:00
Artem Pavlenko
e790aa6c06 Merge branch 'master' into svg-group-render 2022-11-25 13:48:36 +00:00
Artem Pavlenko
b7953fa68b
Merge pull request #4368 from mathisloge/fix/win-error
Fix windows build error
2022-11-25 10:57:01 +00:00
Mathis Logemann
9c873d0e95
Update ubuntu.yml 2022-11-24 22:36:17 +01:00
Artem Pavlenko
0968e12b5e
Merge pull request #4367 from mapnik/ci/vcpkg-json 2022-11-24 19:26:24 +00:00
Mathis Logemann
ae5e283df9 update proj db ref 2022-11-24 20:16:35 +01:00
Mathis Logemann
2770657ba1 fix windows build error 2022-11-24 19:41:21 +01:00
Mathis Logemann
b26d0757b7 add .cache to gitignore 2022-11-24 19:41:15 +01:00
Artem Pavlenko
8bc1aad37f SVG - convert USER_SPACE_ON_USE radial gradient values to % (fix) [WIP] [skip ci] 2022-11-24 10:35:19 +00:00
Artem Pavlenko
c3aec439a7 svg2png - check for valid opacity range 0..1 [WIP] [skip ci] 2022-11-24 10:25:09 +00:00
Artem Pavlenko
b3ed2280b6 Merge branch 'master' into svg-group-render 2022-11-24 09:55:44 +00:00
Artem Pavlenko
bfdab8879c svg2png - add top level "opacity" option e.g similar to <svg opacity="<val>"/> [WIP] [skip ci] 2022-11-23 16:18:18 +00:00
Artem Pavlenko
5f4711a019 SVG - refactor and minimise internal group usage [WIP] [skip ci] 2022-11-23 15:53:08 +00:00
Mathis Logemann
7d267b47fe Merge branch 'master' of https://github.com/mapnik/mapnik into feature/cmake-static 2022-11-22 20:14:33 +01:00
Mathis Logemann
56312c68ad
Update vcpkg.json 2022-11-22 20:08:32 +01:00
Mathis Logemann
4fc828cf29
Merge pull request #4365 from mathisloge/ci/update_vcpkg
[CI] update vcpkg
2022-11-22 12:24:50 +01:00
Artem Pavlenko
8c04fb1262 Use feature_id in render_id [WIP] [skip ci] 2022-11-22 10:57:05 +00:00
Mathis Logemann
07789ad3cc
Update .pre-commit-config.yaml 2022-11-22 11:45:23 +01:00
Mathis Logemann
817f644c6d update pre-commit versions 2022-11-21 22:40:46 +01:00
Mathis Logemann
6183005baf [CI] update gh action runners 2022-11-21 22:28:44 +01:00
Mathis Logemann
7d414450c1 update vcpkg hash 2022-11-21 22:09:04 +01:00
Artem Pavlenko
4ef05da536 Revive 'push_explicit_style' logic. [WIP] [skip ci] 2022-11-21 19:10:12 +00:00
Artem Pavlenko
5347a1d939 format identation 2022-11-21 19:08:05 +00:00
Artem Pavlenko
0da7efdbac Fix - blend using correct 'opacity' 2022-11-21 19:06:53 +00:00
Artem Pavlenko
d4ae5ac653 SVG group renderer implementation (WIP) [skip ci] 2022-11-18 15:17:58 +00:00
Artem Pavlenko
a65d65a5ab Update .clang-format to BraceWrapping: BeforeCatch : true
run `pre-commit`
2022-11-10 15:57:38 +00:00
Artem Pavlenko
1d75721a46 Fix compiler warning -
```
include/mapnik/markers_placements/vertex_last.hpp:49:18: warning: variable 'cmd1' set but not used [-Wunused-but-set-variable]
        unsigned cmd1 = SEG_END;
                 ^
1 warning generated.
```
2022-11-04 14:39:54 +00:00
Artem Pavlenko
2a71903c75 Remove redundant BOOST_VERSION #if/endif 2022-11-04 14:07:28 +00:00
Artem Pavlenko
7e5655eef4 Use snprintf instead of sprintf (ref #4361) 2022-11-04 13:46:10 +00:00
Artem Pavlenko
5522cdd201 pre-commit run --all-files 2022-11-04 09:46:00 +00:00
Artem Pavlenko
bd018ef5ab git-clang-format 2022-11-03 11:29:50 +00:00
Artem Pavlenko
b438edd8da SVG path parser unit tests - update expected arc paths ref:98e5e64d80d921a02bc57f05c55c2e0e2426ab4d 2022-11-03 11:13:09 +00:00
Artem Pavlenko
05661e5439 Merge branch 'kkaefer-fix-svg-smooth-curve-after-arc' 2022-10-18 14:14:57 +01:00
Artem Pavlenko
02af1f606c Apply fix from #4357 to agg_path_storage 2022-10-18 14:13:35 +01:00
Artem Pavlenko
618ddef663 Merge branch 'fix-svg-smooth-curve-after-arc' of github.com:kkaefer/mapnik into kkaefer-fix-svg-smooth-curve-after-arc 2022-10-18 14:11:22 +01:00
Artem Pavlenko
fa9ee1fc61 Issue warning not an error when font face not found (ref #4354) 2022-10-18 13:56:05 +01:00
Konstantin Käfer
98e5e64d80 SVG: Fix reflection points for smooth curves after arcs
Internally, Agg/Mapnik converts arcs to curves. This means that the detection logic in the “smooth curve” command, which looks at the previous points for calculating the reflection point, mistakenly assumes that the previous commands were curve commands, even though they were in reality arc commands. To fix this, we add an explicit lineto command after every arc.
2022-10-18 12:17:05 +02:00
Artem Pavlenko
53a8e2ec2c Remove docbook directory from local SCons distribution and avoid referencing jQuery
(ref: Cross-site scripting (XSS) vulnerability in jQuery before 1.6.3)
2022-09-23 10:03:14 +01:00
Artem Pavlenko
9cf40a6144 Fix radial-distance simplification algorithm to always oupput last vertex (ref #4347) 2022-09-23 09:41:11 +01:00
Artem Pavlenko
9e8e178160 Re-enable simplify_converter tests + add radial-distance tests (#4348) 2022-09-23 09:32:06 +01:00
Artem Pavlenko
81103491b4 Fix building with boost_1_80 (#4340) 2022-08-30 10:40:25 +01:00
Mathis Logemann
ce8bd250dd better export [wip] 2022-08-25 19:59:29 +02:00
Mathis Logemann
4cd4985e75 resolve double defined symbol 2022-08-23 21:37:06 +02:00
Mathis Logemann
b9379f9024 Merge branch 'master' of https://github.com/mapnik/mapnik into feature/cmake-static 2022-08-18 20:38:47 +02:00
Mathis Logemann
e6553ef652 simplify cmake 2022-08-18 20:38:21 +02:00
Artem Pavlenko
019af0ad1d
Merge pull request #4338 from mathisloge/fix/ci-run
[CI] only run on master pushes and all PRs
2022-08-18 11:08:37 +01:00
Mathis Logemann
13c4719912 [CI] only run on master pushes and all PRs 2022-08-17 18:26:19 +02:00
Mathis Logemann
cf78c2a129 Merge branch 'master' of https://github.com/mapnik/mapnik into feature/cmake-static 2022-08-17 18:23:19 +02:00
Artem Pavlenko
a1596e4dad
Merge pull request #4333 from mapnik/cmake-install-fonts
Fix font installation logic
2022-08-17 17:19:34 +01:00
Artem Pavlenko
c8cff17fb6 Merge remote-tracking branch 'origin/cmake-install-fonts' into cmake-install-fonts 2022-08-17 17:05:19 +01:00
Artem Pavlenko
7d8be299f3 Fix font installation logic 2022-08-17 17:00:24 +01:00
Mathis Logemann
3ab8e80f2a depend on formatting 2022-08-17 17:37:43 +02:00
Mathis Logemann
eb3823aa4a precommit 2022-08-17 17:35:25 +02:00
Mathis Logemann
213be3777c Merge branch 'master' of https://github.com/mapnik/mapnik into feature/cmake-static 2022-08-17 17:34:52 +02:00
Mathis Logemann
2b7456f54b Revert "precommit"
This reverts commit f48589738f.
2022-08-17 17:22:07 +02:00
Mathis Logemann
f48589738f precommit 2022-08-17 17:19:59 +02:00
Mathis Logemann
f6bcdac258 default crt = 0N 2022-08-17 17:16:32 +02:00
Artem Pavlenko
14a5cc7e1a
Merge pull request #4334 from mathisloge/cmake-linting
adding auto formatting
2022-08-17 14:15:13 +01:00
Mathis Logemann
54b0381f4d wip 2022-08-16 21:03:56 +02:00
Mathis Logemann
e3d8e55a79 pre-commit run -a 2022-08-16 19:00:16 +02:00
Mathis Logemann
df141876d0 disable clang-format for external deps 2022-08-16 19:00:15 +02:00
Artem Pavlenko
8abad1843a
Merge pull request #4336 from mathisloge/fix/viewer-ini
[CMake] fix generated viewer ini file
2022-08-16 14:08:20 +01:00
Mathis Logemann
13c96ab7d0 [CMake] fix generated viewer ini file 2022-08-15 21:14:16 +02:00
Mathis Logemann
69d682ef02 [clang-format] more compact extern c 2022-08-14 22:26:32 +02:00
Mathis Logemann
eb16e7a647 fix all files
format files
2022-08-14 22:26:31 +02:00
Mathis Logemann
88052447b9 pre-commit
add more hooks

add workflow
2022-08-11 22:53:03 +02:00
Artem Pavlenko
b6161dd439 Merge branch 'master' into cmake-install-fonts 2022-08-04 14:40:38 +01:00
Artem Pavlenko
9627432723 Fix -Wdeprecated-enum-enum-conversion warnings (AGG) 2022-08-04 11:25:35 +01:00
Artem Pavlenko
a9c98dff5d Fix deprecation warning (libtiff)
/usr/include/x86_64-linux-gnu/tiff.h:81:45: note: 'uint16' has been explicitly marked deprecated here
typedef TIFF_MSC_DEPRECATED uint16_t uint16 TIFF_GCC_DEPRECATED;
2022-08-04 11:01:56 +01:00
Artem Pavlenko
322f6cd805 Fix font installation logic 2022-08-03 16:19:07 +01:00
Mathis Logemann
34df24f4e2 [CMake] use pkgconfig for webp; make some statements more clearly 2022-04-22 21:10:42 +02:00
Mathis Logemann
c85f8462fd [CMake] fixes for windows (WIP) 2022-04-22 15:10:49 +02:00
Mathis Logemann
59d2f21369 [CMake] remove FindCairo and use pkgconfig 2022-04-22 15:10:02 +02:00
Mathis Logemann
25012517aa [CI] add static builds 2022-04-16 11:26:34 +02:00
Mathis Logemann
503fe35817 Merge branch 'master' of https://github.com/mapnik/mapnik into feature/cmake-static 2022-04-16 11:21:05 +02:00
Artem Pavlenko
1ba1278b42
Merge pull request #4307 from josch/proj-debug
src/proj_transform.cpp: only use proj_context_errno_string for proj >= 8.0.0
2022-04-14 14:14:48 +01:00
Johannes Schauer Marin Rodrigues
01e018eb0a
src/proj_transform.cpp: only use proj_context_errno_string for proj >= 8.0.0 2022-04-14 11:52:25 +02:00
Artem Pavlenko
5c06098caf
Merge pull request #4300 from mathisloge/ci/vcpkg_2022-03-18
[CI] update vcpkg to latest hash
2022-04-13 10:00:08 +01:00
Mathis Logemann
a963ae5ea6 [CI] trigger 2022-04-12 20:51:52 +02:00
Mathis Logemann
ca269f425c Revert "[CI] update vcpkg deps"
This reverts commit 75ad499fb5.
2022-04-12 14:42:19 +02:00
Mathis Logemann
75ad499fb5 [CI] update vcpkg deps 2022-04-12 14:21:45 +02:00
Mathis Logemann
8c9e61373e Merge branch 'master' of https://github.com/mapnik/mapnik into ci/vcpkg_2022-03-18 2022-04-11 15:24:45 +02:00
Artem Pavlenko
1ce18f6698
Merge pull request #4305 from josch/proj-debug 2022-04-11 14:20:14 +01:00
Artem Pavlenko
85997107af
Merge pull request #4304 from mathisloge/fix/cairo-1.17.6 2022-04-11 14:19:20 +01:00
Mathis Logemann
2259f8da6f use unnamed workflows, move vcpkg into preset update vcpkg 2022-04-11 15:04:30 +02:00
Johannes Schauer Marin Rodrigues
4f72043bcd
src/proj_transform.cpp: improve error handling of proj_transform()
- set proj log level to PJ_LOG_ERROR
 - let error message indicate whether proj_create_crs_to_crs or
   proj_normalize_for_visualization failed
 - output proj_context_errno_string when an error is thrown
2022-04-10 11:55:04 +02:00
Mathis Logemann
6afdc89894 fix test for newer cairo 2022-04-05 10:31:26 +02:00
Mathis Logemann
1bba69b108 [CI] update vcpkg to latest hash
notable changes: * proj => v9
[CI] fix sqlite dep

[vcpkg] update hash

update vcpkg cache
2022-04-02 18:05:03 +02:00
Mathis Logemann
e00847e711 [CI] fix sqlite dep 2022-03-19 10:27:34 +01:00
Mathis Logemann
2b8eec969b PluginInfo: remove static init and exit methods
those aren't used.
2022-03-15 21:12:43 +01:00
Mathis Logemann
5ee7571761 add dlerror for plugin loading 2022-03-15 21:12:43 +01:00
Mathis Logemann
4493a06878 call mapnik::setup automatically 2022-03-15 21:12:43 +01:00
Mathis Logemann
515a7e8279 changelog 2022-03-15 21:12:43 +01:00
Mathis Logemann
bb1bc2f07b [CMake] enable msvc static crt 2022-02-18 18:48:27 +01:00
Artem Pavlenko
2d03db8ef1 Fix scons build 2022-02-15 15:40:16 +00:00
Mathis Logemann
45568e8895 [datasource] call after_load for static plugins 2022-02-14 17:34:20 +01:00
Mathis Logemann
ee63a6f055 [tests] also test when using static 2022-02-14 10:15:09 +01:00
Mathis Logemann
0f0e06c6b8 [datasource] add plugin_registered function 2022-02-14 10:14:59 +01:00
Mathis Logemann
6fcdccaf83 [CMake] fix rename MAPNIK_STATIC_PLUGINS => BUILD_SHARED_PLUGINS 2022-02-09 15:57:03 +01:00
Mathis Logemann
c0d52ced18 [Changelog] describe breaking changes 2022-02-08 16:55:42 +01:00
Mathis Logemann
f9e69b4090 Merge branch 'master' of https://github.com/mapnik/mapnik into feature/cmake-static 2022-02-08 16:49:51 +01:00
Artem Pavlenko
f3da900c35
Merge pull request #4295 from mathisloge/ci/disable-debug-mode
[CI] disable vcpkg debug mode
2022-02-08 14:09:55 +00:00
Mathis Logemann
0769303075 [CI] ubuntu: run with mono 2022-02-08 14:59:43 +01:00
Mathis Logemann
01f414de59 [CI] disable vcpkg debug mode 2022-02-08 14:54:40 +01:00
Mathis Logemann
65dde2cce3 Merge branch 'master' of https://github.com/mapnik/mapnik into feature/cmake-static 2022-02-07 15:35:45 +01:00
Mathis Logemann
49ef468e84 [CMake] add msvc EHsc option 2022-02-07 15:35:09 +01:00
Mathis Logemann
42f465f842 refactor datasource plugins
fix merge

remove old DATASOURCE_PLUGIN call

fix memory_datasource

wip

wip

fix temp return

fix install

wip before_unload

linux

remove docker

remove docker

comments

add windows error message if libmapnik=static and plugins=dynamic

fix false plugin macro

plugin default de/constructor to remove UB

simplyfy plugin targets - add fpic

fix makro

simplyfy

use unique_ptr for plugin handle

rename option static plugins

replace local init with fnc call

call setup everywhere

init datasource_static
2022-02-07 15:35:09 +01:00
Artem Pavlenko
713104c2dc
Merge pull request #4290 from mathisloge/fix/gha-upload
[GHA] use current user if PR or local repo (readonly) and vcpkg debug…
2022-02-07 14:06:05 +00:00
Artem Pavlenko
843eb3eae5
Merge pull request #4289 from mathisloge/fix/format
fix formatting of warning.hpp
2022-02-07 14:05:40 +00:00
Mathis Logemann
e75725ef37 [GHA] use current user if PR or local repo (readonly) and vcpkg debug mode
use github.actor

test readonly access?

test

test

test

readonly user

use correct toolcahin for windows
2022-02-02 20:56:01 +01:00
Mathis Logemann
d148121dad fix formatting of warning.hpp 2022-02-02 17:31:43 +01:00
Mathis Logemann
8a1f2579e9 Merge branch 'master' of https://github.com/mapnik/mapnik into feature/cmake-static 2022-02-02 17:15:55 +01:00
Mathis Logemann
2d846dd5f3 static plugins
wip static plugins

add remaining datasources

wip

formatting
2022-02-02 16:35:49 +01:00
Artem Pavlenko
0c8352fc3e
Merge pull request #4288 from mathisloge/fix/github-actions 2022-02-02 14:32:53 +00:00
Mathis Logemann
32ca0104a7 fix gha secret name 2022-02-02 15:31:24 +01:00
Artem Pavlenko
f9b310a8ca
Merge pull request #4286 from mathisloge/feature/github-actions
add github actions
2022-02-02 14:28:23 +00:00
Mathis Logemann
cda203a83f use correct cache 2022-02-02 10:14:55 +01:00
Mathis Logemann
bff4dbd957 add github actions
use mapnik as user

drop codecov token (not needed)
2022-01-28 11:14:04 +01:00
Artem Pavlenko
d7b83c0f7d
Merge pull request #4282 from mathisloge/feature/clang-format
Feature clang format
2022-01-28 09:57:58 +00:00
Mathis Logemann
9bf8fcc823 fix color.cpp formatting 2022-01-28 10:37:38 +01:00
Mathis Logemann
779787f980 Merge branch 'master' of https://github.com/mapnik/mapnik into feature/clang-format 2022-01-28 10:31:55 +01:00
Artem Pavlenko
7df7e16c56
Merge pull request #4284 from mathisloge/fix/windows-utf8
CMake stuff, missing includes and enables tiff test on windows
2022-01-28 09:20:52 +00:00
Artem Pavlenko
dafdbb01ea
Merge pull request #4276 from mathisloge/remove_cxx11_support
remove cxx11_support.hpp
2022-01-28 09:18:53 +00:00
Mathis Logemann
7bccb2a280 Merge branch 'fix/windows-utf8' of https://github.com/mathisloge/mapnik 2022-01-27 19:18:11 +01:00
Mathis Logemann
ef062ac314 [unit-tests] mark text/nested script runs as unicode 16 2022-01-27 18:42:40 +01:00
Mathis Logemann
3b1d09702c [unit-test] enable tiff test 2022-01-27 18:40:22 +01:00
Mathis Logemann
3012ea43ee [visual-test] enable utf-8 console output for windows 2022-01-27 18:37:19 +01:00
Mathis Logemann
aee8519bac [CMake] visual test in own dir 2022-01-27 18:37:03 +01:00
Mathis Logemann
ba27149232 add missing includes 2022-01-27 18:32:21 +01:00
Mathis Logemann
08dcab617e [CMake] add benchmark run script 2022-01-27 18:31:33 +01:00
Mathis Logemann
ccd44da4a2 [CMake] fix installation 2022-01-27 18:30:13 +01:00
Mathis Logemann
c5d4bfe680 [CMake] add msvc utf-8 flag 2022-01-27 18:28:44 +01:00
Mathis Logemann
4fbaa032f0 format dir demo 2022-01-27 00:12:13 +01:00
Mathis Logemann
65035706fb format dir benchmark 2022-01-27 00:12:13 +01:00
Mathis Logemann
6dcf754077 format dir test
format dir test

fix
2022-01-27 00:12:12 +01:00
Mathis Logemann
d5a873e81c format utils 2022-01-27 00:12:12 +01:00
Mathis Logemann
e7c3d04309 format dir include and src
format all files

Revert "format all files"

This reverts commit 95d5812e49e7f916b68e786596f5a8eb5bcac414.

Revert "format some files"

This reverts commit ed3c8762d4d828b2b28e7b18809fc33f4f8ccaf5.

format all files

fix formatting in dir include

fix formatting of debug macro
2022-01-27 00:12:08 +01:00
Mathis Logemann
6fe46f61e2 add clang-format
fix clang-format

fix clang-format

adjust pointer and reference aligment

add cmake script to format all files run with: cmake -P cmake/clang-format.cmake

fix sort includes

change format cmake script
2022-01-26 23:36:12 +01:00
Mathis Logemann
61dd5dccab Merge branch 'master' of https://github.com/mapnik/mapnik 2022-01-26 00:13:21 +01:00
Artem Pavlenko
1d6350b1e5
Merge pull request #4281 from mathisloge/fix/unique_shared_ptr
use shared::ptr<T>::use_count instead of unique()
2022-01-25 12:09:52 +00:00
Mathis Logemann
9ac35a0a9c use use_count instead of unique()
This should be safe to use, since there aren't any weak_ptr's using the shared_ptr. Furthermore any async operations should be finished or guarded for multithreaded execution.
2022-01-25 10:21:27 +01:00
Artem Pavlenko
9e3bafcd4c
Merge pull request #4279 from mathisloge/fix/issue-4268
fix #4268 by adding mapped_memory_file
2022-01-25 08:54:50 +00:00
Mathis Logemann
a3ccf2967f [scons] add mapped_memory_file to source list 2022-01-24 21:21:45 +01:00
Artem Pavlenko
611fd93308
Merge pull request #4280 from mathisloge/feature/vcpkg
add vpkg.json manifest file
2022-01-24 17:04:17 +00:00
Mathis Logemann
c16aa1e5c4 add vpkg.json 2022-01-24 10:49:07 +01:00
Mathis Logemann
fe887a2c83 fix #4268 by adding mapped_memory_file 2022-01-24 10:45:32 +01:00
Mathis Logemann
26052486ee remove cxx11_support.hpp 2022-01-20 23:07:17 +01:00
Artem Pavlenko
fb06428250
Merge pull request #4275 from mathisloge/remove_make_unique_cpp11 2022-01-19 13:52:39 +00:00
Mathis Logemann
4f95463c75 remove make_unique 2022-01-19 12:42:52 +01:00
Artem Pavlenko
cf5541d180
Merge pull request #4272 from mathisloge/cite
add CITATION.cff
2021-12-14 11:44:10 +00:00
Mathis Logemann
3c2aff82bc add CITATION.cff 2021-12-14 10:49:22 +01:00
Artem Pavlenko
79901e494b
Merge pull request #4271 from mathisloge/fix/cmake_install
[CMake] do not install FindHarfbuzz.cmake
2021-12-03 14:02:53 +00:00
Mathis Logemann
7a1b441cf0 [CMake] do not install FindHarfbuzz.cmake 2021-12-03 14:48:13 +01:00
Artem Pavlenko
6d47d3b70f
Merge pull request #4270 from mathisloge/fix/cmake-proj
fix proj version detection / harfbuzz pkg-config for cmake
2021-12-03 10:54:29 +00:00
Mathis Logemann
d546cda6d5 [CMake] drop harfbuzz and use pkg-config as a backup 2021-11-20 12:53:58 +01:00
Mathis Logemann
eb4390b5a6 fix proj version detection for cmake 2021-11-19 20:04:22 +01:00
Mathis Logemann
92b1dbaf32 delete all data 2021-11-15 16:41:37 +01:00
Mathis Logemann
c5d3d9c188 wip 2021-11-15 16:39:10 +01:00
Mathis Logemann
c6619d042c check out correctly 2021-11-15 16:09:46 +01:00
Mathis Logemann
7195448334 all branches 2021-11-15 16:08:48 +01:00
Mathis Logemann
500728e51f test workflow 2021-11-15 16:08:27 +01:00
Mathis Logemann
4b66137654 initial docker 2021-11-15 15:32:58 +01:00
Artem Pavlenko
14f913d6ab
Merge pull request #4266 from mathisloge/cmake_improvments
[CMake] improve build structure
2021-11-15 14:21:13 +00:00
Mathis Logemann
a911e33d7b [CMake] add more build presets
[CMake] rename windows presets

Revert "[CMake] rename windows presets"

This reverts commit 381dcd606c0c8f4281a482ede0c8c4a9a6d912fa.

[CMake] rename windows presets
2021-11-15 11:30:59 +01:00
Mathis Logemann
fbb0ae1489 [CMake] fix building with zero plugins
[Cmake] fix null plugins

fix null
2021-11-15 00:55:58 +01:00
Mathis Logemann
7a7a8125a9 [CMake] remove obsolete statements/improve docs
[CMake] remove obsolete variables and improve docs

[CMake] remove proj env var
2021-11-15 00:40:48 +01:00
Mathis Logemann
f0940c2075 [CMake] move all build artifacts into same dir to remove the need of copy_dlls (except for plugins)
[CMake] improve BUILD_TESTING and use pkgconf for cairo on linux

[CMake] add Threads dependency to -Config
2021-11-15 00:40:47 +01:00
Artem Pavlenko
dc5f497495 catch.hpp - upgrade to v2.13.7 (to unlock c++20 support) 2021-11-02 14:16:07 +00:00
Artem Pavlenko
4eb38c1051
Merge pull request #4260 from mathisloge/windows_define
replace _WINDOWS with _WIN32
2021-10-25 10:25:50 +01:00
Mathis Logemann
e626ba2688 replace _WINDOWS with _WIN32 2021-10-21 18:22:53 +02:00
Artem Pavlenko
f2ab25cf98
Merge pull request #4257 from mathisloge/cmake-pkgconf-improv
[CMake] improve pkg-config export
2021-10-20 16:08:47 +01:00
Mathis Logemann
aa903c675f [CMake] improve pkg-config export
add needed libs

pkg-conf: move libmapnikjson and libmapnikjson to m_requires

make pkg multi config aware

update proj min ver

correct prefix

use the correct output name

add import prefixes, just in case
2021-10-20 16:23:04 +02:00
Artem Pavlenko
4695c42b51
Merge pull request #4253 from GimpMaster/master
Compile for vcpkg using VS2017
2021-10-18 15:18:48 +01:00
Artem Pavlenko
28378b81e8
Merge pull request #4254 from mathisloge/cmake_option_fix
[CMake] fix mapnik_option
2021-10-18 10:40:01 +01:00
Mathis Logemann
c551ed3a62 [CMake] fix mapnik_option 2021-10-16 08:31:19 +02:00
Mathis Logemann
aef71dbae5 [CMake] fix mapnik_option 2021-10-16 08:27:09 +02:00
Joshua Hintze
cab3ba345c -Removed unneeded macro escapes 2021-10-15 19:33:50 -06:00
Joshua Hintze
15798e6ebb -Fixed issue with VS2017 compiling 2021-10-15 19:31:45 -06:00
Artem Pavlenko
0edb018465
Merge pull request #4252 from mathisloge/cmake_mapnik_config
[CMake] Fix issues with tests, boost-regex and webp. Fix viewer qt6
2021-10-13 17:02:16 +01:00
Mathis Logemann
a89447686c remove mapnik-config 2021-10-13 17:47:38 +02:00
Mathis Logemann
5ef2e27e8e [CMake] add boost regex icu check 2021-10-13 10:16:39 +02:00
Mathis Logemann
01dccee231 Merge branch 'cmake_mapnik_config' of https://github.com/mathisloge/mapnik into cmake_mapnik_config 2021-10-13 09:04:31 +02:00
Mathis Logemann
83b4989bd4 [CMake] restore compability with 3.15 2021-10-13 09:04:26 +02:00
Mathis Logemann
561a79720e [CMake] unit-test add utilities to path 2021-10-12 23:00:48 +02:00
Mathis Logemann
6dee79f442 [CMake] mapnik::mapnik restructure. should give a better overview 2021-10-11 19:08:25 +02:00
Mathis Logemann
dea63374f4 [CMake] better logging of feature options. Output log files for better help management. ; get started with mapnik-config 2021-10-10 21:34:15 +02:00
Mathis Logemann
59f7a61661 [CMake] unit-test copy more data 2021-10-09 14:11:58 +02:00
Mathis Logemann
ba8a972254 [unit-test] fix formatting 2021-10-09 13:55:32 +02:00
Mathis Logemann
05c2278893 [CMake] add the search paths for the build executables automatically for ctest.; depend completly on the external catch2 2021-10-09 13:48:11 +02:00
Mathis Logemann
a73d2f7d94 [unit-tests] fix windows 11 path search 2021-10-09 13:46:55 +02:00
Mathis Logemann
bf6081b207 [unit-test] add std includes for external catch2 2021-10-09 13:46:24 +02:00
Mathis Logemann
ac95449ff5 [CMake] fix critical webp init 2021-10-09 09:40:44 +02:00
Mathis Logemann
56e8de6b16 [CMake] proj remove global 2021-10-09 08:44:03 +02:00
Mathis Logemann
1a5aea5653 [CMake] use pkgconf imported target for proj; see https://github.com/mapnik/mapnik/issues/4249#issuecomment-937214705 2021-10-08 20:21:18 +02:00
Mathis Logemann
a0525ddd26 [CMake] nativ harfbuzz don't publish a version. Therefore we can't depend on it. 4645c3b47c/CMakeLists.txt (L686) and following 2021-10-07 20:16:45 +02:00
Mathis Logemann
8714432a67 [viewer] fix qt6 2021-10-07 20:05:11 +02:00
Artem Pavlenko
d96b6843b3
Merge pull request #4251 from mathisloge/cmake_hotfix
[CMake] fix `mapnik_find_plugin_dir`
2021-10-06 16:10:11 +01:00
Mathis Logemann
95e210521c [CMake] fix mapnik_find_plugin_dir 2021-10-06 16:43:55 +02:00
Artem Pavlenko
6f01d7a34a
Merge pull request #4250 from mathisloge/boost_bump_1_73
bump boost version to 1.73 and fix docs
2021-10-06 14:23:05 +01:00
Mathis Logemann
feca084ed6 bump boost version to 1.73 and fix docs 2021-10-06 15:15:32 +02:00
Artem Pavlenko
a1a3a712dd
Merge pull request #4248 from mathisloge/cmake-fix
[CMake] Simplify install, add min versions and PkgConfig
2021-10-06 10:28:21 +01:00
Mathis Logemann
333e745d7b [CMake] pkg-config: generate correct library link file names 2021-10-01 20:42:57 +02:00
Mathis Logemann
8c83e15404 [CMake] fix export plugin file naming 2021-09-23 19:28:40 +02:00
Mathis Logemann
fa2fec338b [CMake] add import prefix for libmapnik
so that the resulting archive is also named libmapnik
2021-09-23 19:11:29 +02:00
Mathis Logemann
fcc7016124 add basic pkg-config exports 2021-09-23 18:46:48 +02:00
Mathis Logemann
a2d3364ec7 [CMake] add version and soversion to base libraries 2021-09-23 10:41:25 +02:00
Mathis Logemann
1c51a8e529 [CMake] add configuration dependend exports for plugin install dir.
add function to get the current plugin install dir
2021-09-23 10:33:32 +02:00
Mathis Logemann
5287c234d6 [CMake] fix resulting config when no plugins are build 2021-09-22 21:39:04 +02:00
Mathis Logemann
f1ed49edec install utilities 2021-09-22 20:49:44 +02:00
Mathis Logemann
35ea6f2a56 [CMake] refactor mapnik_install 2021-09-22 19:52:39 +02:00
Mathis Logemann
d57f0ac93a [Cmake] Fix cache description 2021-09-22 15:44:34 +02:00
Mathis Logemann
755e8d322e add minimum versions; proj include dir only as a build interface 2021-09-22 15:25:55 +02:00
Mathis Logemann
25774ac82a [CMake] unify and simplify install commands.; Add Components to targets 2021-09-22 14:41:50 +02:00
Mathis Logemann
9d4d7fd273 [CMake] do not print install targets 2021-09-22 13:19:43 +02:00
Artem Pavlenko
1ccbbf95b5
Merge pull request #4244 from mathisloge/cmake-pub-dep
[CMake] make mapnik::core a public dependency of mapnik::mapnik
2021-09-15 16:38:23 +01:00
Mathis Logemann
8bd463d4fc make mapnik::core a public dependency of mapnik::mapnik 2021-09-14 20:46:43 +02:00
Artem Pavlenko
737e7a69c2 Add includes required for building with boost_1_77 (46e3d9231c (diff-2eb9871858184271f07935b31093c2d9f70f7a219979bec85adc03db6721a182)) 2021-09-01 10:11:13 +01:00
Artem Pavlenko
69911ad9ea
Merge pull request #4191 from mathisloge/cmake-support
CMake build support
2021-08-30 09:44:14 +01:00
Mathis Logemann
f40822980e update to latest catch2 2021-08-25 17:25:23 +02:00
Mathis Logemann
02180115bf some last minor improvements 2021-08-25 16:41:57 +02:00
Artem Pavlenko
262f769ece Update test/data 2021-08-17 13:27:08 +01:00
Mathis Logemann
0198cad883 Merge branch 'master' of https://github.com/mapnik/mapnik into cmake-support 2021-08-13 20:44:55 +02:00
Mathis Logemann
4b4cfca706 copy all plugins to the viewer build dir 2021-08-13 20:41:30 +02:00
Mathis Logemann
83e77559c4 update cmake docs 2021-08-13 17:21:46 +02:00
Artem Pavlenko
29eea37b38 Update test/data 2021-08-12 10:30:44 +01:00
Mathis Logemann
8500b3cd69 remove not needed include of <warning.hpp> 2021-07-24 00:58:28 +02:00
Mathis Logemann
a8d6bdcac1 [FindWebP] FOUND_VAR is deprecated 2021-07-23 18:41:30 +02:00
Mathis Logemann
fcda7021b6 Revert "found var was deprecated."
This reverts commit 6b5e4dcec2.
2021-07-23 18:41:07 +02:00
Mathis Logemann
6b5e4dcec2 found var was deprecated. 2021-07-23 18:40:57 +02:00
Mathis Logemann
001718cf73 some fixes for FindWebP 2021-07-23 18:39:42 +02:00
Mathis Logemann
872f1139db Merge branch 'cmake-support' of https://github.com/mathisloge/mapnik into cmake-support 2021-07-23 18:14:40 +02:00
Mathis Logemann
02fed92074 link with correct lib (clang) 2021-07-23 19:34:17 +02:00
Mathis Logemann
f80a7724bf delete clang toolchain(replaced by CMakePresets) 2021-07-23 18:14:37 +02:00
Mathis Logemann
ac6842656e enable qt6 or qt5 for mapnik-viewer. android could be dropped 2021-07-23 17:06:24 +02:00
Mathis Logemann
f90c684471 add missing generator to CMakePresets 2021-07-23 16:41:28 +02:00
Mathis Logemann
08791f496d add MAPNIK_STATS 2021-07-23 16:10:35 +02:00
Mathis Logemann
6739c30941 fixed some var refs 2021-07-23 16:04:25 +02:00
Mathis Logemann
42fec31784 add version again to FindWebP 2021-07-23 15:54:51 +02:00
Mathis Logemann
e2524f80df rewrite webp to add debug libraries 2021-07-23 15:48:17 +02:00
Mathis Logemann
72600b996e added missing options 2021-07-23 13:34:49 +02:00
Mathis Logemann
54e63dd9fe some docs 2021-07-22 23:05:48 +02:00
Mathis Logemann
01516c9603 fix 2021-07-22 22:56:00 +02:00
Mathis Logemann
1f6a794b43 add MAPNIK_DEBUG when using the mapnik debug configuration 2021-07-22 22:54:22 +02:00
Mathis Logemann
28d286ecb8 i really need to upgrade proj... 2021-07-22 22:46:23 +02:00
Mathis Logemann
d737569574 add presets 2021-07-22 22:45:39 +02:00
Mathis Logemann
4d3affb95d fix gdal include dir 2021-07-22 22:06:01 +02:00
Mathis Logemann
14944cd235 added some docs 2021-07-22 21:55:01 +02:00
Mathis Logemann
bbcf1c2009 add multithreaded 2021-07-22 21:45:25 +02:00
Mathis Logemann
b925abf403 fix library name 2021-07-22 21:35:12 +02:00
Mathis Logemann
03b1f18c89 make pkg-config optionally. But fail later when we actually need pkg-config as a fallback 2021-07-22 21:04:45 +02:00
Mathis Logemann
7b0aa9d3bf remove openjpeg again. was just a test 2021-07-22 20:45:16 +02:00
Mathis Logemann
3001e0c78a Revert "remove openjpeg again. was just a test."
This reverts commit bcc66a739c.
2021-07-22 20:44:36 +02:00
Mathis Logemann
bcc66a739c remove openjpeg again. was just a test. 2021-07-22 20:44:29 +02:00
Mathis Logemann
81397f84bc add debug postfix to wkt, json and mapnik.
Mapnik can be installed with multi configuration enviroment
2021-07-22 20:34:08 +02:00
Mathis Logemann
9998ca7dd9 fix gdal library variable 2021-07-22 20:17:03 +02:00
Mathis Logemann
3a2996e5b0 install mapbox headers when using NOT USE_EXTERNAL* 2021-07-21 20:20:44 +02:00
Mathis Logemann
199fd8218b this fixes a bug when including a package via pkg-config:
We will append the call to the config file to find the package
via find_package. However this does not work when the package was included
with pkg-config
2021-07-21 20:08:22 +02:00
Mathis Logemann
282986c503 fix config file naming scheme.
Only happens when using older cmake versions. But this was definitly an issue.
Target name should be the same on the file (case sensitive)
2021-07-21 20:03:42 +02:00
Mathis Logemann
e5cf5dda39 default to jpeg. 2021-07-21 18:24:40 +02:00
Mathis Logemann
c5ced60c38 fix some bugs when using ubuntu to build 2021-07-21 18:16:48 +02:00
Mathis Logemann
01159d0721 still forget proj everytime... 2021-07-07 21:11:28 +02:00
Mathis Logemann
59f9974baa TEMP: use openjpeg 2021-07-07 21:06:59 +02:00
Mathis Logemann
3397fff8ea add harfbuzz fallback 2021-07-06 22:46:07 +02:00
Mathis Logemann
cdb598e67b add harfbuzz minimum version and HarfBuzz::ICU target. probably fixes osx 2021-07-06 22:19:28 +02:00
Mathis Logemann
c5f0565654 remove subsequent boost require version calls. 2021-07-06 22:07:29 +02:00
Mathis Logemann
eb1236d5dd use proj *gr* 2021-07-06 21:32:58 +02:00
Mathis Logemann
e408bf9a22 add find harfbuzz.cmake 2021-07-06 21:32:36 +02:00
Mathis Logemann
6a19824c12 hate proj4... 2021-07-05 21:58:53 +02:00
Mathis Logemann
7a13a940df build plugins as modules. 2021-07-05 17:13:45 +02:00
Mathis Logemann
7231d06a46 ups. this shouldn't be commited 2021-07-02 22:43:01 +02:00
Mathis Logemann
7f2511632f add packaging 2021-07-02 22:26:36 +02:00
Mathis Logemann
d610671327 try install json and wkt again 2021-07-02 16:02:30 +02:00
Mathis Logemann
cdf41a3144 install sparsehash 2021-07-02 13:55:55 +02:00
Mickey Rose
51b118ef2f prevent files under scons/ from skewing repository language statistics 2021-07-02 11:00:28 +02:00
Mathis Logemann
d17abeddb7 [cmake] add folders for visual studio 2021-06-30 10:33:20 +02:00
Mathis Logemann
a7ec89a8a1 Merge branch 'master' of https://github.com/mapnik/mapnik into cmake-support 2021-05-29 22:43:59 +02:00
Artem Pavlenko
0a8e353e83
Merge pull request #4230 from mapnik/c++20
C++20
2021-05-17 16:15:07 +01:00
Artem Pavlenko
0efdcafe56 make from_u8string inline 2021-05-17 16:11:53 +01:00
Artem Pavlenko
6fa2666747 Add convertion functions from_u8string to support c++20 + update tests 2021-05-17 16:11:44 +01:00
Artem Pavlenko
fb2e45c579 Upgrade to ICU 58.1 2021-04-28 17:05:24 +01:00
Mathis Logemann
4879efce58 Merge branch 'master' of https://github.com/mapnik/mapnik into cmake-support 2021-04-22 19:41:35 +02:00
Mathis Logemann
5a109a99fb install dependencies only on windows and install plugins into correct dir 2021-04-22 19:41:21 +02:00
Artem Pavlenko
88a15daf93 Fix parse_svg_value 2021-04-22 11:36:10 +01:00
Artem Pavlenko
a1cb756fa0 SVG parse_svg_value: update is_percent only if parsing successful 2021-04-19 18:02:24 +01:00
Artem Pavlenko
3031b7cf6a SVG parse_svg_value/parse_font_size: re-initialise default val on parser failure 2021-04-19 08:55:39 +01:00
Artem Pavlenko
4ff25eb2a8 remove token 2021-04-16 17:26:44 +01:00
Artem Pavlenko
21fd41b9a9
Merge pull request #4225 from mapnik/svg-rendering-improvements
SVG rendering improvements
2021-04-16 09:51:25 +01:00
Artem Pavlenko
7c5f4539e1 Fix error message + update SVG parser unit test 2021-04-15 16:29:05 +01:00
Artem Pavlenko
fd204874ec svg2png - avoid writing to an empty image 2021-04-15 15:53:04 +01:00
Artem Pavlenko
654a3c1f9f SVG : refactor and simplify width/height+viewBox logic (https://www.w3.org/TR/SVG11/struct.html#SVGElement) + check font_sizes_ size before accesing last element 2021-04-15 15:38:59 +01:00
Artem Pavlenko
0feabeb7e8 SVG circle: ignore when r = 0 2021-04-13 13:48:05 +01:00
Artem Pavlenko
55370c3453 Update visual data 2021-04-13 10:26:39 +01:00
Artem Pavlenko
f293371a9d SVG rendering improvements:
* process `font-size` attributes and use them to scale `em` units
* fix default `color-stop` value
* store `viewBox` and use it to calculate `%` values correctly
* add more absolute/relative values
* default `DPI`:96
* default `font-size`: 10
* process style attributes on `<svg>` element
* use viewBox `width`, `height` and `normalized_diagonal` for relevant length values
* apply scale factor to gradient transforms
2021-04-13 09:19:33 +01:00
Artem Pavlenko
9c2132f895 Fix gradient transform calc (apply scale factor) 2021-04-13 09:17:48 +01:00
Artem Pavlenko
ff8c411749 Use DPI=96 + add absolute and relative sizes + add missing value units 2021-04-12 14:16:39 +01:00
Artem Pavlenko
4f783f61ed Init by value 2021-04-12 14:16:09 +01:00
Mathis Logemann
e1fa32f21f install dependencies. Required for windows (and ?macos?). Needs testing on linux. 2021-04-10 14:36:22 +02:00
Mathis Logemann
1929fbc0ba add an option to disable plugin and font copying 2021-04-09 15:53:21 +02:00
Mathis Logemann
02f78e4ce5 fixed Dll copying on windows; copy plugins and fonts into appropiate directories when building. 2021-04-09 15:50:50 +02:00
Mathis Logemann
b6d8f54779 Merge branch 'master' of https://github.com/mapnik/mapnik into cmake-support 2021-04-06 18:38:51 +02:00
Artem Pavlenko
6bab4e56fd Move MAPNIK_DECL to the front (ref https://github.com/mapnik/mapnik/pull/4220#issuecomment-814259514) 2021-04-06 17:36:46 +01:00
Mathis Logemann
9049a7e58d Merge branch 'master' of https://github.com/mapnik/mapnik into cmake-support 2021-04-06 17:27:28 +02:00
Artem Pavlenko
8c3b9758eb
Merge pull request #4220 from mapnik/proj6
Simplify proj_transform_cache implementation
2021-04-06 11:58:44 +01:00
Artem Pavlenko
b974a4a683 Simplify proj_transform_cache implementation (ref https://github.com/mapnik/mapnik/pull/4191#issuecomment-813377082) 2021-04-06 10:30:12 +01:00
Mathis Logemann
5963c64960 Merge branch 'master' of https://github.com/mapnik/mapnik into cmake-support 2021-04-01 18:17:39 +02:00
Artem Pavlenko
bb18a5ba0a
Merge pull request #4219 from mathisloge/proj_transform_fix
fixes proj_transform_cache incomplete type
2021-04-01 17:16:48 +01:00
Mathis Logemann
bed3ffb3dc fix typo grid renderer -> svg renderer 2021-04-01 18:01:43 +02:00
Mathis Logemann
ee90425de1 fixes proj_transform_cache incomplete type for gcc 2021-04-01 17:57:20 +02:00
Mathis Logemann
f57d39378d add BIGINT and MAPNIK_MEMORY_MAPPED_FILE; require cxx standard, disable compiler specific flags (CXX_EXTENSIONS) 2021-04-01 16:15:32 +02:00
Mathis Logemann
b1e1ea66f5 try fix linux take II 2021-04-01 16:03:58 +02:00
Mathis Logemann
7121bd6fbf Revert "hopefully fix unstatisfied proj_transform_cache"
This reverts commit d2066da339.
2021-04-01 15:55:57 +02:00
Mathis Logemann
d2066da339 hopefully fix unstatisfied proj_transform_cache 2021-03-31 20:25:46 +02:00
Mathis Logemann
8cd78b6945 Merge branch 'master' of https://github.com/mapnik/mapnik into cmake-support 2021-03-26 20:04:30 +01:00
Artem Pavlenko
53669bc42e
Merge pull request #4202 from mapnik/proj6
Upgrade to new Proj APIs
2021-03-26 16:55:10 +00:00
Mathis Logemann
7897bb5c83 add threads to mapnik::core 2021-03-26 15:45:15 +01:00
Mathis Logemann
1367e7007f print version strings if available 2021-03-25 21:28:41 +01:00
Mathis Logemann
2b977f14c9 changed proj; add mapnik_proj_version; use boost regex icu workaround 2021-03-25 18:46:18 +01:00
Mathis Logemann
eb943d11d0 add postgis to unit tests 2021-03-25 18:42:17 +01:00
Artem Pavlenko
3489bdbe36 rename PROJ_VERSION to MAPNIK_PROJ_VERSION to avoid clashes with libproj 2021-03-25 16:38:21 +00:00
Mathis Logemann
0ab47e1fc6 Merge branch 'proj6' of https://github.com/mapnik/mapnik into cmake-support 2021-03-25 17:28:06 +01:00
Mathis Logemann
b2116fd9e9 added benchmarks; needed mutex header 2021-03-25 17:26:29 +01:00
Artem Pavlenko
f093d0cf6e Fix potential iterator out of range condition by using appropriate function (ref #4218) via @mathisloge
```
template< class InputIt1, class InputIt2, class BinaryPredicate >

bool equal( InputIt1 first1, InputIt1 last1,
            InputIt2 first2, InputIt2 last2,
            BinaryPredicate p );
```
2021-03-25 16:07:48 +00:00
Artem Pavlenko
5dfd1a24fc Fix potential iterator out of range condition by using appropriate function (ref #4218) via @mathisloge
```
template< class InputIt1, class InputIt2, class BinaryPredicate >

bool equal( InputIt1 first1, InputIt1 last1,
            InputIt2 first2, InputIt2 last2,
            BinaryPredicate p );
```
2021-03-25 16:03:15 +00:00
Mathis Logemann
c29c84327a add proj_transform_cache to source list 2021-03-25 13:34:25 +01:00
Mathis Logemann
f8b159f8ff Merge branch 'proj6' of https://github.com/mapnik/mapnik into cmake-support 2021-03-25 13:26:30 +01:00
Artem Pavlenko
503b9c5bbf Move proj_transform_cache declarations and implementaion into separate translation unit (ref VC++ C2492) 2021-03-25 12:16:15 +00:00
Mathis Logemann
0a3bb4e8bd update test data deps. somehow got messed up in last commit 2021-03-25 08:52:09 +01:00
Mathis Logemann
31c0b08548 renamed MAPNIK_USE_PROJ4 to MAPNIK_USE_PROJ and removed ACCEPT_USE_OF_DEPRECATED_PROJ_API_H 2021-03-24 23:55:12 +01:00
Mathis Logemann
59b97a57fc test data changes 2021-03-24 23:31:11 +01:00
Mathis Logemann
4eed15f87a Merge branch 'proj6' of https://github.com/mapnik/mapnik into cmake-support 2021-03-24 23:30:50 +01:00
Mathis Logemann
772e50ba79 copy basic dlls for mapnik-demo 2021-03-24 23:28:36 +01:00
Mathis Logemann
e963af53a5 find proj without config 2021-03-24 15:21:39 +01:00
Mathis Logemann
61a1248262 fix false default cmake install dir 2021-03-24 15:17:08 +01:00
Mathis Logemann
db6d1a1293 fix typo in text 2021-03-24 15:16:12 +01:00
Mathis Logemann
9835f07179 find and link icu first 2021-03-24 14:57:27 +01:00
Artem Pavlenko
c76f65a49a Add missing header (linux) 2021-03-24 11:44:56 +00:00
Artem Pavlenko
d756b534e3 Fix names and add welsh reference for good measure 2021-03-24 11:42:18 +00:00
Artem Pavlenko
2bb5bdb9fe Fix existing and add more transformation test + test for is_geographic (ref 3a302667a1) 2021-03-24 11:23:27 +00:00
Artem Pavlenko
f82ed08d6a Replace remaining MAPNIK_USE_PROJ4 -> MAPNIK_USE_PROJ 2021-03-24 11:22:32 +00:00
Artem Pavlenko
b24fc9a8da Remove proj4 related stuff 2021-03-24 11:21:50 +00:00
Artem Pavlenko
3a302667a1 Fix return value (MAPNIK_WEBMERCATOR_PROJ is not geographic SRS) 2021-03-24 09:42:52 +00:00
Artem Pavlenko
59aa5087fc upgrade libpq to 9.6.5 2021-03-22 16:03:08 +00:00
Artem Pavlenko
602948f783 Upgrade mason pkgs:
* libgdal 2.2.3
* libpng 1.6.32
* jpeg_turbo 1.5.2
* libtiff 4.0.8
2021-03-22 15:45:36 +00:00
Mathis Logemann
167461ccc4 rename internal name mapnik-core to core since the exported name would be mapnik::mapnik-core instead of mapnik::core. This fixes the issue 2021-03-19 22:51:50 +01:00
Artem Pavlenko
5afe22030f Fix proj_version on macOS 2021-03-19 16:37:21 +00:00
Artem Pavlenko
9df7afd0a3 Add 'proj_version' check + define PROJ_MIN_VERSION as 7.2.0 2021-03-19 13:24:14 +00:00
Artem Pavlenko
6af16764aa proj - add version check based on major*10000+minor*100+patch format 2021-03-19 13:22:16 +00:00
Artem Pavlenko
6b9b42f314 Declare proj_cache_ thread_local static to allow mapnik::Map to be thread-safe under certain conditions + refactor
(benchmark/src/test_rendering_shared_map.cpp)
2021-03-18 16:05:58 +00:00
Artem Pavlenko
ebbd544d75 Add text to indicate if proj_transform is internal or external (libproj) 2021-03-18 16:05:09 +00:00
Artem Pavlenko
9c7e21fa47 Re-use proj_transform as creating a new one is extremely expensive on libproj >= 6 (NOTE: epsg:4326 and epsg:3857 are special cases which use internal implementations and are not expensive to create on stack). 2021-03-18 15:32:13 +00:00
Mathis Logemann
36be4fe594 renamed target mapnik::headers to mapnik::core 2021-03-18 15:35:55 +01:00
Mathis Logemann
4604aee202 3.15 is the minium supported target. tested. 2021-03-17 23:06:49 +01:00
Mathis Logemann
4e898b2a52 added some basic READMEs 2021-03-17 22:37:46 +01:00
Mathis Logemann
ae43a49b71 add dependencies to cmake config. Provieded a new macro for better maintance 2021-03-17 22:18:21 +01:00
Mathis Logemann
a0d60f233b fixes cairo renderer debug configuration. Copied FindCairo had a lot of issues with the multiconfiguration settings. Rewrite of the whole file 2021-03-17 21:29:00 +01:00
Artem Pavlenko
199e609a79 Fix compiler warning - use non-reference type 'boost::tuples::cons<...>' 2021-03-16 11:49:53 +00:00
Artem Pavlenko
fbc6bec12a Update visual data references 2021-03-15 18:18:24 +00:00
Artem Pavlenko
56d63073b4 Update test 2021-03-15 18:10:09 +00:00
Artem Pavlenko
387d54fe9d Defer projection init 2021-03-15 18:09:21 +00:00
Artem Pavlenko
6099804559 Use POSIX definition of pi constant (M_PI) + define tau in terms of pi + better namings + remove deprecated proj4 style definitions 2021-03-15 18:06:26 +00:00
Mathis Logemann
c1d9bde886 fix find cairo 2021-03-15 10:03:26 +01:00
Mathis Logemann
f9d65edf20 oops. do not push github workflow 2021-03-15 08:57:50 +01:00
Mathis Logemann
79d369db1f Merge branch 'master' of https://github.com/mapnik/mapnik into cmake-support 2021-03-15 08:52:15 +01:00
Mathis Logemann
b3fb65edaa Merge branch 'master' of https://github.com/mathisloge/mapnik into cmake-support 2021-03-15 08:49:27 +01:00
Artem Pavlenko
baad6b3819 Update data and data-visual to use epsg:XXXX syntax to define SRS (old proj4 syntax is not recommended in proj >=6) 2021-03-12 16:24:11 +00:00
Artem Pavlenko
c71bcdc92d update visual tests affected by switching to well_known_srs 2021-03-12 14:39:14 +00:00
Artem Pavlenko
f432204180 Update test/data-visual 2021-03-12 13:14:31 +00:00
Artem Pavlenko
68efb709ed Fix mason version 2021-03-11 15:16:31 +00:00
Artem Pavlenko
ec880947e0 fix merge artifacts 2021-03-11 15:04:53 +00:00
Artem Pavlenko
342bf2947b Merge branch 'master' into proj6 2021-03-11 14:51:01 +00:00
Artem Pavlenko
74c79eb17c
Merge pull request #4217 from mapnik/scons-4.1.0
Scons 4.1.0
2021-03-11 14:45:32 +00:00
Artem Pavlenko
689aa4cdef Remove Proj.4 reference in preference to Proj 2021-03-11 14:11:44 +00:00
Artem Pavlenko
d9b7055cbe travis-ci - brew link postgresql postgis 2021-03-11 13:58:53 +00:00
Artem Pavlenko
b70e5adad0 remove extract token 2021-03-11 13:57:12 +00:00
Artem Pavlenko
a6ced1622c .travis.yml - use 'brew list --formula + brew link git` 2021-03-11 13:41:35 +00:00
Artem Pavlenko
13a6b0c03a .travis.yml - fix syntax typo 2021-03-11 12:40:15 +00:00
Artem Pavlenko
5f78b90572 travis-ci - revive postgis.input tests (call unlink brew pkga in script section) 2021-03-11 12:32:58 +00:00
Artem Pavlenko
466ff8c319 travis-ci - unlink all brew pkgs 2021-03-11 11:15:33 +00:00
Artem Pavlenko
e91d1ec0a5 travis-ci - brew list 2021-03-11 10:56:47 +00:00
Artem Pavlenko
93f239f5cb travis-ci print brew info proj/boost 2021-03-11 10:13:44 +00:00
Artem Pavlenko
256ee86104 unit tests - don't run projection transformations tests which require libproj when MAPNIK_USE_PROJ4 is not set 2021-03-11 09:58:24 +00:00
Artem Pavlenko
692907761a Add more diagnostic stderr 2021-03-10 16:36:13 +00:00
Artem Pavlenko
5d5cc3a5db Try building without postgis.input 2021-03-10 12:22:14 +00:00
Artem Pavlenko
f5d911968f Force remove system boost_1_74 2021-03-10 11:46:52 +00:00
Artem Pavlenko
abf05e8bc8 Remove (attempting) system boost 2021-03-10 11:37:37 +00:00
Artem Pavlenko
5d88fa4a2c Let's see if upgrading xcode to 12.2 solves the boost issue 2021-03-10 11:11:45 +00:00
Artem Pavlenko
8271bbde06 Merge branch 'master' into scons-4.1.0 2021-03-10 09:34:57 +00:00
Artem Pavlenko
0714e61545 Refactor "Query map point" unit test 2021-03-09 16:29:23 +00:00
Artem Pavlenko
ebc3dabd6d Add basic Map::query_map_point test 2021-03-09 16:14:26 +00:00
Artem Pavlenko
0e0d222ede Print mapnik::Map (useful gathering query_map_point data) 2021-03-09 16:13:20 +00:00
Artem Pavlenko
f8877e2263 Add missing &copy 2021-03-09 16:12:54 +00:00
Artem Pavlenko
eb49b5776a Fix BBOX in geographic WGS84 (epsg:4326) calc logic 2021-03-09 15:02:11 +00:00
Artem Pavlenko
977c65e9de Fix proj_transform order in Map::query_point 2021-03-09 11:33:21 +00:00
Artem Pavlenko
7cbbd7305b Map::mapnik - restore non-const access to layers + create proj_transform and cache in get_proj_transform + declare proj_cache_ mutable 2021-03-09 10:48:32 +00:00
Artem Pavlenko
8f126a1000 Fix updateData signal signature so it actually works + cleanups 2021-03-08 13:21:01 +00:00
Artem Pavlenko
fb325f527b Fix updateData signal signature so it actually works + cleanups 2021-03-08 13:19:11 +00:00
Artem Pavlenko
f1fc3c4948 Update mason version 2021-03-05 15:42:32 +00:00
Artem Pavlenko
1259b1d333 try boost 1.75.0 2021-03-05 15:37:23 +00:00
Artem Pavlenko
2cd0c91215 Attempting to fix travis-ci :D 2021-03-05 15:32:21 +00:00
Artem Pavlenko
e8c2ba7eeb travis-ci - revert back to language:generic 2021-03-05 14:22:20 +00:00
Artem Pavlenko
61a73d21e6 bootstrap.sh - boost 1.74 + remove libexpat dep 2021-03-05 14:18:03 +00:00
Artem Pavlenko
459ea9f486 travis-ci - upgrade to xcode11 2021-03-05 12:42:13 +00:00
Artem Pavlenko
3c475ab7da travis-ci - set PYTHON=python3 globally 2021-03-05 11:08:20 +00:00
Artem Pavlenko
6124b1fae8 set PYTHON env var to python3 2021-03-05 11:04:07 +00:00
Artem Pavlenko
1bc84b837a attempting to force python3 2021-03-05 10:52:33 +00:00
Artem Pavlenko
65273e7a07 .travis.yml - set language to c++ 2021-03-05 10:45:35 +00:00
Artem Pavlenko
489154b342 remove python2 stuff 2021-03-05 10:35:20 +00:00
Artem Pavlenko
84a05a6597 Upgrade to Scons 4.1.0 2021-03-05 10:18:26 +00:00
Artem Pavlenko
b532beccde mapnik::Map ctor/operator= - initialise proj transforms 2021-03-04 10:19:44 +00:00
Artem Pavlenko
554556e4d5 Add support for libproj >=8 2021-03-04 10:18:42 +00:00
Artem Pavlenko
b75737fd6a Implement proj_transform caching using boost::unordered_map which allows calling find method with compatible key type.
In this case `std::pair<boost::string_view, boost::string_view>` avoiding potentially expensive temp string keys.
(TODO: In the future use c++20 `std::unordered_map::find` transparent keys facility)
2021-03-03 15:01:58 +00:00
Artem Pavlenko
6fedae386d add c++20 2021-03-03 11:13:42 +00:00
Artem Pavlenko
11ff758c38 Add proj_transform::definition() method 2021-03-02 17:07:13 +00:00
Artem Pavlenko
a149ebed16 use std::size_t consistently (proj API) 2021-03-02 16:39:32 +00:00
Artem Pavlenko
cb75f00780 Move proj_transform initialisation to add_layer method 2021-02-25 11:05:11 +00:00
Mathis Logemann
3a6362f1a9 added clang toolchain file 2021-02-05 19:35:35 +01:00
Artem Pavlenko
c3eda40e01
Update to travis.com 2021-02-04 13:34:03 +00:00
Mathis Logemann
2009598cdc cmake do not test cmp0110 on versions less 3.19 2021-02-03 22:53:02 +01:00
Mathis Logemann
74b325e71a fix comment 2021-02-03 22:48:25 +01:00
Mathis Logemann
54a61f7553 add dlcfn on non windows systems 2021-02-03 22:47:15 +01:00
Mathis Logemann
5f02b197dd get mapnik version from mapnik/version.hpp 2021-02-03 19:43:28 +01:00
Mathis Logemann
1f73d1c771 rename boost::boost to boost::headers, added missing icu components 2021-02-03 19:29:43 +01:00
Mathis Logemann
dec9056511 remove unnecessary cmake_minimum_required from sub projects 2021-02-03 19:14:08 +01:00
Artem Pavlenko
e5c182591a use unordered_map for proj_transform caching 2021-02-01 10:57:52 +00:00
Artem Pavlenko
5c086b0cd5 Add proj_transform caching to minimise expensive initialisations calls in libproj >= 6 [WIP] 2021-01-27 09:40:28 +00:00
Mathis Logemann
0b76278adc its getting too late.. 2021-01-27 01:22:41 +01:00
Mathis Logemann
4bc99d8047 should use the ADDITIONAL_LIBARIES_PATHS var... 2021-01-27 01:20:32 +01:00
Mathis Logemann
e60d4368ed add option to disable shared lib fixup 2021-01-27 01:17:00 +01:00
Mathis Logemann
d159bec46a FindCairo: find debug release library 2021-01-27 00:42:19 +01:00
Mathis Logemann
a7c9f5b941 windows: copy all dlls. optional library dir if some dlls are not found. 2021-01-27 00:41:54 +01:00
Mathis Logemann
247ceff7a7 temporarily remove find dll. only windows specific. needs better impl 2021-01-24 19:36:01 +01:00
Mathis Logemann
953796645f enable position independent code for wkt and json 2021-01-24 19:35:21 +01:00
Mathis Logemann
14f4362bb5 better support for proj 2021-01-24 19:34:51 +01:00
Artem Pavlenko
db9829d702 Fix missing proj context and cleanup/simplify proj_transform 2021-01-22 15:23:11 +00:00
Artem Pavlenko
6cc353f8a2 Use 'proj_backward_strategy' and avoid creating an extra proj_transform 2021-01-22 15:22:18 +00:00
Artem Pavlenko
ff14ad3425 Link to libsqlite3 when required 2021-01-21 12:47:41 +00:00
Artem Pavlenko
19511463ab Include <cmath> for HUGE_VAL 2021-01-21 12:46:57 +00:00
Artem Pavlenko
d35f0596d1 Update data-visual 2021-01-21 11:01:20 +00:00
Artem Pavlenko
b1982cc68a Upgrade to latest mason + proj-v7.2.1 + sqlite-v3.34.0 2021-01-21 10:59:54 +00:00
Artem Pavlenko
88241b32ee Initial implementation of new proj7 APIs support 2021-01-15 15:21:09 +00:00
Artem Pavlenko
bec509d5b8 Merge branch 'master' into proj6 2021-01-12 15:09:10 +00:00
Artem Pavlenko
bd961c4da2 update copyright year [skip ci] 2021-01-05 14:39:07 +00:00
Artem Pavlenko
c8b8b5c1d0
Merge pull request #4194 from mathisloge/warning-fix
fix warning for unknown compiler
2020-12-17 15:49:46 +00:00
Mathis Logemann
002c6e2a5e remove vcpkg folder 2020-12-17 10:21:25 +01:00
Mathis Logemann
6a286c7ac2 Merge branch 'master' of https://github.com/mapnik/mapnik into warning-fix 2020-12-17 10:16:52 +01:00
Mathis Logemann
bf51fc8650 Merge branch 'master' of https://github.com/mapnik/mapnik into cmake-support 2020-12-17 10:14:40 +01:00
Artem Pavlenko
cb4f1ff63a
Merge pull request #4199 from mapnik/travis
upgrade dist+toolchain
2020-12-16 14:25:13 +00:00
Artem Pavlenko
176b4bf8f7 travis ci - remove glibcxx workaround check as we're building on xenial 2020-12-16 13:48:53 +00:00
Artem Pavlenko
dca32e5cf3 travis ci - downgrade to isu 57.1 and boost 1.73.0 2020-12-16 11:13:11 +00:00
Artem Pavlenko
fb6334287a re-enable glibc workaround 2020-12-11 13:02:25 +00:00
Artem Pavlenko
9127d6334e travis-ci - update to postgis-2.4 2020-12-11 12:36:37 +00:00
Artem Pavlenko
17a1c72f41 fix .travis 2020-12-11 11:47:04 +00:00
Artem Pavlenko
6f36340888 upgrade dist+toolchain 2020-12-11 11:29:51 +00:00
Artem Pavlenko
7520e16340 travis-ci - disable Linux/gcc build 2020-12-10 13:00:48 +00:00
Artem Pavlenko
9c76fdc3bb Merge remote-tracking branch 'origin/master' 2020-12-10 11:18:25 +00:00
Artem Pavlenko
006c66e488 Remove sudo : false per https://docs.travis-ci.com/user/reference/trusty#container-based-infrastructure 2020-12-03 09:14:24 +00:00
Artem Pavlenko
834c1eac44
Merge pull request #4197 from Nonemoticoner/patch-1
Fix dead link to tutorials in INSTALL.md
2020-12-02 15:44:01 +00:00
Nonemoticoner
34a42a8fa1
Fix dead link to tutorials in INSTALL.md 2020-12-01 23:10:43 +01:00
Artem Pavlenko
8e1ff0785a Merge branch 'master' into proj6 2020-11-30 15:10:13 +00:00
Mathis Logemann
cbd19b6052 use status message 2020-11-25 15:42:33 +01:00
Mathis Logemann
410393fefa do not use absolute paths for fonts/plugins 2020-11-25 13:20:07 +01:00
Mathis Logemann
b3a34de3ce some line endings 2020-11-25 12:17:31 +01:00
Mathis Logemann
f432018bdb added cache variable for lib/bin/archive output 2020-11-25 12:16:06 +01:00
Mathis Logemann
9ede58f2b7
create boilerplate code 2020-11-25 10:56:49 +01:00
Mathis Logemann
37dd7c17df update catch dep 2020-11-25 10:45:20 +01:00
Mathis Logemann
8096bd869f fix warning for unknown compiler 2020-11-25 08:47:51 +01:00
Mathis Logemann
f027667daa added correct plugin default paths 2020-11-25 08:23:41 +01:00
Artem Pavlenko
765e1ad0c6 Upgrade to ICU 58.1 + mason 2020-11-23 16:04:01 +00:00
Mathis Logemann
983087b5c5 cache var for cxx standard 2020-11-22 22:11:27 +01:00
Mathis Logemann
f6acf4c027 do not use the install interface for mapbox deps 2020-11-22 22:06:15 +01:00
Mathis Logemann
85736c4c95 name fonts correctly 2020-11-22 22:02:17 +01:00
Mathis Logemann
68528ffb28 cmake improvements 2020-11-22 22:01:33 +01:00
Mathis Logemann
29cd904c5f fix one forgotton native() 2020-11-21 19:16:47 +01:00
Mathis Logemann
f68f7e88de fixed map_xml_test 2020-11-21 19:03:55 +01:00
Mathis Logemann
45fd654898 added MAPNIK_DECL to interior and polylabel explicit template 2020-11-21 18:19:58 +01:00
Mathis Logemann
b11ef9d44b removed MAPNIK_DECL from feature_style_processor; conflicts with the feature_style_processor_impl.h 2020-11-21 18:18:21 +01:00
Mathis Logemann
691d385687 comment not workable test out 2020-11-21 18:17:32 +01:00
Mathis Logemann
99d8c3e503 fix cmake typo 2020-11-21 18:04:24 +01:00
Mathis Logemann
695ad02cb2 fix svg renderer 2020-11-21 18:01:48 +01:00
Mathis Logemann
96a8327d06 add libraries to test 2020-11-21 17:45:44 +01:00
Mathis Logemann
0eb0408cc3 add options for grid/svg renderer 2020-11-21 17:03:30 +01:00
Mathis Logemann
3eb00b9794 use feature test for <execution> 2020-11-21 15:41:03 +01:00
Mathis Logemann
096befe69e try with c++14 2020-11-21 15:34:13 +01:00
Mathis Logemann
0084628d61 use only c++17 with extensions.. 2020-11-21 15:18:31 +01:00
Mathis Logemann
07546fe098 enable c++17 and do not use c++ extensions 2020-11-21 15:10:20 +01:00
Mathis Logemann
744aa2a76a do not compile features.... 2020-11-21 15:02:07 +01:00
Mathis Logemann
9213f76d49 do not compile features if they are not set 2020-11-21 14:54:26 +01:00
Mathis Logemann
f447cad781 add initial test support 2020-11-21 13:20:04 +01:00
Mathis Logemann
9a132080b5 add proj required define 2020-11-21 12:50:11 +01:00
Mathis Logemann
8de67bc262 add support for proj4 2020-11-21 12:38:29 +01:00
Mathis Logemann
3990fbe1dd add options to enable/disable utilitys 2020-11-21 12:30:34 +01:00
Mathis Logemann
e3789e219a build utilities correctly 2020-11-21 12:24:34 +01:00
Mathis Logemann
f390a830ae remove plugins from generated targets; install includes 2020-11-21 11:40:55 +01:00
Mathis Logemann
6254f7c09e more cmake 2020-11-21 11:34:45 +01:00
Mathis Logemann
7d46eda60d more options 2020-11-21 10:09:29 +01:00
Mathis Logemann
895d89a125 optional libraries 2020-11-21 09:46:54 +01:00
Mathis Logemann
d86a90a10a more cmake 2020-11-20 21:15:27 +01:00
Mathis Logemann
e6f6d0f133 more cmake 2020-11-20 20:20:28 +01:00
Mathis Logemann
5420ccd6af now fix msvc compiler error. Why does msvc complain? 2020-11-20 20:16:27 +01:00
Mathis Logemann
621ab99961 Revert "fix mscv compiler errors"
This reverts commit fe3160ca99.
2020-11-20 20:11:42 +01:00
Mathis Logemann
fe3160ca99 fix mscv compiler errors 2020-11-20 20:02:40 +01:00
Mathis Logemann
f6b7bc0867 add string to box2d which is required by msvc 2020-11-20 19:04:30 +01:00
Mathis Logemann
945e57286b initial cmake scripts 2020-11-20 18:20:43 +01:00
Artem Pavlenko
c945dd7195 Merge branch 'mathisloge-master' 2020-11-20 10:09:30 +00:00
Mathis Logemann
16b98fe3e7 more msvc warnings 2020-11-19 17:53:44 +01:00
Mathis Logemann
a2df8b7ad2 use absolute include 2020-11-19 17:45:40 +01:00
Mathis Logemann
a06e4efcb1 Merge branch 'master' of https://github.com/mathisloge/mapnik 2020-11-19 17:25:26 +01:00
Mathis Logemann
64054fade4 compiler independent warning ignore
Signed-off-by: Mathis Logemann <mathisloge@gmail.com>
2020-11-19 17:25:10 +01:00
Mathis Logemann
75643e6f68 compiler independent warning ignore 2020-11-19 15:30:30 +01:00
Artem Pavlenko
4227fd5d69 c++ style casts 2020-11-18 16:15:59 +00:00
Artem Pavlenko
3ae38bbab1 Fix typo pos.second -> pos.size (via @mathisloge) ref #4187 2020-11-18 15:58:00 +00:00
Artem Pavlenko
309c7b3422 Update sqlite to v3.21.0 2020-10-22 16:25:53 +01:00
Artem Pavlenko
12cdc1af69 Update test values (epsg:2193) 2020-10-22 16:13:57 +01:00
Artem Pavlenko
f9b18c3614 fix proj version typo 2020-10-22 16:13:33 +01:00
Artem Pavlenko
8cba41b2d8 Upgrade to latest mason ed144f5b 2020-10-22 16:03:26 +01:00
Artem Pavlenko
5abb40e3be Update proj to 6.1.0 (travis) 2020-10-22 15:58:51 +01:00
Artem Pavlenko
c6fc956a77 Upgrade to boost 1.74 and latest mason 2020-10-19 12:27:41 +01:00
Artem Pavlenko
3a58dd89b5 Use mapnik::value_integer for id type in feature generator 2020-10-19 12:09:42 +01:00
Artem Pavlenko
a9d9f7ed99 add unit test #4177 2020-10-09 10:03:00 +01:00
Artem Pavlenko
4fbf8a054f
Merge pull request #4178 from mapnik/issue-4177
`null` properties in `Feature` object
2020-10-09 09:37:24 +01:00
Artem Pavlenko
7ecff4b693
Merge pull request #4173 from mapnik/c++17
Support for C++17 builds
2020-10-09 09:34:41 +01:00
Artem Pavlenko
7d1a559ae2 GeoJSON - allow 'null' properties in Feature objects [#4177] 2020-10-08 10:53:12 +01:00
Artem Pavlenko
fba418d20b <execution> is available starting from c++17 2020-09-10 18:00:12 +01:00
Artem Pavlenko
277de45dbc Add support to setup c++ stanfard via CXX_STD (defalt to 14) 2020-09-10 17:50:21 +01:00
Artem Pavlenko
adced85761 Implement is_solid using stdlib <algorithm> `find_if 2020-09-10 15:57:19 +01:00
Artem Pavlenko
5629a6fb6f Require c++17 support 2020-09-10 15:56:38 +01:00
Artem Pavlenko
d6d69df498 Update catch.hpp to v2.13.1 + fix tests 2020-09-10 15:34:52 +01:00
Artem Pavlenko
ea7003628f variant - update to v1.2.0 2020-08-03 15:58:37 +01:00
Artem Pavlenko
9cb1b7e37f perfect forwarding in apply_visitor alias 2020-07-13 10:26:59 +01:00
Artem Pavlenko
8913b673c3 remove unused function 2020-07-09 12:57:37 +01:00
Artem Pavlenko
6e40d4bcf7 Update to boost 1.73.0 and latest mason 2020-06-15 14:39:18 +01:00
Artem Pavlenko
4bd05cec22 Add missing include (bootstrap build) 2020-06-15 14:38:23 +01:00
Artem Pavlenko
8901fd0fa5 Dropping boost version to 1.67.0 (as 1.72.0 is missing program_options) 2020-05-12 18:54:35 +01:00
Artem Pavlenko
e45b7571a8 Update mason version to 250ac4b 2020-05-12 13:19:05 +01:00
Artem Pavlenko
1079264aea Update boost version to 1.72.0 2020-05-12 12:49:53 +01:00
Artem Pavlenko
ed1696db4a
Merge pull request #4144 from mapnik/boost_1_73
boost_1_73 support
2020-05-12 12:46:05 +01:00
Artem Pavlenko
cc78a5de78 Fix for boost < 1.70.0 (ref #4143) 2020-05-12 12:14:18 +01:00
Artem Pavlenko
a14d27f090 Attempting to fix boost_1_65_1 compile (WIP) 2020-05-12 12:00:25 +01:00
Artem Pavlenko
8f3dded093 Re-implement feature_json_generator by adapting feature_impl into boost::fusion container and removing use semantic actions (simpler code + boost_1_73 support) (ref #4143) 2020-05-11 22:18:55 +01:00
Artem Pavlenko
d0b40f62dc Relax bounding box extracting grammar (ref #4140) + unit test 2020-05-07 11:35:53 +01:00
Artem Pavlenko
9bfe888cef Add missing unit test for color::operator= and color::operator== (ref #4137) 2020-04-23 18:20:32 +01:00
Artem Pavlenko
52ae365c66 fix operator== (ref #4137) 2020-04-23 18:20:32 +01:00
Artem Pavlenko
cb638eaabf color::swap - add missing premultiplied_ (ref #4137) 2020-04-23 18:20:32 +01:00
Artem Pavlenko
3e178a2153
Merge pull request #4132 from zdila/master
add support for spacing-offset
2020-04-02 10:00:37 +01:00
Artem Pavlenko
11cbc189f3
Merge pull request #4128 from dirkvdb/master
Update SConstruct to fix osx build
2020-04-02 09:56:26 +01:00
Martin Ždila
657442947b add support for spacing-offset 2020-03-23 23:07:49 +01:00
Dirk Vanden Boer
ddd2ceae63
Update SConstruct
Fixed framework presence check to avoid TypeError:
TypeError: a bytes-like object is required, not 'str':
2020-02-27 21:03:43 +01:00
Artem Pavlenko
e3f4e76c47
Merge pull request #4124 from cpaulik/gdal-int32-support
Add Int32 support for gdal driver
2020-02-11 12:15:32 +00:00
Christoph Paulik
5a73efbb07 Add Int32 support for gdal driver 2020-02-11 12:30:03 +01:00
Artem Pavlenko
1784c4f03e
Merge pull request #4123 from mapnik/svg-css
SVG: basic CSS support
2020-02-07 14:26:10 +00:00
Artem Pavlenko
d26fc722d5 Add SVG renderer unit test - both inline and css styled octocat result in identical image (ref PR #4123) 2020-02-07 13:53:06 +00:00
Artem Pavlenko
8d73767949 css-parser-grammar: parse values into iterator_range via boost::spirit::x3::raw directive (no conversions) + cleanup 2020-02-06 11:23:02 +00:00
Artem Pavlenko
0d693b151d svg2png: use svgBBOX() to calculate output PNG dimensions when no valif width or height (or viewBox) is specified. 2020-02-05 15:06:11 +00:00
Artem Pavlenko
c69e467ad0 SVG: basic CSS styles processor (TODO: fix inefficient and redundant value=>string=>value transformations) 2020-02-05 15:03:14 +00:00
Artem Pavlenko
2ddbff46d5 add bool css_style_ member variable to control CSS style processing. 2020-02-04 17:30:58 +00:00
Artem Pavlenko
cc9e8e3db3 add missing headers 2020-02-04 15:15:32 +00:00
Artem Pavlenko
27bf941211 SVG CSS: refactor unit value symbols table into separate header + add css_data member to svg_parser 2020-02-04 15:02:41 +00:00
Artem Pavlenko
b6e567d87c SVG CSS: add basic parsing of <style> [C]DATA 2020-02-04 11:41:22 +00:00
Artem Pavlenko
4d54e81889 Use char const* as iterator type for CSS grammar 2020-02-04 11:40:52 +00:00
Artem Pavlenko
8a90551b63 SVG CSS - add <style> element handler 2020-02-04 11:25:35 +00:00
Artem Pavlenko
00b888c1ef Add CSS parser grammar + move into separate include/css and src/css dirs. 2020-02-04 10:38:34 +00:00
Artem Pavlenko
3be9ce8fa0
Merge pull request #4122 from lightmare/prevent-duplicate-flags
scons: prevent duplication of linker flags
2020-01-30 20:02:12 +00:00
Mickey Rose
be017f1945 scons: prevent duplication of linker flags 2020-01-30 18:38:20 +01:00
Mickey Rose
6f4c15d077 scons: improve parsing CUSTOM_LDFLAGS
With the help of SCons.Environment.ParseFlags, split user-supplied
CUSTOM_LDFLAGS into appropriate option lists: LIBPATH, LIBS, etc.
Known non-linker options (like -Dx -I.) will be reported and ignored,
unrecognized options will be appended to LINKFLAGS.
2020-01-30 16:32:23 +00:00
Artem Pavlenko
3dee9b634f Merge branch 'lightmare-fix-write_config' 2020-01-30 16:31:51 +00:00
Artem Pavlenko
82533b2f7a Merge branch 'fix-write_config' of https://github.com/lightmare/mapnik into lightmare-fix-write_config 2020-01-30 16:31:21 +00:00
Artem Pavlenko
0636734f8f Revert "move sparsehash out of mapnik dir"
This reverts commit 720fbc74a1.
2020-01-30 15:14:37 +00:00
Mickey Rose
39202f5ac0 mapnik-config: fix substitution of environment variables
Simply calling str(val) doesn't work, because if the value happens to
be a SCons.Util.CLVar, it may contain not just plain strings, but also
tuples appended by SCons.Environment.ParseFlags.

For example "-isysroot /foo" becomes CLVar: [("-isysroot", "/foo")]

CLVar.__str__ supports only string elements, nothing else.
2020-01-30 15:15:14 +01:00
Artem Pavlenko
26d3084ead Revert "scons: improve parsing CUSTOM_LDFLAGS" -- this change introduced env.ParseFlags which broke mason/travis integration
This reverts commit a25f53e667.

Revert "SCons.Util.CLVar:  fix __str__ method to flatten tuples + revert "add print to debug travis (temp)""

This reverts commit 2e78959435.

Revert "add print to debug travis (temp)"

This reverts commit 65dce899cb.

ref #4120
2020-01-30 09:45:13 +00:00
Artem Pavlenko
2e78959435 SCons.Util.CLVar: fix __str__ method to flatten tuples + revert "add print to debug travis (temp)" 2020-01-29 22:11:11 +00:00
Artem Pavlenko
65dce899cb add print to debug travis (temp) 2020-01-29 17:15:22 +00:00
Artem Pavlenko
b22d5d2fac update and pin deps/mapbox to latest tags: protozero 1.6.8, variant 1.1.6, polylabel 1.0.3 2020-01-29 14:35:31 +00:00
Artem Pavlenko
720fbc74a1 move sparsehash out of mapnik dir 2020-01-29 14:16:47 +00:00
Artem Pavlenko
c7d29b826f Add "darkslategray" and "rebeccapurple" named colors (ref: https://drafts.csswg.org/css-color/#typedef-color) 2020-01-24 15:26:10 +00:00
Artem Pavlenko
7e604ed8b0
Merge pull request #4113 from mapnik/svg-fixes
Svg fixes
2020-01-24 10:19:40 +00:00
Artem Pavlenko
ba4ad23af8 Update visual tests data 2020-01-23 16:12:55 +00:00
Artem Pavlenko
ed194a3c09 use std::round (ref:https://en.cppreference.com/w/cpp/numeric/math/round) 2020-01-23 15:48:16 +00:00
Artem Pavlenko
53f8c49620 SVG path parser : add Quadratic and Cubic Bezier curves tests. 2020-01-22 14:01:53 +00:00
Artem Pavlenko
d87cf7db48 re-use code [skip ci] 2020-01-22 13:40:33 +00:00
Artem Pavlenko
b6e9711add Mark output image as premultiplied alpha 2020-01-22 10:49:10 +00:00
Artem Pavlenko
97e33ec8ca Move 0.5 up/down rounding into rounding expression (via @lightmare 7f54e94748 (r369294323)) (ref #4116) 2020-01-22 10:45:15 +00:00
Artem Pavlenko
cab05f1f2c Only use reflection of the second control point on the previous command relative to the current point as first control point when both last and prev( NOTE: before last command in AGG logic!) are curve commands. This fixes long outstanding SVG rendering bug aka Octocat bug (ref #4115) 2020-01-21 15:49:00 +00:00
Artem Pavlenko
c30adf39c8 format 2020-01-21 15:48:32 +00:00
Artem Pavlenko
4276f01404 Init output image with transparent color and 255 alpha. 2020-01-21 15:12:18 +00:00
Artem Pavlenko
fe893134a5
Merge pull request #4114 from sebastic/libxml2
Use pkg-config for libxml2.
2020-01-21 15:09:08 +00:00
Bas Couwenberg
c4fda867c0 Use pkg-config for libxml2. 2020-01-21 15:13:09 +01:00
Artem Pavlenko
1a0b1a1e77 SVG parser: fix typo (stroke gradient was applied instead if fill gradient) 2020-01-21 11:01:36 +00:00
Artem Pavlenko
7f54e94748 Add support for scale-factor parameter - useful for debugging SVG issues (ref #4112) 2020-01-21 10:33:04 +00:00
Artem Pavlenko
4e26d2a7d6 Don't attempt to rasterize ARCs with very small sweep_angles, just resort to LINETO (#4112) 2020-01-21 10:30:29 +00:00
Artem Pavlenko
0420b13055 Fix typo in agg_bezier_arc initialisation. 2020-01-21 09:09:41 +00:00
Artem Pavlenko
60a33a9b8f use numeric parser for arc flags 2020-01-16 10:38:10 +00:00
Artem Pavlenko
44982cddc5 Update "Arcs 3" test for #222835e73a21fec3965b21685993b86a63f626b8 2020-01-14 21:05:41 +00:00
Artem Pavlenko
b4b5f393e3 Revert "no need to throw std::runtime_error as ellipsis catch (...) {} catches them all."
This reverts commit c5f3e6c654.
2020-01-14 15:20:25 +00:00
Artem Pavlenko
222835e73a Fix SVG path grammar - parse arc and sweep flags using special single digit parser, numeric int_ parser was over greedy and didn't handle compact notation produced by svgo (https://github.com/svg/svgo). 2020-01-14 14:38:10 +00:00
Artem Pavlenko
c5f3e6c654 no need to throw std::runtime_error as ellipsis catch (...) {} catches them all.
(TODO: consider having finer grained catches e.g expectation_failure)
2020-01-14 14:34:39 +00:00
Mickey Rose
0bddff6977 bootstrap: simplify export_variables
Nameref attribute (local -n) is a Bash 4.3 feature, thus not available
on OSX with Bash 3.2.

And because we know the argument looks like a valid assignment, we can
pass it whole to export.
2020-01-03 15:38:48 +01:00
Mickey Rose
d38d16ade9 better tests for logical expressions
Two of the original checks were not testing what they were supposed to
test, because the result of eval didn't depend on correct parsing:

    eval("not true or not true")
    correct parse:      ((not true) or (not true)) == false
    incorrect parse:    (not (true or (not true))) == false

    eval("not false and not false")
    correct parse:      ((not false) and (not false)) == true
    incorrect parse:    (not (false and (not false))) == true
2020-01-02 17:30:24 +01:00
Mickey Rose
f19bd188c2 2to3 last remnants of Python 2 syntax 2019-12-31 12:39:57 +01:00
Artem Pavlenko
538eb20264
Merge pull request #4103 from mapnik/boost_1_72
Boost 1_72 support
2019-12-13 17:07:41 +00:00
Artem Pavlenko
59e5f50e26 Use boost::spirit::x3::standard::char_ parser 2019-12-13 17:04:54 +00:00
Artem Pavlenko
7f2c8b756a Use official colospace HSL/HSV converters from boost source tree (BOOST_VERSION > 1_69) 2019-12-13 17:02:31 +00:00
Artem Pavlenko
44198d1ac2 more const-ness 2019-11-27 16:16:09 +00:00
Artem Pavlenko
cfa5809cd2 Make x3::rules declarations const 2019-11-25 10:36:34 +00:00
Artem Pavlenko
94dd756669 Fix compiler warning 2019-11-20 09:43:31 +00:00
Artem Pavlenko
5482d8c7e2 Conditionally include <mapnik/image_filter_types.hpp> for BOOST_VERSION < 107000 2019-11-20 09:41:23 +00:00
Artem Pavlenko
29069560a9 remove .circleci/config.yml (ref #4100) 2019-11-19 09:33:51 +00:00
Artem Pavlenko
6f6a0ed1ef
remove CircleCI badge
ref #4100
2019-11-19 09:25:15 +00:00
Artem Pavlenko
fc25053e8b Set initial STACK_SIZE to 16 (plenty), make it private static member var (ref #4096) 2019-11-18 09:59:26 +00:00
Artem Pavlenko
9dac8dcc34 Only push new elements to parenStack when needed (via @lightmare) (ref #4096) 2019-11-18 08:45:03 +00:00
Artem Pavlenko
a5a24f0260 Revert "CircleCI fix" [skip ci]
This reverts commit 838c88b318.
2019-11-15 15:29:23 +00:00
Artem Pavlenko
838c88b318 CircleCI fix 2019-11-15 14:49:31 +00:00
Artem Pavlenko
77483e4266 Fix boost_regex compiled with ICU support check for BOOST_VERSION >= 1_70 2019-11-15 13:55:09 +00:00
Artem Pavlenko
e82c6e65fb
Merge pull request #4096 from mapnik/fix-out-of-bounds-array-access
avoid potential out-of-bounds array access (undefined behaviour)
2019-11-06 16:27:40 +00:00
Artem Pavlenko
bf6ce8dd8d attempting to fix circleci 2019-11-06 15:21:47 +00:00
Artem Pavlenko
9e82006314 make ScriptRun class visible 2019-11-06 15:08:30 +00:00
Artem Pavlenko
f33e318ac5 more compact test string initialisation via @talaj (#4096) 2019-11-05 10:55:16 +00:00
Artem Pavlenko
b84c414f2e Add unit test for 7003255c0e (#4096) 2019-11-05 09:53:41 +00:00
Artem Pavlenko
7003255c0e avoid negative indicies access to parenStack - thanks @talaj! (ref #4096) 2019-11-05 09:50:51 +00:00
Artem Pavlenko
33fac6d47d use std::vector to avoid limiting number of paired characters. 2019-11-04 13:59:23 +00:00
Artem Pavlenko
370f38a2c3 remove sanitize=bounds 2019-11-04 11:41:49 +00:00
Artem Pavlenko
f2732ed517 remove sanitize=bounds 2019-11-04 11:35:47 +00:00
Artem Pavlenko
e72803935a add ICU include 2019-11-04 11:22:41 +00:00
Artem Pavlenko
05d488f98d add script runs unit test 2019-11-04 10:47:35 +00:00
Artem Pavlenko
8aae32ec4c better syntax 2019-11-01 17:09:12 +00:00
Artem Pavlenko
1edd3b7a93 use & mask for array bounds clipping (provided array size is 2^n) 2019-11-01 16:16:57 +00:00
Artem Pavlenko
dec6bc0950 avoid potential out-of-bounds array access (undefined behaviour) + add c++ C-array size implementation 2019-11-01 13:06:21 +00:00
Artem Pavlenko
0842d0af6f
Merge pull request #4094 from mapnik/boost_1_71
Boost-1.71
2019-10-22 09:47:07 +01:00
Artem Pavlenko
c9da5cbd8e support for boost < 1.69 2019-10-21 18:21:51 +01:00
Artem Pavlenko
b60de49388 make sure boost 1_69 works too 2019-10-21 17:18:25 +01:00
Artem Pavlenko
0b4f3dc497 fix support for BOOST 1_71 2019-10-21 16:42:58 +01:00
Mickey Rose
fdf60044c3 fix agg::pod_array and pod_vector move constructors
These were added with #4031, and probably not used in the end, as Mapnik
compiles and all tests pass without them. However, they might be useful,
so I'm only removing bad calls to deallocate with uninitialized values,
and doing proper member initialization.
2019-09-22 23:29:13 +02:00
Artem Pavlenko
162ac80675
Merge pull request #4086 from lightmare/install-mapnik-deps-subdir
install mapbox includes into subdir mapnik/deps/
2019-09-22 18:13:00 +01:00
Mickey Rose
d1697efe6d install mapbox includes into subdir mapnik/deps/ 2019-09-20 20:15:53 +02:00
Artem Pavlenko
cea7821722
Merge pull request #4085 from lightmare/revamp-mapnik-config-template
Revamp mapnik-config generation
2019-09-20 12:21:24 +01:00
Mickey Rose
2dcb31cd01 mapnik-config: minor cleanup 2019-09-16 23:30:01 +02:00
Mickey Rose
a3086c06a5 mapnik-config: improve mapnik-config.template.sh
- move template text from build.py into mapnik-config.template.sh,
  so that the resulting script is simply that template file after
  substitutions, instead of concatenation of two parts

- substitute using re.sub matching particular variables, instead of
  format % dict; this allows putting default values in the template
2019-09-16 23:17:09 +02:00
Mickey Rose
c61d0d541d Revert "Forgot to add prefix change to mapnik config to cairo as well"
This reverts commit a9712ed081.
2019-09-15 12:30:37 +02:00
Mickey Rose
297126906d Revert "Added an update to mapnik config so that it can provide relative path to libraries better in node mapnik."
This reverts commit a4aee2eb59.
2019-09-15 12:30:28 +02:00
Mickey Rose
d5a7c9e214 scons: minor cleanup
(cherry picked from commit 745e393fd6)
2019-09-01 11:57:24 +02:00
Mickey Rose
f6fda91717 scons: define OPTIONAL_LIBSHEADERS before use
Refs #4075

(cherry picked from commit 0d68464194)
2019-09-01 10:37:44 +02:00
Mickey Rose
b541c3595f rename MAPNIK_MAKE_VERSION to MAPNIK_VERSION_ENCODE
Both forms can be seen in various other libraries. However, I think that
macro names with common prefix serving as substitute for namespace are
the better convention. MAPNIK_MAKE_VERSION hasn't appeared in any Mapnik
release yet, so this shouldn't break anything.

I'm not renaming other MAPNIK_*_VERSION defines that don't have the same
prefix simply because they've been there for ages, so renaming those now
might break stuff outside of Mapnik.
2019-08-30 16:30:28 +02:00
Mickey Rose
65d2d9d188 scons: use gdal-config to obtain GDAL data path 2019-08-19 17:35:45 +02:00
Mickey Rose
a25f53e667 scons: improve parsing CUSTOM_LDFLAGS
With the help of SCons.Environment.ParseFlags, split user-supplied
CUSTOM_LDFLAGS into appropriate option lists: LIBPATH, LIBS, etc.
Known non-linker options (like -Dx -I.) will be reported and ignored,
unrecognized options will be appended to LINKFLAGS.
2019-08-18 23:01:11 +02:00
Mickey Rose
08ccaf109b scons: facilitate passing linker options with '$ORIGIN'
Passing CUSTOM_LDFLAGS='-Wl,-rpath=$ORIGIN' to ./configure is
unnecessarily difficult and error-prone. The option needs to be
protected from SCons variable substitution by doubling the '$',
and also from shell parameter expansion with a backslash.
Such fortified value then cannot be used directly in contexts
where either expansion does not happen.

This commit makes that protection optional by injecting variable
named ORIGIN, that resolves to '$ORIGIN', into both the SCons
construction Environment and the process environment, so whenever
'$ORIGIN' undergoes variable substitution, it is replaced by the
original string.
2019-08-18 22:48:18 +02:00
Mickey Rose
e80dd063ba Revert "Disable "Linux clang-3.9 + coverage" builds which are failing with "The job exceeded the maximum log length, and has been terminated.""
This reverts commit ac19076f0b.
2019-08-14 16:02:54 +02:00
Mickey Rose
699b3c11d9 travis: silence gcov output and errors flooding build log
Also added ignore paths from `codecov.yml` to the command, because
codecov-bash doesn't pull those from there. Currently its `parse_yaml`
function simply ignores arrays, so they don't even check for "ignore".
4678d212cc/codecov (L834)

(cherry picked from commit d09fdd78a9)
2019-08-14 16:01:39 +02:00
Mickey Rose
931dc8921c update changelog [skip ci] 2019-08-12 17:19:29 +02:00
lightmare
a0ea7db1a7
Merge pull request #3984 from lightmare/pg-app-name
accept explicit parameter "application_name" in postgis and pgraster datasources
2019-08-12 12:52:34 +02:00
Artem Pavlenko
b504a86696
Merge pull request #3319 from mapnik/ST_MakeEnvelope
use `ST_MakeEnvelope` (ref #3317)
2019-08-12 08:27:50 +01:00
lightmare
8c4313f1b5
Merge branch 'master' into ST_MakeEnvelope 2019-08-11 12:06:20 +02:00
lightmare
8a44f7ffbb
Merge pull request #3942 from lightmare/postgis-float-tokens
postgis: always put decimal point in substituted tokens in SQL
2019-08-11 11:57:44 +02:00
Artem Pavlenko
05546b2053 add 'pattern' to unsupported elements + call handle_unsupported on end_element to catch them all + update unit tests 2019-08-08 11:50:31 +01:00
Artem Pavlenko
f68a147ff4 don't log identical error messages 2019-08-08 11:42:45 +01:00
Artem Pavlenko
7d1bfaeb4b
Merge pull request #3999 from mapnik/test-placement-type
Tests of text_placements_simple and text_placements_list
2019-07-02 11:56:39 +01:00
Artem Pavlenko
ef2adc855c Merge branch 'timmg-master' 2019-07-02 11:52:36 +01:00
Artem Pavlenko
b617197aba Merge branch 'master' of https://github.com/timmg/mapnik into timmg-master 2019-07-02 11:51:45 +01:00
Artem Pavlenko
3dfac03633 Merge branch 'tarvip-libxml2-parse-huge' 2019-07-02 11:03:29 +01:00
Artem Pavlenko
fa714f2a01 Merge branch 'libxml2-parse-huge' of https://github.com/tarvip/mapnik into tarvip-libxml2-parse-huge 2019-07-02 11:02:59 +01:00
Artem Pavlenko
f104edbefb Merge branch 'Kojoley-spirit-rule-placeholders' 2019-07-02 10:56:15 +01:00
Nikita Kniazev
c191e196c0 Replace MAPNIK_INIT_PRIORITY workaround
Spirit rules are just placeholders. They are cheap to construct and by doing
this static initialization order fiasco problem is effectively avoided.

Also had to fix name clash between geojson and generic json parsers.
2019-07-02 01:04:31 +03:00
Artem Pavlenko
01a4057317
Merge pull request #4066 from mapnik/issue-4045
Ensure 'scaling' and `comp-op` stored as enumeration_wrappers + fix image `scaling` property
2019-06-12 11:18:35 +01:00
Artem Pavlenko
e90a4fca7d add missing image scaling property meta type + replace to integer conversion with comparison operator in enumeration_wrapper + change order in value_base_type (ref #4045) 2019-06-12 09:40:10 +01:00
Artem Pavlenko
563bb00de5
Merge pull request #4064 from treenewbee/master
Update main.cpp
2019-06-04 17:42:30 +01:00
Eric
45168024a9
Update main.cpp
Qt::AA_EnableHighDpiScaling was added in Qt 5.6.
2019-06-04 10:47:31 -04:00
Artem Pavlenko
b890dc2775
Merge pull request #4058 from mapycz/colorizer-linear-combined
New raster colorizer mode for Terrain-RGB
2019-05-20 10:38:33 +01:00
Jiri Drbalek
6f83cdf572 Update visual tests 2019-05-17 22:55:42 +02:00
Jiri Drbalek
a74543a145 New raster colorizer modes linear-rgba and linear-bgra 2019-05-17 21:54:24 +02:00
Artem Pavlenko
ac19076f0b Disable "Linux clang-3.9 + coverage" builds which are failing with "The job exceeded the maximum log length, and has been terminated." 2019-05-14 12:45:39 +01:00
Artem Pavlenko
f04ab0cbae Update svg unit tests post 831e353c5d 2019-05-14 10:50:10 +01:00
Artem Pavlenko
201268334d Don't prefix MAPNIK_LOG_ERROR with redundant "SVG PARSING ERROR" 2019-05-14 10:48:21 +01:00
Artem Pavlenko
831e353c5d SVG parser: better stderr - don't assume fill/stroke ref is a <gradient>, can be a <pattern> also. 2019-05-14 10:30:26 +01:00
Artem Pavlenko
dc15e70f79 Skip parsing (currently unsupported) <pattern> elements 2019-05-14 10:20:14 +01:00
Artem Pavlenko
88f3b29a92 fix includes 2019-05-07 11:19:37 +01:00
Tim Gleason
cdcc97ac4b Add command line options for map size to mapnik-render. 2019-05-05 12:02:47 -04:00
Tarvi Pillessaar
ddf0f337c2 libxml2: add support for huge XMLs 2019-04-14 16:42:57 +03:00
Artem Pavlenko
783437f16b Merge branch 'mdholloway-rint' 2019-03-25 09:56:35 +00:00
Michael Holloway
918e1a3a90 Ditch rint
Removes all usages of rint from the codebase, in favor of the standard
rounding and casting formula used throughout the codebase:

  static_cast<int>(std::floor(<val> + .5))

Fixes #2392
2019-03-22 14:23:32 -04:00
Artem Pavlenko
46478d4b5a Reduce verbosity of 'coverage' builds vi 'QUIET=true' - go travis-ci! 2019-03-07 19:05:13 +00:00
Artem Pavlenko
0db5d6231f Add 'QUIET` boolean configuration option to reduce build verbosity (default: no)
To enable =>  `./scons/scons.py configure QUIET=y`
2019-03-07 19:01:24 +00:00
Artem Pavlenko
1377ec9752 remove bogus quote from ST_EstimatedExtent SQL {#4032) via @urzhumskov 2019-03-07 11:05:33 +00:00
Artem Pavlenko
ab03726659 comment out cat config.log to reduce log size (travis-ci) 2019-02-13 15:39:44 +00:00
Artem Pavlenko
b1185fc099
Merge pull request #4031 from mapycz/adaptive-smooth
[WIP] Adaptive smooth
2019-02-13 14:00:00 +00:00
Artem Pavlenko
653bd92ce9
Merge pull request #4029 from mapycz/svg-1.2
Cairo: set version of SVG to 1.2
2019-02-13 10:24:10 +00:00
Jiri Drbalek
2dde0eb257 Adaptive smooth 2019-02-09 15:24:12 +00:00
Jiri Drbalek
c2b1103cb6 Cairo: set version of SVG to 1.2 2019-02-08 12:32:01 +00:00
Artem Pavlenko
23492d6742 CSS color: add hue range tests for hsl(a) color strings (#4020) 2019-01-16 10:31:53 +00:00
Artem Pavlenko
16ae1c0472 CSS parser - use appropriate storage type for hue value (0..320) (#4020) 2019-01-14 16:21:53 +00:00
talaj
19a979955e
More info, small fixes 2019-01-05 14:09:37 +01:00
Jiri Drbalek
27a4d60026 Documentation of development process 2019-01-05 10:51:07 +00:00
Artem Pavlenko
d2ba5e5eec dummy commit to pacify travis 2018-12-13 17:16:51 +00:00
Artem Pavlenko
bcb1e67507 fix Boost.GIL includes for BOOST_VERSION >= 1.69 (ref #4000) 2018-12-13 15:46:57 +00:00
Gaetano Checinski
e583063ab5 fix: makes serveral header definitions static to support static library builds 2018-12-03 09:58:18 +00:00
Dane Springmeyer
bcb4f2020e
Merge pull request #3866 from mapnik/remove-sanitize-shorthands
Remove sanitizer flags to configure step
2018-12-02 18:10:32 -08:00
Artem Pavlenko
abcd96be0e
Merge pull request #4009 from mapycz/cairo-polygon-pattern-vectorial
Vector patterns with Cairo
2018-11-21 14:24:18 +00:00
Jiri Drbalek
91b868d7ad Update visual tests 2018-11-21 12:21:54 +00:00
Jiri Drbalek
2344fe3ac2 Vector patterns with Cairo 2018-11-21 12:20:31 +00:00
Artem Pavlenko
940f0dc39d bump version to 4.0.0 2018-11-21 11:03:00 +00:00
Artem Pavlenko
def1994856 update dependencies 2018-11-20 14:36:59 +00:00
Artem Pavlenko
9406eb4c44 use c++-stype casts + compare the same types 2018-11-20 14:35:36 +00:00
Artem Pavlenko
65e98c1940 fix compiler warning (warning: field 'expected_query_bbox_' will be initialized after base 'mapnik::memory_datasource' [-Wreorder]) 2018-11-20 14:16:44 +00:00
Artem Pavlenko
c08b639902 fix compiler warnings e.g warning: class 'xxx' was previously declared as a struct [-Wmismatched-tags] 2018-11-20 14:13:25 +00:00
Artem Pavlenko
c6cd132c31 explicit cast to native enum type in switch statements to address error: case value is not a constant expression
(clang version 8.0.0 (trunk 347189))
2018-11-20 13:47:44 +00:00
talaj
7dcf5ee082
Merge pull request #3989 from mapycz/fix-pattern-alignment
True global pattern alignment, fixed local alignment
2018-11-02 14:31:31 +01:00
Jiri Drbalek
46de0f661b New test of text_placements_list 2018-10-20 21:09:08 +00:00
Jiri Drbalek
3b188b4c26 Remove method declaration that is not implemented 2018-10-20 20:59:20 +00:00
Jiri Drbalek
90a1b65081 New test of text_placements_simple 2018-10-20 20:59:20 +00:00
Artem Pavlenko
da69fdf66b add "clipPath" to unsupported elements 2018-10-10 09:30:05 +01:00
Artem Pavlenko
982f156995 enable unsupported attributes handling + ignore/skip any elements inside <symbol> 2018-10-02 09:34:07 +01:00
talaj
85aad2ec32
Merge pull request #3993 from tdubrownik/boost-1.68
Compatibility patch for Boost GIL v1.68
2018-09-29 14:57:22 +02:00
Tomek Dubrownik
c067eb7eec Compatibility patch for Boost GIL v1.68
A number of basic typedef were removed in the Boost GIL 1.68 release,
notably `bits32` and `bits32f`. Additionally the
`GIL_DEFINE_ALL_TYPEDEFS` macro signature changed.

This commit introduces compatibility type aliases and conditionally
calls the new macro if `BOOST_VERSION` is high enough.
2018-09-29 13:43:44 +08:00
Jiri Drbalek
493eaa4d18 Update visual tests 2018-09-20 08:14:43 +00:00
Jiri Drbalek
776fa0d2f8 True global pattern alignment, fixed local alignment 2018-09-19 13:21:59 +00:00
Jiri Drbalek
692fc7f107 render_pattern() needs its own rasterizer 2018-09-19 08:33:24 +00:00
Artem Pavlenko
fcec445a2e
Merge pull request #3980 from mapycz/simple-line-pattern
Polygon pattern on line geometries
2018-09-18 15:55:16 +01:00
Jiri Drbalek
d42d2740f3 Update visual tests 2018-09-18 12:12:53 +00:00
Jiri Drbalek
384158fa7c Polygon pattern on line geometries for Grid backend 2018-09-18 12:12:21 +00:00
Jiri Drbalek
d823378260 Polygon pattern on line geometries for Cairo backend 2018-09-18 12:12:21 +00:00
Jiri Drbalek
18c1a99604 Polygon pattern on line geometries for AGG backend 2018-09-18 12:12:21 +00:00
Mickey Rose
86e70a726d postgres: add connect param "application_name" 2018-09-07 11:07:33 +02:00
talaj
2ceac9b496
Merge pull request #3979 from rbray89/master
sqlite: Add !pixel_width! and !pixel_height!
2018-09-05 14:24:09 +02:00
Ryan Bray
17de0f89ed sqlite: Add !pixel_width! and !pixel_height! 2018-09-01 11:21:29 -06:00
Mickey Rose
2929c4ae6d travis: move variables not relevant to cache contents out of env
(so that changing these later doesn't invalidate the cache)
2018-08-26 22:25:48 +02:00
Mickey Rose
a6057af11f travis: remove downstream trigger (refs #3366) 2018-08-26 21:41:05 +02:00
Mickey Rose
f432f5f1cc travis: install clang from apt 2018-08-25 22:56:31 +02:00
Mickey Rose
eff8890b4f travis: postgresql service doesn't seem necessary 2018-08-25 15:07:00 +02:00
Mickey Rose
5d51bdde7a travis: shortcut 2018-08-25 14:53:25 +02:00
Mickey Rose
d0f7b405a6 bootstrap: name=val regex must be anchored 2018-08-24 17:13:41 +02:00
lightmare
b4bce33b34
Merge pull request #3945 from lightmare/travis-trusty
travis: switch to dist: trusty
2018-08-16 00:49:53 +02:00
Mickey Rose
a33e984dbd travis: switch to dist: trusty 2018-08-15 23:16:37 +02:00
lightmare
6a7317d354
Merge pull request #3967 from mapycz/fix-warp-transparent-raster
Fix seams of mesh faces when warping transparent raster
2018-08-15 23:07:29 +02:00
Jiri Drbalek
b50498cb53 Update test data 2018-08-15 07:44:27 +00:00
lightmare
a6e0b6b857
Merge pull request #3958 from mapycz/fix-buffer-size-with-scale-factor
Fix buffer-size with scale-factor
2018-08-14 17:11:31 +02:00
lightmare
9275ca9373
Merge pull request #3971 from lightmare/fix-topojson-empty
Accept TopoJSON with no objects
2018-08-14 15:10:07 +02:00
Mickey Rose
8a1fdb3900 dodge operator precedence warning 2018-08-13 19:11:58 +02:00
Mickey Rose
2b8226316f topojson: fix parsing empty topology 2018-08-13 19:08:38 +02:00
Mickey Rose
6a3452da96 fix read beyond buffer in topojson test 2018-08-13 19:08:30 +02:00
Mickey Rose
ee28954786 topojson: add test with empty "objects" and "arcs" 2018-08-13 18:41:56 +02:00
Mickey Rose
74b2886036 update changelog [skip ci] 2018-08-08 00:08:19 +02:00
lightmare
99b25c72d9
Merge pull request #3965 from mapycz/icu-namespace-master
Force full qualification of ICU types
2018-08-08 00:06:28 +02:00
Artem Pavlenko
c2251faa91 second time lucky 2018-08-07 14:58:21 +01:00
Artem Pavlenko
242c9eba3c Revert "opps, adding lost change (re: boost>=1.67)"
This reverts commit 22f913d892.
2018-08-07 14:26:34 +01:00
Artem Pavlenko
22f913d892 opps, adding lost change (re: boost>=1.67) 2018-08-07 14:09:30 +01:00
Jiri Drbalek
8b27aba0c4 Fix seams of mesh faces when warping transparent raster 2018-08-07 11:57:38 +00:00
talaj
1a87e920da
Merge pull request #3962 from lightmare/bootstrap-manners
bootstrap.sh improvements
2018-08-07 09:28:33 +02:00
Jiri Drbalek
cfbc044fd2 Force full qualification of ICU types
https://github.com/mapnik/mapnik/issues/3961
2018-08-03 16:02:20 +00:00
Mickey Rose
f400f17c75 travis: some tweaks
- remove unused MASON_PUBLISH variables
- defer downloading test-data until after successful compilation;
  they are big and don't update frequently, so I added depth limit;
  if that doesn't work well, feel free to increase or remove it
2018-08-01 17:59:09 +02:00
Mickey Rose
7f0daee8b3 configure: posix shell can handle this
It's such a trivial script, no need to bash.
2018-08-01 17:37:15 +02:00
Mickey Rose
33a42303d1 bootstrap: behave when sourced, minor improvements
- don't exit sourcing shell on error
- don't git pull mason, checkout --detach instead
- only git fetch mason when the desired version is unknown
- use arguments of the form NAME=VALUE as variables to export;
  this is to unify syntax with ./configure, for example:

    ./bootstrap.sh CC='cc' CXX='ccache c++'
2018-08-01 15:24:34 +02:00
Jiri Drbalek
8a0dca38a3 Fix buffer-size with scale-factor 2018-08-01 08:06:37 +00:00
Artem Pavlenko
3683c30557 Merge branch 'lightmare-pi-is-wrong' 2018-07-30 10:41:13 +01:00
Artem Pavlenko
af842a8bf9 Merge branch 'pi-is-wrong' of https://github.com/lightmare/mapnik into lightmare-pi-is-wrong 2018-07-30 10:40:51 +01:00
lightmare
686355cbbe
Merge pull request #3506 from mapycz/fix-building-symbolizer-transform
Building symbolizer improvements
2018-07-27 12:55:53 +02:00
Jiri Drbalek
acbf80677a update visual tests data 2018-07-27 10:23:34 +00:00
Jiri Drbalek
4a93209423 render building symbolizer rewrite
- make projection and view transforms first
- removed dependency on segment_t
- no need for sorting faces
2018-07-27 10:23:33 +00:00
Mickey Rose
6e71bad70c Revert "update test data"
This reverts commit 81183d6fe6.
It removed recent tests, didn't update.
2018-07-27 10:58:31 +02:00
Artem Pavlenko
b796cc9912
[skip ci] 2018-07-25 17:04:37 +01:00
Artem Pavlenko
ace2baafbd
Update README.md 2018-07-25 16:01:41 +01:00
Artem Pavlenko
50caf755c3
Update README.md 2018-07-25 15:55:18 +01:00
Artem Pavlenko
7cf93eb70f
Update README.md 2018-07-25 15:45:40 +01:00
Artem Pavlenko
f930bea045
Update README.md 2018-07-25 15:45:09 +01:00
Artem Pavlenko
174c82662d
Merge pull request #3952 from mapnik/circleci-20-test
Circleci 20 test
2018-07-25 15:26:28 +01:00
Artem Pavlenko
fed8effb67 remove circleci v1.0 config 2018-07-25 14:17:46 +01:00
Artem Pavlenko
64462b8dca cleanup 2018-07-25 14:16:04 +01:00
Artem Pavlenko
39b6dca059 Adding auto-generated CircleCI 2.0 config file 2018-07-25 13:53:56 +01:00
Artem Pavlenko
70fbdd21c7
Merge pull request #3948 from mapnik/boost_1_67
Boost 1 67
2018-07-23 14:05:52 +01:00
Artem Pavlenko
5eca7731e9 rely on implicit std::reference_wrapper<T> -> T conversions (thanks @lightmare) 2018-07-23 13:26:22 +01:00
Artem Pavlenko
93d0eea8af Merge branch 'master' into boost_1_67 2018-07-23 11:35:14 +01:00
Artem Pavlenko
65080e2a95 add support for BOOST_VERSION < 106700 2018-07-23 10:58:27 +01:00
talaj
c819a03bb3
Merge pull request #3944 from EmilGedda/gedda-patch-1
remove old render_box function declaration from cairo_renderer.hpp
2018-07-20 14:43:48 +02:00
Emil Gedda
93c566638f
remove old render_box function declaration from cairo_renderer.hpp 2018-07-20 14:02:51 +02:00
Artem Pavlenko
5fe0dda890 Merge branch 'master' into boost_1_67 2018-07-20 11:53:47 +01:00
Mickey Rose
1ddd3afc51 postgis+pgraster: substitute numbers always with decimal point 2018-07-19 22:52:55 +02:00
Mickey Rose
774a618d13 postgis: add test for pg_typeof substituted tokens 2018-07-19 22:51:01 +02:00
Artem Pavlenko
bdf7876652 const-ness 2018-07-19 15:36:00 +01:00
Artem Pavlenko
67dbb96580 use uint8_t to parse hex2 values to avoid overflowing (boost >= 1.67) 2018-07-19 15:34:40 +01:00
Mickey Rose
f1d07d6718 proj_transform test: also check that transform succeeded 2018-07-18 19:31:12 +02:00
Artem Pavlenko
a98d1b8071 use std::uint8_t as an attribute for hex2 parser 2018-07-18 10:40:41 +01:00
Artem Pavlenko
4c31bd16d2 Merge branch 'master' into boost_1_67 2018-07-18 09:27:56 +01:00
Sandro Santilli
69c317cd1f Fix some comments and error messages referencing raster parameters 2018-07-16 19:27:12 +02:00
Mickey Rose
68a7f5f63c proj_transform: fix strided coordinate array transform 2018-07-16 14:18:49 +02:00
Mickey Rose
1e6feecb91 proj_transform: add test for strided coordinate array 2018-07-16 14:18:49 +02:00
Mickey Rose
f84191204e eradicate M_PI 2018-07-16 14:18:49 +02:00
Mickey Rose
32e7202223 well_known_srs: move implementation to .cpp
- add lonlat2merc, merc2lonlat overloads for single point
- add stride argument to overloads for coordinate arrays
- make all functions exported
- change static string constants to exported
- change static numeric constants to constexpr
- remove superfluous numeric constants
2018-07-16 14:18:32 +02:00
Mickey Rose
e11f3a660a offset_converter: minor refactoring
DRY: extract method for `joint_angle` calculation.
2018-07-14 12:46:53 +02:00
Mickey Rose
a0a2c78950 util/math: clamp, degrees, radians
Use common functions for degrees <-> radians conversions, except when
dealing with agg, where it makes sense to use available deg2rad/rad2deg
functions instead of including another header.
2018-07-13 12:34:25 +02:00
lightmare
187c1df332
Merge pull request #3337 from lightmare/normalize-angle
speed up util::normalize_angle for large values
2018-07-12 19:30:37 +02:00
Mickey Rose
0a6e82e555 move src/math.cpp under src/util/ 2018-07-11 23:55:21 +02:00
Mickey Rose
7c4ccf0209 make util::normalize_angle reasonably fast on large values
Because it simply calculates the remainder after division by full turn,
it shouldn't take time proportional to the magnitude of its operand.
2018-07-11 23:14:23 +02:00
Mickey Rose
354be41811 benchmarks: clarify output
Make it clear in benchmark output which mode it ran in:
- "main thread" only
- "1 worker" thread
- "N workers"
2018-07-11 23:14:04 +02:00
Mickey Rose
65f3bb75dd Revert "benchmark - slightly better stderr"
This partially reverts commit 5ab6db2607.

The change of argument --threads N doesn't just change output, it
changes the mode of operation.
With --threads 0, the benchmark runs wholly in the main thread.
With --threads 1, it starts 1 worker thread, which does the work, and
the main thread measures how long it takes to complete.
2018-07-11 23:14:03 +02:00
Mickey Rose
d70c2d978c add benchmark for mapnik::util::normalize_angle 2018-07-11 23:13:59 +02:00
Mickey Rose
5091a4ba9d benchmarks: move sources under benchmarks/src/ 2018-07-11 15:57:04 +02:00
Mickey Rose
fa55e3dfa9 benchmarks: move headers under benchmarks/include/ 2018-07-11 13:32:32 +02:00
Mickey Rose
25f0ef09a5 use MAPNIK_VERSION_AT_LEAST for minimum-version check 2018-07-11 10:43:06 +02:00
Mickey Rose
c2c00570b3 define MAPNIK_MAKE_VERSION, MAPNIK_VERSION_AT_LEAST 2018-07-11 10:38:32 +02:00
Mickey Rose
b20e42ba3f changelog: more missing unreleased changes [skip ci] 2018-07-10 22:49:50 +02:00
Mickey Rose
fb8e75afec changelog: copy changes from v3.0.x branch [skip ci] 2018-07-10 22:49:50 +02:00
Mickey Rose
558dcdb7d0 changelog: unindent [skip ci] 2018-07-10 22:49:50 +02:00
Mickey Rose
249c4b6c6c changelog: minor formatting [skip ci] 2018-07-10 22:49:50 +02:00
talaj
ae3a9404b7
Merge pull request #3935 from lightmare/fix-bbox-reprojection
Fix bbox reprojection
2018-07-10 21:45:47 +02:00
Mickey Rose
62912d25af Revert "allow visual test failures with g++"
This reverts commit 05936826b3.
2018-07-10 18:51:34 +02:00
Mickey Rose
d4f113e302 update changelog [skip ci] 2018-07-10 12:06:32 +02:00
Mickey Rose
947e424f56 proj_transform: fix bbox reprojection
- remove buggy calculate_bbox, use boost::geometry::envelope instead
- move helper envelope_points to anonymous namespace and make it always
  produce exactly the requested number of points, even if it's not
  evenly divisible by 4
2018-07-10 11:31:06 +02:00
Mickey Rose
2a98fe0155 proj_transform test: use reference values from cs2cs tool 2018-07-10 11:31:06 +02:00
Jiri Drbalek
9a30fda852 Backport Python test of bbox reprojection
Originaly in Python from https://github.com/mapnik/mapnik/pull/2657
2018-07-10 11:31:06 +02:00
Mickey Rose
abbe44db6d changelog: add notice about c++14 and spirit x3
[skip ci]
2018-07-09 14:32:00 +02:00
Mickey Rose
c389cdc562 changelog: add missing unreleased changes
[skip ci]
2018-07-09 14:32:00 +02:00
Mickey Rose
70a511165b scripts/markdown-hyperlinks: prevent unwanted replacements
- don't replace @var in code spans with link to github user
- don't replace 1234567... in links with link to commit
- replace hexadecimal numbers looking like commit hashes only
  after replacing raw URIs - this together with the previous point
  prevents inadvertent replacement of long numbers in links

[skip ci]
2018-07-09 14:32:00 +02:00
Mickey Rose
e9befd9057 changelog: fix markdown
[skip ci]
2018-07-09 13:45:07 +02:00
lightmare
15f953672d
Merge pull request #3924 from lightmare/changelog-autolink
Changelog autolinks
2018-07-08 23:11:48 +02:00
Artem Pavlenko
2c2669d655 fixes typo (#3930) 2018-07-05 09:37:49 +02:00
Artem Pavlenko
735acb297a add (uncomment) surrogate pairs test + small typo fix 2018-07-02 21:55:27 +02:00
Artem Pavlenko
df0ba4a777 add more single/double quotes tests 2018-07-02 16:42:35 +02:00
Artem Pavlenko
81183d6fe6 update test data 2018-07-02 15:11:47 +02:00
Artem Pavlenko
2977688a8a test for single and double quoted escaped strings (regex) (ref 3433397c30 (commitcomment-29512684)) 2018-07-02 15:10:28 +02:00
Artem Pavlenko
9d44a73ad0 fix - add single quoted string escaped chars support + allow backtracking when escaped characters are not part of /u, /U. /x encodings (ref 3433397c30 (commitcomment-29512684)) 2018-07-02 15:07:41 +02:00
Artem Pavlenko
7db6b0c9f0
Merge pull request #3925 from lightmare/test-ds-attr-types
Also check types of values in datasource tests
2018-07-02 09:53:53 +02:00
Artem Pavlenko
c81a40d9eb
Merge pull request #3923 from lightmare/sconf-fixup-messages
scons configure cleanup
2018-07-02 09:53:25 +02:00
Artem Pavlenko
ba0e13c812
Merge pull request #3922 from lightmare/sconf-try-action
Sconf TryAction replacement
2018-07-02 09:53:02 +02:00
Artem Pavlenko
51065985df
Merge pull request #3921 from lightmare/unicode-attr-name
add test for parsing expression with non-ascii characters in attribute name
2018-07-02 09:51:45 +02:00
Artem Pavlenko
9e3014494c
Merge pull request #3912 from mapycz/fix-overviews
GDAL: Fixes of overviews
2018-07-02 09:49:46 +02:00
Mickey Rose
178edb9da6 update CHANGELOG with links to issues, commits, users
[skip ci]
2018-07-01 11:58:18 +02:00
Mickey Rose
bdaf7813af minor CHANGELOG amendments in preparation for generating hyperlinks
[skip ci]
2018-07-01 11:55:45 +02:00
Mickey Rose
2e82c17d92 datasource tests: typos 2018-06-30 15:26:17 +02:00
Mickey Rose
58592ed597 datasource tests: fix failing csv test
- it was indeed the test that was wrong; the coordinates in nypd.csv are
  specified with a decimal point, thus should be `value_double`
2018-06-30 15:21:55 +02:00
Mickey Rose
04e1f82734 datasource tests: use macro REQUIRE_ATTRIBUTES instead of function
- failing checks report location inside the function, not where it's
  called from; using macro reports proper location
2018-06-30 15:20:22 +02:00
Mickey Rose
d62e215ff9 datasource tests: also check value types in REQUIRE_ATTRIBUTES 2018-06-30 15:20:19 +02:00
Mickey Rose
e31578045e add script for auto-generating links in CHANGELOG
[skip ci]
2018-06-30 12:01:57 +02:00
Mickey Rose
b417ddf32d SConstruct: shortest_name is a one-liner 2018-06-29 16:43:33 +02:00
Mickey Rose
89d0c6da19 SConstruct: change rollback_option to free function
It shouldn't be a conftest. First, it doesn't act like one. Second,
calling it as conf.rollback_option from within another conftest before
calling context.Result confuses scons, it doesn't expect conftests to be
nested and reports "error: no result" for the outer one as soon as the
inner is called.
2018-06-29 16:24:04 +02:00
Mickey Rose
16eb870303 SConstruct: fixup config.log message order
- always call .Message before .TryRun
- always unpack .TryRun result tuple
2018-06-29 16:07:47 +02:00
Mickey Rose
a17de02ce4 SConstruct: fixup ICU min version check
- "Say what you mean." The check is for version >= 4.0, not 4.2
- call .Message before .TryRun
- don't silence .Result
2018-06-29 16:00:23 +02:00
Mickey Rose
a2af3a53fa SConstruct: fixup HarfBuzz configure checks
- call .Message before .TryRun
- don't silence .Result
- report found version even if it's really old and doesn't even define
  HB_VERSION_ATLEAST macro
2018-06-29 15:48:51 +02:00
Mickey Rose
4531393367 SConstruct: fix configure check ogr_enabled
gdal-config --ogr-enabled writes yes/no to stdout,
but always returns 0 (unless an invalid argument is given)
2018-06-28 15:02:27 +02:00
Mickey Rose
e63003a6e0 SConstruct: log configure commands to config.log
Forgot that with `TryAction`, configure commands and their outputs were
being logged in `config.log`, and the previous commit failed to retain
this ability.

New function `config_command` mimics the logging, with the modification
that output lines are prefixed with `->` so they stand out a bit more.
2018-06-28 15:02:27 +02:00
Mickey Rose
9baa10d135 SConstruct: avoid incorrect usage of sconf.TryAction
Closes #3918

Replace all previous uses of `call` and `TryAction` with a new function
`silent_command`, which invokes `subprocess.Popen` and returns both exit
status and command output.
2018-06-27 21:03:30 +02:00
Mickey Rose
5544c4c74f expressions_test: add test for unicode attribute name
Refs #1153

That issue doesn't affect current master, maybe it was valid at the time
of posting.  I just couldn't find a test that'd confirm unicode in
attribute names actually works, so here it is.
2018-06-27 11:58:56 +02:00
Mickey Rose
6befc23101 expressions_test: change properties_type to std::map 2018-06-27 11:56:36 +02:00
Dane Springmeyer
42d3f2d0d3
Merge pull request #3917 from mapnik/only-throw-on-dupe-style-in-strict-mode
Only throw on duplicate styles in strict mode
2018-06-26 18:20:35 -07:00
Dane Springmeyer
d60be13ed8 remove unused code 2018-06-26 15:57:21 -07:00
Blake Thompson
a914047770
Merge pull request #3920 from manaswinidas/improve
Improves INSTALL.md
2018-06-26 11:24:38 -07:00
Dane Springmeyer
c458cf0c57 test duplicate style throw behavior exactly 2018-06-26 09:53:12 -07:00
Manaswini Das
1d7fc9c070
Improves INSTALL.md 2018-06-26 21:16:03 +05:30
Dane Springmeyer
434511ca3b fix to only throw in strict mode 2018-06-24 19:08:38 -07:00
Dane Springmeyer
7673bbe827 only throw on duplicate styles in strict mode 2018-06-24 10:19:33 -07:00
Dane Springmeyer
e9ebc938e0 [build] ensure we don't fail abruptly in BOOST_LIB_VERSION_FROM_HEADER is unknown 2018-06-19 17:21:50 -07:00
Jiri Drbalek
712cce8213 Update test data 2018-06-11 14:40:58 +02:00
Jiri Drbalek
4753aeb73a gdal: Refactoring 2018-06-11 12:00:43 +00:00
Jiri Drbalek
25f1b8cb18 gdal: Do not shrink query extent 2018-06-09 16:34:17 +00:00
Jiri Drbalek
10aaf85f54 gdal: Count in filter_factor 2018-06-09 16:34:17 +00:00
Jiri Drbalek
4f570413ba gdal: Fix finding closest overview 2018-06-09 16:34:17 +00:00
Artem Pavlenko
9cd40947d8 update deps 2018-06-07 09:51:29 +01:00
Artem Pavlenko
7c8215dfda Merge branch 'Algunenano-blessed_offset_clip' 2018-06-07 09:45:43 +01:00
Artem Pavlenko
977c86af6c update visual test data 2018-06-07 09:45:14 +01:00
Raul Marin
8e11ef3fd7 Improve padding calculation 2018-06-06 18:39:15 +02:00
Artem Pavlenko
a396282189
Merge pull request #3905 from ISNIT0/patch-1
Update INSTALL.md
2018-05-30 15:32:31 +01:00
Joe Reeve
e84fbf1523
Update INSTALL.md
Added a `cd` to allow for simpler execution (copy-paste)
2018-05-30 10:51:46 +01:00
Artem Pavlenko
95d5fabad0 Merge branch 'master' into boost_1_67 2018-05-21 15:58:24 +01:00
Artem Pavlenko
16501f8641
Merge pull request #3899 from Algunenano/master_line_middle
Marker symbolizer: Fix bug with lines with 0 length
2018-05-21 15:53:59 +01:00
Artem Pavlenko
102fc3eaf9
Merge pull request #3892 from Algunenano/master_freetype29
Use pkg-config to find FreeType2 if available
2018-05-21 15:52:14 +01:00
Raul Marin
0becc1c5e9 Markers point placement: Add some basic tests 2018-05-11 15:39:55 +02:00
Raul Marin
0195047d7a Marker symbolizer: Fix bug with lines with 0 length (division by zero) 2018-05-11 12:24:01 +02:00
Artem Pavlenko
b7e486d3c3
Merge pull request #3897 from mapycz/refactor-scale-denom
Scale denominator: a bit of refactoring
2018-05-09 08:46:09 +01:00
Jiri Drbalek
846e961b05 Replace magic number with described constant 2018-05-08 16:54:46 +00:00
Artem Pavlenko
d75a73a727
Merge pull request #3896 from mapycz/rm-ellipsoid
Remove useless ellipsoid.hpp
2018-05-08 17:47:02 +01:00
Artem Pavlenko
c2fe73ecbe
Merge pull request #3895 from mapycz/postgis-connection-creator-id
postgis: Exclude password from ConnectionCreator::id()
2018-05-08 17:46:26 +01:00
Artem Pavlenko
051f2fa906
Merge pull request #3894 from mapycz/postgis-connection-manager-thread-safe
postgis: Thread safe ConnectionManager
2018-05-08 17:44:45 +01:00
Jiri Drbalek
3deb55cc5f Use existing constant 2018-05-08 16:44:41 +00:00
Jiri Drbalek
89b5cb4f22 Remove useless ellipsoid.hpp 2018-05-08 15:39:13 +00:00
Jiri Drbalek
ab05de48df postgis: Exclude password from ConnectionCreator::id()
- Password is not necessary for connection identification
- When password is not required by the database,
  user can accidentally use multiple different passwords
  without noticing.
  This leads to allocating more connection pools
  and increase of connection consumption.
2018-05-07 13:49:57 +00:00
Jiri Drbalek
497055d80d postgis: Thread safe ConnectionManager 2018-05-04 20:18:04 +00:00
Raul Marin
23755a527a Use pkg-config to find FreeType2 if available 2018-05-03 17:07:37 +02:00
Artem Pavlenko
b1a19bc13c Merge branch 'master' into boost_1_67 2018-05-01 10:01:59 +02:00
Artem Pavlenko
d8dbe11fd0 Merge branch 'Algunenano-master_overlap' 2018-04-30 09:52:04 +02:00
Artem Pavlenko
871991dced Merge branch 'master_overlap' of https://github.com/Algunenano/mapnik into Algunenano-master_overlap 2018-04-30 09:51:15 +02:00
Artem Pavlenko
4691315e5a
Merge pull request #3891 from mapnik/compiler-detect
don't error oddly if compiler is not found
2018-04-30 09:15:34 +02:00
Dane Blakely Springmeyer
8af9bfe8e0 don't error oddly if compiler is not found 2018-04-29 21:08:36 -07:00
Raul Marin
3171b89fea Generalize overlap_optimization to use points and text too 2018-04-27 17:15:03 +02:00
Raul Marin
0a2be27ba9 Use overlap optimization in load_map_string too 2018-04-27 17:14:57 +02:00
Artem Pavlenko
b7bdd08837 define BOOST_SPIRIT_INSTANTIATE_UNUSED once and re-use [skip-ci] 2018-04-18 14:18:40 +02:00
Artem Pavlenko
664d3508de remove reference_wrapper usage when injecting attributes into grammar ( >= boost_1_67) [skip-ci] 2018-04-18 12:53:17 +02:00
Artem Pavlenko
c946620fec remove unused instantiation 2018-04-18 10:31:33 +02:00
Artem Pavlenko
9e79e1edf1 update const-ness in x3::context definitions to support boost 1_67 [skip-ci] 2018-04-17 15:41:17 +02:00
Artem Pavlenko
def0fd1f31 prepare for breaking change in spirit::x3 (from boost 1.67.0) - remove with_context usage
(ref https://github.com/boostorg/spirit/pull/239)
2018-04-16 15:25:39 +02:00
Artem Pavlenko
b392b8214e add explicit instantiation declarations to DEFINE_ENUM macro to fix -Wundefined-var-template warnings. 2018-04-16 11:12:05 +02:00
Artem Pavlenko
fe5c4bb978 supress unused variable warning in boost state_machine 2018-04-16 11:08:08 +02:00
Artem Pavlenko
82fb67441f
Merge pull request #3880 from Algunenano/master_icu61
Qualify ICU types explicitly
2018-04-10 10:32:30 +02:00
Artem Pavlenko
f04248e57d Merge branch 'mapycz-save-map-denominator' 2018-04-10 10:27:40 +02:00
Artem Pavlenko
d2d587cb1b mapycz-save-map-denominator 2018-04-10 10:25:23 +02:00
Raul Marin
1ddfe6c315 Qualify ICU types explicitly
ICU 61 has dropped the global `using namespace icu;`
http://site.icu-project.org/download/61#TOC-Migration-Issues
2018-04-03 13:18:43 +02:00
Blake Thompson
f7098a8a7e
Merge pull request #3873 from mapnik/gdal_overview_fix
GDAL Driver Overview Fix and Memory Reduction - Master
2018-03-30 16:45:58 -05:00
Blake Thompson
a217b38fd5 Updated to use max_image_area as a datasource parameter for GDAL plugin 2018-03-30 15:40:30 -05:00
Blake Thompson
25e4bb3f6c A fix for two distinct issues associated with gdal featuresets, the first is overviews were not properly being utilized based on the resolution of the final image requested. The second is that allocation of far too much memory could be possible in GDAL to attempt to do resampling internally in mapnik. This now has a hard cap so that we allocate less memory in these situations but are still able to resample internally in mapnik. 2018-03-30 15:10:29 -05:00
Dane Springmeyer
65b4afdfc1
Merge pull request #3876 from Algunenano/blessed_master_threadsafe_disabled
Fix build issue with MAPNIK_THREADSAFE disabled
2018-03-26 12:15:34 -04:00
Raul Marin
caa2a88177 Fix build issue with MAPNIK_THREADSAFE disabled 2018-03-26 18:08:44 +02:00
Blake Thompson
ae6c9c7e37
Merge pull request #3875 from mapycz/raster-colorizer-image-size
Raster colorizer: check image bounds
2018-03-23 13:50:16 -04:00
Jiri Drbalek
ac50139c54 Raster colorizer: check image bounds 2018-03-23 11:55:40 +00:00
Artem Pavlenko
a8d7fc1cfb Revert "avoid symbols duplication"
This reverts commit c737f4d56f.
2018-03-15 15:58:23 +01:00
Artem Pavlenko
c737f4d56f avoid symbols duplication 2018-03-09 09:57:49 +01:00
Artem Pavlenko
030b0de105 update CHANGELOG 2018-03-06 15:42:48 +01:00
Artem Pavlenko
934124d30c follow up on 5b8b75e680 2018-03-01 12:11:03 +01:00
Artem Pavlenko
eb1a32eb79 fix dereferencing out-of-range iterator (caught by -fsanitize=undefined,integer) (#3867) 2018-03-01 11:54:41 +01:00
Artem Pavlenko
5b8b75e680 fix compiler warning
```include/mapnik/text/symbolizer_helpers.hpp:164:45: warning: template template parameter using 'typename' is a C++17 extension
      [-Wc++17-extensions]
    template <template <typename, typename> typename GridAdapter>
                                            ^~~~~~~~
                                            class
```
2018-03-01 10:56:55 +01:00
Artem Pavlenko
abce91a180 decode ret into str for consistency. 2018-02-28 15:42:25 +01:00
Artem Pavlenko
3ad43a33ae check language variable to avoid SIGILL in '-fsanitize-trap=integer,undefined' builds. 2018-02-28 15:20:13 +01:00
Dane Springmeyer
fb8cbb6848 remove shorthands for sanitizers, best to pass flags manually 2018-02-27 10:28:53 -08:00
Artem Pavlenko
60c505d08b Merge branch 'mapycz-offset-converter-topology' 2018-02-26 16:06:56 +01:00
Artem Pavlenko
37b7f05180 Merge branch 'offset-converter-topology' of https://github.com/mapycz/mapnik into mapycz-offset-converter-topology 2018-02-26 16:06:19 +01:00
Artem Pavlenko
3ebbf2075f
Merge pull request #3865 from Algunenano/master_icu_data
ICU DATA: Default to icu-config if u_getDataDirectory fails
2018-02-26 15:13:08 +01:00
Artem Pavlenko
c12f11fe42
Merge pull request #3837 from mat007/fix-unicode-file-path-on-windows
Handle unicode file path on windows in command line tools
2018-02-26 12:23:11 +01:00
Raul Marin
765406f9a7 ICU DATA: Default to icu-config if u_getDataDirectory fails 2018-02-23 15:33:10 +01:00
Artem Pavlenko
8876d13356 improve errors reporting in mapnik-index 2018-02-21 16:02:12 +01:00
Artem Pavlenko
ff56c86446
Merge pull request #3862 from mapnik/apply_color_blind_filter-fix
Fix apply_color_blind_filter to use correct color-space and avoid NAN…
2018-02-20 16:48:31 +01:00
Artem Pavlenko
cec5e0e391
Merge pull request #3863 from Algunenano/master_proj_lib
PROJ_LIB: Fix detection code
2018-02-20 16:04:50 +01:00
Raul Marin
b77ad659d8 PROJ_LIB: Fix detection code
.sconf_temp/conftest_24.cpp:30:42: error: use of undeclared identifier 'strlen'
2018-02-20 14:24:06 +01:00
Artem Pavlenko
2a090aa799 update visual tests data 2018-02-20 12:42:40 +01:00
Artem Pavlenko
c5e91a5c1e update color-blind filters tests post bac24cd844 2018-02-20 12:05:49 +01:00
Artem Pavlenko
cdb301b357 enable high dpi scaling 2018-02-20 11:43:55 +01:00
Artem Pavlenko
bac24cd844 Fix apply_color_blind_filter to use correct color-space and avoid NAN which results in SIGILL when compiled with DEBUG_UNDEFINED=yes (#3861) 2018-02-20 11:19:53 +01:00
Artem Pavlenko
d43c4c1812 fix typo #3856 2018-02-19 13:15:48 +01:00
Artem Pavlenko
429d79c81d check nodata returned by 'GetNoDataValue' has valid representation (!std::isnan) (#3856) 2018-02-19 12:09:56 +01:00
Artem Pavlenko
a2f596951e update visual tests data 2018-02-15 10:04:43 +01:00
Artem Pavlenko
b8e6a0accc
Merge pull request #3859 from mapycz/fix-dgal-default-nodata
Respect raster_has_nodata
2018-02-14 16:51:57 +01:00
Artem Pavlenko
6815ac2869 use multiplication instead of << to avoid undefined behavour when LHS is a negative int (-fsanitize=undefined) 2018-02-14 16:49:31 +01:00
Artem Pavlenko
17a98767b4 use safe_cast for narrowing double->typename span_gen_type::value_type cast (#3856) (thanks @talaj!) 2018-02-14 16:47:47 +01:00
Jiri Drbalek
4c444d0082 Respect raster_has_nodata 2018-02-14 13:56:04 +00:00
Artem Pavlenko
533c6d6e5b check m_width_abs > 0 to avoid division by zero (-fsanitize=undefined) 2018-02-13 17:06:55 +01:00
Artem Pavlenko
2a594d4f0e
Merge pull request #3855 from mapycz/grid_vertex_converter-fix-empty-polygon
grid_vertex_converter: Fix handling of empty polygon
2018-02-13 16:49:10 +01:00
Jiri Drbalek
b6c451d7e3 grid_vertex_converter: Fix handling of empty polygon 2018-02-13 15:00:25 +00:00
Jiri Drbalek
e08786b5fb AGG: Fix invalid memory access if input buffer size is zero 2018-02-13 15:00:25 +00:00
Artem Pavlenko
3976014dcd fix left shift of negative value (-fsanitize=undefined) 2018-02-13 15:14:17 +01:00
Artem Pavlenko
15f16ce6ec cast header to unsiged char const* (-fsanitize=address) 2018-02-13 13:34:42 +01:00
Artem Pavlenko
f117546f73
Merge pull request #3848 from mapnik/update_changelog
Updated changelog from v3.0.x branch
2018-02-07 16:48:26 +01:00
Artem Pavlenko
976555041d
Merge pull request #3847 from mapycz/port-grid-placement
Grid placement
2018-02-07 16:44:21 +01:00
Blake Thompson
3e6d4aa58a Updated changelog from v3.0.x branch 2018-02-06 14:07:21 -05:00
Jiri Drbalek
1adebaaf73 Update visual tests 2018-02-06 16:47:34 +00:00
Jiri Drbalek
f10e051e17 Add grid placement for text and shield symbolizer 2018-02-06 15:19:05 +00:00
Artem Pavlenko
d4826eea6f
Merge pull request #3844 from mapycz/interior-scale-invariant
Interior, polylabel: Scale precision by polygon size
2018-02-05 11:28:35 +01:00
Artem Pavlenko
f4f63a1006
Merge pull request #3845 from mapycz/fix-vertex-adapter-test
Fix vertex_adapter test
2018-02-05 11:27:44 +01:00
Jiri Drbalek
953d1d1a01 Fix vertex_adapter test 2018-02-04 08:46:14 +00:00
Jiri Drbalek
c975c1b6b8 Update visual tests 2018-02-03 17:13:56 +00:00
Jiri Drbalek
69c3ee550d interior, polylabel: Scale precision by polygon size 2018-02-03 14:00:30 +00:00
Artem Pavlenko
5aebd821f6 Update boost to 1.65.1 and mason HEAD. 2018-01-31 21:18:01 +01:00
Artem Pavlenko
828346add3 require BOOST_VERSION >= 1.62.0 (#3835) 2018-01-31 14:11:55 +01:00
Jiri Drbalek
223a240751 Update visual tests 2018-01-26 11:55:04 +00:00
Jiri Drbalek
fb5ca1bb8e offset_converter: Don't filter out closing and moving segments 2018-01-26 11:55:04 +00:00
Artem Pavlenko
2461058ecc
Merge pull request #3838 from mapycz/fix-crash-polygon_vertex_adapter
Fix crash in polygon_vertex_adapter
2018-01-23 16:35:09 +01:00
Jiri Drbalek
0c5d167028 polygon_vertex_adapter: Fix crash in case of empty interior ring 2018-01-23 15:18:44 +00:00
Mathieu Champlon
22d0cb72fd Handle unicode file path on windows 2018-01-20 22:24:05 +01:00
Artem Pavlenko
c6b9036002
Merge pull request #3827 from mapycz/gdal-test-upscaling
Add a test that GDAL plugin does not upsample
2018-01-18 15:54:15 +00:00
Artem Pavlenko
8bc236ba7b
Merge pull request #3834 from mapycz/fix-interior-empty-polygon
Interior, Polylabel: cover empty polygon or exterior ring
2018-01-17 14:47:37 +00:00
Jiri Drbalek
4e160acc88 Avoid copying 2018-01-17 13:39:21 +00:00
Jiri Drbalek
99038229f7 Polylabel: cover the case of empty polygon or exterior ring 2018-01-17 13:39:15 +00:00
Jiri Drbalek
a97eace434 Interior: cover the case of empty polygon or exterior ring 2018-01-17 12:58:42 +00:00
Artem Pavlenko
da8b5c46d7
Merge pull request #3833 from mapycz/fix-crash-polygon_vertex_processor
Fix crash in case of empty ring
2018-01-17 10:06:32 +00:00
Jiri Drbalek
ec53f3d879 Fix crash in case of empty ring 2018-01-17 09:53:45 +00:00
Artem Pavlenko
ab4e1b77d0
Merge pull request #3828 from mikejcorey/except_syntax
Replaced old-style exception for Python 3 compatibility.
2018-01-11 09:53:57 +00:00
Michael Corey
e5e0b7674a Replaced old-style exception for Python 3 compatibility. 2018-01-10 21:50:49 -08:00
Jiri Drbalek
43a9f70314 Add a test that GDAL plugin does not upsample 2018-01-10 15:02:44 +00:00
Artem Pavlenko
5ab6db2607 benchmark - slightly better stderr 2018-01-10 10:04:10 +00:00
Artem Pavlenko
b193d03151 Merge remote-tracking branch 'origin/master' 2018-01-09 17:03:08 +00:00
Artem Pavlenko
2aab39b8e7
Merge pull request #3826 from mapycz/svg-clippath-test
SVG: Add a test of clipPath
2018-01-09 17:02:24 +00:00
Jiri Drbalek
3af3286436 SVG: Add a test of clipPath 2018-01-09 16:11:19 +00:00
Artem Pavlenko
f6b11b86a8 update test/data 2018-01-09 15:40:41 +00:00
Artem Pavlenko
ff31c6d6eb SVG parser - add ignore_ member variable to allow skipping of unsupported elements, currently clipPath (#3818) 2018-01-09 15:19:52 +00:00
Artem Pavlenko
a04ca98c6b Merge branch 'mapycz-polylabel-as-interior' 2018-01-08 10:21:49 +00:00
Artem Pavlenko
c24568f033 Merge branch 'polylabel-as-interior' of https://github.com/mapycz/mapnik into mapycz-polylabel-as-interior 2018-01-08 10:21:09 +00:00
Artem Pavlenko
e2d741bdb7
Merge pull request #3809 from IMQS/pr-text-placements-export
Export all text_placements_ classes from mapnik.dll
2018-01-05 13:02:58 +00:00
Artem Pavlenko
45d4d5afb3 Merge branch 'lightmare-fix-group-symbolizer-crash' 2018-01-05 12:17:11 +00:00
Artem Pavlenko
c29f944726 Merge branch 'fix-group-symbolizer-crash' of https://github.com/lightmare/mapnik into lightmare-fix-group-symbolizer-crash 2018-01-05 12:16:41 +00:00
Artem Pavlenko
92afd0bebf Use macro to apply __attribute__((init_priority(val))) where it's supported (gcc+clang) (#3821) 2018-01-04 14:29:00 +00:00
Artem Pavlenko
50169e95b2 Enforce global variables initialisation order via __attribute__((init_priority(<priority>))) (#3821) 2018-01-04 12:22:04 +00:00
Artem Pavlenko
a67f5abb67 consistent syntax 2018-01-03 17:38:16 +00:00
Jiri Drbalek
7febf6c24a update visual tests 2017-12-17 08:11:58 +00:00
Jiri Drbalek
f52a0fa4f6 new interior algorithm 2017-12-13 21:48:13 +00:00
Jiri Drbalek
ea7ba2c099 add polylabel placement method 2017-12-13 21:48:13 +00:00
Jiri Drbalek
e243e16fd9 find text interior placement after reprojection 2017-12-13 21:48:13 +00:00
Artem Pavlenko
43d7278352 Don't apply preserveAscpectRatio logic logic if width and height expressed as % values (#3812) 2017-12-06 11:23:54 +01:00
Dane Springmeyer
54532cecb5 use lowercase boolean to match check in scripts/check_glibcxx.sh 2017-11-28 15:24:10 +01:00
Ben Harper
5507ab817a Export all text_placements_ classes from mapnik.dll
Previously, only text_placements_dummy had a MAPNIK_DECL annotation.
This commit adds that annotation to text_placements_simple and
text_placements_list, so that they are also exposed from the Windows DLL
build.
2017-11-28 11:30:35 +02:00
Artem Pavlenko
5d9a5b99a5 Fix licence link (#3804) 2017-11-27 09:51:51 +01:00
Artem Pavlenko
bfb071233e fix 'prioritize_linking' option + remove depricated has_key usage 2017-11-23 11:30:35 +01:00
Artem Pavlenko
92150e9ca9 update deps 2017-11-23 11:11:21 +01:00
Artem Pavlenko
851708c26e Merge branch 'scons3' 2017-11-22 15:47:47 +01:00
Artem Pavlenko
a04caf339e Merge branch 'master' into scons3 2017-11-22 15:47:03 +01:00
Artem Pavlenko
8cd2ae322e support both python 2 and 3. 2017-11-22 14:56:20 +01:00
Artem Pavlenko
cf6b88f8da Revert "make python3 default"
This reverts commit a790d8cdb9.
2017-11-22 14:55:52 +01:00
Artem Pavlenko
ce12610adc Add copyleft notice 2017-11-21 15:53:08 +01:00
Artem Pavlenko
a790d8cdb9 make python3 default 2017-11-21 15:09:12 +01:00
Artem Pavlenko
047c3f4bba Scons/python3 - fix bytes to str conversions (#3798) 2017-11-21 13:12:52 +01:00
Artem Pavlenko
c18730a182 use exit ${CODE} 2017-11-20 09:44:33 +01:00
Dane Springmeyer
58d7c72a22
Merge pull request #3796 from mapnik/glibcxx-fix2
Glibcxx fix redux
2017-11-16 14:53:58 -08:00
artemp
a780581ebc Scons - update to 2.5.1 2017-11-16 12:05:21 +01:00
Artem Pavlenko
5732df452c support SCons 3 (initial attempt) 2017-11-16 11:59:55 +01:00
Dane Springmeyer
a2b7f642e0 check symbols for all modes, only error if symbols exist + ENABLE_GLIBC_WORKAROUND 2017-11-15 21:48:20 -08:00
Dane Springmeyer
5e06dfb50b add script that asserts on expected symbols 2017-11-15 20:32:47 -08:00
Dane Springmeyer
f32f3b34ae add glibc_workaround.cpp if option is chosen
This reverts commit 751d9bff1672f6b8cbd2b5ebe2eb460223746806.
2017-11-15 20:32:38 -08:00
Artem Pavlenko
3cb74f0871 attempting to fix #3793 2017-11-14 10:10:26 +01:00
Artem Pavlenko
97f520c7cf cleanup 2017-11-14 10:10:26 +01:00
Artem Pavlenko
2cd335509b
Merge pull request #3794 from mapycz/char_array_buffer-seekpos
char_array_buffer should implement also seekpos()
2017-11-14 09:55:43 +01:00
Jiri Drbalek
fe268b0e71 char_array_buffer should implement also seekpos() 2017-11-13 22:42:37 +00:00
Artem Pavlenko
5db45d9fa3 use semantic actions to fix #3744 ( >= boost_1_65) 2017-11-13 13:15:47 +01:00
Artem Pavlenko
4aaba786fa fix warning: comparison of integers of different signs 2017-11-13 09:48:31 +01:00
Artem Pavlenko
8258c7e621 Merge branch 'glibcxx-fix' 2017-11-13 09:26:15 +01:00
Dane Springmeyer
00a8aba245 drop back to boost 1.64.0 2017-11-09 12:31:18 -08:00
Dane Springmeyer
142c0373d7 upgrade to boost mason package built against libstdc++-4.9-dev instead of 5-dev 2017-11-09 12:12:44 -08:00
Dane Springmeyer
9f4e5844c4 also dump glibcxx symbols on circle 2017-11-09 10:20:30 -08:00
Dane Springmeyer
c2ca920181 remove inadvertent change 2017-11-09 10:08:23 -08:00
Dane Springmeyer
1ad3ae044b at workaround for throw_out_of_range_fmt 2017-11-09 10:07:26 -08:00
Dane Springmeyer
26a1c79efb start displaying glibcxx symbols needed in the binary (only relevant for linux) 2017-11-09 10:05:12 -08:00
Artem Pavlenko
98c26bcae0 SVG parser - fix default gradient vector in linear gradient [0,0,1,0] + support units in offset attribute. 2017-11-06 12:39:50 +01:00
Artem Pavlenko
743c14d3ff add UDL via operator"" _case 2017-11-06 10:31:53 +01:00
Artem Pavlenko
1a338bb924 update test data 2017-11-06 10:31:37 +01:00
Artem Pavlenko
be5085d2e9 apply mapnik/c++ formatting 2017-11-06 09:47:01 +01:00
Artem Pavlenko
0a4214fe36 use latest deps 2017-10-31 11:12:14 +01:00
Artem Pavlenko
2271e4a5a4 use unsigned int for indexed access 2017-10-31 10:52:09 +01:00
Artem Pavlenko
62b10d83be Merge pull request #3782 from IMQS/angled-point-master
Add new angled-point marker placement mode for lines
2017-10-26 17:27:08 +02:00
Ben Harper
05849f0da5 Add new angled-point marker placement mode for lines
This adds a new mode called 'angled-point' to the marker-placement modes.
The full list of modes is then:
  point, angled-point, interior, line, vertex-first, vertex-last

Angled point is identical to point, except that when placing a marker on
a line, the marker's angle is taken from the angle of the line segment.

There is another possible use of the "angled-point" concept for polygons,
and that is for placing labels on stand (aka erf) polygons. By computing
a dominant angle for a mostly rectangular polygon, this can produce quite
good results. I'm not sure whether I should implement that now, or if I
could do that later.
2017-10-26 15:09:17 +02:00
Artem Pavlenko
f02a259011 remove depth limit 2017-10-13 09:47:26 +02:00
Dane Springmeyer
e5b837ff97 remove -Wc++14-extensions flag (added in 064b99168) (#3778) 2017-10-11 16:26:39 +02:00
Artem Pavlenko
cdd8b35112 Merge branch 'mapycz-fix-viewer-linking' 2017-10-09 16:06:33 +02:00
Jiri Drbalek
4952baf494 fix linking of viewer 2017-10-09 11:35:24 +00:00
Jiri Drbalek
8c7d7e25cd update visual tests 2017-10-06 09:52:30 +00:00
talaj
8347778abb fix memory leak (#3775) 2017-10-06 09:27:58 +02:00
Artem Pavlenko
8dc1456766 update test-data 2017-09-29 10:26:04 +02:00
Artem Pavlenko
de9364d447 update deps + test data 2017-09-29 10:04:00 +02:00
talaj
377253bcc8 Check duplicate style names (#3770)
* Ported map I/O tests from Python.

These test loading, saving and round-tripping Map XML, and are
pretty much a direct port of the old Python `load_map_test.py` and
`save_map_test.py`.

* check duplicate style name

* update test data
2017-09-28 15:51:55 +02:00
Jiri Drbalek
43ea5dcb82 update visual tests data 2017-09-27 13:13:27 +00:00
Artem Pavlenko
eefe3de34b update visual data post centroid PR 2017-09-26 09:47:26 +02:00
Artem Pavlenko
71321e8e6b update protozero 2017-09-26 09:47:09 +02:00
Artem Pavlenko
53ad3f0fe8 increase init depth to 20 2017-09-25 16:53:16 +02:00
Artem Pavlenko
94ce4d530a update tests 2017-09-25 16:52:59 +02:00
talaj
f3cf1ad388 Fix centroid and interior algorithms (#3771)
* fix interior algorithm - closing segment handling

* fix centroid algorithm - closing segment handling

* update visual tests
2017-09-25 15:45:02 +02:00
Artem Pavlenko
304cce8efa update protozero to the latest 2017-09-22 15:21:32 +02:00
Artem Pavlenko
3d4963f40c move implementatio into *.cpp + return 'closest_point_result' struct. 2017-09-22 13:21:50 +02:00
Artem Pavlenko
afb2af84f7 assign second point 2017-09-22 13:21:02 +02:00
Artem Pavlenko
f210699884 add more tests 2017-09-22 13:20:23 +02:00
Artem Pavlenko
143d1e57cf add 'closest_point' geometry algorithm 2017-09-21 15:40:30 +02:00
Artem Pavlenko
e9f912bba9 Reserve memory via size() of range method in protozero (10c631d7e4 ) 2017-09-20 10:07:43 +02:00
Artem Pavlenko
fa96232258 update visual data 2017-09-20 09:54:25 +02:00
Artem Pavlenko
5d5ef602be rename 'geometry_type' to 'topojson_geometry_type' to avoid names clashing
(this was causing miscompilation on linux (ubuntu 17.04/clang))
2017-09-18 11:35:39 +01:00
talaj
13d678d9af visual tests: allow to ignore particular renderer (#3768)
* visual tests: refactor parsing parameters from the style

* visual tests: allow to ignore particular renderer

* update visual tests
2017-09-14 14:21:30 +01:00
Artem Pavlenko
c07397e71b update protozero 2017-09-14 11:25:51 +01:00
Artem Pavlenko
5a87d8fef9 update deps 2017-09-13 10:51:36 +01:00
talaj
d14203561d color font support improvements (#3758)
👍
2017-09-13 10:14:46 +01:00
talaj
c7c10fed46 basic unit test for feature_style_processor (#3766) 2017-09-13 10:14:13 +01:00
talaj
c80cde6044 visual tests: report failed tests (#3765) 2017-09-13 10:13:51 +01:00
Artem Pavlenko
acec6ae824 Merge branch 'master' into bbox-index 2017-09-12 14:57:12 +01:00
Artem Pavlenko
e54287293f Merge branch 'mapycz-nested-layers-fixes' 2017-09-12 14:10:22 +01:00
Artem Pavlenko
8bc080c7b8 Merge branch 'nested-layers-fixes' of https://github.com/mapycz/mapnik into mapycz-nested-layers-fixes 2017-09-12 14:09:47 +01:00
Artem Pavlenko
02c6124559 Revert "remove legacy defines"
This reverts commit ebb8d3b3ed.
2017-09-12 09:54:40 +01:00
Artem Pavlenko
01574e8038 update comment 2017-09-12 09:43:50 +01:00
Artem Pavlenko
797e8c7553 Merge branch 'master' into bbox-index 2017-09-11 17:59:23 +01:00
Artem Pavlenko
e97759d01b geojson test - require throwing on an empty feature collection
(not sure this is correct but needed to preserve 3.0.x behaviour)
2017-09-11 17:58:26 +01:00
Dane Springmeyer
aafc5d6d51 revert accidentally committed change to geobuf plugin 2017-09-11 09:48:10 -07:00
Artem Pavlenko
f19ca6672e Merge branch 'master' into bbox-index 2017-09-11 17:32:35 +01:00
Artem Pavlenko
04f9db4b18 minor format 2017-09-11 17:30:37 +01:00
Artem Pavlenko
6e9c56ee2c geojson.input - check and throw if bounding box extrator returns no boxes and not all input consumed (preserve 3.0.x caps) 2017-09-11 17:28:09 +01:00
Jiri Drbalek
6777721391 enclosing calls forgotten in https://github.com/mapnik/mapnik/pull/3474 2017-09-11 15:25:19 +00:00
Artem Pavlenko
b2f3fdb73b Merge branch 'master' into bbox-index 2017-09-11 10:47:50 +01:00
Artem Pavlenko
ebb8d3b3ed remove legacy defines 2017-09-11 10:46:57 +01:00
Dane Springmeyer
3135d58a40 Merge pull request #3762 from mapnik/collect-dep-data-paths-master
Port #3759 to master
2017-09-10 11:10:41 -07:00
Dane Springmeyer
13ff9e1706 adapt to spelling fix in svg tests 2017-09-10 10:22:08 -07:00
Dane Springmeyer
4bc7ec73de fix spelling in svg parser error 2017-09-10 08:59:54 -07:00
Dane Springmeyer
01bf0fb6ce make the configure script actually bash 2017-09-10 08:40:33 -07:00
Dane Springmeyer
8689048ba6 port #3759 to master 2017-09-10 08:19:04 -07:00
artemp
441687ecff boost_adapters - apply temp fix via @Algunenano for boost 1.64 (ref #3733) 2017-08-21 14:14:00 +01:00
artemp
9b0fd7a8d7 boost_adapters - apply temp fix via @Algunenano for boost 1.64. 2017-08-21 14:12:12 +01:00
artemp
40c51c469c shape.input/shapeindex - update to use bounding box per item *.index format. 2017-08-21 11:02:34 +01:00
artemp
6c19efa990 store box2d<float> directly in index_record to avoid conversions. 2017-08-18 16:59:58 +01:00
artemp
d81a7610d3 shapeindex - make index node 32-bytes (uint64_t, int32_t, int32_t) 2017-08-18 16:58:20 +01:00
artemp
541c1a35a0 mapnik-index - initialise quad-tree with bbox if present. 2017-08-18 13:55:04 +01:00
artemp
94ef6170d8 mapnik-index - add experimental --bbox,-b option to limit index to provided bounding box e.g
```mapnik-index -b -5.51418,50.1944,-5.46256,50.2241 data.geojson```
2017-08-18 13:42:54 +01:00
artemp
2aa0ce9d74 New *.index format (bounding box per item) implementation 2017-08-18 11:16:44 +01:00
artemp
a682575da2 Merge branch 'master' into bbox-index 2017-08-17 13:02:14 +01:00
Artem Pavlenko
0253653676 Geobuf.input (#3715)
* geobuf.input - initial implementation (WIP)

* geobuf.input - fix reading MultiPolygon's

* geobuf.input - don't store invalid bounding boxes in r-tree.

* Use `protozero` lib to read `geobuf` (Initial implementation, not complete!)

* geobuf.input - poring to `protozero`. (TODO: add support for `GeometryCollection`)

* add initial support for `GeometryCollection` + cleanup namespaces

* remove stderr + cleanup + update copyright

* fix GeometryCollection and MultiLineString decoding + add support for standalone Feature and Geometry

* don't use `reserve` as undelying data format doesn't allow for efficient `distance` implementation.

* add geobuf unit test + update test data

* update data
2017-08-17 10:52:07 +01:00
artemp
2426a44671 initial updated spatial-index implementation 2017-08-16 13:59:44 +01:00
artemp
e00152b262 update data 2017-08-16 13:59:44 +01:00
artemp
4064c8ae8e add geobuf unit test + update test data 2017-08-16 13:59:44 +01:00
artemp
947ce9a8d1 don't use reserve as undelying data format doesn't allow for efficient distance implementation. 2017-08-16 13:59:44 +01:00
artemp
e0a251c456 fix GeometryCollection and MultiLineString decoding + add support for standalone Feature and Geometry 2017-08-16 13:59:44 +01:00
artemp
0c814dbeb0 remove stderr + cleanup + update copyright 2017-08-16 13:59:44 +01:00
artemp
eee92a5420 add initial support for GeometryCollection + cleanup namespaces 2017-08-16 13:59:44 +01:00
artemp
9cea9707f3 geobuf.input - poring to protozero. (TODO: add support for GeometryCollection) 2017-08-16 13:59:44 +01:00
artemp
3bbb5f413a Use protozero lib to read geobuf (Initial implementation, not complete!) 2017-08-16 13:59:44 +01:00
artemp
dd507550c9 geobuf.input - don't store invalid bounding boxes in r-tree. 2017-08-16 13:59:44 +01:00
artemp
2715500533 geobuf.input - fix reading MultiPolygon's 2017-08-16 13:59:44 +01:00
artemp
28ffa84d44 geobuf.input - initial implementation (WIP) 2017-08-16 13:59:44 +01:00
artemp
add410e619 use arch independent types for serialised values 2017-08-15 11:14:11 +01:00
artemp
c4a1df6e91 simplify impl + const correctness + minor cleanup 2017-08-15 11:13:11 +01:00
artemp
a682cea51e svg-parser - unify error messages text + update unit test 2017-08-08 12:38:24 +01:00
artemp
6f73181e9b Enforce consistent error handling policy - always throw on fatal errors (both strict and non-strict). In strict mode throw on first parsing error. Remove return values from parse,parse_from_string and traverse_tree methods. Update unit tests. 2017-08-02 10:32:13 +01:00
artemp
a26723b4a5 add missing ' in error message. 2017-08-02 10:32:00 +01:00
artemp
093fcee6d1 only include <unicode/unistr.h> if ICU >= 59 (attempting to fix current coverage build on travis). 2017-07-21 10:37:22 +02:00
artemp
9e58c89043 Add support for U_ICU_VERSION_MAJOR_NUM >= 59 (#3729) 2017-07-19 16:07:39 +02:00
artemp
24d07e7792 Update CHANGELOG with missing #3688 [skip-ci] 2017-07-18 10:08:16 +02:00
talaj
a077ccd4f6 Merge pull request #3725 from mapycz/parse-raster-sym
remove superfluous line
2017-07-07 23:16:19 +02:00
Jiri Drbalek
a3247c8dce remove superfluous line 2017-07-07 20:44:15 +00:00
Artem Pavlenko
4ec9349389 Merge pull request #3722 from mapnik/fix_alpha_rgba_tiff_master
Use alpha over no data in RGBA tiffs
2017-07-07 16:52:06 +02:00
artemp
b164117d99 disable handling unsupported attributes (leaving only well-known unsupported elements) to reduce verbosity. 2017-07-07 10:09:08 +02:00
Blake Thompson
951f10791a Fix for #3714 in master, addresses RGBA tiffs that have an alpha value and no data value - and are using the no data value over the alpha. 2017-07-06 12:30:05 -05:00
artemp
3ae71eea0f JSON - wrap lamda functions into anonymous namespace to fix linking on Windows with VS2017. 2017-07-06 16:09:38 +02:00
artemp
b632633373 convert args to mapnik::geometry::geometry<std::int64_t> (VS2017) 2017-07-06 16:03:28 +02:00
artemp
cd0c746a42 split grammar into two rules (VS2017) 2017-07-06 16:02:47 +02:00
artemp
55776f0b8c add missing include directives (VS2017) 2017-07-06 16:02:17 +02:00
artemp
e653f4cc4c make constructor explicit to avoid C2664 error with VS2017. 2017-07-06 16:01:06 +02:00
artemp
e08616aed3 Didn't play well with VS2017, reverting "re-use lamdas definitions and aviod duplicate symbols when building with vs2017"
This reverts commit 4c9322bc0d.
2017-07-06 11:17:14 +02:00
artemp
631c0a59c4 Revert "trying to inline lambdas (VS2017) (!)" this is not allowed in c++14 requires c++17
This reverts commit 0ad1c58009.
2017-07-06 11:14:24 +02:00
artemp
0ad1c58009 trying to inline lambdas (VS2017) (!) 2017-07-06 11:11:01 +02:00
artemp
4c9322bc0d re-use lamdas definitions and aviod duplicate symbols when building with vs2017 2017-07-06 10:59:42 +02:00
talaj
53249053e4 cairo renderer: clear map background with given color as agg renderer does (#3718) 2017-07-04 16:32:45 +02:00
talaj
d0ecd51b63 Set premultiplied flag to the color font glyph bitmap (#3716)
* color font bitmap is premultiplied

* update visual tests
2017-07-03 17:15:07 +02:00
artemp
71344f78df wkb_reader : pre-allocate number of polygons in multi_polygon and number of geometries in geometry_collection via vector.reserce(...) 2017-07-03 15:18:23 +02:00
artemp
1e8ec57593 add <image> and <switch> to unsupported elements. 2017-06-29 09:41:16 +02:00
artemp
47bfe7cb91 make unsupported elements/attributes arrays const. 2017-06-29 09:41:16 +02:00
artemp
148e77884c don't include xml_parser_read_rapidxml.hpp - forward declaring xml_node is sufficient. 2017-06-29 09:41:16 +02:00
artemp
5118220c4c handle "well-known" unsupported elements and attributes. 2017-06-29 09:41:16 +02:00
artemp
017d6cb540 cleanup 2017-06-29 09:41:16 +02:00
artemp
8f2961b9e2 svg_parser - implement preserveAspectRatio support (ref https://www.w3.org/TR/SVG/coords.html#PreserveAspectRatioAttribute) 2017-06-29 09:41:16 +02:00
artemp
a6bc69359a use SVG viewport as bounding box 2017-06-29 09:41:16 +02:00
artemp
12d077ea0c disable bbox comparison (WIP) 2017-06-29 09:41:16 +02:00
artemp
3edcd4afa2 fix viewBox coordinate system logic + apply transform in <use> element 2017-06-29 09:41:16 +02:00
artemp
3fbce913d0 store viewbox transform 2017-06-29 09:41:16 +02:00
artemp
fafc751e42 svg_parser - add support for "href" preserving deprecated (since SVG 2) "xlink:href" 2017-06-29 09:41:16 +02:00
artemp
c2ad505899 fix method name 2017-06-29 09:41:16 +02:00
artemp
aae7253ba1 SVG parser - refactor to use switch where appropriate + experimental support for <symbol> 2017-06-29 09:41:16 +02:00
artemp
87abf93da3 move name_to_int into separate header for re-use. 2017-06-29 09:41:16 +02:00
artemp
2de8ce0eb7 svg_parser - don't log unsupported entities just yet (ref #763) 2017-06-29 09:41:16 +02:00
artemp
53a69463ea SVG parser - add support for <use> element (ref #763). 2017-06-29 09:41:16 +02:00
artemp
a4e8603af1 svg transform - correct rotate(<a> [<x> <y>]) rule (ref #763)
(The transform attribute defines a list of transform definitions that are applied to an element and the element's children. The items in the transform list are separated by whitespace and/or commas, and are applied from right to left.)
2017-06-29 09:41:16 +02:00
artemp
199a281627 remove debug stderr 2017-06-29 09:41:16 +02:00
artemp
ca4d140fb0 cleanup 2017-06-29 09:41:16 +02:00
artemp
b6aa45144c svg_parser - refactor => remove mutable temporary_gradient_ member variable + process stop elements from within linearGradient and radialGradient. 2017-06-29 09:41:16 +02:00
artemp
6da83bc986 svg_parser - store unresolved gradient nodes for deferred initalisation. 2017-06-29 09:41:16 +02:00
artemp
0301399d40 svg2png - add short program options. 2017-06-29 09:41:16 +02:00
artemp
ef6c2e71b8 svg-parser : handle parsing failures via error_handler ( throw in strict mode and log+continue when strict==false) 2017-06-29 09:41:16 +02:00
artemp
e56233833e svg_parser - fix bug introduced in previous commit. 2017-06-29 09:41:16 +02:00
artemp
3f591af871 initial support for strict SVG parsing (WIP) 2017-06-29 09:41:16 +02:00
artemp
df0bbe404c update CHANGELOG post 3.0.15 release [skip-ci] 2017-06-19 17:13:02 +02:00
artemp
5aba57eb61 remove out-of-date comment line [skip ci] 2017-06-15 11:33:36 +02:00
Blake Thompson
5b51b8d061 Merge pull request #3701 from mapnik/fix_filter_factor2
Fix Filter Factor for Resampling.
2017-06-13 09:48:15 -05:00
Blake Thompson
5bc80e909e Restored the proper useage of filter factor for image rescaling, where it is used in a variety of different algorithms for resampling. 2017-06-13 09:17:54 -05:00
artemp
3451d11b00 tiff_reader - fix num_rows logic in read_stripped method ref #3679 2017-06-12 17:55:24 +02:00
Artem Pavlenko
294a8168da Merge pull request #3697 from mapnik/raster_plugin_fix
Fixes a bug associated with the raster plugin
2017-06-07 10:18:40 +02:00
artemp
5f9c8bc475 remove --depth 100 2017-06-07 10:17:53 +02:00
Blake Thompson
eb7ef5039c Fixes a bug assocaited with the raster plugin 2017-06-06 10:28:21 -05:00
Artem Pavlenko
d563b2e126 Merge pull request #3693 from mapnik/webp_more_tests
Updated the tests for webp
2017-06-05 17:12:26 +02:00
Blake Thompson
4b69974175 Merge branch 'master' into webp_more_tests 2017-06-05 09:50:53 -05:00
artemp
309b34a011 fix - add missing namespace qualifier. 2017-06-05 15:52:49 +02:00
Artem Pavlenko
03fb8fab4c Merge pull request #3694 from mapycz/layer-compositing-offset
Fix a layer compositing offset
2017-06-02 18:09:07 +02:00
Jiri Drbalek
0ecc4c6762 update visual tests 2017-06-02 15:43:11 +00:00
Jiri Drbalek
a734ff1e90 layers should be composited with zero offset 2017-06-02 15:32:00 +00:00
Blake Thompson
f285195f93 Updated the tests for webp in relation to #3661 2017-06-02 09:32:42 -05:00
artemp
82a7d07b7f return error code when no feature can be read from shapefile + update unit test. 2017-06-01 15:44:25 +02:00
artemp
dfa8f100b2 freetype_engine - port singleton changes from v3.0.x 2017-06-01 12:47:18 +02:00
Dane Springmeyer
aeefd1cb58 fix typo in changelog [skip ci] 2017-05-31 13:26:35 -07:00
Dane Springmeyer
b9be377a7c update font path in test file 2017-05-31 10:42:03 -07:00
Artem Pavlenko
4d7e95c0c0 Merge pull request #3678 from mapycz/fix-polygon-closing-on-reprojection
fix closing polygons on reprojection
2017-05-30 19:08:51 +02:00
Dane Springmeyer
928a42da81 use latest mason version 2017-05-25 11:34:09 -07:00
Jiri Drbalek
7f11a7ab30 update visual test data 2017-05-24 13:59:47 +00:00
Jiri Drbalek
7590cdabb0 fix typo in file name 2017-05-24 13:59:47 +00:00
Jiri Drbalek
c7561c1dc9 unit test - vertex-last marker placement 2017-05-24 13:59:47 +00:00
Jiri Drbalek
0781f230be fix polygon handling 2017-05-24 13:59:44 +00:00
Jiri Drbalek
8d980d434e unit tests - closing polygon on reprojection 2017-05-24 12:10:11 +00:00
Jiri Drbalek
4084e670ec fix closing polygons on reprojection 2017-05-24 12:10:11 +00:00
artemp
abff549ed0 Merge remote-tracking branch 'origin/master' 2017-05-23 18:53:41 +02:00
artemp
c61e85b875 unify namespace names 2017-05-23 18:49:25 +02:00
Artem Pavlenko
b84b819d5b Merge pull request #3681 from mapnik/tiff-memory-mapped
Tiff memory mapped
2017-05-23 12:34:21 +02:00
artemp
3a475517c0 TIFF I/O - use memory mapping in tiff_reader.cpp when MAPNIK_MEMORY_MAPPED_FILE is defined. 2017-05-22 16:29:22 +02:00
artemp
34a622f48e TIFF I/O - use memory mapping for file based I/O. 2017-05-22 13:07:42 +02:00
artemp
3c1be21162 tiff_reader - use image_reader_exception 2017-05-22 13:05:08 +02:00
artemp
3811acfc5d Correct english spelling is OK. 2017-05-19 14:43:17 +02:00
Blake Thompson
436610da3a Updated changelog 2017-05-19 14:41:25 +02:00
Artem Pavlenko
f205f3859d Merge pull request #3671 from mapnik/tiff-multiband-grey
TIFF I/O : add support for multiple bands in 'scanline` reading metho…
2017-05-19 10:10:01 +02:00
artemp
12d6662009 TIFF I/O - read_tiled: remove std::swap_ranges and apply the same logic as in read_stripped. 2017-05-18 16:43:27 +02:00
artemp
4d8796dbd3 remove unused code 2017-05-18 15:23:22 +02:00
artemp
545bcb6585 remove bogus assert 2017-05-18 14:24:01 +02:00
artemp
23bdfdd821 use latest visual data 2017-05-18 13:26:05 +02:00
artemp
9ecc0041a0 Merge branch 'tiff-multiband-grey' of https://github.com/mapnik/mapnik into tiff-multiband-grey 2017-05-18 13:19:18 +02:00
artemp
9ee0deb3a1 update test data 2017-05-18 13:18:33 +02:00
Artem Pavlenko
c5ee5072ad Merge pull request #3679 from mapnik/tiff-stripped-read
The last stripe of a tiff could be read incorrectly due to a swap
2017-05-18 13:17:14 +02:00
artemp
cb7a3abfcb follow up fix for the bug reported by @flippmoke + fix return value check in TIFFReadRGBAStrip 2017-05-18 13:12:52 +02:00
Blake Thompson
efcb667f03 The last stripe of a tiff could be read incorrectly due to a swap 2017-05-17 17:06:40 -05:00
artemp
599f187968 update visual-data. 2017-05-17 21:20:03 +02:00
artemp
0968e13159 fix compile oops #3669 #3670 2017-05-17 17:41:44 +02:00
artemp
bf1225cd76 Use updated visual data from `tiff-multiband-grey' branch. 2017-05-17 15:17:28 +02:00
artemp
310eb71bdf TIFF I/O tests - refactor to reduce code duplication + remove std::cerr 2017-05-17 15:07:51 +02:00
artemp
6ac4ce66b3 TIFF I/O unit tests - check tiff_reader is able to read various permutations of TIFF format (rgb8|rgba8|gray8 + interleave:band|pixel + tiled|stripped)
(ref #3669 #3670)
2017-05-17 15:07:23 +02:00
artemp
ef9b1025fa fix bug - use tile_width_ and tile_height_ + cleanup 2017-05-17 14:55:41 +02:00
artemp
1d95cad922 TIFF I/O - make read_stripped handle both RGBA and raw encoded strips (#3670) 2017-05-16 13:44:55 +02:00
artemp
62260dd3d4 raster.input - increase default tile size to 1024x1024 px. 2017-05-16 13:43:52 +02:00
artemp
e8cd4b9aef TIFF I/O : update and fix logic handling rgba vs grey scale. 2017-05-12 18:39:58 +02:00
artemp
e62bf6e18f TIFF I/O - use scanline to read stripped grey for now. 2017-05-12 15:55:46 +02:00
artemp
5d48d98697 port latest changes from "raster_overzoom_quest" branch. 2017-05-12 15:37:12 +02:00
artemp
88fb137061 TIFF I/O - make read_tiled templated on ImageData ref #3669 #3670 (WIP) 2017-05-11 17:25:07 +02:00
artemp
74f295c6c4 small formatting 2017-05-11 16:58:37 +02:00
artemp
db2eaf2e2b TIFF I/O : add support for interleaved data in void tiff_reader<T>::read_tiled(std::size_t x0,std::size_t y0, ImageData & image) ref #3669 #3670 2017-05-11 12:13:07 +02:00
artemp
1725b1ebba TIFF.input - port changes from https://github.com/mapnik/mapnik/pull/3668 (ref #3669) 2017-05-10 14:33:29 +02:00
artemp
77f849b136 TIFF I/O : add support for multiple bands in 'scanline reading method in read_any_gray` (partially fixes #3669)
(NOTE: we default to `scanline` even for `stripped` images, TODO add support as per #3670)
2017-05-10 13:21:51 +02:00
artemp
6e025956ae add simple WKT round-trip test (required updated data) 2017-05-05 16:32:17 +02:00
artemp
97a796ba0e fix polygon_coord rule to generate required enclosing brackets. 2017-05-05 16:29:33 +02:00
artemp
2847c3bee9 format WKT to be able to test WKT<->WKT round-trip. 2017-05-05 16:28:05 +02:00
artemp
333ef9fde1 update copyright year 2017-05-05 13:02:01 +02:00
artemp
d84991bae3 add debug log 2017-05-04 10:50:49 +02:00
artemp
85aebf7268 set most common language based on script for each text run (#3655) 2017-05-03 10:23:42 +02:00
artemp
82b876e267 upgrade to the latest variant 2017-05-01 11:38:45 +02:00
artemp
8ff24d1193 Only log warning in --verbose mode. 2017-04-25 14:03:18 +02:00
Artem Pavlenko
6c23504667 Merge pull request #3660 from rinigus/master_sqlite_twkb
add twkb support to sqlite plugin
2017-04-24 10:04:59 +01:00
Rinigus
9de7397043 add twkb support to sqlite plugin 2017-04-23 22:49:36 +03:00
Dane Springmeyer
7bd317a1bf link -ldl last 2017-04-19 18:30:57 -07:00
Dane Springmeyer
359372d3b2 pgsql2sqlite:also link -ldl on linux 2017-04-19 18:10:25 -07:00
Dane Springmeyer
9e7c842a26 Fix spelling mistakes in changelog [skip ci] 2017-04-13 16:39:13 -07:00
artemp
e75db3aa18 make box2d<T> adapters more generic. 2017-04-10 13:18:00 +01:00
artemp
2e0e61453b sync CHANGELOG.md with 3.0.x branch 2017-04-06 10:49:18 +01:00
artemp
20824cce79 add const_interior_rings type and stop abusing type system. (NOTE: iterator/const_iterator types are required by boost::range_iterator) 2017-04-03 13:00:35 +01:00
Dane Springmeyer
adbbdea0fb add codecov ignores 2017-03-31 17:50:18 -07:00
artemp
53a32b59b9 add boost::geometry::traits::push_back specialisation for mapnik::interior_rings<CoordinateType> 2017-03-30 14:04:57 +01:00
artemp
22c38b1046 use master branch 2017-03-30 10:07:10 +01:00
artemp
d96e6abe81 const correctness via @flippmoke 2017-03-30 09:54:12 +01:00
Artem Pavlenko
a6d3921957 Merge pull request #3646 from mapnik/geometry.hpp
Geometry.hpp
2017-03-30 09:35:56 +01:00
artemp
ef7da04cc9 cleanup 2017-03-30 09:23:58 +01:00
artemp
e3bf8cb558 use range based loop via @flippmoke 2017-03-30 09:23:11 +01:00
artemp
c28bf77d5d Merge branch 'master' into geometry.hpp 2017-03-30 08:23:56 +01:00
artemp
f9bfa596f1 update visual data 2017-03-30 08:05:24 +01:00
artemp
dd079183c5 add boost::geometry::resize and boost::geometry::clear traits specialisations for mapnik::interior_rings<CoordinateType> 2017-03-29 17:44:07 +01:00
artemp
433d95046b re-enable strategy tests 2017-03-29 15:41:39 +01:00
artemp
3e803b52bb remove has_empty + fix is_empty implementaion to work with geometry.hpp 2017-03-29 11:39:04 +01:00
Dane Springmeyer
5c81e80837 update test data to stay in sync with 3.0.x branch - mapnik/test-data-visual#46 2017-03-28 22:28:55 -07:00
Dane Springmeyer
d65fd4f7f7 improve check padding script to see deps via submodules 2017-03-28 15:19:14 -07:00
Dane Springmeyer
a53c90172c remove obsolete python remnants 2017-03-28 15:18:48 -07:00
Dane Springmeyer
641d7b647f consistently use pkg-config in both postgis plugin and pgsql2sqlite + use GDAL_CONFIG var in plugins 2017-03-28 15:18:48 -07:00
artemp
064b99168b geometry.hpp 2017-03-27 16:14:51 +01:00
artemp
1be4696d52 GeoJSON IO test - ensure geometries round-trip. 2017-03-23 14:58:39 +00:00
artemp
69e5340ceb add valid/invalid empty GeoJSON geometry tests 2017-03-23 13:44:51 +00:00
artemp
60e6f5a9ff geojson - fix geometry generator grammar. 2017-03-22 15:09:15 +00:00
Artem Pavlenko
135f70844b Merge pull request #3643 from mapnik/empty-geometries
Empty geometries
2017-03-22 09:10:03 +00:00
artemp
38b4b65911 GeoJSON - refactor geometry generator to preserve geometry type in output (ref https://github.com/mapnik/python-mapnik/issues/139) 2017-03-21 16:48:41 +00:00
artemp
b4b5e33b05 refactor WKT generator to retain geometry type for empty geometries (avoid short-cutting to POINT EMPTY)
For example:

| in |   | out   |
|`POINT EMPTY` |  <--> | 'POINT EMPTY`|
|`LINESTRING EMPTY` |  --> | 'POINT EMPTY`|

| in |   | out   |
|`POINT EMPTY` |  <--> | 'POINT EMPTY`|
|`LINESTRING EMPTY` |  <--> | 'LINESTRING EMPTY`|
etc.
2017-03-21 12:43:42 +00:00
artemp
d9063db0a0 GeoJSON - make geometry element stricter and throw on invalid input. 2017-03-21 12:40:58 +00:00
artemp
8a18ef93e0 update test data 2017-03-20 15:03:28 +00:00
artemp
5450255c5b revert back to separate tests #if HB_VERSION_MAJOR > 0 #if HB_VERSION_ATLEAST(1, 0 , 5) ref #3642 2017-03-20 14:24:34 +00:00
Dane Springmeyer
edaca3a015 update sqlite, icu, ccache, and libpq 2017-03-19 12:41:48 -07:00
artemp
f8241a96fb update visual data 2017-03-16 13:04:05 +00:00
artemp
a9aa1c69b8 save_map - support nested layers + serialize layer compositing mode 2017-03-16 12:59:52 +00:00
artemp
bb19ff948e remove QMAKE_MAC_SDK version requirement - just build with what is available 2017-03-16 12:16:54 +00:00
artemp
d44f7cc0a8 Merge branch 'mapycz-nested-layers' 2017-03-16 11:32:14 +00:00
artemp
c3bba38012 Merge branch 'nested-layers' of https://github.com/mapycz/mapnik into mapycz-nested-layers 2017-03-16 11:31:55 +00:00
Artem Pavlenko
c35ad96428 Merge pull request #3639 from mapnik/remove-mason-latest
Remove auto-publishing to mason
2017-03-16 10:06:31 +00:00
Jiri Drbalek
15daac26e7 cairo support for layer level comp-op and opacity 2017-03-16 06:54:16 +00:00
Jiri Drbalek
d7ba7dc0db agg renderer: recycle internal buffers 2017-03-16 06:54:16 +00:00
Jiri Drbalek
03929b5c76 nested layers, layer level comp-op and opacity 2017-03-16 06:54:16 +00:00
Dane Springmeyer
ee65bd33e3 remove auto-publishing to mason 2017-03-15 14:15:22 -07:00
Dane Springmeyer
0c24558db8 Merge pull request #3638 from mapnik/3.1.x-mason-upgrades
3.1.x mason upgrades
2017-03-15 12:26:46 -07:00
Dane Springmeyer
710379dce2 add codecov badge, drop coveralls [skip ci] 2017-03-15 10:05:09 -07:00
Dane Springmeyer
571ead47bc use clang++ 3.9.1 2017-03-15 09:44:33 -07:00
Dane Springmeyer
69fc58191f update compiler in circle 2017-03-15 09:41:13 -07:00
Dane Springmeyer
f42344e102 port 3614 to 3.1/master 2017-03-15 09:41:13 -07:00
artemp
d009bb8231 update visual data 2017-03-14 12:33:54 +00:00
artemp
21baa9e375 Merge branch 'lightmare-postgis-quoting' 2017-03-14 12:29:54 +00:00
artemp
1d06afeea2 Merge branch 'postgis-quoting' of https://github.com/lightmare/mapnik into lightmare-postgis-quoting 2017-03-14 12:29:32 +00:00
artemp
f3f4de154b Merge branch 'mapycz-text-extend' 2017-03-14 11:54:08 +00:00
artemp
c1053181f5 Merge branch 'text-extend' of https://github.com/mapycz/mapnik into mapycz-text-extend 2017-03-14 11:53:52 +00:00
artemp
b10d2a3dff Merge remote-tracking branch 'origin/master' 2017-03-14 11:35:20 +00:00
artemp
0e107135b2 update deps 2017-03-14 11:34:12 +00:00
Artem Pavlenko
a3d29ae52f Merge pull request #3636 from mapnik/color-emoji
Color emoji + updated harfbuzz_shaper and unicode_string_grammar
2017-03-14 11:22:57 +00:00
artemp
0dff423c44 cleanup 2017-03-14 11:22:11 +00:00
artemp
834f0ef312 add '-fno-omit-frame-pointer' to sanitize address builds for nicer stack traces in error messages. 2017-03-14 11:17:54 +00:00
artemp
203d767e73 follow up from 32f5703ed1 - more generic specialisation 2017-03-14 10:26:09 +00:00
artemp
32f5703ed1 provide is_substitute specialisation for mapnik::geometry::linear_ring<double> const& (gcc6) 2017-03-14 11:05:33 +01:00
artemp
cdfe280984 use updated test data 2017-03-08 10:56:32 +01:00
artemp
ae29012611 tests - update shaping test results 2017-03-08 10:55:52 +01:00
artemp
3ac70bb7ce update font_registration testx 2017-03-08 10:54:58 +01:00
artemp
791f7b51bb Revert "one more time."
This reverts commit 8dea549887.

Revert "fix following up 8c4fa25c8d65e75978c0a82bc6391906595ff190"

This reverts commit 8726312393.

Revert "attempt to fix "error: chosen constructor is explicit in copy-initialization" error with gcc"

This reverts commit 8c4fa25c8d.

Revert "use `initializer_list const&` to hold expected values (via @lighmare) ref #3636"

This reverts commit 47763afef3.
2017-03-07 14:25:56 +01:00
artemp
8dea549887 one more time. 2017-03-07 13:50:27 +01:00
artemp
8726312393 fix following up 8c4fa25c8d 2017-03-07 13:37:20 +01:00
artemp
8c4fa25c8d attempt to fix "error: chosen constructor is explicit in copy-initialization" error with gcc 2017-03-07 13:34:43 +01:00
artemp
47763afef3 use initializer_list const& to hold expected values (via @lighmare) ref #3636 2017-03-07 13:02:21 +01:00
artemp
d9a000372c remove -Wshadow warning (ref #3628) 2017-03-07 11:28:22 +01:00
artemp
3433397c30 test (expressions) - add more tests (ref #3616) 2017-03-06 15:59:07 +01:00
artemp
7f28246407 print compiler version during configure step (ref #3616) 2017-03-06 09:54:02 +01:00
artemp
4d57fb1a6c print compiler version during configure step (ref #3616) 2017-03-06 09:53:13 +01:00
artemp
a50efcb2bb refactor unicode string grammar - add escaped_unicode rule + use it in expressions. 2017-03-03 15:41:46 +01:00
artemp
fb7139bc63 expressions - only import escaped rule from unicode_string_grammar and construct single/double quoted string rules locally to match expression grammar. NOTE: single quoted strings don't accept unicode encodings 2017-03-03 15:14:01 +01:00
artemp
713b9e7788 take #2 - try using pair instead of tuple 2017-03-02 15:09:11 +01:00
artemp
f1de5758b2 attempting to pacify some compilers with an extra pair of brackets. 2017-03-02 14:55:00 +01:00
artemp
4509f23c94 Merge branch 'harfbuzz-shaper' into color-emoji 2017-03-02 12:27:45 +01:00
artemp
ab36ef9274 update visual test data to track harfbuzz-shaper branch. 2017-03-02 12:26:17 +01:00
artemp
1bdc8e6bad handle utf16 encoding correctly by parsing as sequence and applying utf16->utf32->utf8 conversion. 2017-03-02 11:50:38 +01:00
artemp
92f07b7a7a handle utf16 encoding correctly by parsing as sequence and applying utf16->utf32->utf8 conversion. 2017-03-01 18:46:48 +01:00
artemp
04dd05c971 minimise shared_ptr assignments and simplify code 2017-03-01 12:59:34 +01:00
artemp
d29be8a689 If I'm reading docs correctly \uNNNN + \UNNNNNNNN are correct
Revert "relax hex4 parser to allow 5 character \unnnnn code points"

This reverts commit 378fa41db6.
2017-03-01 12:08:22 +01:00
artemp
2d2c5a191b expression_grammar: re-use unicode_string_grammar and add initial support for \uNNNNN code points (TODO) 2017-03-01 11:58:18 +01:00
artemp
378fa41db6 relax hex4 parser to allow 5 character \unnnnn code points 2017-03-01 11:53:27 +01:00
artemp
571b2a0d6a Merge branch 'harfbuzz-shaper' into color-emoji 2017-03-01 11:30:33 +01:00
artemp
7cb587a901 Merge branch 'master' into harfbuzz-shaper 2017-03-01 11:30:08 +01:00
artemp
131f785dce Make parsing \xXX format strict via hex2 parser + append UTF8 encoded \xXX characters directly (fixes #3631) 2017-03-01 11:25:43 +01:00
artemp
e95b16c5ca make hex parser strict (expecting two characters after \x) to avoid greedy parsing of trailing characters as in
"\xF0\x9F\x8D\xB7abc" ==>  ... + "\xB7" +  "abc" not "\xB7abc"
2017-03-01 10:35:39 +01:00
artemp
0076a5a916 make hex parser strict (expecting two characters after \x) to avoid greedy parsing of trailing characters as in
"\xF0\x9F\x8D\xB7abc" ==>  ... + "\xB7" +  "abc" not "\xB7abc"
2017-03-01 10:34:16 +01:00
artemp
570126bd76 make hex parser strict (expecting two characters after \x) to avoid greedy parsing of trailing characters as in
"\xF0\x9F\x8D\xB7abc" ==>  ... + "\xB7" +  "abc" not "\xB7abc"
2017-03-01 10:27:12 +01:00
artemp
87c619cdc2 don't forget FT_LOAD_NO_HINTING 2017-02-28 15:13:40 +01:00
artemp
cbacaaf0c5 initialize to reasonable values. 2017-02-28 15:05:37 +01:00
artemp
1b67779290 implement color bitmap extraction/scaling/compositing into target pixmap 2017-02-28 15:04:49 +01:00
artemp
639dcae83f c++ style 2017-02-28 15:03:26 +01:00
artemp
7c93514fbc avoid division by zero (units_per_EM is set to 0 for bitmap fonts) 2017-02-28 15:01:46 +01:00
artemp
a6519c3f6b use FT_Load_Sfnt_Table to identify color fonts + load color glyphs with FT_LOAD_COLOR 2017-02-28 15:00:03 +01:00
artemp
8e97803e81 add color_font_ member 2017-02-28 14:59:14 +01:00
artemp
5492d93ccd Merge branch 'master' into harfbuzz-shaper 2017-02-27 13:24:11 +01:00
artemp
3eabd3141a sync mapnik-index and shapeindex versions with mapnik via MAPNIK_VERSION_STRING 2017-02-27 13:22:55 +01:00
artemp
6db89d459e Merge remote-tracking branch 'origin' into harfbuzz-shaper 2017-02-27 10:26:54 +01:00
Artem Pavlenko
147313af55 Merge pull request #3624 from poggs/master
Rename PostGIS' ST_Estimate_Extent to ST_EstimateExtent
2017-02-27 10:25:48 +01:00
Mickey Rose
8292edaa1a strip boost::optional from non-optional marker ptr 2017-02-22 13:37:52 +01:00
artemp
32e592fb7a use explicit const& 2017-02-22 12:33:18 +01:00
Mickey Rose
5464ae9cdf load_map: avoid segfault when ShieldSymbolizer has invalid placements 2017-02-22 12:25:20 +01:00
artemp
4faf5b054b add utf8 qualifier 2017-02-22 11:34:47 +01:00
artemp
0c0f3f1298 update test/data 2017-02-22 11:34:01 +01:00
artemp
b8523682cd use latest variant 2017-02-22 11:32:00 +01:00
artemp
43d940fe35 add berber+arabic shaping test 2017-02-22 11:31:06 +01:00
artemp
5e709997f2 add explicit u8 (utf8) qualifier 2017-02-21 13:37:22 +01:00
artemp
10b1ed2fa9 add debug mode to generate expected result + add one more test 2017-02-21 13:17:41 +01:00
artemp
8af91146c4 add an extra test 2017-02-21 12:56:36 +01:00
artemp
677ed0ebab refactor to make it easier to run multiple tests 2017-02-21 12:43:54 +01:00
artemp
745c291b1a simplify test 2017-02-20 14:23:09 +01:00
artemp
3584970fee make shaping unit test test something (work-in-progress) 2017-02-20 12:13:00 +01:00
artemp
d9c81d46fd use else if 2017-02-20 12:12:22 +01:00
Peter Hicks
f776977982 Rename PostGIS' ST_Estimate_Extent to ST_EstimateExtent 2017-02-19 20:46:30 +00:00
artemp
86e5f9305b quarantee glyphinfos has enough capacity to hold cluster 2017-02-17 17:16:36 +01:00
artemp
fbdff42d47 use std::vector<std::vector<T>> instead of std::map<unsigned,std::vector> to simplify lookups 2017-02-17 16:52:31 +01:00
artemp
20cafae780 ensure insert has worked 2017-02-17 15:40:37 +01:00
artemp
e55918788c fix test logic 2017-02-17 15:32:03 +01:00
artemp
302e4c75dd simplify further 2017-02-17 15:28:13 +01:00
artemp
fe7d1e2f53 simplify logic 2017-02-17 15:23:00 +01:00
artemp
49c28cb6ad new font fallback implementation - it is rather inefficient but attempting to do a right thing.
(NOTE: some visual text failures need further look to see if latest implementation is correct)
2017-02-17 14:20:32 +01:00
artemp
a5f00c6fa1 Merge branch 'master' into harfbuzz-shaper 2017-02-17 14:06:44 +01:00
Mickey Rose
428ba432b1 pgraster: copy quoting and interpolation changes from postgis 2017-02-10 18:55:23 +01:00
Mickey Rose
e35c1ca106 pgraster: indentation 2017-02-10 18:55:23 +01:00
Mickey Rose
a13cb382e0 postgis: test !@uservar! interpolation 2017-02-10 18:55:23 +01:00
Mickey Rose
6bbb391005 postgis: consistently quote parameters in sql 2017-02-10 18:55:22 +01:00
Mickey Rose
2587bb3a1d sql_utils: improved table_from_sql 2017-02-10 18:55:22 +01:00
Mickey Rose
a4e8ea21be sql_utils: deprecate flawed un-quote functions
unquote* just strip all quotes from both ends of the string,
and don't collapse inner quotes.

quote_attr doesn't duplicate inner quotes.
2017-02-10 18:55:22 +01:00
Mickey Rose
d0e7b715dd postgis: test table/column names containing quotes 2017-02-10 18:55:22 +01:00
Mickey Rose
d331b9d66a postgis: revamp substitution of special tokens in query
- replace boost::regex with std::regex
- use regex to match both  !mapnikvar!  and  !@uservar!
- no longer support @uservar (without surrounding !s)
2017-02-10 18:55:22 +01:00
Mickey Rose
195c3e14ce postgis: test query containing 'email@domain' 2017-02-10 18:55:22 +01:00
Mickey Rose
7b217133e2 sql_utils: on-the-fly quoting via operator << 2017-02-10 18:55:22 +01:00
artemp
4b17a417dc Merge remote-tracking branch 'origin/master' 2017-02-06 12:59:24 +01:00
artemp
f85636f769 mapnik-index - log and return on invalid bounding box if validate_features is set. 2017-02-03 10:10:09 +01:00
Mickey Rose
8e34b323b5 define PNG_FAST_FILTERS if png.h doesn't have it 2017-02-02 12:19:17 +01:00
Mickey Rose
7e2aab171f include png.h outside any namespace 2017-02-02 12:19:17 +01:00
artemp
5c9e48ef0c minor c++ style 2017-01-31 18:00:26 +01:00
artemp
755d178d20 alternative exaustive face fallback implementation ref #3534 #3559 2017-01-31 17:44:25 +01:00
artemp
df51f6087c minor c++ style 2017-01-31 17:42:24 +01:00
artemp
d053bddb43 add support for PNG filters (http://www.libpng.org/pub/png/libpng-manual.txt) ref #3479 2017-01-26 15:45:08 +01:00
artemp
2ede054e93 c++ style - use pre-(de)increment operators by default 2017-01-26 14:19:28 +01:00
artemp
f13848e210 move box2.hpp and related files into geometry dir 2017-01-26 09:51:37 +01:00
artemp
69bb8f4328 update test data 2017-01-20 09:43:37 +01:00
artemp
7c6f335fa5 fix blank line test for require headers.size() == 1 + reduce stderr verbosity. 2017-01-17 17:54:09 +01:00
artemp
a108068cf6 fix remaning std::fread usage - check return value 2017-01-13 14:57:15 +01:00
artemp
a220bda05d check return value from std::fread 2017-01-13 14:38:00 +01:00
artemp
bfc7ad397a update variant 2017-01-13 09:52:16 +01:00
artemp
f76060274d Revert back again fixing a typo! (thanks @springmeyer 2f55f0962e (commitcomment-20461372))
"It doesn't work with GCC reverting back "disable [-Wunused-result] warning GCC : https://gcc.gnu.org/bugzilla/show_bug.cgi?id=25509""

This reverts commit 2f55f0962e.
2017-01-13 09:42:12 +01:00
artemp
28c51df986 more fix GCC shadows a member warning [-Wshadow] 2017-01-13 09:38:54 +01:00
artemp
1b940bebcc attributes not opacity (ref 1c704447b7) 2017-01-12 18:18:39 +01:00
artemp
1c704447b7 more fix GCC shadows a member warning [-Wshadow] 2017-01-12 18:09:10 +01:00
artemp
0a7e8bb429 fix GCC shadows a member warning [-Wshadow] 2017-01-12 17:48:56 +01:00
artemp
2f55f0962e It doesn't work with GCC reverting back "disable [-Wunused-result] warning GCC : https://gcc.gnu.org/bugzilla/show_bug.cgi?id=25509"
This reverts commit 3c76e8d7ef.
2017-01-12 11:39:57 +01:00
artemp
3c76e8d7ef disable [-Wunused-result] warning GCC : https://gcc.gnu.org/bugzilla/show_bug.cgi?id=25509 2017-01-12 11:23:46 +01:00
artemp
7db3beda01 add parentheses to supress gcc warning [-Wparentheses] 2017-01-12 10:55:33 +01:00
artemp
de2b44712a move transform related headers into transform dir to minimize clutter 2017-01-11 11:10:03 +01:00
artemp
e582ca65b5 update test to include underscore characters in global attributes 2017-01-11 10:39:02 +01:00
artemp
91f9508654 relax expression_grammar: allow _ underscore characters in global attribute names 2017-01-11 10:38:11 +01:00
artemp
11c3d97654 transform_expressions_test - add global attribute tests ( e.g @value ) ref #3569 2017-01-11 10:25:21 +01:00
artemp
f207ec2da2 cleanup 2017-01-10 17:19:28 +01:00
artemp
fa7851ea06 add transform expressions tests (https://github.com/mapnik/mapnik/pull/141\
6) (ref #3569)
2017-01-10 17:15:05 +01:00
artemp
65dcb1c935 fix transform grammar to support whitespace/comma argument separation rules (https://github.com/mapnik/mapnik/pull/1416) ref #3569 2017-01-10 17:13:45 +01:00
artemp
243963fc2b expression_test - add tests for arbitrary space in mapnik::geometry_type attributes 2017-01-10 11:57:54 +01:00
artemp
7326c0d558 expressions - simplify attribute parsing by combining feature attribute and geometry_type attribute processing. 2017-01-10 11:54:08 +01:00
Artem Pavlenko
e5a93bce52 Merge pull request #3596 from mapycz/text-simple-placement-center
Text simple placement: add center 'C' placement
2017-01-09 11:57:03 +01:00
artemp
6190784350 remove remaining usage of deprecated dymamic exceptions: dtors are implicitely noexcept + qualify what methods with noexcept 2017-01-09 11:47:52 +01:00
artemp
baded7d9ab fix typo 2017-01-09 11:45:15 +01:00
artemp
4bc3a79f8c remove bogus throw() specifier from 'add_attribute' 2017-01-09 11:35:14 +01:00
Jiri Drbalek
4eae86b7bc text simple placement: add center 'C' placement 2017-01-08 09:05:44 +00:00
Jiri Drbalek
10deff9d5d remove unnecessary breaks 2017-01-08 09:04:12 +00:00
artemp
d9d842f29c dynamic exceptions deprecated in c++11 and removed in c++17 (http://en.cppreference.com/w/cpp/language/except_spec) 2017-01-06 19:06:49 +01:00
artemp
6e3dc91325 remove demo/python (moved to python-mapnik) 2017-01-05 16:51:59 +01:00
Dane Springmeyer
4a99e00177 Point as latest mason rather than branch 2017-01-04 11:45:03 -08:00
artemp
07ab49830f disable is_substitute instantiation for BOOST_VERSION > 106300, fixes gcc6+boost-1_63 build 2017-01-04 18:39:42 +01:00
artemp
e210dfaf8c fix GCC warning by adding missing parentheses around comparison in operand of '|' 2017-01-04 18:23:31 +01:00
Artem Pavlenko
d99c3f6cf2 Merge pull request #3585 from lightmare/groupsym-thunk-list
minor render_thunk_list change
2017-01-04 10:29:49 +01:00
Mickey Rose
ca89c587bd can't store noncopyable list in std::vector
std::list can have a throwing move constructor.
std::vector of such lists makes copies when growing its storage array,
it doesn't move them.
render_thunk_list is noncopyable (because render_thunk is noncopyable),
and so can't be stored in std::vector in some STL implementations.
2017-01-03 21:43:14 +01:00
Mickey Rose
962bcf84c5 change render_thunk_list to std::list<render_thunk>
Wrapping render_thunk in std::unique_ptr is one extra allocation per
element, with no purpose. The somewhat costly xyz_render_thunk move
constructor is only called once upon insertion, regardless of whether
we're emplacing render_thunk or unique_ptr.
2017-01-03 20:53:55 +01:00
artemp
d3a9e4c4d7 revive support for an empty array => geometry_empty
RFC 7946 "...GeoJSON processors MAY interpret Geometry objects with
          empty "coordinates" arrays as null objects."
2017-01-03 16:17:46 +01:00
artemp
7a8e8014b7 Revert "add ```template <typename T>" - oops we don't need this in master!
This reverts commit b3c4aff2c7.
2017-01-03 11:28:40 +01:00
artemp
b3c4aff2c7 add ```template <typename T>
transform_node(boost::value_initialized<T> const&)
          : base_() {}
``` to address

```c:\mb\windows-builds-64\packages\mapnik-windows\include\mapnik/transform_expression.hpp(175):
error C2664: 'mapbox::util::variant<mapnik::identity_node,mapnik::matrix_node,mapnik::translate_node,mapnik::scale_node,mapnik::rotate_node,mapnik::skewX_node,mapnik::skewY_node>::variant(mapbox::util::variant<mapnik::identity_node,mapnik::matrix_node,mapnik::translate_node,mapnik::scale_node,mapnik::rotate_node,mapnik::skewX_node,mapnik::skewY_node> &&) noexcept(false)':
cannot convert argument 1 from 'const boost::value_initialized<T>' to 'mapbox::util::no_init' [c:\mb\windows-builds-64\packages\mapnik-windows\mapnik-gyp\build\mapnik.vcxproj]
```
when building with VS2017 RC
2017-01-03 11:24:32 +01:00
artemp
d5405d55c7 use a copy of start iterator when extracting bounding boxes + increase verbose output on failures 2017-01-02 11:47:26 +01:00
lightmare
e41f41b0a6 Merge pull request #3566 from mapycz/better-largest-bbox
Better largest bbox
2017-01-02 03:25:14 +01:00
lightmare
a40ce9eefd Merge pull request #3578 from mapnik/cxx11-friendly
C++14-like type traits aliases
2017-01-02 03:24:59 +01:00
artemp
ed648ced46 SVG transform - implement in terms of boost::spirit::x3 2016-12-23 16:32:05 +01:00
artemp
3b52ae97c0 add missing header 2016-12-23 14:42:18 +01:00
artemp
95cc560167 SVG points - implement using boost::spirit::x3 + refactor parse_rule instantiations into separate *.cpp 2016-12-23 14:40:59 +01:00
artemp
584fda88e0 SVG path grammar - return start rule by const& 2016-12-23 13:26:37 +01:00
artemp
30749031cf SVG path parser - boost::spirit::x3 based implementation 2016-12-22 14:57:26 +01:00
artemp
9d0096eff6 remove unused include directive 2016-12-21 15:20:52 +01:00
artemp
506390b735 use curly braces initialiser (c++ style) 2016-12-21 09:05:31 +01:00
artemp
8452410784 minor formatting 2016-12-20 18:37:20 +01:00
artemp
5745bedbd9 update copyright year to 2016 2016-12-20 17:57:22 +01:00
artemp
7f4fd0cc76 include guards - add missing and normalise namings 2016-12-20 17:45:38 +01:00
artemp
b73901edab remove from forthcoming 3.1.x release 2016-12-20 17:45:00 +01:00
artemp
f3cd36f0cd reserve std::vector capacity prior oppending + remove const qualifier 2016-12-20 10:40:50 +01:00
artemp
8b049230b3 topojson_grammar_x3 : make rules const 2016-12-20 10:31:52 +01:00
artemp
f1ccc66162 avoid parsing synthesised std::tuple<> + more fine-grained rules 2016-12-19 17:53:58 +01:00
artemp
47cdd22fad simplify further 2016-12-19 17:06:27 +01:00
artemp
4475754e8a deduce types 2016-12-19 17:02:45 +01:00
artemp
c5b5bc0237 fix namespace prefix 2016-12-19 16:34:16 +01:00
artemp
18f721fd17 TopoJSON - implement parsing using spirit::x3 2016-12-19 16:18:19 +01:00
artemp
053eca1232 JSON - add geometry_grammar_x3 2016-12-16 11:21:20 +01:00
Dane Springmeyer
068ead5a13 remove duplicate sudo:false from travis 2016-12-15 13:34:08 -08:00
Mickey Rose
e6ed16e94e make mapnik_value_type_t C++11-friendly 2016-12-15 11:58:50 +01:00
Mickey Rose
568507349b bring C++14 type traits aliases for C++11 support 2016-12-15 11:51:02 +01:00
artemp
7affd45511 refactor json_value into separate header and reduce include bloat 2016-12-15 11:29:29 +01:00
artemp
b5b6548a81 update variant 2016-12-15 10:34:40 +01:00
artemp
4ba87b1e9d c++14 support is not sufficient on windows: reverting back and start tracking Windows workarounds in separate branch
Revert "move BOOST_SPIRIT_DEFINE into separate headers + use across all grammar defs (#3573)"

This reverts commit 81cfa721db.

Revert "windows : fix errors C3259 + C3249"

This reverts commit 8327905aba.

Revert "Workaround for VC++ C2995 via redifining BOOST_SPIRIT_DEFINE macro (#3573)"

This reverts commit 2a2f0bf00a.
2016-12-14 17:11:59 +01:00
artemp
81cfa721db move BOOST_SPIRIT_DEFINE into separate headers + use across all grammar defs (#3573) 2016-12-14 16:35:24 +01:00
artemp
8327905aba windows : fix errors C3259 + C3249 2016-12-14 15:53:07 +01:00
artemp
2a2f0bf00a Workaround for VC++ C2995 via redifining BOOST_SPIRIT_DEFINE macro (#3573) 2016-12-14 15:10:22 +01:00
artemp
9f91bb018a update deps 2016-12-14 11:17:42 +01:00
artemp
e46785a063 wrap grammar into anonymous namespace - attempting to fix VC++ compilation issue (#3573) 2016-12-14 10:49:11 +01:00
Artem Pavlenko
9010cd9ac6 Merge pull request #3572 from mapnik/issue-3570
simplify mapnik::value conversion rules
2016-12-14 10:22:35 +01:00
Mickey Rose
7c14964de3 simplify mapnik::value conversion rules
- fixes #3570

- avoids recursive exception-specification on value constructor
  by only constructing a temporary for arithmetic types (everything
  else passes a reference to the base variant constructor)

- also removes `is_same<decay_t<T>, value>` SFINAE check -- because
  we're only passing a reference down, explicitly forcing the compiler
  to use the implicitly-defined copy/move instead is pointless
2016-12-14 02:37:27 +01:00
artemp
81fafe8198 update test to use std::unordered_map<mapnik::value, mapnik::value> 2016-12-13 17:03:09 +01:00
artemp
e3a1efabe9 use latest mapbox::variant 2016-12-13 16:39:16 +01:00
artemp
e40a1d9a15 expand std::hash<mapnik::value> and operator== test for all types in mapnik::value 2016-12-13 16:16:19 +01:00
artemp
c2a61161a6 remove hash_combine (unused) 2016-12-13 15:51:57 +01:00
artemp
0307499753 simplify hash calculation (we don't need combine with which(), using hash<T> is sufficient) 2016-12-13 15:50:00 +01:00
artemp
8e15353818 minor format tweak 2016-12-13 15:49:03 +01:00
artemp
b7a4cd99d7 update BOOST_MIN_VERSION to 1.61 2016-12-09 17:55:51 +01:00
artemp
2924d736a8 update version to 3.1.0 2016-12-09 17:07:23 +01:00
artemp
fc54faac54 make parse_map_sizes standalone method + upgrade parser to use boost::spirit::x3 2016-12-09 11:52:25 +01:00
artemp
c5174d2862 port parse_hex to use boost::spirit::x3 2016-12-09 11:49:53 +01:00
artemp
5eaf37404a remove unused using directive 2016-12-09 11:49:08 +01:00
artemp
0d703ee552 cleanup include directives 2016-12-08 18:55:55 +01:00
artemp
1372ca48ef SConstruct - require c++14 2016-12-08 10:43:25 +01:00
artemp
fe7e9a7dc5 use mapbox namespace to fix name resolution 2016-12-06 15:14:28 +01:00
artemp
87c65e888d update variant dep 2016-12-06 14:56:52 +01:00
artemp
a07a8cd6fe use <mapnik/util/variant_io.hpp> which has specialisation for boolean type 2016-12-06 14:56:04 +01:00
artemp
df10fab439 only add valid bounding boxes (make backward compatible) 2016-12-06 12:23:09 +01:00
talaj
218fba4479 Merge pull request #3529 from lightmare/group-pair-layout
fix #3526 GroupSymbolizer PairLayout with 3+ items
2016-12-05 21:35:11 +01:00
Mickey Rose
cb41fc5d48 fix #3526 GroupSymbolizer PairLayout with 3+ items 2016-12-05 16:26:03 +01:00
Jiri Drbalek
6364e07d71 duplicate code elimination 2016-12-05 11:25:33 +01:00
Jiri Drbalek
2174c10b2f find max element instead of std::sort 2016-12-03 14:33:55 +00:00
Jiri Drbalek
4cdc3428bd remove redundant code 2016-12-03 13:10:07 +00:00
Dane Springmeyer
ec5964d855 Merge pull request #3568 from mapnik/gcc-again
Travis: Add g++ testing, upgrade to clang++ 3.9, downgrade to libstdc++-4.9
2016-12-02 14:11:09 -08:00
Dane Springmeyer
05936826b3 allow visual test failures with g++ https://github.com/mapnik/mapnik/issues/3567 2016-12-02 14:05:16 -08:00
Dane Springmeyer
8262eb5206 avoid -Wshadow and 'unrecognized command line option' with gcc 2016-12-02 13:43:43 -08:00
Dane Springmeyer
9cc8af9173 try g++6 on precise 2016-12-02 13:43:42 -08:00
Dane Springmeyer
e57ac30690 use clang 3.9, g++-6 2016-12-02 13:43:42 -08:00
artemp
5ea5f18a7e cleanups 2016-12-02 12:42:07 +01:00
artemp
6824f4c477 fix more gcc warnings 2016-12-02 11:42:57 +01:00
artemp
069de8e266 fix gcc6 compilation issue 2016-12-02 11:04:11 +01:00
Dane Springmeyer
8b6059eab6 mason packages are currently built with -D_GLIBCXX_USE_CXX11_ABI=0 2016-12-01 09:50:34 -08:00
artemp
2f8da6dfd5 reduce compiler warnings (gcc 6) 2016-12-01 17:17:56 +01:00
artemp
410a2ce7ca from_geojson(json, geometry) - remove temp feature/ parse directly into geometry 2016-11-30 12:21:56 +01:00
artemp
56d5ffb473 remove unused headers 2016-11-30 12:21:38 +01:00
artemp
b01481ded7 refactor feature_grammar_x3 to have a cleaner separation between feature and geometry rules 2016-11-30 11:33:35 +01:00
artemp
2dc57effb8 allow null geometry 2016-11-29 16:26:58 +01:00
Artem Pavlenko
2f5c12f28a Merge pull request #3560 from mapycz/minor-cleanup
remove methods that are not referenced anywhere
2016-11-29 16:02:58 +01:00
Jiri Drbalek
2b852ad1f9 remove methods that are not referenced anywhere 2016-11-29 14:55:06 +00:00
artemp
f7cf220688 fix Makefike - remove utils/mapnik-index/process_geojson_file.o 2016-11-29 15:28:32 +01:00
artemp
9887270b9e Merge branch 'develop-master' 2016-11-29 11:18:31 +01:00
artemp
d88bf9e1ef remove unused old headers 2016-11-29 10:48:48 +01:00
artemp
36eb7f61bd implement from_geojson in terms of parse_(feature|geometry) 2016-11-29 10:48:06 +01:00
artemp
941a025682 remove spirit::qi usage from (Geo)JSON 2016-11-29 10:46:23 +01:00
artemp
0ec510025d mapnik-index - remove -x3 option, use process_geojson_x3 always 2016-11-29 09:20:41 +01:00
artemp
2fcd608ab3 remove spirit spirit::qi usage 2016-11-28 18:42:29 +01:00
artemp
160c1c9471 pass iterator pair by ref,const& ref to match spirit::x3 APIs and be able check for fully consumed input (needed by geojson.input logic) 2016-11-28 18:40:03 +01:00
artemp
f4f39993d0 allow accessing geometry by ref 2016-11-28 18:38:40 +01:00
artemp
cc9f23c470 allow empty "properties" 2016-11-28 18:38:04 +01:00
artemp
b05d0caba1 implement support for "GeometryCollection" type 2016-11-28 17:05:46 +01:00
artemp
0ea1c7cce2 Merge branch 'master' into develop-master 2016-11-28 15:26:13 +01:00
artemp
e6eda7e8b9 use parse_feature() 2016-11-28 10:28:12 +01:00
artemp
ac3e72703d use spirit::x3 based extract_bounding_boxes 2016-11-28 10:16:25 +01:00
artemp
1e2b4c6bc1 instantiate require parse_rule's 2016-11-28 10:15:17 +01:00
artemp
af1b39c689 support both box2d<float> and box2d<double> 2016-11-28 10:14:49 +01:00
artemp
f422da8681 sanitise parse_rule instantiations via BOOST_SPIRIT_INSTANTIATE and OOST_SPIRIT_INSTANTIATE_UNUSED macros 2016-11-27 17:07:04 +01:00
artemp
d4e1cb9ae7 add an extra extract_bounding_boxes_reverse_context_type definition 2016-11-27 17:06:02 +01:00
Artem Pavlenko
765922e42f Merge pull request #3556 from mapnik/minor-cleanup
remove superfluous declaration
2016-11-25 20:39:23 +01:00
artemp
f32b423428 attempting to keep clang on Travis happy 2016-11-25 17:59:44 +01:00
artemp
c04d8bf082 re-enable GeoJSON feature validation 2016-11-25 17:50:33 +01:00
artemp
8158293b16 fix std:: namespace :) 2016-11-25 17:47:41 +01:00
artemp
1a16dfd8c2 fix namespace 2016-11-25 17:19:30 +01:00
artemp
c5e44cc7a6 add missing extract_bounding_boxes_x3.cpp back 2016-11-25 17:16:13 +01:00
artemp
a40d4ee83f Revert "move extract_bounding_boxes_x3 back into mapnik-json.a"
This reverts commit 44fc648cad.
2016-11-25 17:01:01 +01:00
artemp
483f709541 don't include xxx_def.hpp + make rules const 2016-11-25 16:52:56 +01:00
artemp
7decec426d mapnik-index update build script 2016-11-25 16:52:19 +01:00
artemp
7a819d94fa manually add missing parse_rule instantiation (FIXME) <-- must a better way perhaps via adding another macro 2016-11-25 16:51:15 +01:00
artemp
236d42402f instatiate parse_rules via BOOST_SPIRIT_INSTANTIATE 2016-11-25 16:50:15 +01:00
artemp
8a436c8cdc add extract_bounding_boxes_x3 parser configuration 2016-11-25 16:49:42 +01:00
artemp
00b2bf013a add missing generic_json_grammar_x3.cpp 2016-11-25 16:48:56 +01:00
artemp
44fc648cad move extract_bounding_boxes_x3 back into mapnik-json.a 2016-11-25 16:48:34 +01:00
artemp
be4f9ca79b add missing context type definitions + BOOST_SPIRIT_INSTANTIATE_UNUSED macro to instantiate parse_rule with boost::spirit::x3::unused_type attribute 2016-11-25 16:46:10 +01:00
artemp
163a82fd1e add feature_grammar_x3 implementation 2016-11-25 16:45:23 +01:00
artemp
cad029bf7c make hex rules const 2016-11-25 16:44:20 +01:00
talaj
994a327c7f remove superfluous declaration 2016-11-25 13:31:55 +01:00
artemp
23ba18ead2 make rules const 2016-11-25 11:48:16 +01:00
artemp
988966c68e declare in using one macro 2016-11-25 11:47:33 +01:00
artemp
4aa60d669e adapt box2d<float> to boost::geometry 2016-11-23 18:22:11 +01:00
artemp
71c112a0b0 add coord2f type 2016-11-23 18:21:44 +01:00
artemp
a112e88e23 fix compilation - move extract_bounding_boxes into mapnik-index src dir 2016-11-23 17:44:35 +01:00
artemp
ed5ee69c3c refactor GeoJSON bounding box extraction into separate method for re-use and more... 2016-11-23 16:18:38 +01:00
artemp
20d6f84b3b use char const* 2016-11-22 10:43:41 +01:00
artemp
5834de9b1f use parse_feature method in geojson.input 2016-11-21 16:35:27 +01:00
artemp
2a0bc9db6c GeoJSON - refactor feature/geometry parsing 2016-11-21 16:08:15 +01:00
artemp
fe0b0a7f2d update deps/mapbox/variant to the latest HEAD 2016-11-21 12:01:09 +01:00
artemp
3d629bf76d add missing generic_json_grammar_x3 2016-11-21 11:15:21 +01:00
artemp
7d77835080 update deps/mapbox/variant 2016-11-21 10:49:17 +01:00
artemp
e5c08800eb update deps/mapbox/variant 2016-11-21 10:48:10 +01:00
artemp
4e646c1323 handle properties 2016-11-18 15:51:39 +01:00
artemp
aca229c2bb implement custom feature GeoJSON parser for improved performance 2016-11-18 15:17:23 +01:00
artemp
f64db40a8a don't catch exceptions in featureset::next() as expected behaviour is to throw 2016-11-18 09:43:53 +01:00
artemp
ead152499b fix - ensure stringifier called recursively for nested json objects 2016-11-18 09:42:47 +01:00
artemp
e6e468dc9e Merge branch 'master' into develop-master 2016-11-18 09:05:19 +01:00
artemp
d286b75fb5 make keys member var + cache geojson grammar 2016-11-17 17:36:01 +01:00
Artem Pavlenko
a9af4e6b1c Merge pull request #3551 from tomhughes/pgraster
Use 2D box for pgraster bounding box
2016-11-17 17:34:00 +01:00
Tom Hughes
a3106a6a6e Use 2D box for pgraster bounding box
Using a 3D box causes errors with postgis 2.3 when clipping is
enabled as ST_Clip throws an error clipping a raster to a 3D box.
2016-11-17 16:30:18 +00:00
artemp
22a6652160 use spirit::x3 based parser for disk-indexed GeoJSON access 2016-11-17 16:45:11 +01:00
artemp
493b662f16 add create_feature helper method (geojson_value -> mapnik::feature_impl) 2016-11-17 16:44:09 +01:00
artemp
21a121df18 avoid name clashing 2016-11-17 13:13:07 +01:00
artemp
ca96d3e137 fix duplicate feature to geojson code 2016-11-17 10:33:05 +01:00
artemp
190023a085 remove unused include (#include <mapnik/json/value_converters.hpp>) 2016-11-17 10:31:55 +01:00
artemp
fec5715a69 update to use boost::bimap 2016-11-16 16:05:40 +01:00
artemp
4588c23274 use boost:bimap to store key/name mapping for inverse searching caps 2016-11-16 16:04:54 +01:00
artemp
69b79b303f make create_geometry a method 2016-11-16 16:03:25 +01:00
artemp
c2d7ecbef7 move keys_map initilizer with well-known-names into separate inline method 2016-11-15 17:23:27 +01:00
artemp
1b74544b08 start well-known-names enum from 1 + pre-initialise keys_map with well-known-names 2016-11-15 11:18:44 +01:00
artemp
d6bedd235c parse well-known-names as un-quoted strings 2016-11-15 11:16:58 +01:00
artemp
1e238be7ee move wkn_to_string to json_grammar_config.hpp 2016-11-15 10:15:10 +01:00
artemp
c860f9e465 add well_known_names to string mappings 2016-11-15 10:14:10 +01:00
artemp
ae30675e98 move json well_known_names 2016-11-15 10:13:36 +01:00
artemp
5ef77d07b9 update deps/mapbox/variant to the lastest HEAD 2016-11-15 09:32:27 +01:00
Dane Springmeyer
8adc190117 new publish vars 2016-11-14 15:47:20 -08:00
Dane Springmeyer
3283f50639 Merge branch 'master' of github.com:mapnik/mapnik into develop-master 2016-11-14 15:32:39 -08:00
Dane Springmeyer
5a6d16d4fe default scale_factor for filter_visitor (unbreaks node-mapnik compile) 2016-11-14 15:31:18 -08:00
Dane Springmeyer
4449f81e03 restore to_wkt on geometry<std::int64_t> 2016-11-14 15:23:29 -08:00
Dane Springmeyer
657dd7d73a suppress boost warnings 2016-11-14 15:04:07 -08:00
artemp
6b4638a955 add -x3 option to mapnik-index to test new json parser 2016-11-14 15:57:34 +01:00
artemp
0e9f06d221 more comprehensive validation implementation 2016-11-14 12:58:13 +01:00
artemp
92d35d1e40 fix json_value name clashing + add skeleton feature validation method 2016-11-14 12:18:36 +01:00
artemp
2b6f23890b remove redundant mapnik::util::recursive_wrapper 2016-11-14 12:13:26 +01:00
artemp
252a0366e9 consistent usage of iterator type + cleanups 2016-11-11 15:24:11 +01:00
artemp
f888fef86a update variant 2016-11-11 15:05:46 +01:00
artemp
99ce79fd36 allow short style syntax for long options e.g "-x3", "-validate-features" etc. 2016-11-11 10:48:03 +01:00
artemp
19f1af3861 mapnik-index - add optional 'fast' spirit::x3 GeoJSON parsing. Activated by "--x3" program option. 2016-11-11 10:40:52 +01:00
artemp
fd36ac5279 Merge branch 'master' into geometry-refactor 2016-11-10 18:01:11 +01:00
artemp
6fb3dbd63f remove BIGINT redifinition 2016-11-10 17:28:16 +01:00
artemp
e46a52c3f0 GeoJSON - spirit::x3 based parsing building blocks 2016-11-10 17:26:24 +01:00
artemp
f014555913 Merge branch 'master' into develop-master 2016-11-09 11:02:41 +01:00
artemp
2757ec8973 update variant submodule 2016-11-09 10:47:40 +01:00
artemp
7a880737e7 Merge branch 'master' into develop-master 2016-11-09 10:35:30 +01:00
Artem Pavlenko
bc9cb5d90c Remove Circle badge it appears to be broken 2016-11-09 10:20:00 +01:00
artemp
88b16e0ca8 pass context by const ref + extract _attr(ctx) once and re-use 2016-10-20 17:16:03 +02:00
artemp
eea427b19f cleanup include directives 2016-10-19 13:15:59 +02:00
artemp
7622aa25be cleanup include directives 2016-10-19 13:15:15 +02:00
artemp
e74af890fb Silence -Wundefined-var-template warnings in enumeration.hpp 2016-10-17 16:58:22 +02:00
artemp
9846632daa Merge branch 'master' into develop-master 2016-10-17 16:56:08 +02:00
artemp
f18737f974 update deps 2016-10-17 16:35:20 +02:00
artemp
7a64fae41f update visual test data 2016-10-17 16:34:40 +02:00
Artem Pavlenko
be2f1a147b Merge pull request #3537 from mapycz/fix-blur-scale-factor
Fix blur with scale_factor
2016-10-17 16:33:04 +02:00
Jiri Drbalek
9248fba0f0 update visual test data 2016-10-17 12:37:53 +00:00
Jiri Drbalek
0221cd36df take scale_factor into account when inflating buffer 2016-10-17 11:59:21 +00:00
Jiri Drbalek
b830469d2d multiply blur radius by scale_factor 2016-10-17 11:59:21 +00:00
artemp
1c0abe5e2f update deps/mapbox/variant 2016-10-17 11:01:07 +02:00
artemp
6790e27712 remove redundant includes directives 2016-10-17 10:49:56 +02:00
artemp
709d8409cc Merge branch 'master' into develop-master 2016-10-17 09:47:00 +02:00
Artem Pavlenko
e3041f07c7 Merge pull request #3535 from sebastic/dependencies-typo
Fix 'depedencies' typo, replace with 'dependencies'.
2016-10-17 09:42:52 +02:00
Bas Couwenberg
01699fe81e Fix 'depedencies' typo, replace with 'dependencies'. 2016-10-15 20:07:52 +02:00
artemp
62012fbf19 re-use literal parser implementation between separator and quote primitives 2016-10-14 14:32:44 +02:00
artemp
1e66580f0d add explicit 'types' branch to "deps/mapbox/variant" 2016-10-14 14:26:10 +02:00
artemp
df12183e10 re-use object file to avoid duplicate compilation 2016-10-14 14:25:34 +02:00
artemp
83cc819c39 upgrade CSV parser to boost::spirit::x3 2016-10-14 14:24:44 +02:00
artemp
01fbbafc26 remove duplicate 'transcoder_tag` 2016-10-14 09:24:52 +02:00
artemp
558fa0cdaa remove unused #include <mapnik/expression_grammar_x3_config.hpp> 2016-10-13 17:00:12 +02:00
artemp
4c7d4a51e6 remove unused <bitset> header 2016-10-13 17:00:12 +02:00
artemp
b27cddc101 Silence -Wundefined-var-template warnings in enumeration.hpp 2016-10-13 17:00:12 +02:00
artemp
75024c067c remove bogus template instantiations 2016-10-13 17:00:12 +02:00
artemp
d99b4eaeb4 remove unused include directive 2016-10-13 17:00:12 +02:00
artemp
4384178e3f update deps/mapbox/variant 2016-10-13 17:00:12 +02:00
artemp
d934630bc5 Fix clang >= 3.9.0 compilation by using mapbox::util::variant as alias (via deps/mapbox/variant => "types" branch) 2016-10-13 17:00:12 +02:00
artemp
ab86171c2b GeoJSON generator - implement using geometry<double> karma adapters 2016-10-13 17:00:12 +02:00
artemp
b770db56c3 remove unused rule 2016-10-13 17:00:12 +02:00
artemp
9de3c80b0d add specialisations for coord_type = std::int64_t 2016-10-13 17:00:12 +02:00
artemp
a63a491ba0 wkt generator - remove boost::phoenix headers 2016-10-13 17:00:12 +02:00
artemp
beee2fd539 mapnik::geometry - refactor karma adaper into separate header for re-use 2016-10-13 17:00:12 +02:00
artemp
9853353353 adapt mapnik::geometry::geometry<double> to work with boost::spirit::karma + simplify and optimise WKT generator 2016-10-13 17:00:12 +02:00
artemp
bdaef2cc91 variant - pin to 'types' branch (requires types typedef) 2016-10-13 17:00:11 +02:00
artemp
67468ef356 refactor path_expression_grammar 2016-10-13 17:00:11 +02:00
artemp
d2f64604a3 consistently return x3 grammars by const& 2016-10-13 17:00:11 +02:00
artemp
1cb966cee2 upgrade WKT grammar to boost::spirit::x3 2016-10-13 17:00:11 +02:00
artemp
3d80a62531 remove unused include directives 2016-10-13 17:00:11 +02:00
artemp
ce0f87fb71 merge spirit-x3 2016-10-13 17:00:11 +02:00
artemp
9a82ffbde7 add geometry and value dirs 2016-10-11 18:01:30 +02:00
artemp
923efd589c geometry_to_path.hpp => geometry/to_path.hpp 2016-10-11 18:01:30 +02:00
artemp
b5c9966e4b refactor value related objects into include/value dir 2016-10-11 18:01:30 +02:00
artemp
8ce7a1c43d refactor souce code files with the following rule: the physical filesytem path matches namespace structure
e.g `mapnik::geometry::centroid()` -> `$(MAPNIK_SOURCE)/include/mapnik/geometry/centroid.hpp`
2016-10-11 18:01:29 +02:00
Artem Pavlenko
d6a3be87a4 Merge pull request #3511 from mapnik/unbundle-unifont
Unbundle unifont
2016-10-11 17:57:06 +02:00
Artem Pavlenko
605ad3b2a8 Merge pull request #3525 from mapycz/fix-extent-intersect
fix intersecting extents in different projections
2016-10-11 17:56:45 +02:00
Mickey Rose
d18e65dbdf travis: also search unknown submodule commit in branches 2016-10-05 20:03:45 +02:00
Jiri Drbalek
0f3eecbe5e fix intersecting extents in different projections 2016-09-27 20:36:34 +00:00
artemp
a0a5085917 add GeoJSON num_features_to_query unit test (ref #3515) 2016-09-23 11:56:43 +02:00
artemp
dad0ca2071 clamp num_features_to_query to 1...max range (at least one feature will queried) + use std::size_t for feature count (ref #3515) 2016-09-23 11:56:32 +02:00
artemp
8a8427daed GeoJSON feature/geometry grammars - split (a | b | ...) % lit(',') rule to avoid creating bogus temp synthesised attribute e.g boost::variant<a,b,..> which causes clang compiler >= 3.9 to segfault. (ref #3507)
NOTE: In general many Boost.Spirit gotchas can be fixed by simplifying rules (better control what gets synthesied under the bonet)
2016-09-22 12:18:34 +02:00
artemp
094994ef54 update CHANGELOG for mapnik v3.0.12 release [skip ci] 2016-09-08 10:36:21 +02:00
Dane Springmeyer
1d22d860af Merge pull request #3513 from lightmare/fix-image-swap
Fix image swap
2016-09-07 21:03:32 -07:00
Dane Springmeyer
cbe86b0c59 add script for 'make test-release' 2016-09-07 21:02:04 -07:00
Dane Springmeyer
b6a48ff354 fixes to automated release process 2016-09-07 19:53:01 -07:00
Dane Springmeyer
c6c94e760e release process: move to github releases 2016-09-07 16:54:39 -07:00
Mickey Rose
870b890042 remove redundant member pData_ from mapnik::image
I believe this is better than fixing swap() by also
swapping pData_
2016-09-07 20:03:17 +02:00
Mickey Rose
e25bc271ec add unit test for image::swap 2016-09-07 19:23:36 +02:00
Jiri Drbalek
530cead861 update visual test data 2016-09-07 11:46:59 +00:00
Jiri Drbalek
6e489a95a3 add extend parameter of text symbolizer 2016-09-07 11:46:59 +00:00
Jiri Drbalek
8733622885 add extend_converter 2016-09-07 11:46:59 +00:00
Jiri Drbalek
237022719a unit tests: move fake_path to separate file 2016-09-07 11:15:31 +00:00
artemp
4f008c6f2f update CHANGELOG for mapnik v3.0.12 release [skip ci] 2016-09-07 09:54:07 +02:00
artemp
dcf3857d32 setting up for mapnik v3.0.12 release [skip ci] 2016-09-07 09:51:59 +02:00
Dane Springmeyer
0f81046632 unbundle unifont 2016-09-06 12:09:51 -07:00
artemp
a63a50556a Merge branch 'master' into geometry-refactor 2016-09-06 10:01:15 +02:00
Dane Springmeyer
b481d62d3d block invalid publish [skip ci] 2016-09-06 00:26:45 -07:00
Dane Springmeyer
48316d47b0 fixes for auto-release script 2016-09-06 00:21:20 -07:00
Dane Springmeyer
4cc0706940 start working on #3335 2016-09-06 00:21:20 -07:00
bergwerkgis
49a1799d4f Merge branch 'master' of https://github.com/mapnik/mapnik 2016-09-05 14:00:34 +00:00
bergwerkgis
28162f0720 [skip travis] fix relative path to get-boost-icu-version-from-sdk.ps1 (differs when called from windows-builds) 2016-09-05 14:00:17 +00:00
artemp
66999f1f87 travis up from 35 to 40 min 2016-09-05 15:54:40 +02:00
artemp
014f98043f add missing include path 2016-09-05 15:41:14 +02:00
artemp
fc0b57de24 update CHANGELOG 2016-09-05 15:41:14 +02:00
bergwerkgis
a79bd73105 refs #3509, get boost and icu versions directly from SDK files 2016-09-05 13:13:24 +00:00
artemp
747ca7470c remove duplicate #pragma 2016-09-05 11:39:36 +02:00
artemp
8e0e344b72 Merge branch 'master' into geometry-refactor 2016-09-05 09:41:52 +01:00
Dane Springmeyer
3741a7f348 fix -Wshadow warnings caught by g++-5 2016-09-03 09:58:40 -07:00
Dane Springmeyer
e580d0b1d6 simplify travis-command-wrapper.py output 2016-09-03 09:32:20 -07:00
Dane Springmeyer
076ab1fa6c fix mason cflags/ldflags return 2016-09-03 09:31:26 -07:00
Dane Springmeyer
c3f7d947a6 travis: up to 35 min limit 2016-09-02 21:12:08 -07:00
Dane Springmeyer
3be9a623fc travis: up to 25 min limit 2016-09-02 19:06:07 -07:00
Dane Springmeyer
c67e505a74 mason: install zlib system symlink to ensure consistently zlib linking [skip ci] 2016-09-02 17:52:02 -07:00
Dane Springmeyer
7dcf8eac35 increase deadline to 15 min 2016-09-02 17:47:40 -07:00
Dane Springmeyer
57331a40ce try to get travis-command-wrapper deadline working 2016-09-02 17:19:22 -07:00
Dane Springmeyer
acd90042fb geojson.input: minor code adjustments
- Avoids making copy of inline string to save memory
 - Moves duplicated code out of #ifdef to be more readible
2016-09-02 15:51:58 -07:00
Dane Springmeyer
fa44f0e247 Add memory_datasource test + fix returning of invalid_featureset for emptyset 2016-09-02 15:09:45 -07:00
Dane Springmeyer
73715afdb8 travis: fix broken grep 2016-09-02 14:44:35 -07:00
Dane Springmeyer
35d9435952 appveyor: only upload test failures not all visual tests 2016-09-02 12:56:00 -07:00
Dane Springmeyer
09ec0ba709 stop build at 25 minutes (well before travis fails the job at 50) to ensure at least partial ccache results are uploaded 2016-09-02 12:09:19 -07:00
Dane Springmeyer
687af49f47 bump BOOST_VERSION 2016-09-02 12:00:57 -07:00
Dane Springmeyer
5a21b1fc05 better wrapper args 2016-09-01 18:53:55 -07:00
Dane Springmeyer
7075a361cc try travis-command-wrapper.py to help cache get created even on job that timed out - refs travis-ci/travis-ci#4472 2016-09-01 18:13:06 -07:00
Dane Springmeyer
d19c38de17 upgrade ccache / convert to generic travis language 2016-09-01 16:59:18 -07:00
artemp
38bff90a99 Merge branch 'master' into geometry-refactor 2016-09-01 16:06:20 +01:00
Dane Springmeyer
4b06dfe9b4 Avoid warnings when building the g++5 2016-08-31 11:09:27 -07:00
Dane Springmeyer
02c2338c43 mapnik-config: strip clang specific warning flags 2016-08-31 11:09:11 -07:00
artemp
af099a57ef topojson grammar - change interface + instantiate with Iterator = char const* to reduce binary size 2016-08-31 17:42:18 +01:00
artemp
f360f50eed JSON - make generic_json a proper spirit grammar and reduce code bloat 2016-08-31 14:36:35 +01:00
Dane Springmeyer
3f26a1f23f use latest visual test data 2016-08-30 12:37:33 -07:00
artemp
f55b3b3bb3 Merge branch 'master' into geometry-refactor 2016-08-30 14:39:44 +01:00
Dane Springmeyer
d1301f4360 Merge pull request #3504 from mapnik/update-mason-deps
Target latest version of deps for visual/unit tests
2016-08-26 16:33:18 -07:00
Dane Springmeyer
8b954a6fc3 Get correct package of lndir 2016-08-26 14:30:47 -07:00
Dane Springmeyer
95331eda40 temporary workaround for https://github.com/mapbox/mason/issues/230 2016-08-26 13:40:28 -07:00
Dane Springmeyer
799178c7cc update to latest test data 2016-08-26 13:20:50 -07:00
artemp
d747f326f2 CHANGELOG - fix typo and update 2016-08-26 14:39:56 +01:00
artemp
842522b287 Merge branch 'master' into geometry-refactor 2016-08-26 09:06:05 +01:00
artemp
69b0ee1ada Merge branch 'mapycz-fix-building-symbolizer' 2016-08-25 18:21:35 +01:00
Jiri Drbalek
2f98b8965b update visual tests data 2016-08-25 09:36:30 +00:00
Jiri Drbalek
8b18c605fd no need for heap allocation 2016-08-25 08:01:31 +00:00
Jiri Drbalek
6da9de5739 fix closing segment 2016-08-25 08:01:25 +00:00
artemp
56c6a1ea62 Merge branch 'master' into geometry-refactor 2016-08-24 11:14:01 +01:00
artemp
603879f1c0 Merge remote-tracking branch 'origin/geometry-refactor' into geometry-refactor 2016-08-24 10:46:20 +01:00
artemp
fe007915df Revert "Revert "mapnik::variant - use std::tuple<Typess...> instead of mpl::vector<Types...> and remove Boost.MPL dependency""
and remove `<boost/fusion/adapted/std_tuple.hpp>`

This reverts commit b6cc48fd40.
2016-08-23 15:45:15 +01:00
Dane Springmeyer
f81583554a Merge branch 'master' of github.com:mapnik/mapnik into geometry-refactor 2016-08-22 16:19:17 -07:00
Dane Springmeyer
c6b1abcdb6 update mason deps and test data - refs mapnik/test-data#8 mapnik/test-data-visual#36 2016-08-22 15:12:25 -07:00
Dane Springmeyer
b6cc48fd40 Revert "mapnik::variant - use std::tuple<Typess...> instead of mpl::vector<Types...> and remove Boost.MPL dependency"
This reverts commit 6613222b84.
2016-08-22 11:40:06 -07:00
Dane Springmeyer
4dae4d43c5 restore test/data version - accidentally changed in 0ae2f1311c 2016-08-22 11:15:42 -07:00
Dane Springmeyer
0ae2f1311c update test data if UPDATE env set 2016-08-22 10:50:08 -07:00
artemp
6613222b84 mapnik::variant - use std::tuple<Typess...> instead of mpl::vector<Types...> and remove Boost.MPL dependency 2016-08-22 12:16:48 +01:00
artemp
7c45556138 update font path 2016-08-16 16:00:24 +01:00
artemp
1a29b35717 GeoJSON unit tests- ensure descriptors are ordered by name (ref #3494) 2016-08-16 15:46:10 +01:00
artemp
3788b2781e tiny format 2016-08-16 15:36:43 +01:00
artemp
f3252d00f4 expose "num_features_to_query" datasource parameter (ref #3495) 2016-08-16 10:55:56 +01:00
artemp
1e8f471448 minor formatting 2016-08-16 10:53:57 +01:00
artemp
b9279feee2 fix is_valid logic (ref #3494) 2016-08-15 12:49:43 +01:00
artemp
046c9638e1 GeoJSON - ensure descriptors order is consistent ( ref #3494) 2016-08-15 12:21:02 +01:00
artemp
0471f3369a add order_by_name helper method 2016-08-15 12:20:19 +01:00
artemp
008a6eb4cf test geojson - add empty featurecollection test 2016-08-15 10:44:54 +01:00
artemp
31814b32d0 rename empty_featureset => invalid_featureset to avoid ambiguity + add helper is_valid method 2016-08-15 10:41:30 +01:00
Dane Springmeyer
843f96083d update libwebp, always link mason packages 2016-08-12 16:00:21 -07:00
artemp
f9c321583f update CHANGELOG 2016-08-12 15:56:29 +01:00
artemp
5c11fe49f9 geoson+topojson tests - correct expected test data (ref #3491) 2016-08-12 11:05:50 +01:00
artemp
8dca305e7e json stringifier - add missing quoting in nested json objects (ref #3491) 2016-08-12 11:04:30 +01:00
artemp
9448901907 Merge branch 'windows-unicode' 2016-08-12 09:31:46 +01:00
artemp
cdad126fa3 Merge branch 'master' into windows-unicode 2016-08-12 09:31:29 +01:00
bergwerkgis
74d7726b2d remove unneeded 'u8' 2016-08-12 05:27:55 +00:00
artemp
5298a737c8 update deps 2016-08-11 15:57:22 +01:00
Dane Springmeyer
c777cc50d0 also install boost thread and python to ease python-mapnik build against masonized mapnik [skip ci] 2016-08-10 13:36:46 -07:00
Dane Springmeyer
53fb06e31a install consistent apt packages 2016-08-09 15:14:22 -07:00
Dane Springmeyer
4839b95072 install xutils to speed up mason install/link 2016-08-09 15:12:26 -07:00
Dane Springmeyer
3bfc358cb8 Merge pull request #3485 from mapnik/regex-unicode
Regex unicode
2016-08-09 14:58:51 -07:00
Dane Springmeyer
fc52a818d8 trigger new build 2016-08-09 14:30:13 -07:00
Dane Springmeyer
181feef253 bootstrap: exit trap not called when sourcing 2016-08-09 12:17:39 -07:00
Dane Springmeyer
8e84b6d853 stop caching mason_packages 2016-08-09 10:46:18 -07:00
Dane Springmeyer
f56c45b86b [bootstrap] upgrade to boost_regex package with icu + better error handling 2016-08-09 10:41:38 -07:00
artemp
2afae2a29b Expressions - more tests (ref #3483) 2016-08-09 16:25:59 +01:00
artemp
aa77eb4550 Expressions - add more regex tests to cover #3483 2016-08-09 16:13:12 +01:00
artemp
6eb7783f9e update data-visual 2016-08-08 12:21:31 +01:00
Artem Pavlenko
b0cf57aa53 Merge pull request #3477 from mapycz/cairo-style-level-comp-op
Style level comp-op and opacity for Cairo renderer
2016-08-08 10:52:54 +01:00
Artem Pavlenko
8d8442d647 Merge pull request #3480 from sebastic/spelling-errors
Fix spelling errors
2016-08-08 09:50:40 +01:00
Bas Couwenberg
2003415f09 Fix 'occured' typo, replace with 'occurred'. 2016-08-05 14:50:50 +02:00
Bas Couwenberg
388a8a7c4d Fix 'intialize' typo, replace with 'initialize'. 2016-08-05 14:49:45 +02:00
artemp
d09b6a4810 update font_registration test 2016-08-05 10:25:32 +01:00
artemp
f7fd102c34 update dejavu fonts to v2.37 2016-08-05 10:18:10 +01:00
artemp
922f4c4e1b update SCons to 2.5.0 2016-08-05 10:16:06 +01:00
artemp
4e66c69cf2 update unifont to the latest version 9.0.01 2016-08-05 10:15:31 +01:00
artemp
d9e04518a2 typo 2016-08-04 11:00:57 +01:00
artemp
0775e7bc3c more updates 2016-08-04 10:59:09 +01:00
artemp
9648099155 Add missing release date for 3.0.11 2016-08-04 10:54:39 +01:00
artemp
676d9184b4 update CHANGELOG in anticipation of v3.0.12 release 2016-08-04 10:53:04 +01:00
Jiri Drbalek
9925c3d50d update visual test data 2016-08-03 20:17:17 +00:00
Jiri Drbalek
621a5e51ac style level comp-op and opacity for Cairo renderer 2016-08-03 20:14:56 +00:00
artemp
a7c6df98a3 update variant deps 2016-08-03 12:35:34 +01:00
Artem Pavlenko
d1932b0401 Merge pull request #3476 from lightmare/inherit-ctor
use proper feature-test macro for inheriting constructors
2016-08-03 12:34:10 +01:00
Mickey Rose
f9d5c3a2f8 use proper feature-test macro for inheriting constructors 2016-08-03 00:29:51 +02:00
Artem Pavlenko
68db7ee224 Merge pull request #3475 from mapycz/logarithm
Add support for natural logarithm in expressions (via @talaj)
2016-08-01 15:07:01 +02:00
Jiri Drbalek
c1ab5c8e6c add support for natural logarithm function in expressions 2016-08-01 12:58:21 +00:00
artemp
b55f5dc895 image - add tiny image quantising tests (ref #3466) 2016-08-01 12:21:32 +02:00
Dane Springmeyer
148783da25 Revert "inherit ctor's from geometry_base"
- Fixes #3473 (windows compile)
 - TODO: @artemp get to the bottom of how to inherit from base class
   in a way that works with boost::variant and across platforms

This reverts commit bf99177da7.
2016-07-29 04:51:18 -07:00
artemp
b0d9467224 Merge branch 'master' into geometry-refactor 2016-07-26 12:16:39 +02:00
artemp
9a0d7b0d68 update variant 2016-07-26 10:38:28 +02:00
artemp
d3293f73e1 c++ format 2016-07-25 15:55:50 +02:00
artemp
bf99177da7 inherit ctor's from geometry_base 2016-07-25 15:55:20 +02:00
Dane Springmeyer
bd920daa16 fix decltype forwarding 2016-07-25 14:51:45 +02:00
Dane Springmeyer
7fc9dfe06b simplify visitor code in image_compositing 2016-07-25 14:51:45 +02:00
Dane Springmeyer
f734368a73 limit mpl list size as well as vector size 2016-07-25 14:51:45 +02:00
artemp
2864d90460 more explicit conversions to the target variant type 2016-07-25 13:45:35 +02:00
Dane Springmeyer
3c86ab77c4 [travis] fix indentation 2016-07-20 14:10:27 +02:00
artemp
7fa35f481e Support creating paletted images for any number of pixels e.g < 3 (ref #3466) 2016-07-20 14:01:14 +02:00
Dane Springmeyer
d17f1f076d workaround travis bug: 'shell_session_update: command not found' 2016-07-20 13:19:08 +02:00
artemp
7712f253c9 represent value_null as an empty string e.g "" (text rendering logic) 2016-07-20 12:39:55 +02:00
artemp
dc88582b4d Merge branch 'master' into geometry-refactor 2016-07-19 10:25:33 +01:00
artemp
85a6ef9a15 update variant deps 2016-07-19 10:24:31 +01:00
artemp
3d0b109739 value_null - always represent as "null" 2016-07-15 12:22:53 +01:00
artemp
6f8f286b8d Revert "allow "null" values when genrating Feature GeoJSON"
This reverts commit 8ce58ea29c.
2016-07-15 12:22:03 +01:00
artemp
54d51e2728 Revert "feature_kv_iterator - change logic in 'increment' to skip key/value's when value doesn't exist"
This reverts commit 3397b8f14f.
2016-07-15 12:21:41 +01:00
artemp
8ce58ea29c allow "null" values when genrating Feature GeoJSON 2016-07-14 10:09:34 +01:00
artemp
3397b8f14f feature_kv_iterator - change logic in 'increment' to skip key/value's when value doesn't exist 2016-07-14 09:46:37 +01:00
artemp
c457d93804 use count(key) 2016-07-14 09:45:55 +01:00
artemp
bab985dd04 always return am empty featureset instead of featureset_ptr() 2016-07-13 15:17:51 +01:00
artemp
75781a999c add empty_featureset (returning feature_ptr()) implementation 2016-07-13 15:17:41 +01:00
artemp
dc74551dc0 always return am empty featureset instead of featureset_ptr() 2016-07-13 15:16:33 +01:00
artemp
132aa6654f add empty_featureset (returning feature_ptr()) implementation 2016-07-13 15:07:08 +01:00
artemp
45c5a3768f extract_bounding_box_grammar - make features optional / ref #3463 2016-07-12 17:44:19 +01:00
artemp
abb4271bea extract_bounding_box_grammar - make features optional / ref #3463 2016-07-12 17:42:53 +01:00
artemp
e08c3c1a20 using alias() doesn't work: line_string and linear_ring are different types (no-conversion) 2016-07-12 11:13:45 +01:00
artemp
fd41b682be geometry_generator - fix synthesised attribute types 2016-07-12 11:11:35 +01:00
artemp
74bf270d21 geometry is_simple - handle empty polygons 2016-07-11 11:55:20 +01:00
artemp
01e962d216 centroid - re-implement avoiding inefficient remove_empty 2016-07-11 10:44:59 +01:00
artemp
033c54617c c++ format 2016-07-11 10:44:18 +01:00
artemp
359a3a845a update geometry.hpp 2016-07-11 10:17:45 +01:00
artemp
f0a37c761b polygon - add move ctor 2016-07-07 12:29:19 +01:00
artemp
d810ce46f2 re-enable geometry_strategy_test 2016-07-06 17:45:13 +01:00
artemp
c478849eba implement different strategy for adapting to boost::geometry using internal structure for accessing interior rings 2016-07-06 17:43:45 +01:00
artemp
710a9be5b0 update to the latest geometry.hpp 2016-07-05 10:47:41 +01:00
artemp
68f53cfcd0 uncomment is_empty/has_empty tests 2016-07-05 10:24:54 +01:00
artemp
335ce8e50b is_empty - fix implementation 2016-07-05 10:24:26 +01:00
artemp
e29ca884df has_empty - update logic to work with the current polygon model (FIXME: the naming is confusing to say the least) 2016-07-05 10:23:16 +01:00
artemp
fb398ad465 re-use typedefs 2016-07-04 15:46:04 +01:00
artemp
11fc2ceabd tidy 2016-07-04 15:11:06 +01:00
artemp
75b97eb64c temp disable failing tests 2016-07-04 10:32:31 +01:00
artemp
81419154eb update geometry adapters to use polygon_interior<T> as mutable interior rings proxy container 2016-07-04 10:32:20 +01:00
artemp
f5ec3ba0e0 add initial "proxy" interior rings implementation 2016-07-04 10:28:45 +01:00
Dane Springmeyer
8e31b8e2b9 remove debugging aborts [skip ci] 2016-06-30 11:51:37 -07:00
artemp
c27653066d bring back failing geometry tests 2016-06-29 18:40:47 +01:00
Dane Springmeyer
abe175c14f avoid calling correct on empty geometries 2016-06-29 09:20:02 -07:00
Dane Springmeyer
39f497ded6 re-enable centroid test which appears to be passing 2016-06-29 09:19:28 -07:00
artemp
e44f10460d disable "multi-polygon: one component empty" test 2016-06-29 15:02:19 +01:00
artemp
efabcc8081 make all mapnik::geometries aliases to mapbox::geometry and attempt to adapt new polygon model (one std::vector)
NOTE: some boost.geometry algorithms are broken as a result
2016-06-29 12:41:57 +01:00
Dane Springmeyer
71496e7828 install geometry.hpp 2016-06-27 16:49:30 -07:00
artemp
66da9cdb18 using linear_ring = mapbox::geometry::linear_ring<T>; 2016-06-27 10:56:38 +01:00
artemp
3b1c7308cc make mapnik::geometry::line_string<T> an alias to mapbox::geometry::line_string<T> 2016-06-27 10:23:13 +01:00
artemp
19d376b7e6 make mapnik::geometry::point<T> an alias to mapbox::geometry::point 2016-06-27 09:45:37 +01:00
artemp
d169fb473e add geometry.hpp as submodule 2016-06-27 09:45:25 +01:00
artemp
9dd00b28dc Merge remote-tracking branch 'origin/master' into geometry-refactor 2016-06-27 08:51:55 +01:00
Artem Pavlenko
00e5d00530 Fix unbound variable when number of JOBS is omitted 2016-06-23 09:46:45 +01:00
artemp
3536ad0902 even more tidy - remove left over stderr 2016-06-22 17:35:09 +01:00
artemp
7de7464caf tidy 2016-06-22 17:25:37 +01:00
artemp
2e8c0d36c2 implement custom char_array_bufrer and remove boost::iostreams dependency 2016-06-22 17:21:25 +01:00
artemp
67d2a0e141 Merge branch 'master' into geometry-refactor 2016-06-20 15:01:29 +01:00
Mickey Rose
8d3c08f3ef libc++ implementation of std::deque<T> needs T to be complete 2016-06-17 17:09:16 +02:00
Mickey Rose
fc3d194ad2 missed svg2png when renaming svg_renderer_agg 2016-06-16 23:16:39 +02:00
Mickey Rose
217d18a996 use std::deque to store svg::path_attributes
- refs #3453
2016-06-16 22:34:24 +02:00
Dane Springmeyer
b17dae8381 [travis][coverage] llvm-3.8 does not support --object-directory option 2016-06-14 22:26:17 -07:00
Dane Springmeyer
b9e7296460 update to latest visual test data 2016-06-14 22:02:53 -07:00
Dane Springmeyer
8955e3b189 [travis] attempt to fix coverage 2016-06-14 21:58:32 -07:00
Dane Springmeyer
915062c6a3 [travis] fix apt package installs 2016-06-14 21:25:33 -07:00
Dane Springmeyer
de88b47ded [travis] further debug configure failure 2016-06-14 21:15:50 -07:00
Dane Springmeyer
07f34f03de scons: don't recommend now oldish compilers [skip ci] 2016-06-14 21:12:42 -07:00
Dane Springmeyer
0cec24fe65 debug configure failure on travis 2016-06-14 21:08:18 -07:00
Dane Springmeyer
6fd4e974cf [travis] install clang after mason has been installed 2016-06-14 12:04:45 -07:00
Dane Springmeyer
d47f8353a9 remove tabs in .travis.yml 2016-06-14 12:00:48 -07:00
artemp
56bcc818dd update test data 2016-06-14 12:30:11 +02:00
Dane Springmeyer
f9969e7803 Add circleci badge [skip ci] 2016-06-13 13:25:00 -07:00
Dane Springmeyer
8336e4d43c update visual tests to get new gdal tests passing - refs mapnik/mapnik#3430 2016-06-13 13:07:40 -07:00
Dane Springmeyer
68d5cc34f2 upgrade mason to ensure clang v3.8.0 is available 2016-06-13 12:21:51 -07:00
Dane Springmeyer
0fa5ae5158 circleci - remove unneeded lines 2016-06-13 11:40:15 -07:00
Dane Springmeyer
2ef3ae47f6 use clang 3.8 from mason 2016-06-13 10:51:12 -07:00
artemp
13c48788db update .travis.yml to use clang-3.8 (https://github.com/mapbox/mason/pull/179) 2016-06-13 17:37:07 +02:00
artemp
7e6cc4cfac make get_overview_meta(band) standalone method 2016-06-13 11:14:59 +02:00
artemp
37d5a32875 make return type bool 2016-06-08 12:24:21 +02:00
artemp
9e3ccf6629 Issue a warning but don't fail if PostgreSQL is not running or it's not accessible (ref #3448) 2016-06-08 12:21:27 +02:00
artemp
b20ec7824b Merge branch 'CartoDB-pgraster-just-overviews' 2016-06-07 14:19:53 +02:00
artemp
1714d4317c Merge branch 'pgraster-just-overviews' of https://github.com/CartoDB/mapnik into CartoDB-pgraster-just-overviews 2016-06-07 14:19:42 +02:00
artemp
18aa50a59e update variant 2016-06-07 14:19:22 +02:00
artemp
1509426088 update test data (https://github.com/mapnik/mapnik/pull/3430) 2016-06-07 14:02:04 +02:00
artemp
d64016273f Merge branch 'rouault-gdal_support_mask_band' 2016-06-07 13:31:01 +02:00
artemp
3f224e3f4d Merge branch 'gdal_support_mask_band' of https://github.com/rouault/mapnik into rouault-gdal_support_mask_band 2016-06-07 13:30:45 +02:00
artemp
9f3b76fb94 update visual data (ref https://github.com/mapnik/mapnik/pull/3445) 2016-06-06 11:29:33 +02:00
Artem Pavlenko
631fb0293f Merge pull request #3445 from jojva/fix-ellipse-bounding-box
Fix stroke-width size not included in markers ellipse bounding box - cheers @jojva
2016-06-03 14:57:34 +02:00
artemp
beb34f9c5e topojson_grammar - rename properties to properties_ to avoid compilation error (gcc) ref #3446 2016-06-03 14:45:49 +02:00
Joris Valette
7ca86b0947 Fix stroke-width size not included in markers ellipse bounding box 2016-06-03 11:12:14 +02:00
artemp
deb5102aac convert shapefiles to use UTF-8 encoding in DBF files via @glarrain
( ref https://github.com/mapnik/mapnik/pull/3441)
2016-06-02 16:08:31 +02:00
artemp
ea7808d6e0 Merge branch 'glarrain-patch-1' 2016-06-02 16:07:23 +02:00
artemp
86d8b6ef5f Merge branch 'patch-1' of https://github.com/glarrain/mapnik into glarrain-patch-1 2016-06-02 16:06:53 +02:00
artemp
d30143c60f remove unsupported ESRI data files 2016-06-02 16:04:43 +02:00
artemp
bca9675b13 Merge remote-tracking branch 'origin/master' 2016-06-02 15:58:39 +02:00
artemp
2f9c2a3a9b update variant submodule 2016-06-02 11:33:43 +02:00
Artem Pavlenko
5aba65e54d Merge pull request #3442 from glarrain/patch-2
Fix markdown issue in C++ demo README
2016-05-31 18:30:51 +02:00
Germán Larraín
a876070ccb Fix markdown issue in C++ demo README
Commands were rendered incorrectly due to missing spaces, causing that `mapnik-config --prefix` was rendered without backticks, which are necessary.
2016-05-31 13:14:27 -03:00
Germán Larraín
503d4eaea1 fix shapefiles encoding in demo for C++
Mapnik builds without `boost_regex_icu` (see #3440) and the C++ demo does not run:

```
/mapnik# demo/c++/rundemo `mapnik-config --prefix`                                                                                                                                         
 running demo ... 
### std::exception: could not create converter for latin1
```
2016-05-31 12:40:27 -03:00
artemp
efdc90f699 fix building with BIGINT=no (NOTE: some tests will fail) 2016-05-26 17:23:53 +02:00
Artem Pavlenko
ddd61c55ff fix LGPL link 2016-05-26 17:12:18 +02:00
artemp
a24dfbf6a0 simplify logic a bit 2016-05-26 16:27:22 +02:00
artemp
081c003b0e c++ style 2016-05-26 16:27:22 +02:00
Wilhelm Berg
2fb0326892 Update appveyor.yml to use boost 1.60 2016-05-25 13:53:23 +02:00
artemp
cf604518a5 fix typo 2016-05-25 13:08:20 +02:00
Artem Pavlenko
ffe9b21b58 Merge pull request #3435 from woodpeck/patch-1
Fix DejaVu font directory
2016-05-25 10:30:50 +02:00
Frederik Ramm
8af8737272 Fix DejaVu font directory
Fonts in Mapnik tree are now 2.35 not 2.34
2016-05-25 10:12:53 +02:00
artemp
37a8aed62d transcode input strings to UTF-8 (portability) 2016-05-24 12:16:48 +02:00
artemp
acb2d56f49 prefix string literals with u8"" to force UTF8 encoding (windows) 2016-05-24 10:54:34 +02:00
artemp
b9cc746c07 sync up visual test data 2016-05-24 10:27:44 +02:00
artemp
65a23b436d bump visual test data 2016-05-24 10:15:00 +02:00
artemp
06d487c8d1 update visual data 2016-05-23 17:49:20 +02:00
artemp
de0d384ca9 update test data 2016-05-23 12:30:08 +02:00
Artem Pavlenko
44e1102166 Merge pull request #3434 from mapnik/topojson
Topojson (refactor)
2016-05-23 11:44:14 +02:00
artemp
f3ae60fed4 Merge branch 'master' into topojson 2016-05-23 10:52:19 +02:00
artemp
01967cfaff topojson grammar - re-factor to allow geometry elements to be in any order 2016-05-23 10:51:05 +02:00
Dane Springmeyer
d7b6b5669b upgrade to latest mason and latest boost via mason 2016-05-19 19:37:31 -04:00
Dane Springmeyer
20a9112135 remove boost thread checking since it is no longer a dependency 2016-05-19 19:37:31 -04:00
Jiri Drbalek
fee0ad05ce update changelog 2016-05-18 20:06:31 +00:00
Dane Springmeyer
c8cc2670be update visual test data - refs mapnik/mapnik#3416 / mapnik/test-data-visual#34 2016-05-18 13:40:00 -04:00
Dane Springmeyer
44ea60ad5f fix #3431 2016-05-18 13:38:07 -04:00
Artem Pavlenko
536ea734e8 Merge pull request #3418 from mapycz/visual-tests-cairo-vectors
visual tests: support for Cairo PS, PDF and SVG renderers
2016-05-18 15:05:27 +02:00
Artem Pavlenko
aec5949d5a Merge pull request #3416 from mapycz/scale-factor-improvements
Scale factor improvements
2016-05-18 15:05:04 +02:00
Artem Pavlenko
26aa516ee7 Merge pull request #3429 from mapnik/topojson
Topojson https://github.com/mapnik/mapnik/issues/3427
2016-05-18 14:16:29 +02:00
artemp
7b3f607a01 remove omit directive as it breaks type deduction and insists on boost::optional<boost::variant<int, mapnik::json::coordinates> attribute signature (boost 1.61.0) 2016-05-18 13:13:25 +02:00
artemp
c85c0fd025 prealloc memory with reserve 2016-05-18 11:18:26 +02:00
artemp
c10c271430 dereference once 2016-05-18 10:35:58 +02:00
Even Rouault
b2cb39dec8 [GDAL plugin] Add support for non-alpha mask band
GDAL can support non-alpha mask band, such as a TIFF IFD with
Subfile type=transparency mask. This can be typically used to
create a GeoTIFF with YCbCr JPEG compression for RGB bands and
DEFLATE compression for the mask band.
2016-05-17 19:44:12 +02:00
artemp
7d72cc1930 more cleanups 2016-05-17 13:47:31 +02:00
artemp
de13582004 remove stderr 2016-05-17 13:45:05 +02:00
artemp
c66fd480b5 simplify rules 2016-05-17 13:05:53 +02:00
artemp
8f74de8525 remove stderr 2016-05-17 13:05:37 +02:00
artemp
4ca0c21d73 move phoenix functions into ctor 2016-05-17 13:00:03 +02:00
artemp
25217549f1 fix topojson parsing (work-in-progress) 2016-05-17 12:53:07 +02:00
artemp
6e326f035d minor formatting 2016-05-17 12:44:46 +02:00
artemp
dc84943575 Fixed https://github.com/mapbox/windows-builds/issues/88
(inheriting constructors not working with msvc-14.0 2015)
2016-05-13 15:23:47 +02:00
artemp
9e5b7a9b5e update test data 2016-05-13 12:51:46 +02:00
artemp
3ec25e36fe test geojson.cpp - add empty properties (ref #3426) 2016-05-13 12:48:56 +02:00
artemp
4e6aeaedfc handle empty arrays and objects ref #3426 2016-05-13 11:50:43 +02:00
artemp
4429155759 update test data 2016-05-12 18:54:48 +02:00
artemp
38ec14c739 topojson - use json.value directly 2016-05-12 18:52:05 +02:00
artemp
04ce225728 update variant (again) to 7f7470fee6a42c3c68f1fa359a28cf762df385c3 2016-05-11 12:35:01 +02:00
artemp
5228dad91a update to latest variant 2016-05-11 10:58:08 +02:00
artemp
d19ff576dc geojson test - fix the order in 'object' to match input (escaped.json) 2016-05-10 16:03:04 +02:00
artemp
5e33dc0551 feature_grammar - simplify further, remove redundant rule 2016-05-10 15:53:14 +02:00
artemp
3909fe5b7d JSON - store 'object' properties in std::vector to preserve order 2016-05-10 15:52:02 +02:00
artemp
f0386e0469 issue pre-processor #warning if BOOST_MPL_LIMIT_VECTOR_SIZE is defined before config.hpp is included ref #3425 2016-05-10 15:15:03 +02:00
artemp
07ca572af4 fix mapbox/variant install path 2016-05-10 15:15:03 +02:00
Dane Springmeyer
e68de54883 re-enable osx unit tests now that ccache is working 2016-05-09 14:04:55 -07:00
Dane Springmeyer
83768dc3dd travis by compiler cache needs to use language:cpp 2016-05-09 12:21:54 -07:00
Dane Springmeyer
609e5ba7af attempt to get caching+ccache working on osx - refs https://blog.travis-ci.com/2016-05-03-caches-are-coming-to-everyone 2016-05-09 10:03:50 -07:00
artemp
75189905d6 upgrade to latest variant.hpp 2016-05-09 11:42:46 +02:00
artemp
d97583b53e geojson.cpp - fix and update test 2016-05-06 16:44:18 +02:00
Rafa de la Torre
8e8482803b If there're overviews, just use them for rendering
The current code falls back to the base table for small scales.

That approach has some drawbacks cause it forces the original table to
share some conditions with its overviews (same SRID, alginment, scale
constraints) for the rendering to work properly.

What we propose is to always fall back to the highest resolution
overview (lowest scale), rather than the original table, in order to
avoid coupling the original table with the constraints imposed by
rendering and still have them linked (in postgis raster metadata).

Please note this approach is not 100% compatible as the base table
won't be used. This should be no big deal because overviews can have
an arbitrary resolution/scale.
2016-05-06 14:43:24 +02:00
artemp
908203f15e Merge remote-tracking branch 'origin/json-properties' into json-properties 2016-05-06 10:58:44 +02:00
artemp
c4d80de56e update deps 2016-05-06 10:58:19 +02:00
artemp
97b8a11a72 fix includes + use typedefs for json types 2016-05-06 10:57:35 +02:00
Artem Pavlenko
ea7974d580 Merge pull request #3423 from mapnik/geojson-property-tests
Geojson property tests
2016-05-06 10:34:06 +02:00
artemp
7544f57efe Merge branch 'master' into json-properties 2016-05-06 10:27:18 +02:00
artemp
c2bf2be7ba json - simplify generic_json rules: remove redundant rule 2016-05-06 10:24:25 +02:00
artemp
21487f36b9 json - refactor stringifier and attribute_value_visitor into separate *.hpp and share between geojson and topojson grammars 2016-05-06 10:15:44 +02:00
artemp
6bd708af86 fix generic_json usage across grammars 2016-05-06 09:55:54 +02:00
artemp
e528b433d4 geojson feature_grammar - parse objects and arrays into json_value before applying "stringifier" #3419 https://github.com/mapnik/node-mapnik/issues/642 2016-05-06 09:50:45 +02:00
artemp
7374f82414 generic_json - add support for JSON object and array type in json_value + update rules attributes 2016-05-06 09:47:40 +02:00
Dane Springmeyer
966a4ae366 avoid warnings with boost 1.60 [skip ci] 2016-05-05 19:09:05 -07:00
mapsam
086157e26b one step deeper, moar arrays/objects 2016-05-05 13:38:28 -07:00
mapsam
0ed6eedfec Merge branch 'master' into geojson-property-tests 2016-05-05 09:17:44 -07:00
mapsam
9d9c8db233 add geojson unit test for property types/values 2016-05-05 09:17:08 -07:00
artemp
db912d9b67 disable white skipping in stringify_object/stringify_array (ref #3419) 2016-05-05 10:33:36 +02:00
artemp
d9e75f4ddb c++ prettify formatting 2016-05-05 10:31:58 +02:00
Jiri Drbalek
464e508dc5 visual tests: support for Cairo PS, PDF and SVG renderers 2016-05-04 14:27:34 +00:00
artemp
52df451ee3 geometry_envelope_test - fix linking/duplicate symbols (ref #3415) 2016-05-04 10:20:10 +02:00
artemp
e596ffc1c2 don't instantiate types that are not used in core library 2016-05-03 18:33:06 +02:00
artemp
c0dfc92022 geometry_envelope - add tests for double/float/int coord_type (ref #3415) 2016-05-03 18:26:46 +02:00
artemp
471d6dfe94 remove redundant recursive_wrapper (via @jfirebaugh : f00a7aebf1) 2016-05-03 18:13:41 +02:00
artemp
ff821c9239 geometry::envelope - deduct value_type of box2d<T> automatically + add missing typedefs 2016-05-03 18:02:42 +02:00
Jiri Drbalek
b930a5e7f7 apply scale factor to line spacing 2016-05-03 12:09:39 +00:00
Jiri Drbalek
cfc6b37d71 fix passing scale factor to evaluate_transform() 2016-05-03 12:09:39 +00:00
artemp
80176a6c83 fix `geometry_type' call 2016-04-29 18:09:32 +02:00
artemp
c4fcee7b66 add geometry dir 2016-04-29 17:08:17 +02:00
artemp
3184034414 refactor geometry core and algorithms templates + add missing typedefs + prepare for geometry update 2016-04-29 14:24:57 +02:00
artemp
de927a1571 Merge branch 'master' into geometry-refactor 2016-04-29 10:47:43 +02:00
artemp
f5d6af4bb8 agg - make cover unsigned to avoid left shift of negative values ref #3406 2016-04-26 15:30:50 +02:00
artemp
31e8cfc659 improve hash calc ref #3406 2016-04-26 15:29:27 +02:00
artemp
4b3b62a40c minor formatting 2016-04-25 20:43:40 +02:00
artemp
650e8eea8a bump up version to 3.0.12 in preparation to release 2016-04-25 20:43:40 +02:00
Dane Springmeyer
fca1075fec fix documentation for mapnik-render --open command - refs #3375 [skip ci] 2016-04-25 09:56:40 -07:00
artemp
9833bfb9ad make opening rendered image an optional op ( ref #3374) 2016-04-25 16:39:09 +02:00
artemp
49b23622db Don't compile visitor ref #3380 (thanks @lightmare) 2016-04-25 14:58:46 +02:00
artemp
988aa3ea43 add guard to get_object_severity ref #3322 2016-04-25 11:49:10 +02:00
artemp
be06a2d301 require boost >= 1.58 for spatially_equal(geom_0, geom_1) test ref #3380 2016-04-25 11:20:23 +02:00
artemp
1871e5f62d return EXIT_FAILURE on invalid input ref #3410 2016-04-25 10:11:55 +02:00
artemp
ed87cd2883 c++ - make bbox standalone method 2016-04-22 12:54:57 +02:00
artemp
4611d8cad1 c++ style : prefix increment 2016-04-22 12:54:57 +02:00
artemp
a89c3fc007 c++ - make bbox standalone method 2016-04-22 12:51:20 +02:00
artemp
51069fe88a c++ style : prefix increment 2016-04-22 12:50:32 +02:00
Dane Springmeyer
e5fafd31d1 skip boost check when cross compiling [skip ci] 2016-04-21 09:04:38 -07:00
Dane Springmeyer
2a46e4517a Add minimum recommended GDAL version to INSTALL.md - refs #3339 [skip ci] 2016-04-20 12:19:16 -07:00
Dane Springmeyer
00fbc29e9d Merge pull request #3376 from pnorman/patch-5
Use relative path for INSTALL.md
2016-04-20 11:50:27 -07:00
artemp
4e57f7b115 Merge branch 'master' into geometry-refactor 2016-04-20 16:45:08 +02:00
artemp
6105463602 split box2d<T> implementation into *.hpp, *._impl.hpp and *.cpp ref #3405 2016-04-20 10:51:33 +02:00
Dane Springmeyer
b0894bfda3 fix debug assert compile 2016-04-18 08:06:30 -07:00
artemp
633a2c1e07 Merge branch 'master' into geometry-refactor 2016-04-18 16:15:04 +02:00
artemp
66160e9754 mapnik::util::is_clockwise - translate coordinates relative to the origin (0,0) to avoid numeric precision issues while using double precision.
(ref #3402)
2016-04-18 16:08:30 +02:00
artemp
c8902ac875 remove is_clockwise, use mapnik::util::is_clockwise to avoid duplication 2016-04-18 11:16:32 +02:00
artemp
9caac23d3c remove bogus fwd decl 2016-04-12 14:56:32 +02:00
artemp
271b70f960 geometry - template on container type + move multi geometries into separate headers 2016-04-12 14:49:23 +02:00
artemp
2106d7b162 remove debug stderr 2016-04-12 14:48:24 +02:00
artemp
2e0d83aa91 geometry::multi_point - derive from std::vector<point<T>> instead of line_string<T> 2016-04-12 10:12:16 +02:00
artemp
fb385180cf include what you need 2016-04-12 09:27:37 +02:00
artemp
0f711c0863 geometry - move point/line_string/polygon into separate headers 2016-04-12 09:17:53 +02:00
Dane Springmeyer
15acb2b23f Add missing files after revert 2016-04-11 17:58:58 -07:00
Dane Springmeyer
c5d73a03cc pin mason in mason_latest.sh script [skip ci] 2016-04-11 16:50:09 -07:00
Dane Springmeyer
11487e681f amend f8a8ec616a by fixing invalid search and replace 2016-04-11 16:45:11 -07:00
Dane Springmeyer
abe943c983 revert geometry changes for now - will develop them in branch to reduce downstream breakage 2016-04-11 14:00:27 -07:00
Dane Springmeyer
0025f70a6b ensure geometry folder of headers is installed 2016-04-11 12:33:34 -07:00
artemp
19722595a9 move include/mapnik/geometry_fusion_adapted.hpp -> include/mapnik/geometry/fusion_adapted.hpp 2016-04-11 15:22:41 +02:00
artemp
caa03d78bd move geometry_adapters.hpp to geometry/boost_geometry_adapters.hpp 2016-04-11 15:14:52 +02:00
artemp
b24ade9a1c remove stderr for real 2016-04-11 13:08:19 +02:00
artemp
fa717bc698 Remove bogus updates from 90f06093ae "geometry - move point/line_string/polygon into separate headers" 2016-04-11 12:35:19 +02:00
artemp
90f06093ae geometry - move point/line_string/polygon into separate headers 2016-04-11 12:23:11 +02:00
artemp
c6425b8027 cleanup + make operator==, operator!= standalone 2016-04-08 10:43:06 +02:00
artemp
5f00171d3d fix warning: using namespace directive in global context in header [-Wheader-hygiene] warnings 2016-04-08 10:41:50 +02:00
artemp
9705844399 fix operator==,operator!= impl 2016-04-08 10:08:16 +02:00
artemp
8bc4b28a76 small formatting 2016-04-06 11:36:18 +02:00
artemp
ccf26a743d remove extra ; 2016-04-06 11:35:49 +02:00
Dane Springmeyer
585de5956b Merge pull request #3395 from mapnik/register-gdal-once
register gdal once at plugin load
2016-04-05 20:53:25 -04:00
Dane Springmeyer
8339202279 remove debug print 2016-04-05 17:24:12 -04:00
Dane Springmeyer
7ec640e989 register gdal once at plugin load - refs #3093 #3339 #3340 2016-04-05 16:43:07 -04:00
Dane Springmeyer
61cb4effb8 more explicit name for callback type from dlsym 2016-04-05 15:31:19 -04:00
Dane Springmeyer
f8a8ec616a c++ style: use nullptr rather than NULL 2016-04-05 15:27:32 -04:00
artemp
2cbb9f480a deduce box_type from T 2016-04-05 18:26:31 +02:00
artemp
0e07e5b5aa more update CHANGELOG for mapnik v3.0.11 release [skip ci] 2016-04-04 09:24:25 +02:00
artemp
8c4892a31a update CHANGELOG for mapnik v3.0.11 release [skip ci] 2016-04-01 19:00:59 +02:00
Artem Pavlenko
8d9dc27355 Merge pull request #3390 from mapnik/bare-strings
Bare strings
2016-04-01 18:33:44 +02:00
artemp
aac523f80e add no_skip directive in unquoted_ustring rule (ref: https://github.com/mapnik/mapnik/pull/3389#issuecomment-204344223) 2016-04-01 12:54:40 +02:00
artemp
751b691ff6 move unquoted_string to the end, remove ustring from top rule 2016-04-01 11:14:47 +02:00
artemp
890a5cff17 add back support for bare (unquoted strings) 2016-04-01 10:52:13 +02:00
artemp
5b6b64fc5a Merge branch 'string-concat-tests' 2016-04-01 10:36:58 +02:00
mapsam
c1b1e3d8f9 concatenating strings & values currently fails 2016-03-31 15:36:47 -07:00
artemp
7931295d33 quad_tree - fix offsets 2016-03-31 12:40:34 +02:00
artemp
51c1ed16ef c++ format 2016-03-31 11:22:40 +02:00
artemp
99bfd03b22 spatial_index - make generic 2016-03-31 11:21:57 +02:00
artemp
4faa9896bb quad_tree - make more generic by templating on bounding box type 2016-03-31 11:20:41 +02:00
Dane Springmeyer
5017740fbb [travis][osx] dodge Homebrew/homebrew#35240 2016-03-29 17:16:18 -07:00
artemp
7cd5301cbe mapnik-index - refactor to use box2d<float> and reduce memory requirement during index creations 2016-03-24 17:12:16 +00:00
artemp
450533ebc6 move boost::phoenix usage into _impl.hpp 2016-03-24 17:11:06 +00:00
artemp
b73a42131a box2<T> - add converting ctor 2016-03-24 17:08:44 +00:00
artemp
9bb20ce685 box2d<T> - expose value_type typedef + init(x, y) convinient method 2016-03-24 14:50:46 +00:00
lightmare
2239c805e5 Merge pull request #3382 from strk/nodata_for_datarasters
Fix reading nodata value for data rasters
2016-03-23 21:45:44 +01:00
Sandro Santilli
cdc800b086 Fix setting of nodata value for grayscale rasters 2016-03-23 20:28:58 +01:00
Sandro Santilli
f72baaade1 Declare variables where used/needed 2016-03-23 20:27:59 +01:00
Sandro Santilli
c3b8bbe511 Fix build 2016-03-23 18:59:00 +01:00
Sandro Santilli
ca5f92ab03 Fix reading nodata value for data rasters 2016-03-23 18:30:57 +01:00
artemp
0b18144859 GeoJSON - make extract_bounding_box grammar configurable 2016-03-23 11:28:51 +00:00
Paul Norman
8de584acad Use relative path for INSTALL.md 2016-03-21 13:56:27 -07:00
artemp
0fb587875e enable box2d<float> 2016-03-21 11:51:32 +01:00
artemp
7b0740c3b7 remove unused symbolizer_grammar.hpp (ref #3343) 2016-03-18 18:52:17 +01:00
Dane Springmeyer
342b78dc52 more trimming of unneeded phoenix includes - refs #3343 2016-03-18 09:51:17 -07:00
Dane Springmeyer
dc18051d80 minor optimization: call vector.reserve [skip ci] 2016-03-18 09:26:16 -07:00
Dane Springmeyer
a473abf1c7 remove unneeded includes [skip ci] 2016-03-18 09:26:16 -07:00
artemp
26f7856e83 grid - restore missing simplify_tag in process_polygon_pattern_symbolizer (ref #3329) 2016-03-18 16:38:38 +01:00
artemp
35190e81e0 rename open to is_open in utils/mapnik-index/process_geojson_file.cpp 2016-03-18 10:42:35 +01:00
artemp
8f9134c72d file_io - rename open to is_open to be consistent with STL i/o via @lightmare (0d032c2618 (commitcomment-16753722)) 2016-03-18 10:02:19 +01:00
artemp
3d555982fd file_io - make operator bool() explicit via @lightmare (0d032c2618 (commitcomment-16753722)) 2016-03-18 09:51:57 +01:00
artemp
7ad568b54a topojson test - add feature_generator 2016-03-17 15:10:29 +01:00
artemp
04890c4915 topojson - move feature_generator into topojson_utils.hpp 2016-03-17 14:36:53 +01:00
artemp
f65fae66ba topojson test - check bounding box is valid 2016-03-17 14:22:29 +01:00
artemp
0c2558c154 topojson bounding_box - fix multi_point logic (remove bogus if (num_arcs_ > 0) condition) 2016-03-17 14:19:29 +01:00
artemp
47e43a1faa update test data 2016-03-17 12:53:40 +01:00
artemp
ed37ff4b89 basic TopoJSON parsing tests (work-in-progress) 2016-03-17 12:52:35 +01:00
artemp
0d032c2618 mapnik:util::file_io - add bool operator bool() for STL I/O compatibility 2016-03-17 11:56:23 +01:00
Dane Springmeyer
ce3a78afc4 fix quoting in triggered commit json [skip ci] 2016-03-16 17:08:32 -07:00
Dane Springmeyer
706108e95c [travis] automatically trigger builds of python-mapnik after successful linux build - refs #3366 2016-03-16 17:01:28 -07:00
Dane Springmeyer
9ab832d792 [mason package] fix libmapnik id one last time :) 2016-03-16 16:29:48 -07:00
Dane Springmeyer
ce88fc51f7 [mason package] fix libmapnik id 2016-03-16 16:10:10 -07:00
Dane Springmeyer
d2239e7514 [travis] use consistent install prefix 2016-03-16 15:51:40 -07:00
Dane Springmeyer
1e46f1155f write to /tmp for default prefix 2016-03-16 15:34:00 -07:00
Dane Springmeyer
5ddf4cf01a [mason package] avoid needing sudo on linux 2016-03-16 15:24:04 -07:00
Dane Springmeyer
62931d0fc6 fix mason publish 2016-03-16 15:16:03 -07:00
Dane Springmeyer
274a4284c9 [mason package] install_name_tool fixes 2016-03-16 15:00:54 -07:00
Dane Springmeyer
25d30785aa [mason package] fix loader_path when publishing locally 2016-03-16 14:44:30 -07:00
Dane Springmeyer
c22d0ac97f simplify mason_latest.sh publishing 2016-03-16 13:49:46 -07:00
Dane Springmeyer
087add2c71 Remove MAPNIK_BUNDLED_SHARE_DIRECTORY build option
- this was intended to be used by python-mapnik
 - but it is not currently, so let's clean it up
 - todo: get actual ICU_DATA,PROJ_LIB,GDAL_DATA values from those depependent libs
2016-03-16 13:48:26 -07:00
artemp
61bcecbe95 WKB/TWKB - add reading tests for all geometry types 2016-03-16 15:06:27 +01:00
artemp
98a37d9c7a add well-known geometries in WKT, WKB, TKWB formats 2016-03-16 15:05:35 +01:00
artemp
d0e2a5b7d9 parse_hex - helper method 2016-03-16 15:04:42 +01:00
artemp
db9b3f46af create an geometry_empty when input WKB has x and y set to NaN
e.g `\x0101000000000000000000f87f000000000000f87f => mapnil::geometry::geometry_empty`
2016-03-16 14:52:42 +01:00
artemp
d5eb6c8ddf remove unused headers and codex 2016-03-16 09:52:43 +01:00
Dane Springmeyer
f50111d979 use latest test data 2016-03-15 16:10:27 -07:00
artemp
b164e010fd topojson_grammar - don't allocate generic_json structure holding boost::spirit::qi rules on stack (ref #3361) 2016-03-15 17:19:16 +01:00
artemp
29f19fe6bc update test data 2016-03-15 13:36:02 +01:00
artemp
b2fda7e17f [CORRECTED] sv_utils - check and skip processing lines consisting only of 0xa (windows) ( fixes #3359 ) 2016-03-15 13:03:48 +01:00
artemp
96b96c745d Revert "csv_utils - check and skip processing lines consisting only of 0xa (windows) ( fixes #3359 )"
This reverts commit 9c09f15de9.
2016-03-15 13:01:54 +01:00
artemp
9c09f15de9 csv_utils - check and skip processing lines consisting only of 0xa (windows) ( fixes #3359 ) 2016-03-15 12:26:00 +01:00
bergwerkgis
7044177af0 [skip travis] fix appveyor.yml syntax #2 2016-03-15 08:22:43 +00:00
bergwerkgis
fd99c7c3ae [skip travis] fix appveyor.yml syntax 2016-03-15 08:19:18 +00:00
bergwerkgis
0633e2794f [skip travis] AppVeyor: try another approach to visual test artifacts 2016-03-15 08:13:38 +00:00
bergwerkgis
ca98ce3d9a [skip travis] AppVeyor: try to add visual test images to artifacts 2016-03-15 07:27:00 +00:00
lightmare
787cc4d5e3 Merge pull request #3363 from lightmare/fix-empty-string-to-expr
fix empty string value to_expression_string => pair of quotes
2016-03-15 02:28:53 +01:00
Mickey Rose
a981f560b6 fix empty string value::to_expresssion_string 2016-03-15 00:29:17 +01:00
Mickey Rose
344e62e7db expressions_test: add empty string round-trip check 2016-03-15 00:26:21 +01:00
Dane Springmeyer
4a2ececea4 make bootstrap.sh executable 2016-03-14 15:59:28 -07:00
Dane Springmeyer
9e6b6a2670 [circleci] fix bootstrap.sh call [skip ci] 2016-03-14 15:39:27 -07:00
Dane Springmeyer
2b747db199 [circleci] fix multiline yaml syntax [skip ci] 2016-03-14 15:37:35 -07:00
Dane Springmeyer
18ac7444a6 [circleci] fix multiline yaml syntax [skip ci] 2016-03-14 15:21:36 -07:00
Dane Springmeyer
03f2d8563a [circleci] try catching apt packages [skip ci] 2016-03-14 14:55:08 -07:00
Dane Springmeyer
ba7e78ac7d [circleci] build mapnik before testing so that ccache dir is saved [skip ci] 2016-03-14 14:38:10 -07:00
Dane Springmeyer
5a9c6ae0f7 [bootstrap] avoid unbound variable [skip ci] 2016-03-14 14:02:32 -07:00
Dane Springmeyer
3481377a18 [circleci] initialize postgis database 2016-03-14 13:33:52 -07:00
Dane Springmeyer
742ad0748f [circleci] init submodules 2016-03-14 10:32:40 -07:00
Dane Springmeyer
d026d38047 [circleci] correct ccache path 2016-03-14 10:28:52 -07:00
Dane Springmeyer
75b57ab960 [circleci] use clang-3.7 2016-03-14 10:21:35 -07:00
Dane Springmeyer
b70fed842e [circleci] use clang-3.8 2016-03-14 10:15:39 -07:00
Dane Springmeyer
eb34d19c9f [circleci] upgrade to clang++-3.5 2016-03-14 08:46:29 -07:00
Dane Springmeyer
da8384310e add circleci config 2016-03-14 08:40:20 -07:00
artemp
7d4f894d98 postgis.input - add support for TWKB (https://github.com/TWKB/Specification/blob/master/twkb.md) via https://github.com/CartoDB/mapnik/tree/2.3.x.cartodb ref #3355 2016-03-14 12:12:54 +01:00
Dane Springmeyer
2204a983c6 [test][windows] use utf8 encoding + stop using non-portable path comparison 2016-03-12 08:59:54 -08:00
Dane Springmeyer
632dd7e76d [test][windows] ensure reader is destroyed before trying to remove file - refs #3359 2016-03-12 08:58:53 -08:00
Dane Springmeyer
c18e086026 [csv test][windows] fix string comparison issues on windows 2016-03-11 20:07:54 -08:00
Dane Springmeyer
df62c07a68 [io test] [windows] create directories recursively 2016-03-11 20:07:31 -08:00
Dane Springmeyer
78442547f8 fix directory assertion logic 2016-03-11 18:24:22 -08:00
Dane Springmeyer
b14d525968 write images to custom tmp directory and create it first 2016-03-11 18:08:35 -08:00
Dane Springmeyer
cd9b214d55 fix test runner 2016-03-11 18:08:08 -08:00
Dane Springmeyer
280978c422 [travis] Stop building/running OS X tests to try to finish before 50 min 2016-03-11 17:53:57 -08:00
Dane Springmeyer
0656e02ea0 clean up test binaries if not building them again [skip ci] 2016-03-11 17:52:07 -08:00
Dane Springmeyer
28c7cc548c [appveyor] initialize all submodules 2016-03-11 17:14:10 -08:00
Dane Springmeyer
5aff870e2d MAPNIK_DECL is invalid in plugins - proper fix is mapnik/mapnik-gyp@395a1b8 2016-03-11 15:51:14 -08:00
Dane Springmeyer
89db790dda rename parse_csv function to avoid confusion in inheritance 2016-03-11 14:23:16 -08:00
Dane Springmeyer
559ef78aca more agg ignores [skip ci] 2016-03-11 13:48:51 -08:00
Dane Springmeyer
d1b594e886 more agg ignores [skip ci] 2016-03-11 13:44:30 -08:00
artemp
1b207ae274 csv_util - move implementation details to .cpp 2016-03-11 16:49:26 +01:00
artemp
1f61aa3981 TWKB - port CartoDB implementation to mapnik 3.x.x
ref https://github.com/CartoDB/mapnik/blob/2.3.x.cartodb/plugins/input/postgis/postgis_utils.cpp
ref https://github.com/CartoDB/mapnik/tree/2.3.x.cartodb/plugins/input/postgis#23xcartodb
2016-03-11 16:20:07 +01:00
Dane Springmeyer
f9397e7e66 fix mason re-checkout [skip ci] 2016-03-10 17:48:20 -08:00
Dane Springmeyer
bb0565d4d8 pin mason to avoid breakage from upcoming improvements - refs mapbox/mason#131 2016-03-10 16:25:54 -08:00
Dane Springmeyer
1a10f271d8 ignore -Wfloat-equal from third party headers [skip ci] 2016-03-10 16:07:30 -08:00
Dane Springmeyer
228513cf3e back off -Wold-style-cast -Wreserved-id-macro -Wmissing-noreturn for now 2016-03-10 13:41:51 -08:00
Dane Springmeyer
1582f681ae fix -Wheader-hygiene warnings 2016-03-10 13:40:48 -08:00
Dane Springmeyer
821c4d2115 ignore warnings older compilers don't know 2016-03-10 13:00:29 -08:00
Dane Springmeyer
a1ffbe1ec8 suppress warnings from image_io libs 2016-03-10 12:58:29 -08:00
Dane Springmeyer
8f4e211ebd suppress more third party warnings 2016-03-10 12:46:00 -08:00
Dane Springmeyer
192f5c26c1 use c++ style casts 2016-03-10 12:45:47 -08:00
Dane Springmeyer
51cabe0d34 ignore -Wshadow from agg 2016-03-10 11:45:48 -08:00
Dane Springmeyer
c715b142ec suppress more third party warnings 2016-03-10 11:44:44 -08:00
Dane Springmeyer
9dd07fd40b use c++ style casts 2016-03-10 11:44:23 -08:00
Dane Springmeyer
aa8c543744 use c++ style casts 2016-03-10 11:44:01 -08:00
artemp
f90f6d83c6 update deps / ref https://github.com/mapbox/variant/issues/96 2016-03-10 11:59:49 +01:00
Dane Springmeyer
3985014c04 Add agg warning suppression header 2016-03-09 17:42:24 -08:00
Dane Springmeyer
57dbd77819 more warning_ignore usage - refs #2907 2016-03-09 16:43:00 -08:00
Dane Springmeyer
341db51aa7 finish wrapping boost includes to suppress warnings - add agg wrapper - refs #2907 2016-03-09 16:42:15 -08:00
Dane Springmeyer
7ae0e6d902 share stringify macro from common header 2016-03-09 16:16:14 -08:00
Dane Springmeyer
2eb24c970a avoid -Wdeprecated and -Wreserved-id-macro warnings 2016-03-09 16:11:17 -08:00
artemp
609fab5ab1 windows - MAPNIK_DECL csv_file_parser 2016-03-09 14:27:47 +01:00
artemp
bde9e61e21 split csv_line_grammar into *.hpp *_impl.hpp ref #3343 2016-03-09 12:26:07 +01:00
artemp
1c29054dea csv_grammar - use expectation directives throughout 2016-03-09 12:26:07 +01:00
artemp
e3bd74aa55 remove unused phoenix include 2016-03-09 12:26:07 +01:00
Jiri Drbalek
401e89ad3b update changelog after https://github.com/mapnik/mapnik/pull/3349 2016-03-08 14:30:08 +00:00
artemp
d030fdd667 bump version to 3.0.11 2016-03-07 19:17:36 +01:00
Dane Springmeyer
09f4de1e95 [travis] remove syntax that still breaks on osx [skip ci] 2016-03-07 10:13:45 -08:00
artemp
3fab234e0a update visual data submodule 2016-03-07 15:26:31 +01:00
Artem Pavlenko
cd3e484c04 Merge pull request #3349 from mapycz/raster-resample-division-by-zero
Raster resample division by zero
2016-03-07 14:54:44 +01:00
artemp
ff9cceeb9f use platform specific macros as return codes (EXIT_SUCCESS/EXIT_FAILURE) + check if extent read from shapefile is valid and has valid width and heoght before creating an index. 2016-03-07 13:52:58 +01:00
artemp
6856100433 box2d operator<< - output "box2d(INVALID)" for invalid box. 2016-03-07 13:51:50 +01:00
artemp
8dca8d3001 Merge branch 'lightmare-markers-placements-union' 2016-03-07 10:41:13 +01:00
Mickey Rose
e75feceaca markers_placement_finder: dispatch by switch(placement_type) 2016-03-06 13:18:25 +01:00
Mickey Rose
f96631f8e4 un-template markers_basic_placement
- move Locator/Detector-dependent stuff back to markers_point_placement
- slightly reduces library size, by about 20% of what #3338 added
2016-03-05 19:33:22 +01:00
Dane Springmeyer
fe57454029 [travis] fix invalid bash on osx [skip ci] 2016-03-04 15:27:41 -08:00
Dane Springmeyer
11dbd9c463 remove earlier debug 2016-03-04 13:41:52 -08:00
Dane Springmeyer
82c862d90c more ccache debugging 2016-03-04 13:41:15 -08:00
Dane Springmeyer
3591c137a5 upgrade ccache 2016-03-04 13:38:45 -08:00
Dane Springmeyer
efa31c6556 debug ccache - refs #3350 2016-03-04 12:59:49 -08:00
Dane Springmeyer
37b26c28b6 disable benchmarks from running on travis - refs #3351 2016-03-04 12:36:57 -08:00
Dane Springmeyer
c80c7d27bb Fix ccache stomping - refs #3350 2016-03-04 12:09:09 -08:00
Dane Springmeyer
f90cef44c3 [travis] switch coverage run to linux - closes #3344 2016-03-04 11:29:05 -08:00
Jiri Drbalek
d4ac105eca raster scaling: use mapnik::safe_cast, fixes clipping negative floats 2016-03-04 16:59:12 +00:00
Jiri Drbalek
f1f65664cd raster scaling: a bit of optimization 2016-03-04 15:14:01 +00:00
Jiri Drbalek
1054e1bddb raster scaling: check for division by zero 2016-03-04 15:13:55 +00:00
artemp
71af6a8fe3 css_color_grammar + image_filters_grammar - move phoenix into ctors 2016-03-04 15:53:15 +01:00
artemp
a5cfd27594 split svg_path_grammar,svg_points_grammar,svg_transform_grammar into *.hpp, *_impl.hpp + move boost::phoenix::function initialisation into ctor's
(ref #3343)
2016-03-04 15:34:45 +01:00
Jiri Drbalek
4d402c5ef1 raster scaling: fix accessing out of bounds pixels 2016-03-04 13:55:01 +00:00
artemp
76bb2d9c01 make svg_transform_grammar stateless ref #3343
(https://github.com/mapnik/mapnik/pull/2231)
2016-03-04 13:15:11 +01:00
artemp
4659f40401 make svg_path_grammar and svg_points_grammar stateless ref #3343
(https://github.com/mapnik/mapnik/pull/2231)
2016-03-04 12:42:44 +01:00
artemp
12aec35e2f GeoJSON feature_grammar - make ctor explicit 2016-03-04 11:35:38 +01:00
artemp
4f8bc40b83 update old boost::phoenix syntax 2016-03-04 10:25:03 +01:00
Dane Springmeyer
23fb010ea2 disable dlclose when building with --coverage - refs #3344 2016-03-03 15:02:03 -08:00
Dane Springmeyer
833703026d add COVERAGE configure option - only set coverage flags on libmapnik and plugins - refs #3344 2016-03-03 14:19:12 -08:00
Dane Springmeyer
fde36984de minor unit test cleanups to prepare to test amalgamation 2016-03-03 10:53:58 -08:00
Dane Springmeyer
4173fff42c add svg parsers to pre-compile [skip ci] 2016-03-03 10:15:29 -08:00
Dane Springmeyer
a855a12532 make code comment about needing immutable grammars - refs #3342 [skip ci] 2016-03-03 09:14:06 -08:00
Dane Springmeyer
4c369f7b68 add more files to pre-build that take a long time [skip ci] 2016-03-03 08:05:05 -08:00
Dane Springmeyer
9adafd71df avoid -Wshadow warning from boost [skip ci] 2016-03-03 07:36:33 -08:00
artemp
cbef855743 spirit grammars - move BOOST_FUSION_ADAPT_ADT into implementation files (*_impl.hpp) + reduce boost::phoenix includes to make headers lighter to include 2016-03-03 11:50:41 +01:00
Mickey Rose
ec2c5ddbdc gdal: RAII + minor cleanup 2016-03-03 01:48:07 +01:00
Mickey Rose
489631ca34 remove reference on template parameter Detector 2016-03-03 00:17:41 +01:00
Mickey Rose
c8e3a0d549 refactor render_markers_symbolizer_visitor
- extract some common code into functions
- for cleaner dif: git show -w --patience
2016-03-03 00:07:18 +01:00
Dane Springmeyer
b5ac75cdf0 MAPNIK_DECL breaks on windows when compiled into static libmapnik-json.a 2016-03-02 13:56:01 -08:00
lightmare
80d9aebb79 Merge pull request #3340 from lightmare/gdal-register-once
call GDALAllRegister once, from one thread only
2016-03-02 22:19:07 +01:00
Dane Springmeyer
296f8d467d avoid grammar_impl usage in headers - other minor refactoring around json spirit 2016-03-02 12:48:07 -08:00
Dane Springmeyer
024cb86eff travis osx machines have 2 cores, so let's limit to 4 jobs 2016-03-02 12:47:32 -08:00
Dane Springmeyer
4edb57bf11 Merge pull request #3315 from mapnik/faster-csv-compile
Speed up CSV plugin / mapnik-index compile
2016-03-02 12:22:16 -08:00
Mickey Rose
d4566c28d2 gdal: only register drivers once
- refs #3339, #3093
2016-03-02 21:21:59 +01:00
Dane Springmeyer
10a9dba143 trim includes in json/error_handler.hpp 2016-03-02 12:17:12 -08:00
Dane Springmeyer
d148a966c8 from_geojson/to_geojson are now used in unit tests, csv plugin, and node-mapnik so move these to cpp 2016-03-02 11:26:56 -08:00
Dane Springmeyer
72459b3140 Merge branch 'master' of github.com:mapnik/mapnik into faster-csv-compile 2016-03-02 11:10:23 -08:00
Dane Springmeyer
31171824ec Merge pull request #3326 from lightmare/faster-csv-compile
merge mapnik-index::process_csv_file and csv_datasource::parse_csv
2016-03-02 10:47:05 -08:00
artemp
9138d64725 value.hpp - fix error C2375: redefinition; different linkage 2016-03-02 17:15:05 +01:00
artemp
a549803b5b to_utf8 : fix visibility via MAPNIK_DECL 2016-03-02 17:02:25 +01:00
artemp
f11cc5920f revive lost to_utf8 method but move it into '<mapnik/unicode.hpp>' 2016-03-02 16:47:55 +01:00
artemp
65da617ec0 re-use vector_converter + move apply_marker_multi into *.cpp 2016-03-02 16:20:10 +01:00
artemp
ff7d04f209 Merge branch 'lightmare-markers-placements-union' 2016-03-02 12:48:26 +01:00
Mickey Rose
66e7ef58d7 refactor markers_placement_finder
- refs #3327

Replace member variant of placement-type implementations with plain
union. The active implementation is chosen at construction time like
before.

Make placement-type implementation classes virtual to allow invoking
the active union member through a base class pointer.
2016-03-02 00:53:45 +01:00
artemp
77eaaa1259 move vertex_adapters implementation into .cpp - mark extern 2016-03-01 21:55:47 +01:00
artemp
053faa8a27 remove unused vars/cleanup 2016-03-01 20:49:54 +01:00
artemp
bb78b178cd reuse type 2016-03-01 20:37:23 +01:00
artemp
4c8928dd8c Merge branch 'master' into value-cpp 2016-03-01 17:43:02 +01:00
artemp
d374829b30 refactor apply_markers_multi and help compiler a bit more (re-enable support for GEOMETRYCOLLECTION) 2016-03-01 17:29:03 +01:00
artemp
45b54c703c apply_marker_multi - unroll template instantiation logic + drop 'GeometryCollection' support (experimental) 2016-03-01 17:28:09 +01:00
artemp
566c99807f minor formatting 2016-03-01 17:27:59 +01:00
bergwerkgis
bd4c97f82d [skip ci] AppVeyor: update %ICU_VERSION% 2016-02-29 13:58:59 +00:00
bergwerkgis
820ab82de9 [skip ci] AppVeyor: enable Postgres (for tests) 2016-02-29 13:37:09 +00:00
Mickey Rose
930056f5db benchmarks: fix over-width number formatting issue 2016-02-28 01:04:35 +01:00
Mickey Rose
db58b8b578 benchmarks: synchronize threads before starting the benchmark 2016-02-28 00:28:00 +01:00
Mickey Rose
02286bb7d1 benchmarks: report iterations per second instead of the inverse 2016-02-27 22:23:28 +01:00
Mickey Rose
3fdc799e84 benchmarks: rename option --log-severity to --log for consistency
- haven't noticed before that test/visual/run already had --log,
  and test/unit/run received that option recently

- pass --log=none by default in benchmark/run script
2016-02-27 22:19:08 +01:00
Mickey Rose
c21778fdfc merge mapnik-index::process_csv_file and csv_datasource::parse_csv
- the function in plugin was already configurable via flags, and only
  contained two un-conditioned blocks that process_csv_file didn't have

- so I extracted the common parts into a separate function (in a class
  holding the flags and state), process_csv_file calls it with default
  flags, plugin sets them from params

- removed namespace ::detail, moving stuff that was used outside
  csv_utils to ::csv_utils, and the rest to ::csv_utils::detail
2016-02-26 20:28:42 +01:00
Dane Springmeyer
e836836bdc [make release] add variant, increase depth to avoid (likely) checkout problems of test data [skip ci] 2016-02-26 10:42:03 -08:00
artemp
a4d7f03bb6 output detected newline character for debugging (ref #3220) 2016-02-26 19:20:23 +01:00
artemp
3ee109f46b allow any trailing combinations of line-endings (unix, mac, dos) (ref #3320) 2016-02-26 19:19:32 +01:00
artemp
63df9eecff unconditionally emit the SRID via @pnorman (https://github.com/mapnik/mapnik/pull/3319#issuecomment-189263651) 2016-02-26 14:14:47 +01:00
artemp
442cc281e1 use ST_MakeEnvelope (ref #3317) 2016-02-26 13:50:34 +01:00
Dane Springmeyer
776c599185 update CHANGELOG for mapnik v3.0.10 release [skip ci] 2016-02-25 16:37:57 -08:00
Dane Springmeyer
5c0d496c82 setting up for mapnik v3.0.10 release [skip ci] 2016-02-25 16:37:35 -08:00
Dane Springmeyer
7c555ca696 Add changelog for v3.0.10 [skip ci] 2016-02-25 16:17:05 -08:00
artemp
16321047da Merge branch 'master' into value-cpp 2016-02-25 15:38:43 +01:00
artemp
176d3e49c9 update test (ref f44b5ccfd9 #3237 #3238) 2016-02-25 15:31:18 +01:00
artemp
f44b5ccfd9 always query upto num_features_to_query to determine data schema (currently 5) across all access modes (ref #3237 #3238) 2016-02-25 15:29:32 +01:00
Mickey Rose
aaffb1c771 don't #include .cpp, add it to sources 2016-02-25 11:58:38 +01:00
artemp
c044b6d073 add relevant empty string/null equality ref #1859 #3255 2016-02-25 11:21:07 +01:00
Dane Springmeyer
d1a4268eb6 remove unneeded includes - found with http://include-what-you-use.org 2016-02-24 22:39:50 -08:00
Dane Springmeyer
08d7bf2152 no need for template usage for autodect_csv_flavour 2016-02-24 22:24:24 -08:00
Dane Springmeyer
f2782d0b67 [csv] move spirit usage to cpp 2016-02-24 17:42:51 -08:00
Dane Springmeyer
8ffee05048 Merge branch 'master' of github.com:mapnik/mapnik into faster-csv-compile 2016-02-24 16:42:23 -08:00
bergwerkgis
1a7cf57b9f [skip ci] Windows: checkout Python bindings recursively 2016-02-24 14:36:43 +00:00
artemp
bd5d1c8df8 prune include directives a bit more 2016-02-24 12:24:06 +01:00
artemp
eea68adb40 add required include 2016-02-24 12:10:25 +01:00
Artem Pavlenko
04c2532a81 Merge pull request #3302 from lightmare/travis
move some shell code from .travis.yml to separate script
2016-02-24 12:04:41 +01:00
artemp
50db396760 move value implementation into *.cpp 2016-02-23 23:05:19 +01:00
artemp
0c9a615c24 restore back compatibility shim ref #1859 (TODO: must go away in 3.1.x!!) 2016-02-23 14:01:06 +01:00
artemp
d43bc3232f remove unused include 2016-02-22 15:38:15 +01:00
artemp
2c931a238f color.cpp - port premultiply/demultiply and remove agg dependency 2016-02-22 14:39:31 +01:00
artemp
3e8ee9a559 simplify color generators - remove boost::phoenix usage
(ref: https://github.com/mapbox/windows-builds/issues/81)
2016-02-22 12:45:28 +01:00
Mickey Rose
ea54876d79 remove unused includes 2016-02-20 01:16:11 +01:00
artemp
9fe049d8af CSV utils - strengthen quote detection logic + tests 2016-02-19 15:05:15 +01:00
artemp
62de76a66e test bogus *.index files are handled correctly (ref #3300) + indirectly tests #3306 via requiring mapped_memory_cache::instance().clear() 2016-02-19 11:25:27 +01:00
artemp
c4817f7ae1 clear mapped_memory_cache to ensure new '*.index` are used (MAPNIK_MEMORY_MAPPED_FILE) (ref #3306) 2016-02-19 11:02:12 +01:00
artemp
96175554ae Add explicit instantiation declaration of singleton<mapped_memory_cache, CreateStatic> to avoid multiple instantiations across translation units. (ref #3306) 2016-02-19 11:00:58 +01:00
artemp
6a9240f3d4 Revert "shape.input - add 'update-cache' optional parameter (default:true)" -- no much use as OS seems to apply it's own caching, doh ..
This reverts commit f65c799475.
2016-02-18 17:37:46 +01:00
artemp
eb1a23d6e4 'invalid index' - testing invalid *.index fallback (ref #3300) 2016-02-18 17:36:18 +01:00
artemp
f65c799475 shape.input - add 'update-cache' optional parameter (default:true) 2016-02-18 17:34:03 +01:00
artemp
085a2afe40 minor formatting 2016-02-18 17:17:44 +01:00
Mickey Rose
efb06d2060 travis: move some shell code to separate script
- refs #3291
2016-02-18 15:40:13 +01:00
artemp
b7dd8331df use std::ofstream (ref 3300) 2016-02-18 12:54:17 +01:00
artemp
b43ee6dd04 beef up has_index method to check if *.index file is valid (has expected header) (ref #3300) 2016-02-18 11:45:58 +01:00
artemp
5183c1da44 spatial_index - rename check_header to check_spatial_index and make it free function ref #3300 2016-02-18 11:38:29 +01:00
artemp
cd5105785a csv_utils - fix istringstream initialiser by using explicit iterators pair std::string ctor 2016-02-18 11:35:14 +01:00
artemp
4c0781dbe9 remove redundant unique_ptr usage for local variable 2016-02-18 10:53:12 +01:00
Mickey Rose
6557394dc8 re-add mapnik::to_utf8 stub for backward compatibility 2016-02-17 16:56:21 +01:00
artemp
d7d22276c0 Merge branch 'lightmare-benchanting' 2016-02-17 12:07:19 +01:00
artemp
9aed60a1e6 Merge branch 'benchanting' of https://github.com/lightmare/mapnik into lightmare-benchanting 2016-02-17 12:07:06 +01:00
artemp
c72e3b7a2f Merge branch 'lightmare-to-string' 2016-02-17 10:52:54 +01:00
artemp
de409410a0 Merge branch 'to-string' of https://github.com/lightmare/mapnik into lightmare-to-string 2016-02-17 10:51:20 +01:00
Dane Springmeyer
f014041d9c restore intended variant version - partial revert of 93c4974b1 - refs #3297 2016-02-16 17:07:34 -08:00
Mickey Rose
8762e1d034 benchmarks: add option --min-duration=SECONDS
- with this option test_runner() will be called repeatedly (doing the
  given number of --iterations each time) until SECONDS have elapsed

- added output column showing average time per iteration, should help
  when comparing different runs

- shrinked the # of iterations column using k/M suffixes
2016-02-17 01:30:32 +01:00
Dane Springmeyer
93c4974b1b fix PYTHONUSERBASE - broken since b3170c397c [skip ci] 2016-02-16 13:23:34 -08:00
Dane Springmeyer
4beda3bc46 fix #3290 2016-02-16 12:30:40 -08:00
Mickey Rose
2f303e4da4 benchmarks: helper class for running a sequence of tests 2016-02-16 19:53:03 +01:00
Mickey Rose
29c4f730eb benchmarks: fix errors in non-compiling sources 2016-02-16 19:38:09 +01:00
Mickey Rose
ece5b93f08 benchmarks: add option --log-severity
this option is applied immediately after parsing args to override
MAPNIK_DEFAUL_LOG_SEVERITY
2016-02-16 18:37:24 +01:00
Mickey Rose
90fcdc90d3 benchmarks: fix output formatting
snprintf is a better tool for this task, anyway, but here's what was
wrong with the stream formatting:

s << name << ":" << std::setw(45 - (int)s.tellp())

cannot be used to align columns, tellp() may return any of:
    0
    name.length()
    name.length() + strlen(":")

because the compiler is allowed to reorder the evaluation of
sub-expressions as it likes -- it may evaluate s.tellp() before
evaluating (s << name) or in-between (s << name) and (s << ":")

try with gcc-4.8
2016-02-16 16:27:32 +01:00
artemp
15f905b272 csv - improved quote auto-detection logic which should catch more corner cases 2016-02-16 16:05:12 +01:00
Dane Springmeyer
85d4596769 move getline impl to separate header to avoid as much spirit inclusion 2016-02-15 19:06:11 -08:00
Mickey Rose
1499475d04 remove to_utf8, instead use UnicodeString::toUTF8String 2016-02-15 21:07:01 +01:00
Mickey Rose
5d1fd56cef csv_grammar: make csv_white_space_skipper a primitive_parser 2016-02-15 15:17:26 +01:00
Mickey Rose
ccf579f450 csv_grammar: simplify csv_line_grammar 2016-02-15 15:15:51 +01:00
artemp
ff54a14e34 update deps 2016-02-15 13:57:54 +01:00
artemp
ca0c0e5888 csv_util - combine auto-decting separator/quote/newline into one method std::tuple<char, bool, char, char> autodect_csv_flavour(T & stream, std::size_t file_length) 2016-02-15 13:55:06 +01:00
artemp
a9e1388b3b csv_grammar - always requre matching closing quoting character 2016-02-15 12:02:45 +01:00
lightmare
f4bb28b2c1 Merge pull request #3292 from lightmare/to-string
to_expression_string should re-escape backslashes and quotes
2016-02-15 04:10:36 +01:00
Mickey Rose
2d88fec458 to_expression_string: fix backslash-escapes in strings 2016-02-15 02:45:29 +01:00
Mickey Rose
f19b8e8eff test/expressions: add checks for backslash-escapes in strings 2016-02-15 02:23:19 +01:00
artemp
bfb93c7222 Merge branch 'lightmare-trim-filter-grammar' 2016-02-11 15:43:28 +01:00
artemp
edc2e75474 Merge branch 'trim-filter-grammar' of https://github.com/lightmare/mapnik into lightmare-trim-filter-grammar 2016-02-11 15:43:18 +01:00
artemp
fa6376d9a1 update variant submodule 2016-02-11 10:18:16 +01:00
Dane Springmeyer
10bd37ddd7 avoid unneccesary dependence on << operator of mapnik::enumeration 2016-02-09 10:09:12 -08:00
Dane Springmeyer
8ecb42894f restore << operator for mapnik::enumeration + add unit test 2016-02-09 10:08:29 -08:00
Dane Springmeyer
6c1b6e301d gradient does not need to be a fancy enumeration 2016-02-09 09:56:57 -08:00
Blake Thompson
1d981e899b Merge pull request #3289 from lightmare/lts
bootstrap: relieve leaning toothpick syndrome
2016-02-09 09:26:26 -06:00
Mickey Rose
dea4a73927 bootstrap: relieve leaning toothpick syndrome 2016-02-09 15:06:09 +01:00
artemp
87c3032e63 Merge branch 'lightmare-expr-no-barewords' 2016-02-09 14:15:35 +01:00
artemp
f0cc65958f Merge branch 'expr-no-barewords' of https://github.com/lightmare/mapnik into lightmare-expr-no-barewords 2016-02-09 14:15:22 +01:00
artemp
c53b4cdeda update test data ref #3288 2016-02-09 11:44:55 +01:00
Mickey Rose
15f841213a expression_grammar: restrict unquoted strings to single-atom expressions
- fixes #3017
- closes #3214
2016-02-08 17:15:13 +01:00
artemp
2b725dd257 shapeindex - skip 'null' shapes (ref #3288) 2016-02-08 15:51:13 +01:00
bergwerkgis
9e7b67e35d Merge branch 'master' of https://github.com/mapnik/mapnik 2016-02-08 13:55:25 +00:00
bergwerkgis
643391ba20 Windows: props file to override solution settings for /MP 2016-02-08 13:55:08 +00:00
Mickey Rose
8da250a0ee show build status badges for master (svg)
- Travis badge URL was .png
- AppVeyor badge used latest build (any branch)
- [skip ci]
2016-02-07 14:22:44 +01:00
Mickey Rose
ed8c8df738 expression_grammar: use one symbol table for all constants 2016-02-06 18:40:33 +01:00
Mickey Rose
ae39d48b86 test/expressions: add checks for logical operator precedence 2016-02-06 14:26:57 +01:00
Mickey Rose
959d4ded23 image_filter_grammar: rewrite using Nabialek trick 2016-02-06 02:03:55 +01:00
Mickey Rose
401dfacfc5 test/image_filter: prevent SIGSEGV when parsing fails 2016-02-06 01:56:05 +01:00
lightmare
b24f520439 Merge pull request #3239 from lightmare/expr-test
condense expressions tests
2016-02-06 00:37:05 +01:00
Mickey Rose
5764d619f3 expressions test: move expression strings into Catch calls, continue on failure 2016-02-05 17:22:01 +01:00
Mickey Rose
53bb55eade rename expresssions_test.cpp, didn't pass spell check 2016-02-05 17:22:01 +01:00
artemp
cb708d7f5a transform_grammar: correct and simplify rules per bcc7495a87 (commitcomment-15915607)
image_filter: relax `agg-stack-blur` rule to allow `agg-stack-blur,agg-stack-blur(),agg-stack-blur(1),agg-stack-blur(1,1)` syntax + add image filter parsing tests
2016-02-05 16:50:49 +01:00
artemp
bcc7495a87 transform grammar - fix optional seprator logic 2016-02-05 13:08:17 +01:00
bergwerkgis
eeb1507c6d AppVeyor: new try, nr.2 2016-02-05 11:13:09 +00:00
bergwerkgis
9d359ff3df AppVeyor: new try, nr.1 2016-02-05 11:05:12 +00:00
Mickey Rose
7594301d98 test/shapeindex: include loop variables in failure message
[skip ci]
2016-02-04 18:54:21 +01:00
artemp
8c1f71c39e try 8 JOBS 2016-02-04 12:51:20 +01:00
bergwerkgis
9282c60c91 AppVeyor: try again mapnik::value_null - correct <=, >= return values 2016-02-04 10:21:41 +00:00
artemp
7ab93a30f2 mapnik::value_null - correct <=, >= return values ref #3285 2016-02-04 10:06:11 +01:00
Dane Springmeyer
7ad4bf379d stick with clang-3.5 for now
- I have early evidence that mapnik compiled with 3.6 and mapnik-vt compiled with 3.5 == crashes
  - Also the mason deps are still compiled with 3.5
  - TODO: upgrade mapnik, mapnik-vt, and all mason deps to 3.6 all at once.
2016-02-03 11:18:00 -08:00
Dane Springmeyer
52cabfd107 expat is no longer a must have cairo dep since cairo can be built without fontconfig [skip ci] 2016-02-03 10:57:09 -08:00
artemp
35ab8cccdc follow up on previous commit - convert to common_type prior applying / (MSCV C4804) 2016-02-03 12:45:29 +01:00
artemp
376ffba7fe convert value_bool to value_integer before operator / (fixes unsafe use of bool - MSVC C4804) 2016-02-03 12:35:09 +01:00
artemp
c0724a6d95 value comparison - deduct return type automatically (fixes MSVC C4800) 2016-02-03 12:33:15 +01:00
artemp
09163f969d deps - update variant 2016-02-03 11:06:00 +01:00
Dane Springmeyer
1600bfe981 remove dead code in enumeration.hpp 2016-02-02 12:35:19 -08:00
Dane Springmeyer
09f137796d use std namespace for clib functions and fix spelling in comments 2016-02-02 12:35:19 -08:00
Dane Springmeyer
bc08617eb8 Merge pull request #3281 from mapnik/no-miniz
remove miniz support
2016-02-02 12:33:12 -08:00
Dane Springmeyer
834028db7a remove miniz support - library is unused in mapnik and unmaintained since 2013 (https://code.google.com/archive/p/miniz/) 2016-02-02 11:37:26 -08:00
artemp
b427139951 update variant 2016-02-02 12:41:22 +01:00
artemp
13af423046 unit test - use 'parse_image_filters' and avoid instantiating expensive redundant grammar 2016-02-02 11:30:00 +01:00
artemp
39a97865fc image_filter_grammar - move 'BOOST_FUSION_ADAPT_STRUCT` into *_impl.hpp 2016-02-02 11:30:00 +01:00
Dane Springmeyer
e76a1d9a81 [csv] use faster version of csv_utils::parse_line in more places + fix error output 2016-02-01 12:23:26 -08:00
Dane Springmeyer
d59460861e update to latest variant 2016-02-01 11:51:23 -08:00
artemp
33be145be9 variant - update to the latest upstream 2016-02-01 09:22:14 +01:00
Mickey Rose
958fcbf165 travis: try fewer jobs on osx 2016-01-31 15:44:25 +01:00
Mickey Rose
f9248914af travis: add SCons timings, fix comment in Makefile 2016-01-31 15:36:00 +01:00
Mickey Rose
4ef8efd554 remove struct member designators from initialization - fixes #3277
- it's C99 syntax, illegal in C++11 braced-init-list
- interestingly it's accepted in C++ by GCC and Clang,
  rejected by MSVC
2016-01-30 20:44:40 +01:00
Dane Springmeyer
57027eeee3 trim back what we build on OS X to try to save time 2016-01-29 20:04:42 -08:00
Dane Springmeyer
971c37691b travis/osx - parellelize the heavy compile jobs
- We can probably get away with this since OS X
   does not have an OOM killer
 - Will watch to see if it actually helps overall build times...
2016-01-29 19:00:04 -08:00
Dane Springmeyer
7ddb3cc4a2 try more JOBS=10 on osx 2016-01-29 18:32:14 -08:00
Dane Springmeyer
09ce7a0ea2 use xcode7.2 rather than 7.0.1 2016-01-29 18:31:35 -08:00
Mickey Rose
239623f976 remove unused variable [skip ci] 2016-01-30 03:24:07 +01:00
lightmare
e75342ac09 Merge pull request #3275 from lightmare/cleanup-noexcept-and-defaulted
Cleanup defaulted constructors and assignment operators, noexcept specifiers
2016-01-30 03:22:47 +01:00
Mickey Rose
a8d8a0d74f make clang happy - const default initialization
http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#253
http://stackoverflow.com/questions/7411515/why-does-c-require-a-user-provided-default-constructor-to-default-construct-a
http://stackoverflow.com/questions/21900237/do-i-really-need-to-implement-user-provided-constructor-for-const-objects
2016-01-30 02:03:25 +01:00
Mickey Rose
be5d772d6c attempt to fortify mapnik::value conversion construction
- including correct noexcept specifier
- adding conversion-assignment operator wasn't really necessary,
  but it might be more efficient since it avoids constructing an
  intermediate variant
2016-01-30 02:03:25 +01:00
Mickey Rose
400e05585f refine noexcept specifiers on forwarding conversion constructors 2016-01-30 02:03:25 +01:00
Mickey Rose
b2c14972de remove explicitly-defaulted constructors and assignment operators ...
... where they should be implicitly defined by the compiler
2016-01-30 02:03:25 +01:00
Dane Springmeyer
61ffe096fc latest variant 2016-01-29 16:32:09 -08:00
Dane Springmeyer
24e4c67a34 Merge branch 'master' of github.com:mapnik/mapnik 2016-01-29 16:31:29 -08:00
Dane Springmeyer
a447c78d2e ensure valid objects in shapeindex test 2016-01-29 16:30:03 -08:00
Dane Springmeyer
0b22bd87f7 shape_index_featureset: initialize members explicitly - remove debug print 2016-01-29 16:29:43 -08:00
Dane Springmeyer
32bbccb8fd fix #3276 2016-01-29 16:29:12 -08:00
Dane Springmeyer
0291e851fe disable g++4.9 build which gets killed / use clang 3.6 to prepare for c++14 support 2016-01-29 16:05:09 -08:00
Dane Springmeyer
bc89f7f877 upgrade to latest variant - refs mapbox/variant#73 2016-01-29 15:54:15 -08:00
Dane Springmeyer
b3170c397c travis: linux: test gcc49 / osx: use xcode7 - closes #3240 2016-01-29 15:31:13 -08:00
artemp
64c2ad1e93 Just let the compiler generate move/copy for mapnik::value - via @lightmare ref https://github.com/mapnik/mapnik/issues/3274#issuecomment-176730124 2016-01-29 15:05:08 +01:00
artemp
a50036d421 value - make noexcept conditional + add move assigment operator 2016-01-29 13:07:43 +01:00
artemp
4233fb4abb update deps 2016-01-29 11:37:01 +01:00
lightmare
0b2775a5e1 Merge pull request #3265 from lightmare/refactor-symbolizers
refactoring group, markers symbolizers to reduce compile time / memory usage
2016-01-29 02:23:12 +01:00
Mickey Rose
1eb298f48c fix text_render_thunk construction
- this reverts render_thunk_extractor visitation by text/shield
  symbolizer back to how it works in master, only amended to avoid
  passing temporaries to text_symbolizer_helper
2016-01-29 00:12:18 +01:00
Mickey Rose
7bbc758fbc cleanup extraneous includes 2016-01-29 00:12:18 +01:00
Mickey Rose
6d84094f77 move render_markers_symbolizer to separate .cpp 2016-01-29 00:12:18 +01:00
Mickey Rose
f99c0e5a6f refactor render_markers_symbolizer 2016-01-29 00:10:19 +01:00
Mickey Rose
8a55eefbb5 derive virtual_renderer_common from renderer_common 2016-01-29 00:10:19 +01:00
Mickey Rose
844021a892 make face_manager copyable 2016-01-29 00:10:18 +01:00
Mickey Rose
a7ecabcde3 move render_group_symbolizer to separate .cpp
- use abstract class render_thunk_list_dispatch for the callback
  instead of template parameter render_thunks
- add class scoped_glyph_positions_offset for temporary shifting
  of glyph positions
- remove render_offset_placements
2016-01-29 00:10:18 +01:00
Mickey Rose
9d7b3d00e1 minor namespace cleanup in group_layout_manager 2016-01-29 00:10:18 +01:00
Mickey Rose
7761d32ec5 split common group symbolizer stuff 2016-01-29 00:10:18 +01:00
Dane Springmeyer
971508d752 Merge pull request #3271 from mapnik/image_filter_grammar_compile
Compile image_filter_grammar separately
2016-01-28 14:20:36 -08:00
Dane Springmeyer
b6d1e02939 repoint slow build list at image_filter_grammar 2016-01-28 12:13:02 -08:00
Dane Springmeyer
ed076bf3f5 compile image_filter_grammar separately 2016-01-28 12:04:36 -08:00
lightmare
5663e2daaf Merge pull request #3245 from lightmare/movable
add util::movable to complement util::noncopyable
2016-01-28 19:16:26 +01:00
artemp
28b807f852 update variant 2016-01-28 15:33:57 +01:00
Dane Springmeyer
c786ff9edf postgis unit test: copy params to ensure that each test is independent and order does not matter 2016-01-27 12:55:26 -08:00
artemp
0ac9d39759 update variantx 2016-01-27 17:17:26 +01:00
artemp
ea68e202be Merge branch 'master' into visitor-no-copy 2016-01-27 17:10:51 +01:00
artemp
9da449edf7 sync up variant again! 2016-01-27 15:59:58 +01:00
artemp
4b33780663 update variant 2016-01-27 15:48:29 +01:00
artemp
d027ed67c7 more const strictness, update to work with latest mapbox::variant/visitor-no-copy branch 2016-01-27 14:50:17 +01:00
artemp
c7a964abf6 disable "point unitialized" test for boost >= 1.50 (pending reviewing https://github.com/mapnik/mapnik/issues/3218) 2016-01-27 14:48:57 +01:00
artemp
4e8bbe48df fix return type 2016-01-27 12:05:39 +01:00
Dane Springmeyer
753a0ad216 give users a hint on what to do when they hit 'Invalid index file' 2016-01-26 12:19:34 -08:00
Artem Pavlenko
5d40745236 Merge pull request #3260 from tomhughes/fsf
Correct FSF address in various files
2016-01-26 10:58:58 +01:00
Tom Hughes
7262b2a256 Correct FSF address in various files 2016-01-26 09:54:42 +00:00
Artem Pavlenko
40258eb042 Merge pull request #3259 from tomhughes/exec
Remove execute permission from header files
2016-01-26 10:47:37 +01:00
Tom Hughes
920cb93d4c Remove execute permission from header files 2016-01-26 09:39:14 +00:00
Dane Springmeyer
c037fcba36 fix shapeindex tests - closes #3252 2016-01-25 16:57:32 -08:00
artemp
fa5bbd99fa mapnik::value - refactor, synchronise and simplify comparisons implementations 2016-01-25 12:27:52 +01:00
artemp
9774f41b85 mapnik::value_null - add <,<=,>,>= implementations 2016-01-25 12:26:57 +01:00
artemp
db9facef90 update submodules 2016-01-25 10:04:10 +01:00
Artem Pavlenko
f17b11a1e5 Merge pull request #3251 from lightmare/svg-parser-test
Fix #3249 and make parse_svg_value more strict
2016-01-25 09:58:14 +01:00
Artem Pavlenko
8f055d1252 Merge pull request #3250 from tomhughes/boost60
Adapt geometry tests got changes in boost 1.60
2016-01-25 09:55:51 +01:00
Mickey Rose
e9fbe0724f travis: fetch required git submodule pull requests 2016-01-24 18:34:28 +01:00
Mickey Rose
8d7fca3236 svg_parse_value - add 'px' unit, report trailing garbage
- avoid operator comma in semantic action, refs #3249
2016-01-23 20:44:14 +01:00
Mickey Rose
05b66fc355 refactor svg_parser_test
- moved some boilerplate to helper struct test_parser
- added REQUIRE(!parse...) to parsing error tests
- changed parsing error tests to compare full error lists instead of
  just count and then individual messages (if count was different, you
  were left in the dark with no messages at all)
- changed some double-quotes in errors to single-quotes
  (corresponding change to parser follows)
2016-01-23 20:21:05 +01:00
Tom Hughes
72297c9431 Adapt geometry tests got changes in boost 1.60
The issues with points at NaN and infinity bring considered as
valid reported in https://svn.boost.org/trac/boost/ticket/11711 has
been fixed in boost 1.60 so the tests need to reflect that.

Also per https://svn.boost.org/trac/boost/ticket/11710 empty
polygons are now considered invalid, and hence not simple.
2016-01-23 14:43:02 +00:00
Blake Thompson
5e30aee4e7 Added missing required header from unit test 2016-01-22 11:02:12 -06:00
Mickey Rose
0784e36754 add util::movable to complement util::noncopyable 2016-01-22 00:24:24 +01:00
Blake Thompson
d3d1106865 Fixed bug around set envelope in memorydatasource 2016-01-21 15:20:50 -06:00
artemp
f140cc7dd1 update submodules 2016-01-21 18:52:24 +01:00
artemp
a3ed9ad07e value test - improve coverage 2016-01-21 18:36:41 +01:00
artemp
0e836d7e20 mapnik::value - add value_bool/value_bool impl 2016-01-21 18:35:53 +01:00
artemp
85c3f5dbc1 improve type promotion across arithmetic ops 2016-01-21 18:14:55 +01:00
artemp
a707d5cd65 test svg - refactor common code into separate *.hpp 2016-01-21 18:14:17 +01:00
artemp
74776631c5 add value tests 2016-01-21 12:48:36 +01:00
artemp
e100037288 mapnik::value - improve type promotion for impl::add 2016-01-21 12:47:56 +01:00
artemp
e5db888673 remove redundant t == "png" check as it results in slower code ref #3243 2016-01-20 16:48:26 +01:00
artemp
be7a70746c image_io_test - increase coverage 2016-01-20 13:43:01 +01:00
artemp
c36ae3964a image_io_test : add basic save options tests 2016-01-20 13:39:32 +01:00
artemp
2db9818ab9 image_io_test : add 'save_to_xxx' tests 2016-01-20 12:24:08 +01:00
artemp
5471f519cd box2d - add missing tests 2016-01-19 12:15:50 +00:00
artemp
19c8b3e581 mapnik::color + increase unit test coverage (operator<<, to_string(), premultiply/demultiply) 2016-01-19 11:39:12 +00:00
artemp
f41d515572 fix operator<< 2016-01-19 11:38:52 +00:00
bergwerkgis
acdfde2062 AppVeyor: do a real clone (instead of 'zip-clone') but limit to latest 5 commits 2016-01-18 11:30:42 +00:00
bergwerkgis
58c0f29355 AppVeyor: 'git submodule update --init deps/mapbox/variant' 2016-01-18 10:52:02 +00:00
Dane Springmeyer
ca310c5439 Merge pull request #3237 from mapnik/geojson-props
Test for geojson with multiple different properties across features
2016-01-15 11:41:21 -08:00
mapsam
7a98745883 adding new passing test that catches failure of feature collection properties 2016-01-15 08:37:30 -08:00
artemp
1bfabec6be parse_svg_value - add DPI template parameter (default 90) (#3233) 2016-01-15 09:38:46 +00:00
artemp
c615708a2a restore local variant_io.hpp with specialisation for bool (https://github.com/mapnik/node-mapnik/issues/582) 2016-01-15 09:26:42 +00:00
Dane Springmeyer
5a6de7627b improve formatting of INFO output [skip ci] 2016-01-14 16:10:10 -08:00
Dane Springmeyer
bba2826813 make available test functions as macros to allow catch to report correct line numbers 2016-01-14 16:06:20 -08:00
Dane Springmeyer
6ad373019d revert unintended change added in 9c4085c8b1 2016-01-14 15:26:15 -08:00
Dane Springmeyer
03285f60b0 install mapbox variant - followup to #3236 2016-01-14 14:09:32 -08:00
Dane Springmeyer
9c4085c8b1 Adapt install docs to needing submodule before building #3236 2016-01-14 11:00:38 -08:00
Artem Pavlenko
c82b5c50c6 Merge pull request #3234 from mapnik/svg-tests
More SVG visual tests (testing tuesday 01/12/2016)
2016-01-14 16:19:55 +00:00
Artem Pavlenko
7997f3725e Merge pull request #3235 from mapnik/raster_mem_ds
Raster Type Memory Datasource
2016-01-14 16:19:43 +00:00
Artem Pavlenko
711d9eb679 Merge pull request #3236 from mapnik/external-variant
inherit mapnik::util::variant from mapbox::variant and add mapbox::va…
2016-01-14 16:19:20 +00:00
artemp
3333f3e1fa inherit mapnik::util::variant from mapbox::variant and add mapbox::variant as submodule 2016-01-14 15:02:41 +00:00
Blake Thompson
044c21db13 Made it possible to change the type of a memory datasource by inspecting the features that are added to the memory datasource 2016-01-14 08:36:12 -06:00
artemp
cc635df7bc svg_parser - use parse_svg_value 2016-01-14 11:03:55 +00:00
artemp
8ab10d0231 update test 2016-01-14 10:56:05 +00:00
artemp
48c043ec42 implement "parse_svg_value" supporting SVG units (https://www.w3.org/TR/SVG/coords.html#Units) (#3233) 2016-01-14 10:54:33 +00:00
artemp
1dff67e1fe fix namespace qualifiers 2016-01-14 10:24:40 +00:00
jakepruitt
ebc0f2eb8b Removed random tests from reference images 2016-01-13 15:37:56 -07:00
jakepruitt
de9023f5e0 Add circle tests 2016-01-13 15:20:01 -07:00
mapsam
3b79892ae5 svg test for multiple command parts, #3229 & #3225 2016-01-12 15:28:40 -08:00
jakepruitt
12d970ff8d Change octocat svg width 2016-01-12 13:37:03 -07:00
jakepruitt
e933f9ec40 Update new octocat fixture 2016-01-12 11:10:09 -07:00
Artem Pavlenko
6e93b05a06 Merge pull request #3228 from mapnik/svg-dash-array
Svg dash array
2016-01-12 15:11:36 +00:00
artemp
10a47921cf Merge branch 'master' into svg-dash-array 2016-01-12 15:10:44 +00:00
artemp
1fed45b123 export path_parse<svg_converter_type> 2016-01-12 15:08:28 +00:00
artemp
37d586d701 Unit tests - add SVG path parsing tests 2016-01-12 15:08:02 +00:00
artemp
9e7f7917e3 export path_parse<svg_converter_type> 2016-01-12 15:06:30 +00:00
artemp
24cb42fc22 Merge branch 'master' into svg-dash-array 2016-01-12 09:53:03 +00:00
Dane Springmeyer
daaea1eb8c download mason packages in batches to avoid overloading https connections 2016-01-11 18:16:30 -08:00
Dane Springmeyer
7062c473c7 update a few deps 2016-01-11 17:20:05 -08:00
Dane Springmeyer
9c3f78b411 Merge pull request #3180 from mapnik/postgis-tests-squashed
1st iteration of PostGIS tests
2016-01-11 17:02:34 -08:00
Dane Springmeyer
d6b854aef3 Merge pull request #3227 from mapnik/viz-hidden
Viz hidden
2016-01-11 16:56:49 -08:00
Dane Springmeyer
72d0ed5edc no need to set CUSTOM_CXXFLAGS now 2016-01-11 16:51:38 -08:00
Dane Springmeyer
8115659fa6 Default to vizibility=hidden and inlines-hidden - refs #1863 2016-01-11 16:51:14 -08:00
Dane Springmeyer
488af4055d Reduce merge conflicts with master 2016-01-11 16:23:04 -08:00
Dane Springmeyer
40fed664df more visual test updates 2016-01-11 14:10:46 -08:00
Dane Springmeyer
6036711148 update to latest visual test images 2016-01-11 14:02:57 -08:00
Dane Springmeyer
4e26932868 use latest visual test data 2016-01-11 13:48:48 -08:00
artemp
0a5f006bb9 SVG : add support for stroke-dashoffset 2016-01-11 10:56:04 +00:00
artemp
d3fc7f8fed Merge branch 'master' into svg-dash-array 2016-01-08 16:08:11 +00:00
artemp
9494bc15d4 SVG path parser - correct handling optional separator (,) between multiple command parts (#3225)
http://www.w3.org/TR/SVG/paths.html#PathElement
2016-01-08 12:00:51 +00:00
artemp
479a657437 make SVG path parser stricter by failing if not all input parsed ref #3225 2016-01-08 11:59:59 +00:00
artemp
65b20e44e3 export agg::vcgen_dash 2016-01-08 10:48:47 +00:00
artemp
a8bf7c72f9 Merge branch 'master' into svg-dash-array 2016-01-08 10:46:17 +00:00
artemp
c8932b3df3 svg2png : use SVG dimensions as a fallback when bounding box has zero width or height (e.g horizontal or vertical line) 2016-01-08 10:20:50 +00:00
artemp
b1c22ba853 SVG :initial support for "stroke-dasharray" 2016-01-07 15:54:34 +00:00
Blake Thompson
fd6e7704a1 Merge pull request #3222 from mapnik/sanitize_errors
Add configure flags for Sanitize errors
2016-01-07 08:36:11 -06:00
Blake Thompson
b46f87b385 Merge branch 'master' into sanitize_errors
Conflicts:
	include/mapnik/json/positions_grammar.hpp
2016-01-07 08:34:52 -06:00
Artem Pavlenko
513cfa7c80 Merge pull request #3219 from mapnik/address-sanitizer-happy
keep address-sanitizer happy ref (https://github.com/mapbox/mapnik-ve
2016-01-07 14:23:54 +00:00
artemp
ca83ca167d svg - move stroke-dasharray setup into dash-array parser method 2016-01-07 11:20:22 +00:00
Dane Springmeyer
bb8cd10751 tiff reader: read_generic is not implemented so throw in all cases not just if we can open the image 2016-01-06 09:17:35 -08:00
Dane Springmeyer
31958352bc Merge pull request #3213 from mapycz/fix-visual-tests-init
visual tests: fix vector initialization
2016-01-06 09:02:30 -08:00
artemp
e296e554a8 sync with 3ac6e46d01 2016-01-06 12:24:24 +00:00
artemp
50905c3f9a c++ style pedantic 2016-01-06 12:23:59 +00:00
Dane Springmeyer
1687f6ff1b add custom command line options to unit tests - refs philsquared/Catch#381 2016-01-05 17:13:36 -08:00
Dane Springmeyer
ca3b0c43e7 upgrade catch.hpp 2016-01-05 16:42:36 -08:00
Dane Springmeyer
96dff395a4 fix usage of base in csv unit tests 2016-01-05 15:18:02 -08:00
Dane Springmeyer
c82b4c8ba3 fix mason-latest publishing, broken since e547ee12 2016-01-05 13:34:11 -08:00
artemp
7b2da35c01 fix typo doh 2016-01-05 19:52:36 +00:00
artemp
5cd3645cd1 keep address-sanitizer happy ref (https://github.com/mapbox/mapnik-vector-tile/pull/171) 2016-01-05 16:58:37 +00:00
bergwerkgis
a86df63490 [skip ci] Windows: remove check for unix style "find" 2016-01-05 14:15:13 +01:00
Artem Pavlenko
d5f35d749e Merge pull request #3217 from mapnik/multi-part-shapeindex
Multi part shapeindex
2016-01-05 10:23:26 +00:00
artemp
ee0395df7a add basic read/write header support (quad_tree + spatial_index) ref (#3216) 2016-01-05 10:20:21 +00:00
artemp
869bff43f0 remove debug printing 2016-01-04 15:15:37 +00:00
artemp
b513d6a07b don't export DYLD_LIBRARY_PATH multiple times 2016-01-04 14:24:25 +00:00
artemp
102671e498 add test with --index-parts option 2016-01-04 14:22:09 +00:00
artemp
412fa20eb8 shapeindex: indicate default behaviour in -h(--help) 2016-01-04 13:23:50 +00:00
artemp
4c6632cf93 shapeindex : remove duplicate node defs + add default ctor 2016-01-04 13:19:16 +00:00
artemp
88a04a120f remove stderr 2016-01-04 11:56:01 +00:00
artemp
a2b3130d4b rebase to master (remove spirit-x3 changes) 2016-01-04 11:43:27 +00:00
Jiri Drbalek
9ad6ee2999 visual tests: fix vector initialization 2015-12-28 09:30:46 +00:00
Blake Thompson
dfa62c88d8 fix for santize address errors 2015-12-27 21:40:10 -06:00
Dane Springmeyer
cb7ed7bc80 Merge pull request #3210 from mapnik/windows-python-bindings
Windows: pull python bindings
2015-12-23 08:12:02 -08:00
bergwerkgis
630640ee6c Windows: pull python bindings, too. 2015-12-23 12:48:43 +01:00
artemp
e0c756ee8d geometry_envelope - add missing linear_ring 2015-12-17 12:07:05 +00:00
Dane Springmeyer
bd21e452d1 fix minor header glitches to allow headers to compile standalone 2015-12-16 14:22:36 -08:00
Dane Springmeyer
a0719870ab remove out of date/unused header 2015-12-16 14:22:09 -08:00
Dane Springmeyer
ce98a5c811 fix header glitches uncovered by time-header script - refs #3208 2015-12-16 13:17:19 -08:00
Dane Springmeyer
e3a1108ebd Add a script to time how long it takes to compile a header inside mapnik 2015-12-16 13:02:05 -08:00
bergwerkgis
eff087c0cf [skip ci] Windows: only manipulate page file settings on AppVeyor 2015-12-16 14:19:55 +00:00
bergwerkgis
1a49fe20fb AppVeyor: set powershell execution policy 2015-12-16 12:04:35 +00:00
bergwerkgis
34f7c86caf AppVeyor: try to increase page file size via powershell 2015-12-16 11:29:22 +00:00
bergwerkgis
d75fd12eab Windows: output pagefile size on AppVeyor (compiler out of heapspace) 2015-12-16 10:56:05 +00:00
bergwerkgis
e1498deaa8 [skip ci]
Windows:
* read Boost version from AppVeyor.yml
* init submodules from build-local.bat
2015-12-15 19:51:31 +00:00
Dane Springmeyer
6254b3851e Merge branch 'master' of github.com:mapnik/mapnik into postgis-tests-squashed 2015-12-14 15:28:04 -08:00
Dane Springmeyer
75cb954d26 update test-data to include new postgis sql 2015-12-14 15:27:48 -08:00
Dane Springmeyer
fc6556170d let's not depend on CREATE EXTENSION working in C++ code 2015-12-14 15:27:05 -08:00
Dane Springmeyer
b42f072ad3 wip: start chipping away at getting tests running - refs #3180 2015-12-14 15:00:10 -08:00
Dane Springmeyer
dc109a7ae2 Merge branch 'master' of github.com:mapnik/mapnik into postgis-tests-squashed 2015-12-14 13:45:29 -08:00
Dane Springmeyer
2222ca9b95 Merge pull request #3197 from tomhughes/nik2img
Fix name reported by mapnik-render
2015-12-14 13:33:42 -08:00
artemp
3139dad5cd don't bother iterating over geometries if shape_type is shape_null in header 2015-12-14 14:11:38 +00:00
artemp
6ca0e34a80 mapnik-index - output failed feature JSON when both --validate-features and --verbose options present. 2015-12-14 11:47:19 +00:00
artemp
5e2f3ce61d geojson/geometry - update unit test 2015-12-14 11:46:39 +00:00
artemp
599b021175 support arbitrary (nested) attributes in JSON Geometry 2015-12-14 11:46:39 +00:00
artemp
e65cb96743 sync expressions tests with spirit-x3 branch 2015-12-08 16:39:32 +00:00
artemp
327ba670ff expressions unit test - add relational and regex tests 2015-12-08 16:25:59 +00:00
artemp
319651c33a expressions unit test - add logical expr 2015-12-08 14:25:02 +00:00
artemp
10cd9cd0fd unit test - expression parsing/evalution test 2015-12-08 14:25:02 +00:00
Tom Hughes
25a9cab9ad Fix name reported by mapnik-render 2015-12-06 15:10:43 +00:00
Dane Springmeyer
50d1e2fbb3 handle more gcc 4.9 -Wshadow warnings 2015-12-04 14:07:42 -05:00
Dane Springmeyer
8e6e74dfa2 suppress -Wshadow warning from ogr 2015-12-03 10:22:02 -05:00
Dane Springmeyer
e424ef1d77 start fixing gcc 4.9 -Wshadow warnings 2015-12-02 15:55:26 -05:00
Dane Springmeyer
a58ef62fc2 start fixing gcc 4.9 -Wshadow warnings 2015-12-02 15:54:58 -05:00
Dane Springmeyer
59723ae693 restore -Wno-unsequenced, accidentally dropped in 7608040906 2015-12-01 13:59:45 -05:00
bergwerkgis
8235d0ed30 AppVeyor: fix new paths for new GIT version 2015-12-01 10:49:53 +00:00
artemp
b9c65368d2 update CHANGELOG for mapnik v3.0.9 release [skip ci] 2015-11-26 10:13:12 +00:00
artemp
03a0926bf0 update SCons to 2.4.1 2015-11-26 10:09:02 +00:00
artemp
e2cf79260f unit tests - add 'ensure original ordering in geojson.input' test ref #3182 2015-11-25 12:46:21 +00:00
artemp
d288ea0af6 Merge branch 'mapycz-geometry-remove-empty' 2015-11-24 15:49:50 +00:00
Jiri Drbalek
100e3c4995 centroid: enable algorithm on multi-geometries with empty sub-geometries 2015-11-24 15:41:34 +00:00
artemp
a2b1475ef7 port shapeindex_test.py to c++ (#3184) 2015-11-24 10:50:09 +00:00
Artem Pavlenko
1b6ca8bcd0 Merge pull request #3176 from mapycz/fix-warn
csv.input: fix warning
2015-11-23 10:46:10 +00:00
artemp
ec074752cc fix mistype => should be while (shx.is_good() && pos <= file_length - 4) 2015-11-23 10:32:14 +00:00
artemp
aee0149a1a GeoJSON - preserve feature ordering with both cache_features=true' and cache_features=false` (#3182) 2015-11-23 10:19:49 +00:00
artemp
c32166c71f move loop terminatiion condition to the top and avoid potential infinite loop when if (content_length != shp.read_xdr_integer()) + Track empty shapes and don't create *.index when there is no non-empty geometries
(#3184)
2015-11-23 09:58:27 +00:00
Jiri Drbalek
7283b758a0 csv.input: fix warning 2015-11-23 08:54:13 +00:00
artemp
7aa97628e0 revert accidentally pushed changes from WIP branch 2015-11-20 19:55:21 +00:00
artemp
58998f8126 cleanup - remove unused vars 2015-11-20 17:45:10 +00:00
artemp
4fffcdd612 update test data 2015-11-20 17:11:52 +00:00
artemp
1eab1a3a28 CSV - change 'quote' auto-dection logic to handle mixed cases better 2015-11-20 17:10:55 +00:00
bergwerkgis
b4a7b594dd 1st iteration of PostGIS tests 2015-11-20 15:44:43 +01:00
artemp
44eb1b69fa revert test-data 2015-11-20 14:13:13 +00:00
artemp
e0d7f8ffcb update test data 2015-11-20 14:10:44 +00:00
Dane Springmeyer
9a29b5005d fix #3178 2015-11-19 20:57:05 -08:00
Dane Springmeyer
c6d6153964 fix multiple -Wunused-parameter warnings [skip ci] 2015-11-19 17:14:58 -08:00
Artem Pavlenko
4dd2202055 Merge pull request #3175 from mapycz/fix-link-mapnik-index
mapnik-index: fix linking on Linux
2015-11-19 12:38:02 +00:00
artemp
da617f92eb add scale_image_agg' and reproject_and_scale_raster` overloads for backward caps 2015-11-19 12:26:16 +00:00
Jiri Drbalek
cb3f0fdcf2 mapnik-index: fix linking on Linux 2015-11-19 11:01:46 +00:00
artemp
7d8f7357ed GeoJSON - refactor FeatureCollection grammar to restore empty features condition (#3167) 2015-11-18 14:44:39 +00:00
artemp
938702dc8b geojson.input - rely on expectation failure to select optional single Feature/Geometry parser 2015-11-18 14:43:40 +00:00
artemp
998164dc72 mapnik c++ style 2015-11-18 14:42:29 +00:00
artemp
d373ae2e93 update visual-data 2015-11-17 15:28:25 +00:00
artemp
21c4438cbe Merge branch 'mapycz-fix-gray-scaling-2' 2015-11-17 15:04:08 +00:00
artemp
6d599dff0a Merge branch 'fix-gray-scaling-2' of https://github.com/mapycz/mapnik into mapycz-fix-gray-scaling-2 2015-11-17 15:03:37 +00:00
Dane Springmeyer
2ee9639f91 Merge branch 'master' of github.com:mapnik/mapnik 2015-11-12 10:19:56 -08:00
Dane Springmeyer
d9d37423b7 use mapnik/warning_ignore.hpp in a few last places 2015-11-12 09:51:41 -08:00
artemp
7a0688edcb mapnik-index - implement validatation callback by comparing bounding boxes from bbox extractor and GeoJSON feature 2015-11-12 16:12:06 +00:00
artemp
5eecf1dfae mapnik-index - add "--validate-features" option (experimental) 2015-11-12 13:45:25 +00:00
artemp
2602b1faff don't fail on null shapes (record length : 8 bytes) 2015-11-11 16:21:03 +00:00
artemp
4d6a735f53 initialise default (invalid) box2d with +/-std::numeric_limits<T>::max() to be in sync with Boost.Geometry 2015-11-11 15:50:56 +00:00
Artem Pavlenko
4e922f6a64 Merge pull request #3164 from mapycz/postgis-empty-geoms
check input data of centroid algorithm
2015-11-11 10:21:39 +00:00
Dane Springmeyer
2af154737c changelog improvements [skip ci] 2015-11-10 13:19:16 -08:00
Jiri Drbalek
924aa62662 raster scaling: fixes nodata handling, acurracy when working with small floats and clipping floats by [0; 255] 2015-11-10 20:37:45 +00:00
artemp
df03110939 update CHANGELOG 2015-11-10 16:00:44 +00:00
Jiri Drbalek
6066946ef2 add unit tests for is_empty and has_empty 2015-11-10 13:49:22 +00:00
Jiri Drbalek
071eeeb660 centroid algorithm: check for empty geometries 2015-11-10 13:49:12 +00:00
artemp
617400f1a1 unit test - add malformed FeatureCollection test where we expect exception to be thrown in featureset::next() method even when mapnik-index creates *.index file (expected due to optimised parsing) 2015-11-10 11:37:48 +00:00
artemp
dd31b95bbb better namings (post 9c7149aad5 itr_end implies Iterator concept which is not the case) ref #3166 2015-11-10 10:42:39 +00:00
Dane Springmeyer
9c7149aad5 fix variable shadowing in simplify_converter - refs #3166 2015-11-09 12:25:10 -08:00
Dane Springmeyer
5eefd8b1ec better harfbuzz ft check - refs #3166 2015-11-09 11:11:07 -08:00
Dane Springmeyer
8e1996d6c6 Scons: check for harfbuzz with freetype support 2015-11-09 10:58:16 -08:00
Dane Springmeyer
95fe045755 Merge branch 'master' of github.com:mapnik/mapnik 2015-11-09 10:47:21 -08:00
Dane Springmeyer
58f30f3d42 more CSV test coverage - refs #3098 2015-11-09 10:47:07 -08:00
Dane Springmeyer
61ee1284c6 Merge pull request #3131 from mapnik/code-of-conduct
Proposed code of conduct
2015-11-09 10:20:13 -08:00
Dane Springmeyer
53174718d8 use mapnik/warning_ignore.hpp in a few more places 2015-11-09 09:51:35 -08:00
artemp
38011dd388 Merge branch 'wmde-issue-3050' 2015-11-09 13:56:28 +00:00
artemp
5370dac598 Merge branch 'issue-3050' of https://github.com/wmde/mapnik into wmde-issue-3050 2015-11-09 13:56:06 +00:00
Dane Springmeyer
3db15cb823 avoid warning on unknown pragmas with gcc and older clang 2015-11-07 18:09:38 -08:00
Dane Springmeyer
7608040906 centralize warning suppression 2015-11-07 17:53:09 -08:00
Dane Springmeyer
de1d1b902a Merge pull request #3163 from mapycz/fix-offsetting-test
unit test: fix offsetting test
2015-11-07 12:42:08 -08:00
artemp
b85055ee38 unit test - add malformed "Feature" tests 2015-11-06 11:50:25 +00:00
Johannes Kroll
d4eee42db4 comment harfbuzz shaper changes 2015-11-06 12:04:20 +01:00
artemp
60fc5910f3 mapnik-index - fix std::clog message typo 2015-11-06 10:56:45 +00:00
Dane Springmeyer
9c3fa6c739 rollback xcode7 usage, which broke pip install for unknown reasons 2015-11-05 13:16:36 -08:00
Dane Springmeyer
90886e7992 now working on Mapnik v3.0.9 [skip ci] 2015-11-05 11:26:31 -08:00
Dane Springmeyer
8aac6871e0 touch up gcov docs [skip ci] 2015-11-05 11:18:59 -08:00
Dane Springmeyer
c77b1b887d use xcode7 2015-11-05 11:13:21 -08:00
Artem Pavlenko
e466a200ed Add generating *.gov files locally steps 2015-11-05 16:11:20 +00:00
artemp
32331e9b3e GeoJSON parsing - add more expectation points + refactor code 2015-11-05 15:30:25 +00:00
artemp
85ec771573 move 'null' geometry to the top level 2015-11-05 15:30:25 +00:00
Blake Thompson
510f422d5a Merge pull request #3165 from mapycz/upadate-changlog
update changelog and authors after #3160
2015-11-05 09:37:13 -05:00
Jiri Drbalek
990f536008 update changelog and authors after https://github.com/mapnik/mapnik/pull/3160 2015-11-05 14:23:22 +00:00
Jiri Drbalek
c7de93ae76 unit test: fix offsetting test 2015-11-05 13:38:40 +00:00
Dane Springmeyer
da624b9ef4 update test-data to pull in 9f471a25e3 -refs #3160 2015-11-04 13:57:14 -08:00
Dane Springmeyer
db7466adf0 link icu again - refs #3145 - reverts 3bb0f1748f 2015-11-04 13:12:25 -08:00
Artem Pavlenko
c3c7513c7f Merge pull request #3160 from mapycz/FIX-offseting
Fix offsetting
2015-11-04 15:29:55 +00:00
Johannes Kroll
f4a8de3f35 fix khmer problem 2015-11-04 10:33:51 +01:00
Johannes Kroll
be98fb733d fix khmer problem 2015-11-04 10:33:13 +01:00
artemp
c752cf2d1c variant - update to 91ba0301a6 2015-11-03 15:32:52 +00:00
artemp
a2975c0d23 unit test - check values stored as expected types in mapnik::value 2015-11-03 15:17:43 +00:00
artemp
6aca4b17f8 extract_bounding_box - fail on nested "FeatureCollection" elements 2015-11-03 13:33:06 +00:00
artemp
47c93eaf15 more formatting 2015-11-03 13:33:06 +00:00
bergwerkgis
4325fcb26d Windows tests: fix missing "M_PI" 2015-11-03 13:22:51 +00:00
artemp
b918047c4b make python3 compatible 2015-11-03 10:48:06 +00:00
artemp
6f71ad56d4 format 2015-11-03 10:46:26 +00:00
artemp
cd708859b6 python rundemo.py - make python3 compatible 2015-11-03 10:46:01 +00:00
artemp
2893ee4551 mapnik::value - add missing specialisations for mapnik::value_bool in comparison operators + update unit tests 2015-11-03 10:11:29 +00:00
Dane Springmeyer
dad4f64813 include mapnik/config to avoid BOOST_MPL_LIMIT_VECTOR_SIZE macro mismatch warnings 2015-11-02 09:09:14 -08:00
artemp
439fcd0426 correct clog message + formatting 2015-11-02 14:27:57 +00:00
artemp
2acafe78ee mapnik-index - check extracted bounding box is valid 2015-11-02 14:14:12 +00:00
artemp
58c7e5baa3 json - use unified error_handler accross grammars 2015-11-02 13:10:40 +00:00
artemp
25ed5d1e00 json error_handler : optional MAPNIK_LOG_ERROR + don't throw + return qi::fail 2015-11-02 12:46:18 +00:00
Roman Galacz
80fa21cc6f Fix offsetting 2015-11-02 12:32:06 +01:00
artemp
96c2fc9076 image - update unit test re: cb31692f37 2015-11-02 10:27:11 +00:00
artemp
cb31692f37 image : fix buffer's copy ctor - only std::copy when rhs owns the data (#3152) 2015-11-02 09:47:05 +00:00
Johannes Kroll
9088ae49e1 Merge remote-tracking branch 'origin-mapnik/master' into issue-3050 2015-11-02 10:16:45 +01:00
Dane Springmeyer
34f5b56003 travis: get postgis running on osx 2015-10-30 14:36:01 -07:00
artemp
2366eaf2f5 value - fix typo (up-cast value_bool to value_double in operator==()) 2015-10-30 14:48:10 +00:00
artemp
f3bed3a627 JSON - optimise geometry grammar 2015-10-30 13:10:51 +00:00
artemp
ab7040d96a and again :) 2015-10-30 10:01:33 +00:00
artemp
16355533c7 update test data 2015-10-30 09:57:29 +00:00
Johannes Kroll
47a2a22f60 less ternaries 2015-10-30 07:34:50 +01:00
Johannes Kroll
9d4134694c use vector instead of map for glyph table 2015-10-30 07:30:41 +01:00
artemp
133ca16d3a GeoJSON.input - skip empty geometries (#3156) 2015-10-29 16:54:35 +00:00
Dane Springmeyer
e505c94583 start postgis datasource tests 2015-10-29 09:48:49 -07:00
Dane Springmeyer
3c007cee9e better debug output when test fails 2015-10-29 09:48:09 -07:00
Dane Springmeyer
1106654d40 [unit] move some code from csv test to header 2015-10-29 09:23:54 -07:00
Johannes Kroll
e9ac686b49 add spaces 2015-10-29 16:39:23 +01:00
Dane Springmeyer
a9814f25f0 more test include gardening 2015-10-29 08:35:45 -07:00
Johannes Kroll
a44e64864c add spaces 2015-10-29 16:29:02 +01:00
Dane Springmeyer
5090b103e4 try to speed up compile of tests by cleaning up unused includes/cruft 2015-10-29 08:20:46 -07:00
Dane Springmeyer
aa6a06116b remove test, now covered by tests at https://github.com/mapbox/mapnik-vector-tile 2015-10-29 08:06:25 -07:00
Dane Springmeyer
1ac12a4430 add hint of how to compile geojson unit test without scons 2015-10-29 08:01:36 -07:00
artemp
8a762a0a19 GeoJSON - ensure error_handler doesn't read passed the end of stream re #3154 2015-10-29 14:08:51 +00:00
artemp
3de31c50ab correct exceptions text 2015-10-29 14:08:08 +00:00
artemp
89aef9726a sync variant => cd8fe9ce3f 2015-10-28 12:37:55 +00:00
artemp
7b4e21e242 more cleanups 2015-10-28 10:09:22 +00:00
artemp
e9a6182ff7 update test data 2015-10-28 09:26:32 +00:00
artemp
4dee3d3b51 don't skip iter_pos 2015-10-28 09:07:09 +00:00
artemp
6122cdf7a8 cleanup - remove commented out code 2015-10-28 09:07:09 +00:00
Dane Springmeyer
18858dffca avoid boost qi warning [skip ci] 2015-10-27 16:38:43 -07:00
Johannes Kroll
a28e0b1588 Merge branch 'master' of https://github.com/mapnik/mapnik 2015-10-27 23:29:24 +01:00
artemp
b99a20378d remove swap and implement assign
https://github.com/mapnik/mapnik/issues/3103
    https://github.com/mapnik/mapnik/pull/3146
2015-10-27 14:59:17 +00:00
Johannes Kroll
7103ad6f35 change font handling in harfbuzz shaper (issue #3050) 2015-10-26 18:33:53 +01:00
Dane Springmeyer
35dccd4653 remove unused variable [skip ci] 2015-10-23 12:05:56 -07:00
Dane Springmeyer
646bcbcbd9 don't depend on filesystem directly 2015-10-23 10:39:55 -07:00
Dane Springmeyer
cf36c78812 fix #3143 2015-10-23 10:39:34 -07:00
artemp
484b23f2c2 update CHANGELOG for mapnik v3.0.8 release [skip ci] 2015-10-23 14:49:02 +01:00
artemp
2d15567c04 setting up for mapnik v3.0.8 release [skip ci] 2015-10-23 14:46:50 +01:00
artemp
1d041f8dde update for 3.0.8 2015-10-23 14:42:29 +01:00
artemp
158729ffa4 remove unreachable code block 2015-10-23 14:24:08 +01:00
artemp
c10263764c geojson unit test - add invalid Point test 2015-10-23 14:17:41 +01:00
artemp
69829e028d add simple I/O error test when file does not exist 2015-10-23 14:11:17 +01:00
artemp
b0bcf86aaa clean up -> remove *.index 2015-10-23 13:17:18 +01:00
artemp
35a420927e follow naming convention 2015-10-23 13:12:19 +01:00
artemp
aaa5a73105 add disk index tests 2015-10-23 13:11:08 +01:00
artemp
209fe55e14 trim headers + sync with csv.input 2015-10-23 13:10:23 +01:00
artemp
34ffdaa3ef use anonimous namespace + default arg in create_disk_index 2015-10-23 13:09:21 +01:00
artemp
7a1ab599ba move csv_test to unit/datasource 2015-10-22 18:32:23 +01:00
artemp
aeaadd423d geojson.input - print line number 2015-10-22 18:32:23 +01:00
Dane Springmeyer
5fe7367231 bypass expected error condition - refs #3125 2015-10-22 10:28:31 -07:00
Dane Springmeyer
ca63ae0a96 csv: no need for newlines in exception strings 2015-10-22 10:22:58 -07:00
Dane Springmeyer
ab88fe48a4 csv: fixup error messages when geometry fails to parse 2015-10-22 10:10:23 -07:00
Dane Springmeyer
73e9804384 geojson test coverage of 'base' parameter 2015-10-22 08:45:34 -07:00
Dane Springmeyer
a05746180d fix another cache-features -> cache_features 2015-10-22 08:19:39 -07:00
artemp
d2c02dae54 fix the rest of cache-features names 2015-10-22 16:13:08 +01:00
artemp
3b1b15f64b fix parameter name and improve coverage 2015-10-22 15:53:23 +01:00
artemp
e63405626b cleanup 2015-10-22 15:12:17 +01:00
artemp
dd95662648 CSV - add more tests 2015-10-22 15:11:18 +01:00
artemp
6effbedff3 csv.input/mapnik-index - validate geometry locator and throw early if invalid 2015-10-22 13:29:26 +01:00
Dane Springmeyer
a7e7f088a2 CSV plugin: trigger exception rather than crash when indexing error happens 2015-10-21 12:54:03 -07:00
Dane Springmeyer
00154c2dfb add test coverage of geojson features_at_point 2015-10-21 12:37:30 -07:00
Dane Springmeyer
669bca884e more coverage of geojson get_geometry_type 2015-10-21 09:15:44 -07:00
artemp
c3ccff4f02 shape.input - add stream state check and calculate position limit 2015-10-21 16:33:12 +01:00
artemp
9f439d1e2e unit test geojson - only expect CHECK_THROW when *.index is not present. Bounding box extractor parser is not strict in the sense that it doesn't require input to be fully consumed (i.e it can handle extra traling characters). 2015-10-21 11:33:24 +01:00
artemp
5cb2b8a77a geojson.input - create temp internal mapnik::feature_impl objects with id = -1 for clarity ref #3134 2015-10-21 11:14:13 +01:00
artemp
17ace8a3e8 shape.input - read shx_file_length in shape_featureset and avoid passing wrong file length by mistake ref #3136 2015-10-21 10:55:26 +01:00
artemp
19c1c0afd0 bug fix - shape_featureset now expects shx file length (!) ref #3136 2015-10-21 10:46:49 +01:00
Dane Springmeyer
e547ee127c run/post coverage even if tests fail 2015-10-20 23:27:39 -07:00
Dane Springmeyer
56d8516216 increase test coverage of get_geometry_type 2015-10-20 23:17:44 -07:00
Dane Springmeyer
14589dabd1 improve test coverage of geojson indexing 2015-10-20 22:56:03 -07:00
Dane Springmeyer
9df548670c manually inherit DYLD_LIBRARY_PATH - closes #3138 2015-10-20 17:22:52 -07:00
Dane Springmeyer
1455c6be1f put mapnik-index on PATH to allow testing to work without installing - refs #3137 2015-10-20 15:24:58 -07:00
Dane Springmeyer
d1c5c69f07 Also dump posix return (aka WEXITSTATUS) 2015-10-20 15:18:12 -07:00
Dane Springmeyer
cd5b97b01f better error reporting when no valid files are passed to mapnik-index 2015-10-20 14:49:58 -07:00
Dane Springmeyer
1df6fbb17e dump std::system return code if index is not found 2015-10-20 12:23:05 -07:00
Dane Springmeyer
2c72833629 Revert "travis - std::system() calls fails"
This reverts commit 5de3a3776d.
2015-10-20 12:19:06 -07:00
Dane Springmeyer
d80179fca4 fix mapnik-index build when memory mapping is disabled - closes #3135 2015-10-20 12:17:32 -07:00
Dane Springmeyer
001520aa95 mapnik-index: only dump output if actually processing csv or geojson 2015-10-20 12:15:51 -07:00
Dane Springmeyer
3bb0f1748f icu linking for mapnik-index should be unneeded 2015-10-20 12:15:23 -07:00
Dane Springmeyer
82a4984f79 Merge branch 'master' of github.com:mapnik/mapnik 2015-10-20 07:57:19 -07:00
artemp
bfbc72c484 feature : put back set_id() for upstream compatibility 2015-10-20 14:36:19 +01:00
artemp
ab2d86c617 shape.input: remove set_id() method as it's no longer required ref #1020 #1019 2015-10-20 14:18:17 +01:00
artemp
5de3a3776d travis - std::system() calls fails 2015-10-20 13:50:54 +01:00
artemp
4822477d40 don't rely on std::system return value (implementation defined) 2015-10-20 12:44:45 +01:00
artemp
aa537e6254 geojson unit test - further simplify and increase coverage 2015-10-20 12:04:32 +01:00
artemp
c4ec93a5f2 geojson unit test - run 'FeatureCollection' test using all permutations of disk_index and cache_features settings. 2015-10-20 11:46:39 +01:00
artemp
c952db979e use mapnik::value_integer for feature id's 2015-10-20 11:45:39 +01:00
artemp
daaf2ee9d5 unit test (geojson) - de-dupe code 2015-10-20 11:22:42 +01:00
artemp
c053682711 geojson.input - assign incremental feature_id in geojson_index_featureset and geojson_memory_index_featureset
(ref #3134)
2015-10-20 11:12:11 +01:00
Dane Springmeyer
ecf79b463c add detail to changelog [skip ci] 2015-10-19 10:01:49 -07:00
Dane Springmeyer
c8867d1419 use std::system 2015-10-19 10:01:33 -07:00
artemp
d9a66a765c unit/geojson - add basic test for *.index access mode 2015-10-19 16:58:32 +01:00
artemp
4b5bbe9446 unit test(geojson) - add tests reading all geometry primitives 2015-10-19 12:23:43 +01:00
artemp
26bf021af9 rename large_geojson_featureset -> geojson_memory_index_featurest to better reflect undelying implementations: geojson_index_featureset is most capable in terms of handling large input data with minimal memory requrements via utilising on disk spatial index (createed with mapnik-index utility) 2015-10-19 10:54:52 +01:00
Dane Springmeyer
ee873aa17d fix compile with older harfbuzz that lacks HB_VERSION_ATLEAST 2015-10-16 14:55:43 -07:00
Dane Springmeyer
8813e73cfc rename SHAPE_MEMORY_MAPPED_FILE to MAPNIK_MEMORY_MAPPED_FILE 2015-10-16 13:34:53 -07:00
artemp
4976a7c72a update test data 2015-10-16 17:42:39 +01:00
artemp
4733c7ffc1 geojson.input - geometry_type for disk-index 2015-10-16 17:31:36 +01:00
Artem Pavlenko
097289ac3d Merge pull request #3130 from mapnik/smart-geojson
geojson.input - split parsing FeatureCollection and single Feature/Ge…
2015-10-16 13:18:11 +01:00
artemp
942fb3c562 geojson.input - implement spatial disk index featureset 2015-10-16 13:15:20 +01:00
artemp
e88ecb86c4 add has_name(std::string const& name) const method 2015-10-16 13:14:41 +01:00
artemp
2437473e74 c++11 - upfate to canonical operator= impl 2015-10-16 12:46:24 +01:00
artemp
652fa15ec0 better stderr 2015-10-16 10:49:29 +01:00
artemp
584fc5a61a Merge branch 'master' into smart-geojson 2015-10-16 10:33:32 +01:00
Dane Springmeyer
a938ca58a9 consistently catch by const ref [skip ci] 2015-10-15 18:06:33 -07:00
Dane Springmeyer
cc0ff85328 Merge branch 'master' of github.com:mapnik/mapnik 2015-10-15 13:56:09 -07:00
Dane Springmeyer
5da6563db4 maintain 'FT_LOAD_NO_HINTING' / adapt to changes upstream in harfbuzz 1.0.5 mapnik/test-data-visual#25 2015-10-15 13:56:02 -07:00
artemp
886ac23c64 geojson.input - force caching features and parse single feature/geometry when cache_features = false but extract_bounding_box fails (input is not FeatureCollection) 2015-10-15 17:35:46 +01:00
Dane Springmeyer
c48690ff87 add proposed code of conduct from http://contributor-covenant.org 2015-10-15 08:34:02 -07:00
artemp
2906706a40 geojson.input - split parsing FeatureCollection and single Feature/Geometry into separate grammars 2015-10-15 15:12:16 +01:00
artemp
b798503623 shape.input - pass shx_file_length to shape_featureset 2015-10-15 11:49:18 +01:00
artemp
a73e8537d8 shape.input - add support for reading offset/record_length from *.shx in shape_featureset (no *.index) - ref #3126 2015-10-14 16:44:43 +01:00
artemp
b15dba95cd unit test - add malformed JSON test + update test data 2015-10-14 11:41:14 +01:00
artemp
8562d18cd0 geoson.input - throw an exception if input hasn't been fully consumed 2015-10-14 11:03:07 +01:00
artemp
faad6d8543 catch std::exception 2015-10-14 10:32:29 +01:00
artemp
950afdcac1 mapnik-index : output number of elements 2015-10-13 17:12:02 +01:00
artemp
3368b6d1de shapeindex - re-factor to read offset and record length from *.shx (allows reading erroneous shapefiles from NE) 2015-10-13 13:34:21 +01:00
artemp
4093f10f61 shapefile_reader.py - improve by adding test_polygon 2015-10-13 13:34:21 +01:00
Dane Springmeyer
b75f075885 now working on mapnik v3.0.8 [skip ci] 2015-10-12 16:31:47 -07:00
Dane Springmeyer
b4fb174146 update CHANGELOG for mapnik v3.0.7 release [skip ci] 2015-10-12 16:18:50 -07:00
Dane Springmeyer
e161253631 remove last reference to pre versioning [skip ci] 2015-10-12 13:56:13 -07:00
Dane Springmeyer
a326cff744 ensure mapnik-config is rebuilt if version.hpp changes 2015-10-12 13:42:08 -07:00
Dane Springmeyer
98e8a12d78 Fix #3124 2015-10-12 13:38:15 -07:00
Dane Springmeyer
ba8747784d fix typo 2015-10-12 13:38:01 -07:00
Dane Springmeyer
c9a4d3d8ef remove MAPNIK_VERSION_IS_RELEASE logic from scons - refs #3123 2015-10-12 10:41:11 -07:00
Dane Springmeyer
67718ed8e1 rename nik2img to mapnik-render 2015-10-12 10:38:58 -07:00
Dane Springmeyer
03cc55f4f0 remove MAPNIK_VERSION_IS_RELEASE - refs #3123 2015-10-12 10:28:23 -07:00
Dane Springmeyer
7fa1e58ab7 better c++11 usage 2015-10-12 10:10:12 -07:00
Dane Springmeyer
393070ae6c remove unused code 2015-10-12 10:10:08 -07:00
Dane Springmeyer
64f342047c Merge pull request #3107 from nvkelso/patch-1
Add section for Python Bindings
2015-10-12 09:11:54 -07:00
Dane Springmeyer
ab64f939fb Merge pull request #3122 from mapycz/rm-abandoned-header
remove needless header file
2015-10-12 09:11:16 -07:00
Jiri Drbalek
51878b3321 remove needless header file 2015-10-12 15:29:20 +00:00
Jiri Drbalek
33e7ed5124 Merge pull request #3121 from mapnik/revert-3118-fix-gray-scaling
Revert "fix scaling gray images"
2015-10-12 15:34:33 +02:00
Jiri Drbalek
070848bce0 Revert "fix scaling gray images" 2015-10-12 15:34:07 +02:00
Artem Pavlenko
b971676b71 Merge pull request #3118 from mapycz/fix-gray-scaling
fix scaling gray images
2015-10-12 14:19:00 +01:00
Dane Springmeyer
324f70652b code cleanup / c++11 usage in plugins 2015-10-09 16:07:19 -07:00
Dane Springmeyer
34a744f7db Add more postgis fixes to changelog [skip ci] 2015-10-09 15:50:52 -07:00
Dane Springmeyer
b4e0f56715 create changelog entry for v3.0.7 - refs #3120 [skip ci] 2015-10-09 15:28:51 -07:00
Dane Springmeyer
5e8a009278 fix #3120 2015-10-09 15:27:34 -07:00
Dane Springmeyer
dc80d9f582 Fix -Wsign-compare [skip ci] 2015-10-09 13:49:34 -07:00
Jiri Drbalek
2596f7bd52 fix scaling gray images 2015-10-09 15:15:50 +00:00
artemp
da1247fa1e mapnik-index: add initial support for processing GeoJSON 2015-10-09 12:49:58 +01:00
artemp
0bca3afa4e formatting 2015-10-09 12:49:33 +01:00
artemp
21b5a132a9 mapnik-index - refactor to prepare for adding GeoJSON index support 2015-10-09 11:27:35 +01:00
artemp
faeae5bc2e c++11 - more concise syntax 2015-10-09 11:26:39 +01:00
artemp
b5fe23ac28 inline extract_geometry 2015-10-09 11:26:10 +01:00
Dane Springmeyer
719135d755 start working on Mapnik v3.0.7 (https://github.com/mapnik/mapnik/milestones/Mapnik%203.0.7) [skip ci] 2015-10-08 10:24:17 -07:00
artemp
3ec7310f98 re-enable (partially) features at point interface 2015-10-08 14:52:41 +01:00
bergwerkgis
7e452602fa build-local.bat, appveyor.yml: boost@1.59 2015-10-08 09:28:36 +00:00
Dane Springmeyer
f7b125c90f use boolean_type (no functional change) [skip ci] 2015-10-07 17:53:32 -07:00
Blake Thompson
69a502043b Bump down to non release 2015-10-07 16:59:13 -07:00
Dane Springmeyer
54181f66b2 update CHANGELOG for mapnik v3.0.6 release 2015-10-07 14:48:20 -07:00
Dane Springmeyer
3cebe9726b setting up for mapnik v3.0.6 release 2015-10-07 14:47:41 -07:00
Dane Springmeyer
3bfd997b83 fix -Wsign-compare warning [skip ci] 2015-10-07 14:43:33 -07:00
Dane Springmeyer
01d3c91de4 only run test if plugins exist 2015-10-07 14:41:07 -07:00
Dane Springmeyer
20aaeac515 fix more boost -Wsign-compare warnings [skip ci] 2015-10-07 14:40:51 -07:00
Dane Springmeyer
39eaa6dde4 add #3115 to changelog [skip ci] 2015-10-07 14:10:26 -07:00
Dane Springmeyer
ca7132b425 Merge pull request #3117 from mapnik/discard-key-field
Postgis plugin: Add key_field_as_attribute
2015-10-07 13:48:55 -07:00
Dane Springmeyer
6e84bde468 Add key_field_as_attribute (default:true) to control if key_field is added as feature attribute - refs #3115 2015-10-07 12:59:45 -07:00
artemp
58dad1bc30 viewer - fix building on OS X 10.11 2015-10-07 17:39:00 +01:00
artemp
bf411f55de remove debug stderr 2015-10-07 17:39:00 +01:00
Dane Springmeyer
25eaf96e98 silence -Wsign-compare warning from boost [skip ci] 2015-10-07 08:33:24 -07:00
Dane Springmeyer
1ef0d5b188 more changelog updates for v3.0.6 [skip ci] 2015-10-07 08:33:24 -07:00
Dane Springmeyer
8d11151382 rename csvindex to mapnik-index since we'll soon support geojson 2015-10-07 08:33:24 -07:00
artemp
8f8a33a2ee cleanups 2015-10-07 12:37:30 +01:00
artemp
b275bcb2c2 update to use latest grammar + use std:: qualifier for 'C' lib functions 2015-10-07 12:34:20 +01:00
artemp
0b1ae8bd01 csv_grammar - implament custom (white-space only) skipper + optimise grammar 2015-10-07 12:33:10 +01:00
Dane Springmeyer
3b8bcacb91 latest visual test data with updated postgis/cairo fixtures 2015-10-06 19:10:14 -07:00
Dane Springmeyer
b7a54f3f09 warn if boost is too old to run tests 2015-10-06 15:39:42 -07:00
Dane Springmeyer
64f2628488 use latest visual test data after cairo change in 4b490fb - refs mapnik/test-data-visual#23 2015-10-06 15:39:42 -07:00
Dane Springmeyer
49e817fc2e upgrade freetype, icu, and cairo to latest versions 2015-10-06 15:39:42 -07:00
Dane Springmeyer
efee15c2e7 remove unused typedef [skip ci] 2015-10-06 15:39:42 -07:00
Dane Springmeyer
20e72ccc82 remove unused typedef [skip ci] 2015-10-06 15:39:42 -07:00
Blake Thompson
6e47b1bd10 Updated the error handling of geojson parser so that it is more clear where an error orginates 2015-10-06 15:00:53 -07:00
Dane Springmeyer
89e1cfaf10 add protobuf to bootstrap [skip ci] 2015-10-06 09:28:48 -07:00
Blake Thompson
00a4fdd726 Bump to version of boost in bootstraph 2015-10-06 09:01:54 -07:00
artemp
e727fb3877 csv.input - read first line of data to update descriptor (disk-index) + remove stderr
§
2015-10-06 16:39:21 +01:00
artemp
8ec1e3e73d geometry_is_simple - fix handling multi-geometries (1.59) 2015-10-06 16:14:20 +01:00
Dane Springmeyer
5915c4e7a5 fix test compile with older boost 2015-10-06 07:32:51 -07:00
Wilhelm Berg
4cfd692be2 Merge pull request #3109 from mapnik/visual-test-results
visual diff of visual test results
2015-10-06 14:03:22 +02:00
artemp
0bd7a980f3 unit test - add `query_first_n' test 2015-10-06 11:42:34 +01:00
artemp
d0cf7ad6f4 csv.input - implement get_geometry_type_impl for disk based index 2015-10-06 11:32:21 +01:00
artemp
4d08e3f62c spatial_index - implement `query_first_n' 2015-10-06 11:31:38 +01:00
artemp
2c8ad910d7 csv.input - remove redundant trim_copy 2015-10-06 10:00:42 +01:00
Blake Thompson
c127620b6c Updated the way that is_valid and is_simple operate in mapnik and added lots of testing around them. 2015-10-05 15:10:24 -07:00
artemp
63c73b5057 add initial 'qoute' auto-detection + restore csv_test's 2015-10-05 16:56:33 +01:00
artemp
17b6597cd4 benchmark - update test_getline.cpp 2015-10-05 15:59:28 +01:00
artemp
5c6c8ff7a3 csv.input - restore handling of inline headers and only one line of data without new line 2015-10-05 15:28:57 +01:00
artemp
93a237850b fix spatial_index test after de9de659c3772fdf232a3c24f5c254a0a86046b9 2015-10-05 15:28:57 +01:00
artemp
287028d3e4 fix rebase conflict 2015-10-05 15:25:17 +01:00
bergwerkgis
5fd6f33c0f visual diff of visual test results 2015-10-05 14:23:52 +00:00
artemp
860631acc5 jpeg: fix re-occuring boolean/TRUE/FALSE issue + prefer using c++ headers 2015-10-05 15:23:20 +01:00
artemp
bcb1cc6053 format 2015-10-05 15:23:20 +01:00
artemp
dfba56b23b quad_tree - pass node by *& 2015-10-05 15:23:20 +01:00
artemp
178e39e19a make separator single character and simplify/optimise csv_grammar 2015-10-05 15:23:20 +01:00
bergwerkgis
6b20c8c9f2 fixes #3106 2015-10-05 09:55:20 +00:00
bergwerkgis
5852169f7c allways build on AppVeyor 2015-10-03 08:26:00 +00:00
Nathaniel V. KELSO
391973e482 Formatting 2015-10-02 09:12:15 -07:00
Nathaniel V. KELSO
7a7a70bd06 Add section on Python Bindings
Since these aren't included by default, the other package needs to be referenced here to avoid the wild goose chase.
2015-10-02 09:08:59 -07:00
artemp
cbb40d0662 raster.input - throw if reader can't be created 2015-10-02 12:47:57 +01:00
artemp
1bccca9ff8 Merge remote-tracking branch 'origin/master'
Conflicts:
	plugins/input/csv/csv_datasource.cpp
2015-10-02 12:27:28 +01:00
artemp
1d320b7133 make quote single char 2015-10-02 12:20:54 +01:00
artemp
290c4d3e67 csv_grammar - handle 'quote' parameter dynamically 2015-10-02 12:19:09 +01:00
artemp
98ea1c5cd9 csv_utils::getline_csv - add 'quote' argument 2015-10-02 12:17:38 +01:00
Jiri Drbalek
d6978c29b2 Merge pull request #3100 from mapycz/use_move
use move semantics instead of shared_ptr
2015-10-02 09:49:55 +02:00
Dane Springmeyer
2f9c9bd4b1 update test data - closes #3102 2015-10-01 15:46:07 -07:00
Dane Springmeyer
336170c13c avoid excessive calling of std::ios::widen - refs #3101 2015-10-01 15:34:00 -07:00
Dane Springmeyer
da054c84e6 default values for getline bench + hook up in script - refs #3101 2015-10-01 15:08:49 -07:00
Dane Springmeyer
3932cc51b3 add getline benchmark - refs #3101 2015-10-01 14:47:55 -07:00
Dane Springmeyer
530416f0aa fix suggesed cmd line option syntax [skip ci] 2015-10-01 14:47:25 -07:00
Dane Springmeyer
2d59fca9f9 ensure consistent, ordered linking for plugins - closes #3105 2015-10-01 13:35:56 -07:00
Dane Springmeyer
a8019f9fa2 log csv filepath when test fails [skip ci] 2015-10-01 13:35:23 -07:00
Dane Springmeyer
be22a67b60 fix -Wshadow warnings 2015-10-01 13:35:23 -07:00
Dane Springmeyer
dd89552bc5 consistenly use pragma GCC for now instead of clang 2015-10-01 13:35:23 -07:00
Dane Springmeyer
5a97c3d541 fix variable shadowing 2015-10-01 13:35:23 -07:00
Dane Springmeyer
05ade151a5 suppress yet more -Wshadow warnings from boost 2015-10-01 13:35:23 -07:00
Dane Springmeyer
3acec350f6 avoid more -Wshadow warnings from boost 2015-10-01 13:35:23 -07:00
Jiri Drbalek
5c0aa52d22 apply constness 2015-10-01 20:11:37 +00:00
Jiri Drbalek
da678406b1 use move semantics instead of shared_ptr 2015-10-01 20:11:37 +00:00
Dane Springmeyer
101be82281 Merge pull request #3104 from mapycz/fix_build
fix build on linux
2015-10-01 13:08:48 -07:00
Jiri Drbalek
68392f189b fix build on linux 2015-10-01 19:56:57 +00:00
Dane Springmeyer
c414526802 Merge pull request #3099 from mapycz/fix-todo
remove Feature alias of feature_impl
2015-10-01 10:53:27 -07:00
artemp
be437eb6b0 add experimental getline_csv implementation which handles newline characters inside single/double quoted strings 2015-10-01 18:33:32 +01:00
artemp
a4e15b5a47 remove stderr 2015-10-01 15:34:49 +01:00
artemp
24b8f7d67b Merge branch 'csv-disk-index' 2015-10-01 15:27:19 +01:00
artemp
4273e37278 Merge branch 'master' into csv-disk-index 2015-10-01 15:26:47 +01:00
artemp
f3efff3885 add csvindex build option 2015-10-01 15:17:22 +01:00
artemp
b87f366311 add missing csvindex utily 2015-10-01 15:16:32 +01:00
Jiri Drbalek
a03081c367 remove Feature alias of feature_impl 2015-10-01 14:16:11 +00:00
artemp
877cd2c75e update copyright year 2015-10-01 15:11:50 +01:00
artemp
7e03c5daea fix CAIRO=no build 2015-10-01 15:06:49 +01:00
artemp
40e142d7fa update copyright year 2015-10-01 15:03:40 +01:00
artemp
dc554eb920 remove old scons 2015-10-01 14:32:56 +01:00
artemp
8e4a3d794f update scons to 2.4.0 2015-10-01 14:25:41 +01:00
Dane Springmeyer
d70725b218 fix variable shadowing in extract_bounding_box_grammar 2015-09-30 15:42:42 -07:00
Dane Springmeyer
aa2c28b89c fix variable shadowing in image_any 2015-09-30 15:42:09 -07:00
Dane Springmeyer
761093457a restore support for single threaded build 2015-09-30 14:23:46 -07:00
Dane Springmeyer
7122fdc6e5 fix #3096 2015-09-30 14:23:21 -07:00
Dane Springmeyer
0c23eaa4ba fix variable shadowing in image_filter unit test 2015-09-30 14:23:00 -07:00
Dane Springmeyer
d6b60188e8 avoid -Wshadow errors from boost when compiling csv plugin 2015-09-30 14:11:16 -07:00
artemp
54609fd8ac remove blank undelimited rows are still parsed section as current behavior is to fail and continue on individual row errors 2015-09-30 15:40:42 +01:00
artemp
81628d5b9c update test visual-data 2015-09-30 15:31:56 +01:00
artemp
df87dc5ed7 fix CAIRO=no build 2015-09-30 15:31:56 +01:00
bergwerkgis
8e7e7c64a7 update test-data-visual to force LF for SVGs on clone (Windows) 2015-09-30 13:07:52 +00:00
bergwerkgis
d66248b725 Merge branch 'master' of https://github.com/mapnik/mapnik 2015-09-30 12:28:20 +00:00
bergwerkgis
ac64f21664 allow speedy build AppVeyor style, but also run tests 2015-09-30 12:28:01 +00:00
bergwerkgis
c9afba6701 [skip ci] don't svg convert line endings on checkout 2015-09-30 12:27:20 +00:00
artemp
7a956651fe geojson - avoid passing invalid bounding boxes to boost::geometry::index 2015-09-30 12:50:53 +01:00
artemp
19897a3085 correct exception handling in main processing loop 2015-09-30 12:37:36 +01:00
artemp
848098baeb spatial_index/quad_tree - remove `operator>>' requirement, instead value_type stored must have standard layout for correct (de)serialisation + update unit test 2015-09-29 15:44:57 +01:00
artemp
f549cae46a unit test - add initial spatial_index tests 2015-09-29 12:27:56 +01:00
artemp
9c292595b4 use mapnik::quad_tree<T> 2015-09-29 12:21:02 +01:00
artemp
2f35c71606 mapnik::quad_tree - add methods required for spatial_index construction and serialization
remove utils/shapeindex/quadtree.hpp
2015-09-29 12:20:46 +01:00
artemp
49266fbd56 csv.input (disk-index) - add support for memory mapped files 2015-09-29 10:35:36 +01:00
artemp
d87a04157c spatial_index - bug fixes + cleanup 2015-09-28 15:51:38 +01:00
artemp
3390cc8c21 Merge branch 'master' into csv-disk-index 2015-09-28 14:31:26 +01:00
Artem Pavlenko
a67abf8e32 Merge pull request #3086 from cjmayo/install
install doc: delete dependencies for removed plugins
2015-09-28 14:30:53 +01:00
artemp
08a30cbbd9 update test data 2015-09-28 14:29:54 +01:00
artemp
a9dafc6105 Merge branch 'ViewBox-fallback' 2015-09-28 14:24:39 +01:00
artemp
d6d9e94e36 svg_parser - fix double_list grammar to handle whitespace | comma correctly 2015-09-28 14:22:30 +01:00
Chris Mayo
d4163d946c install doc: delete dependencies for removed plugins 2015-09-27 11:55:03 +01:00
jakepruitt
344c5ae844 Fix boost parser for viewbox 2015-09-25 12:05:57 -07:00
jakepruitt
a787d20e36 Add viewbox fallback logic for dimension parsing
SVG's now have fallback on viewbox. Still debugging the boost Qi parser
2015-09-25 12:05:57 -07:00
artemp
21e6936f85 first cut at using csv_index_featureset 2015-09-25 17:50:24 +01:00
artemp
2a7a2c998e add <memory> include 2015-09-25 17:11:01 +01:00
artemp
3c56379273 CSV - initial disk-index featureset 2015-09-25 16:47:03 +01:00
artemp
8b4ff85b0d fix - pass value by reference 2015-09-25 15:26:02 +01:00
artemp
dd0ef307ee correct const's + coding style 2015-09-25 10:44:25 +01:00
artemp
99617ad71c spatial_index<...> - use operator>> for reading Value's + update shape_index_featureset 2015-09-25 10:43:10 +01:00
artemp
fa3ab5077e Merge branch 'master' into csv-disk-index 2015-09-24 17:38:39 +01:00
artemp
8c2f15c94a mapnik::value - always upcast to the higher definition numeric value (rhs or lhs) in operator== and operator!=
add unit test for comparing numeric mapnik::values
2015-09-24 17:38:16 +01:00
artemp
813924a6f2 mapnik::value - always upcast to the higher definition numeric value (rhs or lhs) in operator== and operator!=
add unit test for comparing numeric mapnik::values
2015-09-24 17:36:13 +01:00
Dane Springmeyer
499a2bdd74 re-enable OS X travis - we need code coverage back - refs #3033 2015-09-24 08:19:48 -07:00
Dane Springmeyer
daf3bfe38b add coveralls and appveyor [skip ci] 2015-09-24 08:16:04 -07:00
artemp
ad9ad99395 Merge branch 'master' into csv-disk-index 2015-09-24 15:59:16 +01:00
bergwerkgis
dda5622b2d back to mapnik-gyp/master [build appveyor] 2015-09-24 11:50:28 +00:00
Wilhelm Berg
c8870002e6 Merge pull request #3083 from mapnik/enable-appveyor
Enable Appveyor
2015-09-24 13:47:51 +02:00
artemp
058412968b Merge branch 'master' into csv-disk-index 2015-09-24 12:08:54 +01:00
artemp
27be7113a9 csvindex - use quadtree from shapeindex + cleanup 2015-09-24 12:03:32 +01:00
artemp
2e0486440c remove shp_index.hpp and update shape.input 2015-09-24 11:37:27 +01:00
artemp
8c16f267bb remove unused parameters from ctor 2015-09-24 11:36:24 +01:00
artemp
335f607c5a fux namings and typedefs 2015-09-24 11:20:19 +01:00
artemp
7927a9143c spatial_index - generalised 'on-disk' bounding box queyring interface 2015-09-24 11:19:03 +01:00
jakepruitt
fcbb91a00e Add int list parser 2015-09-23 12:08:50 -07:00
bergwerkgis
6f9c659be5 [build appveyor] add msbuild logs as artifacts 2015-09-21 17:52:13 +00:00
artemp
28c785d0c9 Merge branch 'master' into csv-disk-index 2015-09-21 18:22:11 +01:00
bergwerkgis
44979b7d53 [build appveyor] now try whole solution at once 2015-09-21 16:45:38 +00:00
bergwerkgis
4e9a7bdf3e [build appveyor] try with optimizations off 2015-09-21 16:02:51 +00:00
bergwerkgis
38498fdbe7 Merge branch 'master' into enable-appveyor 2015-09-21 16:01:36 +00:00
artemp
6eaf5b7b96 value - fix/add remaing static_cast<> 2015-09-21 15:38:17 +01:00
artemp
7938479bb4 value - apply explicit static_cast<lhs_value_type>(rhs) (ref #3078) 2015-09-21 15:31:25 +01:00
bergwerkgis
b5be99a1ab AppVeyor: don't build if [build appveyor] is not provided 2015-09-21 16:11:17 +02:00
artemp
e559619855 value - cast rhs to value_bool (ref #3078) 2015-09-21 15:05:03 +01:00
bergwerkgis
929abfb925 [wip] AppVeyor build in serial 2015-09-21 15:35:52 +02:00
bergwerkgis
7da16f6ec5 [wip] AppVeyor ran out of memory, try "windows-performance" branch 2015-09-21 15:17:03 +02:00
bergwerkgis
816e6a7b4a [wip] AppVeyor 2015-09-21 14:42:52 +02:00
bergwerkgis
b605ad0f0e [wip] AppVeyor 2015-09-21 14:35:11 +02:00
bergwerkgis
a87a662034 [wip] AppVeyor 2015-09-21 14:28:19 +02:00
bergwerkgis
c3c09c0e10 [wip] AppVeyor 2015-09-21 14:13:41 +02:00
bergwerkgis
eb380bb636 [wip] enable AppVeyor 2015-09-21 14:04:28 +02:00
bergwerkgis
16d54693a6 try AppVeyor skeleton 2015-09-21 13:38:36 +02:00
artemp
71ef858c1d csvindex - initial writing to disk impl 2015-09-18 15:44:21 +01:00
Blake Thompson
4e4c1bc30e Merge pull request #3075 from mapycz/fix-parsing-hex-colors
fix parsing colors in hexadecimal notation
2015-09-18 09:06:02 -05:00
Jiri Drbalek
91db109b37 fix parsing colors in hexadecimal notation 2015-09-18 13:54:05 +00:00
artemp
c362702e8b remove unused erroneous type def 2015-09-18 09:42:28 +01:00
artemp
c7177e2ef4 Merge branch 'master' into csv-disk-index 2015-09-17 14:54:25 +01:00
artemp
9ce2f337b3 post-release update 2015-09-17 14:21:20 +01:00
Artem Pavlenko
e95411bfe6 Merge pull request #3074 from mapycz/improve-visual-test-12
visual tests: command line switches for renderers, scale-factor
2015-09-17 14:19:40 +01:00
Jiri Drbalek
ae8ac89ef8 visual tests: add command line parameters for scale-factor settings 2015-09-17 08:22:18 +00:00
Jiri Drbalek
fd19c754f3 visual tests: command line switches for renderers 2015-09-17 08:22:10 +00:00
artemp
d548ec1152 update CHANGELOG for mapnik v3.0.5 release 2015-09-16 18:47:36 +01:00
artemp
165c704b93 setting up for mapnik v3.0.5 release 2015-09-16 18:45:26 +01:00
artemp
e452a03c09 update test data 2015-09-16 18:30:37 +01:00
artemp
8808f0fe2b update unifont to 8.0.01 2015-09-16 17:35:28 +01:00
artemp
d54eca9dca image - fix copy/move implementation and update/improve tests 2015-09-16 14:28:55 +01:00
artemp
60c79d6614 image unit test - make test image 16x16 + add more checks 2015-09-16 11:47:36 +01:00
artemp
c1301fa142 image unit test - add copy (deep/shallow) + move tests 2015-09-16 11:37:46 +01:00
artemp
d7d3da6935 image - add iterator interface 2015-09-16 11:37:03 +01:00
artemp
8c8ea74a63 update unit test 2015-09-16 10:15:21 +01:00
artemp
acb8feea01 image - update shallow constructor to take raw bytes pointer
detail::buffer - inline data() size() methods
update unit test
2015-09-16 10:14:40 +01:00
Artem Pavlenko
c4e0516ba6 Merge pull request #3061 from mapycz/colorize-alpha
colorize-alpha: add support for transparent colors
2015-09-15 16:11:28 +01:00
Artem Pavlenko
0b157d6f3e Merge pull request #3071 from mapnik/image-zero-alloc
re-enable zero allocation image interface - refs #3069
2015-09-15 11:17:48 +01:00
artemp
c00235589b Merge branch 'master' into csv-disk-index 2015-09-15 10:57:23 +01:00
artemp
c1d9bc909e csvindex - initial commit (work-in-progress) 2015-09-15 10:55:59 +01:00
Dane Springmeyer
b2d08ea4ea re-enable zero allocation image interface - refs #3069 2015-09-14 16:45:58 -07:00
Wilhelm Berg
0532df7b6e Merge pull request #3067 from mapnik/benchmark-return-values
Benchmark: use return values of test runner.
2015-09-14 15:22:50 +02:00
bergwerkgis
9f62d8693a benchmark: no camelCase 2015-09-14 13:21:51 +00:00
bergwerkgis
3929d9298d Benchmark: use return values of test runner. 2015-09-14 13:01:32 +00:00
bergwerkgis
291089dec7 [skip ci] update paths to data in benchmark map.xmls 2015-09-14 12:51:38 +00:00
artemp
d9ab7fd25f CSV grammar : skip leading \n and/or \r which result from std::getline used with non-native line endings
The goal is to support LF, CR and CRLF on all platforms.
2015-09-14 11:46:11 +02:00
artemp
ad80c91657 cache processed layouts to ensure there are stay in scope (placement_finder) - via @talaj 2015-09-11 15:29:28 +02:00
Jiri Drbalek
6f0b4d438c colorize-alpha: add support for transparent colors 2015-09-11 11:31:08 +00:00
Jiri Drbalek
5e82fc8a05 fix and update changelog 2015-09-11 11:26:20 +00:00
artemp
337525ef60 csv.input - don't attempt to build if boost < 1.56 2015-09-11 11:20:45 +02:00
artemp
8128a2b1ef topojson - remove 'invalid' geometry type to avoid default constructed geometries 2015-09-10 19:28:15 +02:00
Artem Pavlenko
12485b66ef Merge pull request #3063 from mapnik/windows-utf-filenames
Windows: fix loading of SVG files from unicode paths. …
2015-09-10 16:02:49 +02:00
artemp
5e0050d005 topojson - use separate local boolean to track first geometry 2015-09-10 15:35:25 +02:00
bergwerkgis
0de0cfa1c2 Update changelog, Windows: Fixed SVG file loading from unicode paths 2015-09-10 11:15:31 +00:00
bergwerkgis
9146f785f4 Windows: fix loading of SVG files from unicode paths. Surfaced in https://github.com/mapnik/node-mapnik/issues/517 2015-09-10 11:10:38 +00:00
artemp
fc100be61e topojson : fix geometry index logic 2015-09-10 12:37:38 +02:00
artemp
e076640493 update font version 2015-09-09 13:28:38 +02:00
artemp
724bd56ec4 don't use curly brackets initializer for static member variables (keep vc++ happy) 2015-09-09 13:18:45 +02:00
artemp
826882b150 enable sorting + small refactor 2015-09-09 12:14:15 +02:00
artemp
0de6d36000 use memory mapped file by default for both index and data parsing (improves loading times by ~50%) - default on non-windows platforms 2015-09-09 11:56:21 +02:00
artemp
310dc968ea fix potential type mismatch 2015-09-09 11:08:00 +02:00
Blake Thompson
eee1a46139 Merge pull request #3059 from mapycz/colorize-alpha-needless-conditions
colorize-alpha: remove needless conditions
2015-09-08 12:02:57 -05:00
Jiri Drbalek
a5f314fd87 colorize-alpha: remove needless conditions 2015-09-08 15:05:04 +00:00
artemp
a5bba97192 update data 2015-09-08 13:10:41 +02:00
Artem Pavlenko
282bdf178c Merge pull request #3058 from mapycz/colorize-alpha-fix-color-value-normalization
colorize-alpha: fix normalization of color components
2015-09-08 12:50:46 +02:00
artemp
a32fbdf635 use atomic<> where possible to avoid locking 2015-09-08 12:28:16 +02:00
artemp
81ead3dc78 make destroyed_ atomic<> 2015-09-08 12:26:43 +02:00
Artem Pavlenko
fa82d5a0c9 Merge pull request #3054 from mapycz/scale-hsla-limits
scale-hsla image filter: unlimit parameters
2015-09-08 12:22:10 +02:00
Jiri Drbalek
79f4e3ac8f colorize-alpha: fix normalization of color components 2015-09-08 10:14:20 +00:00
Jiri Drbalek
72222efad7 scale-hsla image filter: unlimit parameters 2015-09-03 11:33:53 +00:00
artemp
ee65873159 oops fix 2015-08-27 17:37:18 +02:00
artemp
6d1ffc8a93 enable optional checking env for "MAPNIK_LOG_FORMAT" (via MAPNIK_CHECK_ENV) 2015-08-27 17:08:41 +02:00
artemp
284ca099ea set input state to std::ios::failbit (only needed on linux ?) 2015-08-27 13:41:02 +02:00
artemp
8f37b30978 fix handling 'one line' + 'manual headers' + 'no newline' case
update get_geometry_type  ( ref https://github.com/mapnik/mapnik/issues/3047)
2015-08-27 13:07:51 +02:00
artemp
4f5bdf82c1 slightly better syntax (NOTE: 4000 seems arbitrary here) 2015-08-27 13:07:51 +02:00
artemp
1080d92a79 add missing geometry type check 2015-08-27 13:07:51 +02:00
artemp
0ea5ccc7bc fix typo 2015-08-27 13:07:51 +02:00
artemp
bd35054d27 update version 2015-08-27 13:07:51 +02:00
Blake Thompson
986cf2d073 Merge pull request #3046 from mapycz/remove-clip-comments
remove incorrect and meaningless comments
2015-08-26 10:21:31 -05:00
Jiri Drbalek
75a299ab1d remove incorrect and meaningless comments 2015-08-26 14:29:09 +00:00
Blake Thompson
c5312b5cbf Merge pull request #3044 from mapycz/remove-unused-members
remove unused members
2015-08-26 08:55:13 -05:00
Jiri Drbalek
883c9c83bf remove unused members 2015-08-26 12:59:11 +00:00
artemp
45d5e39e22 update CHANGELOG for mapnik v3.0.4 release 2015-08-26 12:06:51 +02:00
artemp
17bb81c02c update changelog 2015-08-26 11:45:05 +02:00
artemp
10e6128035 test/data -> track master 2015-08-26 11:23:22 +02:00
Artem Pavlenko
26d100f3d9 Merge pull request #2996 from mapycz/improve-visual-test-11
visual tests: limit number of failures
2015-08-26 10:33:57 +02:00
Artem Pavlenko
85eebaaf57 Merge pull request #3038 from zerebubuth/fix/deadlock-in-recursive-datasource-registration
Fix deadlock in recursive datasource registration.
2015-08-25 15:07:00 +02:00
Artem Pavlenko
35c263612f Merge pull request #3010 from mapnik/large_csv
Large csv
2015-08-25 15:06:26 +02:00
artemp
3753d50b75 CSV - revive row_limit parameter + fix stderr 2015-08-25 15:05:04 +02:00
artemp
8709fb6f7c CSV - optimise parsing by providing num_columns hint 2015-08-24 16:35:32 +02:00
artemp
6c9257a915 add parse_line accepting iterator range and avoid string ctor 2015-08-24 15:41:04 +02:00
artemp
622ab90e4b Merge branch 'master' into large_csv 2015-08-24 14:16:13 +02:00
artemp
c9d1d51b8a simplify + factor out properties parsing logic 2015-08-24 14:13:13 +02:00
artemp
2477d8764e keep on untangling spaghetti
* implement standalone ignore case equality to avoid copying
* fix various logic shortcommings
2015-08-24 12:23:59 +02:00
artemp
5dead08ecc CSV - remove unused params and member vars 2015-08-24 09:30:57 +02:00
Matt Amos
3d7b84a598 Fix deadlock in recursive datasource registration.
The datasource cache was taking an exclusive lock on the simple
mutex used to protect the singleton's data pointer. This works
okay when everyone always calls it non-recursively, but when the
recursive flag is true then it will always deadlock when called
on any directory with subdirectories.

Additionally, many methods which accessed private data members of
the cache were not protected by any locks.

Since the call pattern of registering datasources is strictly
tree-shaped then it's a good candidate for a recursive mutex. This
has a slightly higher overhead than a simple mutex, so rather than
change the singleton's mutex to be recursive, I've added a new
instance mutex to the datasource cache.

Also, added a very basic test which reproduces the problem and
shows that it's fixed with this patch.
2015-08-23 20:25:35 +01:00
artemp
4babec802a CSV - implement spatial index access to features on disk + preserve support for inline data (work-in-progress) 2015-08-21 13:52:42 +02:00
artemp
4943cb4cf8 remove unused includes 2015-08-20 14:15:35 +02:00
artemp
93fcc0a783 cleanup 2015-08-19 15:24:38 +02:00
artemp
d7e2f63f89 remove debug stderr + update data 2015-08-19 12:40:01 +02:00
artemp
68d73aa630 temp workaround boost 1.59 geometry 2015-08-19 12:30:07 +02:00
artemp
6c3d9bb2a2 CSV plug-in - refactor and bring some sanity, sigh .. 2015-08-19 12:04:56 +02:00
artemp
710ec057e5 formatting 2015-08-19 12:04:45 +02:00
artemp
d4bc32908f temp workaround boost 1.59 geometry 2015-08-19 12:03:16 +02:00
artemp
153c93d345 Merge branch 'master' into large_csv 2015-08-19 12:02:50 +02:00
artemp
f8afa796d7 update test data 2015-08-17 16:56:00 +02:00
artemp
0ba2e3f3f6 update svg tests 2015-08-17 16:53:42 +02:00
artemp
318a8217a7 work-in-progress 2015-08-17 15:27:17 +02:00
artemp
2b25f025cf update 'test/data' submodule to track 'large_csv' branch 2015-08-14 11:35:37 +02:00
artemp
28a7bdfd7c update test data 2015-08-14 11:12:44 +02:00
artemp
f7d1cf82a9 Merge branch 'master' into large_csv 2015-08-13 13:28:35 +02:00
artemp
332d875839 set MAPNIK_VERSION_IS_RELEASE 0 2015-08-13 11:30:33 +02:00
Artem Pavlenko
70ae5a6e56 Merge pull request #3034 from mapycz/remove-superfluous-line
remove superfluous line
2015-08-13 10:30:45 +02:00
Jiri Drbalek
507c556386 remove superfluous line 2015-08-13 10:11:18 +00:00
Blake Thompson
381a4fc94c Merge branch 'master' of github.com:mapnik/mapnik 2015-08-12 13:00:13 -05:00
Blake Thompson
10ad41d218 Removed unrequired MAPNIK_DECL from src/image_util_jpeg added pragma to prevent warning on linux with clang. 2015-08-12 13:00:04 -05:00
Dane Springmeyer
487226b289 disable OS X builds until ccache/caching is working - refs #3033 2015-08-12 10:54:29 -07:00
Dane Springmeyer
affe1615b3 minor changelog copy edits [skip ci] 2015-08-12 10:09:34 -07:00
artemp
da6af4fa11 update CHANGELOG 2015-08-12 17:37:22 +02:00
Blake Thompson
3d262c7426 Fixed linking errors in parse jpeg. closes #3031 2015-08-12 09:32:32 -05:00
Blake Thompson
146af9d10b Added missing scons directory 2015-08-12 09:17:18 -05:00
artemp
715cff3f2a fix - pass by const ref 2015-08-12 12:09:40 +02:00
artemp
fb41fb4bb7 update CHANGELOG for mapnik v3.0.3 release 2015-08-12 12:00:29 +02:00
artemp
1f6c44a791 version : upate minor number 2015-08-12 11:38:10 +02:00
artemp
3e3ab2cd4b update test 2015-08-12 11:35:26 +02:00
artemp
241b900673 Merge branch 'image_filters' 2015-08-12 11:28:32 +02:00
artemp
ebf4d66900 Merge branch 'master' into image_filters 2015-08-12 11:27:59 +02:00
artemp
4ab6cd5855 update DeJaVu Fonts to the latest 2.35 2015-08-12 11:22:58 +02:00
artemp
c0e2cf3616 update scons + visual test 2015-08-12 11:18:09 +02:00
artemp
1e7980608e Merge branch 'naturalatlas-dot-scale' 2015-08-12 10:55:08 +02:00
artemp
771d2844db Merge branch 'dot-scale' of https://github.com/naturalatlas/mapnik into naturalatlas-dot-scale 2015-08-12 10:40:12 +02:00
artemp
751abba262 add parse_jpeg_quality method + uint test parsing jpegXX and jpeg:quality=XX options
ref #3024
2015-08-12 10:29:57 +02:00
Blake Thompson
0b6b11b9cf Added the ability for filter_image to throw properly with bad input and added the ability for a new image to be returned 2015-08-11 19:22:09 -05:00
Blake Thompson
75522c0cc5 Merge branch 'master' into image_filters 2015-08-11 15:31:41 -05:00
Blake Thompson
bf009489d7 Updated changelog with recent changes 2015-08-11 15:31:09 -05:00
Blake Thompson
792e94ae90 Removed image-filter from map object, made it so that premultiplication/demultiplication only took place when correctly required in image filters. 2015-08-11 14:31:29 -05:00
Blake Thompson
ab2855a130 Made it so that singleton deleted at exit could be turned off. 2015-08-11 11:34:35 -05:00
artemp
b5dedd0e69 JPEG - revive backward compatible quality format jpeg<N> e.g jpeg80, jpeg90 etc.
ref #3024
2015-08-11 17:13:54 +02:00
artemp
6c01870397 expose mapnik::geometry::polygon<double>::rings_container to allow specialising interior rings container 2015-08-11 17:13:04 +02:00
Artem Pavlenko
e68da0d083 Merge pull request #3016 from mapycz/text-null-bbox
Null text collision box
2015-08-10 12:18:31 +02:00
artemp
2913982d31 const 2015-08-10 11:19:11 +02:00
Blake Thompson
a492028f25 Initial commit of changes for image_filters so they can be called outside of agg renderer 2015-08-07 15:54:39 -05:00
Blake Thompson
161469ed63 Fixed an issue with fields over size of int32 in OGR plugin and added tests to cover this situation. 2015-08-05 13:47:17 -05:00
Blake Thompson
ec73b50557 Added ability for image filters to be used on the map object, so that the entire map has an image filter applied. Corrected issues with colorblind algorithms due to incorrect algorithm used as colorspace was required to be in sRGBA rather then RGBA. 2015-08-05 12:35:17 -05:00
Blake Thompson
6245790e72 Added new image filters that allow an image to be viewed in colorblind modes, allow cartographers to see what their maps would appear like to a color blind person 2015-08-04 17:41:31 -05:00
Jiri Drbalek
c1d8095d59 shields: set marker after collision test 2015-08-04 13:38:52 +00:00
Jiri Drbalek
162f82cba5 ensure null text has no bbox 2015-08-04 13:29:16 +00:00
Jiri Drbalek
96b35c540d visual tests: set test duration to zero on error 2015-08-03 10:45:23 +00:00
Jiri Drbalek
32afdb10e5 visual tests: limit number of failures 2015-08-03 10:45:14 +00:00
Brian Reavis
9bdca97579 Fixed dot symbolizer not acknowledging scale factor. 2015-08-02 14:55:26 -06:00
Blake Thompson
6b05f19c38 update CHANGELOG for mapnik v3.0.2 release 2015-07-31 14:31:56 -05:00
Blake Thompson
8305e74eaf setting up for mapnik v3.0.2 release 2015-07-31 14:31:21 -05:00
Blake Thompson
f5cf669736 Updated SVG unit test so that it no longer writes to std err. closes #3007 2015-07-31 12:31:54 -05:00
Artem Pavlenko
727341f41a Merge pull request #3003 from mapnik/svg-parser-errors
SVG parser refactoring and improvements
2015-07-31 17:06:30 +02:00
artemp
df8c5ce599 update test data 2015-07-31 12:54:42 +02:00
artemp
42bf2303e0 fix parse_double_optional_percent grammar and update tests 2015-07-31 11:35:02 +02:00
artemp
f9bd21eeb5 Merge branch 'svg-parser-errors' into large_csv 2015-07-31 11:18:55 +02:00
artemp
5b04764757 SVG - update tests to work with marker_cache's strict policy 2015-07-31 10:47:30 +02:00
artemp
3a4d57492f make parser strict - return marker_null() on SVG parser failures
redirect stderr to MAPNIK_LOG
2015-07-31 10:44:42 +02:00
jakepruitt
0cc524aa1c Adding percentage for linear gradient 2015-07-30 17:35:30 -04:00
jakepruitt
1f7b961901 Update test data 2015-07-30 17:09:26 -04:00
jakepruitt
6f6af87a43 Write invalid parse_string test 2015-07-30 17:05:19 -04:00
jakepruitt
9549a1cc01 Adding tests for radial gradients with percentages 2015-07-30 16:46:27 -04:00
Dane Springmeyer
261b2f5185 drop libxml2 as a dep in bootstrap for now (todo - selectively re-enable #3008) 2015-07-30 11:24:38 -07:00
Dane Springmeyer
2af5a75dd7 default to ptree xml parser (rapidxml inside boost) instead of libxml2 2015-07-30 11:22:23 -07:00
Dane Springmeyer
a552518541 avoid a few -Wsign-conversion warnings 2015-07-30 11:10:23 -07:00
Dane Springmeyer
76e761b2f0 fix grammar in 3.0.1 summary [skip ci] 2015-07-30 10:39:48 -07:00
jakepruitt
8982938270 Adding test for gradient xlink:href
- refs #3005
2015-07-30 12:48:23 -04:00
artemp
9f4db6c855 use correct define -> HAVE_LIBXML2 2015-07-30 18:30:22 +02:00
artemp
56712c2435 fix XMLPARSER=libxml2 logic 2015-07-30 14:34:01 +02:00
artemp
362a2ee0b1 use std::ptrdiff_t and remove static_cast's - ref #3006 2015-07-30 14:32:18 +02:00
artemp
ffcacf3509 make libxml2 optional dependency (XMLPARSER=libxml2) 2015-07-30 13:14:37 +02:00
artemp
f8fd60dc69 remove libxml includes and init calls 2015-07-30 13:13:53 +02:00
artemp
9d43f69cf6 const correctness 2015-07-30 11:09:08 +02:00
artemp
f75921c7ca update test + data 2015-07-30 11:09:08 +02:00
artemp
e5c4dbf1c0 format 2015-07-30 11:04:17 +02:00
artemp
930893a877 benchmark - correct params 2015-07-30 11:04:17 +02:00
jakepruitt
b4bc16751c Adjusted error message logic for logging path ids 2015-07-29 22:37:30 -04:00
jakepruitt
af27af4af2 Improving svg test coverage
- refs #3005
2015-07-29 22:26:28 -04:00
artemp
f3870cc8fe update test 2015-07-29 16:09:51 +02:00
artemp
5b287ab798 catch std::exception to get better stderr 2015-07-29 16:09:33 +02:00
artemp
d05c13d849 unit test - cope with incorrectly encoded geometries 2015-07-29 15:42:53 +02:00
artemp
4cf6ce1866 correct error handling 2015-07-29 13:01:51 +02:00
artemp
9531adbf56 re-use attribute pointer and reduce number of local vars 2015-07-29 11:16:51 +02:00
artemp
a8f5ddff73 handle empty <g> element + fix visibity parsing 2015-07-28 19:37:55 +02:00
artemp
e9284ce62a c++ tidy 2015-07-28 16:50:06 +02:00
artemp
0b728e676c update visual test data 2015-07-28 16:35:50 +02:00
artemp
515da3f9a8 rapidxml based svg parser - initial impl 2015-07-28 16:33:39 +02:00
artemp
4ee453ada0 update test data 2015-07-28 10:30:24 +02:00
artemp
42c8da72e9 Merge branch 'master' into svg-parser-errors 2015-07-28 10:29:59 +02:00
Dane Springmeyer
a78a89564b back to development of > Mapnik 3.0.1 [skip ci] 2015-07-27 20:27:21 -07:00
Dane Springmeyer
dfc6a41a27 wip: add make release target [skip ci] 2015-07-27 19:17:31 -07:00
Dane Springmeyer
c8370485da use latest testdata [skip ci] 2015-07-27 19:05:18 -07:00
Dane Springmeyer
8424843eed make note of plugin move - refs #2980 [skip ci] 2015-07-27 19:04:28 -07:00
Dane Springmeyer
3f26e7a4b0 update CHANGELOG for mapnik v3.0.1 release [skip ci] 2015-07-27 18:42:09 -07:00
Dane Springmeyer
28f6f4d63b setting up for mapnik v3.0.1 release 2015-07-27 18:30:26 -07:00
Dane Springmeyer
4e2890bb18 iwyu for spirit_transform_attribute.hpp - closes #2993 2015-07-27 17:41:10 -07:00
Dane Springmeyer
411486eaf3 ignore warnings for karma 2015-07-27 17:38:36 -07:00
Dane Springmeyer
47c3139371 Add #2963 to changelog [skip ci] 2015-07-27 17:29:18 -07:00
Dane Springmeyer
0e8887171d update visual tests after #2988 - e3d79ed493 2015-07-27 17:26:59 -07:00
Dane Springmeyer
abf04d6305 Merge pull request #2988 from mapycz/collision-extent
do not store out of extent collision boxes
2015-07-27 17:25:45 -07:00
Dane Springmeyer
c50f72764f update tests + add #2990 to changelog 2015-07-27 17:09:46 -07:00
Dane Springmeyer
c7384e781c be explicit about pointing at master of test-data-visual 2015-07-27 17:08:01 -07:00
Dane Springmeyer
a5db121231 followup to #2990 [skip ci] 2015-07-27 16:45:22 -07:00
Dane Springmeyer
90f2fd91f5 Merge pull request #2990 from mapycz/fix-text-minimum-path-length
fix text-minimum-path-length
2015-07-27 16:33:25 -07:00
Dane Springmeyer
6f61c0e6c4 fix building both postgis and pgraster plugins together - closes #2986 2015-07-27 16:21:31 -07:00
Dane Springmeyer
79bfe8b2f0 Add #2989 to changelog [skip ci] 2015-07-27 15:56:14 -07:00
artemp
8ebb9db431 add xml:id support ( ref #2989 ) 2015-07-27 15:55:34 -07:00
Dane Springmeyer
8efaacd923 add recent work to changelog #2991, #2985, #2983 [skip ci] 2015-07-27 15:53:09 -07:00
Dane Springmeyer
e82de0109d centralize plugin registration for unit tests 2015-07-27 15:35:00 -07:00
Dane Springmeyer
871a881634 Merge pull request #3002 from mapnik/issue-2971
Fix windows compile around glyph_info forward declare
2015-07-27 14:59:18 -07:00
Dane Springmeyer
ba8d51e029 include fixups 2015-07-27 14:57:57 -07:00
artemp
ec591c1ffa add bogus stroke-width test 2015-07-24 11:05:58 +02:00
artemp
2e7d75f022 track errors parsing double values 2015-07-24 11:05:26 +02:00
artemp
49d4beec59 fix typo 2015-07-23 15:16:08 +02:00
artemp
e496e24deb add "Gradients apply to leaf nodes" test and update test data 2015-07-23 12:58:38 +02:00
artemp
ce2eaa02ee add operator==() 2015-07-23 12:58:14 +02:00
artemp
6a1a25efbf remove duplicate if else 2015-07-23 11:14:13 +02:00
artemp
4b9b1b5401 fix err message 2015-07-22 16:38:45 +02:00
artemp
158e4b7f87 add missing gradient definition test 2015-07-22 16:34:28 +02:00
artemp
626cb9f47c add display=none test 2015-07-22 15:28:55 +02:00
artemp
7aa30a211e SGV tests: <gradient> - update expected path data 2015-07-22 13:32:39 +02:00
artemp
fddc4e0312 update tests 2015-07-22 13:21:17 +02:00
artemp
6ca438be50 test data -> track master 2015-07-22 11:58:48 +02:00
artemp
9eadd48d7b add tests for no-existing svg file + bogus color in fill and stroke 2015-07-22 11:52:18 +02:00
artemp
e3f28ba4d3 Merge branch 'master' into svg-parser-errors 2015-07-22 10:42:53 +02:00
artemp
34a1d1315a clamp rx/ry to valid range (<= 0.5*width/0.5*height)
SVG spec : ".. If 'rx' is greater than half of the width of the rectangle, then the user agent must process the 'rect' element with the effective value for 'rx' as half of the width of the rectangle. If 'ry' is greater than half of the height of the rectangle, then the user agent must process the 'rect' element with the effective value for 'ry' as half of the height of the rectangle.."
2015-07-21 20:50:26 +02:00
artemp
804115089b clamp rx/ry to valid range (<= 0.5*width/0.5*height)
SVG spec : ".. If 'rx' is greater than half of the width of the rectangle, then the user agent must process the 'rect' element with the effective value for 'rx' as half of the width of the rectangle. If 'ry' is greater than half of the height of the rectangle, then the user agent must process the 'rect' element with the effective value for 'ry' as half of the height of the rectangle.."
2015-07-21 20:48:43 +02:00
artemp
9af3313063 use parse_id_from_url for stroke 2015-07-21 14:56:23 +02:00
Jiri Drbalek
8faff70620 fix text-minimum-path-length 2015-07-21 12:54:16 +00:00
artemp
43b3770a95 make gradient movable 2015-07-21 14:12:47 +02:00
artemp
d1b39f5841 handle color parsing in one place 2015-07-21 11:45:11 +02:00
artemp
d7cf0d5bca add parse_id_from_url method 2015-07-21 11:30:04 +02:00
artemp
f19ddf81ba SVG - add gradient test (ref #2989) 2015-07-21 10:35:21 +02:00
artemp
61a2ef7ebb update test data 2015-07-21 10:29:19 +02:00
artemp
55a9855069 add xml:id support ( ref #2989 ) 2015-07-21 10:25:57 +02:00
artemp
52007b8019 Merge branch 'master' into svg-parser-errors 2015-07-21 09:46:38 +02:00
artemp
27fb4a9e00 update tests 2015-07-20 20:36:31 +02:00
artemp
0625b90067 SVG unit test - add <line> test
(http://www.w3.org/TR/SVGTiny12/shapes.html#LineElement)
2015-07-20 17:44:47 +02:00
Jiri Drbalek
43dcf35a93 do not store out of extent collision boxes (fixes #2963) 2015-07-20 15:37:05 +00:00
artemp
fb155a57cd support compilers that can't construct tuple from initializer list 2015-07-20 17:16:35 +02:00
artemp
6a2d0b9ebf started adding svg parsing tests to increase test coverage (work-in-progress) 2015-07-20 15:41:35 +02:00
artemp
9da6b9b389 format 2015-07-20 15:41:04 +02:00
artemp
f58a13825f correct std::clog message 2015-07-20 14:51:24 +02:00
artemp
faa2c19359 make visitor return status + don't mutating svg_name_ 2015-07-20 12:05:26 +02:00
artemp
9ab1935a36 add boolean flag for tracking when to re-calculate extent (ref #2985) 2015-07-17 20:17:51 +02:00
artemp
bb8b835618 calculate percentage value inside parser, reduce local vars 2015-07-17 20:00:14 +02:00
artemp
a8da31b765 make '%' sign optional ( was 0 or N) 2015-07-17 19:49:28 +02:00
artemp
c63e71acac +unit test: feature_collections with extra properties 2015-07-17 17:43:04 +02:00
Dane Springmeyer
25af931f58 don't forward declare glyph_info in text_line.hpp 2015-07-17 07:49:41 -07:00
Dane Springmeyer
bb16cf90ff make text_itemizer noncopyable 2015-07-17 07:49:16 -07:00
Dane Springmeyer
f9d65d0167 Merge branch 'master' of github.com:mapnik/mapnik into issue-2971 2015-07-17 07:23:10 -07:00
artemp
5423f4c5bf relax grammar rules to allow arbitary ordering - currently we're looking for features skipping anything else
ref: https://github.com/mapnik/mapnik/issues/2983
2015-07-17 10:59:59 +02:00
artemp
c4d8af702d don't return early from parse_linear_gradient 2015-07-17 09:42:05 +02:00
Dane Springmeyer
a43faf9017 Merge pull request #2961 from CartoDB/3.0.x.pgraster
Render NODATA as transparent and clip highbit data
2015-07-16 16:14:28 -07:00
Dane Springmeyer
461163d883 Merge pull request #2981 from mapnik/unmaintained-plugins
move occi, osm, rasterlite to non-core repo
2015-07-16 13:07:49 -07:00
Dane Springmeyer
ab7c255e8e Merge pull request #2979 from mapnik/plugin-policy
Add a plugin policy
2015-07-16 12:00:01 -07:00
Dane Springmeyer
2048be7b30 move occi, osm, rasterlite to non-core repo 84b0bfecb3 - refs #2980 2015-07-16 11:46:10 -07:00
Dane Springmeyer
cd2c76689d Add a plugin policy per #2978 2015-07-16 11:20:50 -07:00
artemp
62a58937a4 try to never fail (almost) 2015-07-16 16:55:41 +02:00
artemp
c166d9acb8 reduce code duplication 2015-07-16 13:06:52 +02:00
artemp
d2cfd0f0ea log all errors without throwing 2015-07-16 12:58:32 +02:00
artemp
55215a7b30 Merge branch 'master' into svg-parser-errors 2015-07-16 12:18:25 +02:00
artemp
c664394397 remove duplicate operator= 2015-07-16 12:17:21 +02:00
Dane Springmeyer
af0369d812 add no-op rendering benchmark - refs #2976 2015-07-15 12:59:54 -07:00
artemp
1733db5022 c++ - don't rely on implicit int to bool conversions 2015-07-15 17:46:27 +02:00
artemp
eded32d27d formattin 2015-07-15 11:30:05 +02:00
artemp
dfe73b7995 mapnik c++ style 2015-07-15 11:26:45 +02:00
Dane Springmeyer
0a126a3765 attemp to fix #2971 2015-07-14 22:54:32 -07:00
Dane Springmeyer
2b8abc4bfa fix #2975 - remove usage of boost/algorithm/clamp.hpp 2015-07-14 19:19:39 -07:00
Dane Springmeyer
8a9b46edfd bring in new regression tests for 6d6cb15 2015-07-14 13:34:50 -07:00
Dane Springmeyer
4cb2dcace2 add fix for skew (6d6cb15) to changelog [skip-ci] 2015-07-14 13:29:17 -07:00
artemp
ec68559d3d fix stderr 2015-07-14 19:54:41 +02:00
artemp
a46af76216 initial commit - make parse and parse_from_string return boolean ,collect error messages 2015-07-14 19:45:50 +02:00
artemp
6d6cb15b45 skewX/skewY - add input validation ref https://github.com/mapbox/mapbox-studio/issues/1409
* convert input angle into -90,90 range
* clamp to -89,89 range
2015-07-14 11:53:50 +02:00
artemp
c2295755f6 fix typo 2015-07-13 13:48:34 +02:00
Dane Springmeyer
15af190c77 add #2964 to changelog [skip ci] 2015-07-10 12:56:10 -07:00
Dane Springmeyer
0145476ff7 only run geojson unit test if plugin was built 2015-07-10 12:34:18 -07:00
Dane Springmeyer
b54b2753a0 fixup geojson test 2015-07-10 12:10:46 -07:00
artemp
8ab5125431 update submodules 2015-07-10 11:19:13 +02:00
artemp
16e6db3281 add initial geojson unit test 2015-07-10 11:05:48 +02:00
artemp
6325bf21cd geojson : correct parsing feature boundaries ref #2964 2015-07-10 09:45:24 +02:00
Dane Springmeyer
153051d020 add test to ensure icu/harfbuzz shapers can be compiled 2015-07-08 23:28:38 -07:00
Dane Springmeyer
a6a4f1eb2e fix compile of dormant icu_shaper 2015-07-08 23:27:41 -07:00
Dane Springmeyer
784bd8d194 use correct include type in scrptrun.hpp 2015-07-08 23:25:55 -07:00
Jiri Drbalek
293863d38a Merge pull request #2959 from mapycz/improve-visual-test-10
visual tests: report total time spent by renderers
2015-07-08 20:02:31 +02:00
Jiri Drbalek
ced3d35023 visual tests: report total time spent by renderers 2015-07-08 20:01:23 +00:00
Paul Ramsey
d144f97f4e Render NODATA as transparent and clip highbit data
ala GDAL for greyscale outputs. Addresses #2661
2015-07-08 08:29:53 -07:00
Blake Thompson
1c56214bbb update CHANGELOG for mapnik v3.0.0 release 2015-07-07 14:50:42 -05:00
Blake Thompson
e6891a03e6 Changed release date of CHANGELOG.md 2015-07-07 14:42:22 -05:00
Blake Thompson
8511865f60 Updated visual tests for python 2015-07-07 14:41:34 -05:00
Blake Thompson
ed022f17f0 Merge pull request #2954 from mapycz/improve-visual-test-9
visual tests: add time measurement
2015-07-07 13:59:56 -05:00
Dane Springmeyer
b1e4f0ea23 update visual tests after #2955 2015-07-07 11:57:52 -07:00
Dane Springmeyer
714b88d244 Merge pull request #2955 from mapnik/offset_converter-fix
Offset converter fix
2015-07-07 11:56:12 -07:00
artemp
73cae70a41 correctly populate close_points when skipping duplicate (coincident vertices) 2015-07-07 18:38:25 +02:00
artemp
0a484bf784 handle Multi-geoms + update cairo and grid renderers
update
2015-07-07 18:37:27 +02:00
artemp
2fd1525269 remove redundant check 2015-07-07 15:02:13 +02:00
Jiri Drbalek
1fa6cc73db visual tests: add time measurement 2015-07-07 12:35:28 +00:00
artemp
bb815dacf8 offset_converter - skip duplicate SEG_CLOSE (after LINETO (startx,starty)) commands to normalise input 2015-07-07 14:20:54 +02:00
artemp
56fe702bac agg line_symbolizer - dispatch to appropriate clipper based on geometry_type 2015-07-07 14:19:51 +02:00
Dane Springmeyer
d13543c359 update visual tests to a83ea35fec 2015-07-07 00:39:30 -07:00
Dane Springmeyer
305b6df5af Merge pull request #2953 from mapnik/faster-text-offset-placement
Fix perf regression for text along offset lines
2015-07-06 19:37:02 -07:00
Dane Springmeyer
a91d73779f revert the functionality of 944f34b - refs #2937 2015-07-06 19:27:05 -07:00
Dane Springmeyer
a6fd89df3e Merge pull request #2941 from mapnik/offset_fix
Fix situation where offset_converter might start off with an SEG_END …
2015-07-06 18:50:52 -07:00
Dane Springmeyer
3ed7e347cb use unique_ptr instead of shared_ptr for glyph_positions_ptr - refs #2516 2015-07-06 18:47:47 -07:00
Dane Springmeyer
3f91186a74 avoid creating placements for off canvas placements - refs #2929 2015-07-06 18:28:37 -07:00
Dane Springmeyer
e65f93f5f2 update test images after #2949 #2929 2015-07-06 18:23:34 -07:00
Dane Springmeyer
9f72950629 update visual tests 2015-07-06 18:14:56 -07:00
Dane Springmeyer
ea283c24d7 Merge pull request #2949 from mapycz/fix-text-on-tile-border
fix rendering text on tile's borders
2015-07-06 18:04:45 -07:00
Dane Springmeyer
418855118a remove un-implemented method on glyph_positions 2015-07-06 17:45:59 -07:00
Dane Springmeyer
a440a99f56 Merge pull request #2930 from mapycz/improve-visual-test-8
Visual tests: add tiled mode
2015-07-06 17:43:50 -07:00
Dane Springmeyer
aa2f769fdc Merge pull request #2944 from mapycz/fix-integer-overflow
fix integer overflow (-fsanitize=integer)
2015-07-06 16:25:56 -07:00
Dane Springmeyer
ff720d6231 support clipping in markerssymbolizer on multi-types - refs #2951 2015-07-06 15:40:34 -07:00
Blake Thompson
852a7e432a Updated tests to cover case found in #2942 2015-07-06 16:12:04 -05:00
Blake Thompson
d5c11af019 Fixed issues with multi-line paths in offset_converter, line offsets were following the polygon offset logic when they shouldn't. Closes #2942 2015-07-06 15:31:10 -05:00
Dane Springmeyer
c233364abc use latest libpng@1.6.17 2015-07-06 12:43:22 -07:00
artemp
56678b8aad geojson.input - fix bug typo 2015-07-06 12:47:45 +02:00
Jiri Drbalek
8fe19a7b45 fix rendering text on tile's borders 2015-07-03 13:22:23 +00:00
Dane Springmeyer
39eab41ecd use C++11 in cairo_context::set_dash - refs #2948 2015-07-02 10:19:33 -07:00
Dane Springmeyer
a5594bd445 fix scan-build 'Value stored to 'a_' is never read' warning 2015-07-02 10:19:33 -07:00
Jiri Drbalek
cb2717bd04 visual tests: add support for tiles 2015-07-02 14:23:05 +00:00
Jiri Drbalek
449ccf3243 visual tests: drop compare_images.hpp 2015-07-02 14:23:05 +00:00
Jiri Drbalek
aff4fa5da6 visual tests: prefer size_t 2015-07-02 14:23:04 +00:00
Artem Pavlenko
4c20842cc9 Merge pull request #2947 from mapycz/benchmark-image-compare
benchmark: remove duplicate code
2015-07-02 15:30:55 +02:00
Jiri Drbalek
9cb43bf8e7 benchmark: remove duplicate code 2015-07-02 15:10:27 +00:00
artemp
4f6c286f92 style 2015-07-02 10:14:36 +02:00
Dane Springmeyer
66a67dff5c remove unused header 2015-07-01 10:00:00 -07:00
Dane Springmeyer
a42e93a259 remove unneeded assert - refs #2943 2015-07-01 09:58:37 -07:00
Jiri Drbalek
9704e3eec5 fix integer overflow (-fsanitize=integer) 2015-07-01 12:13:15 +00:00
Blake Thompson
770d93b7cc Fix situation where offset_converter might start off with an SEG_END from the vertex, therefore starting invalid processing. Tests added to confirm fix. Ref #2937 2015-06-30 22:23:44 -05:00
Dane Springmeyer
c7693d9765 fix odd inf loop in catch.hpp 2015-06-30 18:47:36 -07:00
Dane Springmeyer
9a54d720cd add symbol for save_to_string<image_view_rgba8> - closes #2938 - refs #2939 2015-06-30 17:52:08 -07:00
Blake Thompson
01dbf53a62 setting up for mapnik v3.0.0 release 2015-06-30 19:30:11 -05:00
Dane Springmeyer
1eea7294ae ensure tests pass with no plugins built 2015-06-30 17:04:48 -07:00
Dane Springmeyer
a4753f4c87 update CHANGELOG [skip ci] - refs #2934 2015-06-30 16:12:22 -07:00
Blake Thompson
9419219b14 Changed extension to use standard md for markdown. 2015-06-30 16:28:16 -05:00
Blake Thompson
25016f1a2f Updated changelog some #2934 2015-06-30 14:30:02 -05:00
Blake Thompson
89f0f53938 Updated visual tests to be in line with python mapnik 2015-06-30 13:02:28 -05:00
Dane Springmeyer
789e07d4f4 Merge pull request #2904 from mapnik/offset
Offset Algorithm Fixes and Reverse of Offset Direction.
2015-06-30 00:39:02 -07:00
Dane Springmeyer
48eb4abedb merge with master 2015-06-30 00:38:45 -07:00
Dane Springmeyer
2a2e0d8260 update visual test refs [skip ci] - refs #2904 2015-06-30 00:06:24 -07:00
Jiri Drbalek
79e00ed7d3 Merge pull request #2910 from mapycz/improve-visual-test-7
visual tests: add command line argument for controlling log level
2015-06-29 16:52:05 +02:00
Jiri Drbalek
c4625e06bc visual tests: add command line argument for controlling log level 2015-06-29 14:23:32 +00:00
artemp
7158c19f80 Merge branch 'master' into large_csv 2015-06-29 09:51:52 +02:00
Dane Springmeyer
b285bde44b Revert "visual tests: still generate error report on ctrl-c"
This reverts commit c24229f5c8.
2015-06-24 17:37:02 -07:00
Dane Springmeyer
5428300454 update more visual tests after 5a032ee98b 2015-06-24 17:35:12 -07:00
Dane Springmeyer
5a032ee98b fix #2924 and #2412
- adds back support for minimum-path-length on lines (only supported lines in 2.3.x)
 - made text-largest-bbox-only work only on polygons (restores 2.3.x behavior)

TODO: give more control: #1583
2015-06-24 17:02:34 -07:00
Dane Springmeyer
c24229f5c8 visual tests: still generate error report on ctrl-c 2015-06-23 21:54:24 -07:00
artemp
8e40711ca4 Merge branch 'master' into large_csv 2015-06-23 17:54:38 +02:00
Artem Pavlenko
717ab98788 Merge pull request #2922 from mapnik/value-ostream-fix
fix #2921
2015-06-23 17:53:35 +02:00
artemp
73e0ac6a77 Merge branch 'master' into large_csv 2015-06-23 09:43:38 +02:00
Dane Springmeyer
15589c8568 pull in latest master 2015-06-22 13:51:09 -07:00
Dane Springmeyer
e4631f15ae fix #2921 2015-06-22 13:43:07 -07:00
Dane Springmeyer
9a5cc81924 fix a few -Wunused-argument warnings [skip ci] 2015-06-22 13:29:57 -07:00
artemp
ad43a98f43 Merge branch 'master' into large_csv 2015-06-22 10:47:12 +02:00
Dane Springmeyer
29eb2b7a62 Merge pull request #2920 from kapouer/patch-4
Spelling error
2015-06-19 14:39:11 -07:00
Jérémy Lal
f4b10fbbff Spelling error 2015-06-19 23:25:27 +02:00
artemp
fec6d11560 Merge branch 'master' into large_csv 2015-06-19 17:30:18 +02:00
Artem Pavlenko
34618dea99 Merge pull request #2919 from mapnik/remove_ptr_vector
remove boost::ptr_vector usage
2015-06-19 17:20:32 +02:00
artemp
f1c389a168 Merge branch 'master' into remove_ptr_vector 2015-06-19 17:09:07 +02:00
artemp
7f3b88b11e benchmark (quad_tree) - add bbox query 2015-06-19 17:08:19 +02:00
artemp
c88aafaf18 Merge branch 'master' into remove_ptr_vector 2015-06-19 14:19:42 +02:00
artemp
6107ef8be0 benchmark - add quad_tree creation test 2015-06-19 14:19:04 +02:00
artemp
9c7186e49e add `autodetect_newline' as a separate function 2015-06-19 13:30:00 +02:00
artemp
7e0c23815e remove boost::ptr_vector usage 2015-06-19 10:45:43 +02:00
Daniel Patterson
ca491d8aa9 Export svg_parser symbols so we can use these functions from node-mapnik 2015-06-18 15:13:52 -07:00
Dane Springmeyer
d626cf83ad update visual tests [skip ci] 2015-06-18 12:35:12 -07:00
artemp
69236137e5 make 'closing' quote an optional 2015-06-18 14:09:33 +02:00
artemp
d893718343 Merge branch 'master' into large_csv 2015-06-18 13:06:28 +02:00
artemp
98d87f4c88 replace remaining boost::unordered_map 2015-06-18 11:08:35 +02:00
artemp
93937ca443 prefer STL containers - boost::unordered_map --> std::unordered_map 2015-06-18 11:01:16 +02:00
artemp
dd8394687d remove dupe hash 2015-06-18 10:57:03 +02:00
artemp
5b1f0d3ba8 Merge remote-tracking branch 'origin/master' 2015-06-18 10:49:26 +02:00
artemp
022c2f7255 add std::hash specialization for mapnik::value 2015-06-18 10:48:56 +02:00
artemp
b9ed80ecc8 add std::hash specialization for mapnik::value 2015-06-18 10:10:26 +02:00
Dane Springmeyer
4fe3c87a84 tame a few more boost -Wsign-conversion warnings 2015-06-17 13:29:54 -07:00
Dane Springmeyer
07e06e1781 tame a few more boost -Wsign-conversion warnings 2015-06-17 13:29:54 -07:00
Dane Springmeyer
70959e8576 safer conversion of unsigned in xml_attribute cast 2015-06-17 13:29:54 -07:00
Blake Thompson
ad99cce6dd Revert change in test directory 2015-06-17 14:50:35 -05:00
Blake Thompson
6619de7b16 Modified where in travis mason publish is run 2015-06-17 14:48:49 -05:00
Blake Thompson
fa1950c5d0 Updated visual tests 2015-06-16 20:54:24 -05:00
Blake Thompson
983be86487 Updating visual tests 2015-06-16 20:48:34 -05:00
Blake Thompson
1272796822 Updated visual tests 2015-06-16 14:21:55 -05:00
Blake Thompson
bd9e580cd8 Merge branch 'master' into offset 2015-06-16 11:50:04 -05:00
Blake Thompson
93d59cde02 Changed copy method for linux and mason latest 2015-06-16 11:23:58 -05:00
Blake Thompson
1377852020 Changed the travis build to now use static linking for mason latest 2015-06-16 11:11:34 -05:00
artemp
8c6bf0eef6 update copyright notice 2015-06-16 12:49:16 +02:00
artemp
c428779e83 shape : make primitives parsers static + fix numeric parser to handle mapnik::value_integer (64-bit) 2015-06-16 12:01:11 +02:00
artemp
8bf82b717e OGR : support reading OFTInteger64/OFTInteger64List 2015-06-16 11:36:17 +02:00
artemp
0a24e8cfca remove unused #include's 2015-06-16 10:04:50 +02:00
Dane Springmeyer
bb6c9a98a5 fix more -Wsign-conversion -Wconversion warnings 2015-06-15 20:41:52 -07:00
Dane Springmeyer
6d0cd6870b remove dead code 2015-06-15 20:41:52 -07:00
Dane Springmeyer
8a432ade33 fix -Wsign-compare warnings in topojson_utils 2015-06-15 20:41:52 -07:00
Dane Springmeyer
77a7eb3343 fix -Wshadow warning harfbuzz shaper 2015-06-15 20:41:52 -07:00
Dane Springmeyer
9a80a253bf fix -Wshadow warnings in agg 2015-06-15 20:41:51 -07:00
Dane Springmeyer
eb8c412a3b silence more boost gil warnings 2015-06-15 20:41:51 -07:00
Dane Springmeyer
6a76f0fa31 fix variable shadowing 2015-06-15 20:41:51 -07:00
Dane Springmeyer
20145f2fb5 fix warnings in tiff_reader 2015-06-15 20:41:51 -07:00
Dane Springmeyer
b2c85e0c65 fix a slew of -Wsign-conversion, -Wconversion, -Wunused-argument warnings 2015-06-15 20:41:51 -07:00
Dane Springmeyer
48d4bfb170 proper use of std:: in safe_cast 2015-06-15 20:41:50 -07:00
Dane Springmeyer
427f0486ff avoid -Wshadow warning 2015-06-15 20:41:50 -07:00
Dane Springmeyer
23e25ca432 share const rendering buffer impl to avoid const_cast + avoid various warnings 2015-06-15 20:41:50 -07:00
Dane Springmeyer
e23c263ba8 remove unused constructor for matrix_node 2015-06-15 20:41:50 -07:00
Dane Springmeyer
7ba45aa9ab fix variable shadowing and ignore -Wsign-conversion for boost 2015-06-15 20:41:50 -07:00
Dane Springmeyer
d69e2cbe66 use safe_cast to safely handle -Wsign-conversion/narrowing warnings 2015-06-15 20:41:50 -07:00
Dane Springmeyer
be4d6e70f8 use c++11 style const_cast + safe cast 2015-06-15 20:41:49 -07:00
Dane Springmeyer
4483da6fd9 fix -Wshadow warning 2015-06-15 20:41:49 -07:00
Dane Springmeyer
5418c74aad Fix -Wshadow and -Wsign-conversion warnings 2015-06-15 20:41:49 -07:00
Dane Springmeyer
6d124cc229 remove unused set_rectangle method 2015-06-15 20:41:49 -07:00
Dane Springmeyer
7e2028e9fd Fix -Wshadow warning 2015-06-15 20:41:49 -07:00
Dane Springmeyer
ecd2e4aea0 fix -Wshadow warning 2015-06-15 20:41:49 -07:00
Dane Springmeyer
5d2be98cf2 Fix -Wsign-conversion warning 2015-06-15 20:41:48 -07:00
Dane Springmeyer
b355e65fe1 unit coverage of css_color_grammar converters 2015-06-15 20:41:48 -07:00
Dane Springmeyer
f36b451602 use safe cast and std::lround 2015-06-15 20:41:48 -07:00
Dane Springmeyer
563bd1adc7 use safe_cast to avoid -Wsign-conversion warnings 2015-06-15 20:41:48 -07:00
Dane Springmeyer
bb2e938302 Add unit test for safe_cast (aka saturated_cast) a clamping numeric_cast 2015-06-15 20:41:48 -07:00
Dane Springmeyer
c55662ab43 rename pixel_cast to safe_cast 2015-06-15 20:41:48 -07:00
Dane Springmeyer
72b4cb8a3a fix -Wsign-conversion warnings from boost_regex 2015-06-15 20:41:47 -07:00
Dane Springmeyer
93afb963e9 Fix -Wsign-compare warnings 2015-06-15 20:41:47 -07:00
Dane Springmeyer
34b9cb37f7 fix -Wsign-conversion warning in UnicodeString.hashCode() 2015-06-15 20:41:47 -07:00
Dane Springmeyer
45bda29a45 switch to c++11 library over boost (confirmed no speed drop on osx with test_marker_cache.cpp) 2015-06-15 20:41:47 -07:00
Dane Springmeyer
062ca091c0 benchmark for marker_cache - refs #2831 2015-06-15 20:41:47 -07:00
Dane Springmeyer
9cc76de27d benchmark: correctly position memory cleanup 2015-06-15 20:41:47 -07:00
Dane Springmeyer
9da198631b more xml2 leak fixes 2015-06-15 20:41:46 -07:00
Dane Springmeyer
2b02677cb5 Centralize memory/valgrind cleanup code 2015-06-15 20:41:46 -07:00
Blake Thompson
a9712ed081 Forgot to add prefix change to mapnik config to cairo as well 2015-06-15 16:25:59 -05:00
Blake Thompson
a4aee2eb59 Added an update to mapnik config so that it can provide relative path to libraries better in node mapnik. 2015-06-15 15:37:23 -05:00
Dane Springmeyer
c94cb6251a update tests for #2912 2015-06-12 19:04:33 -07:00
Dane Springmeyer
8172eda3d1 fix gamma for symbolizers that do not (yet) support user driven gamma - closes #2912 2015-06-12 18:18:39 -07:00
Dane Springmeyer
0d86afff36 start using -Wsign-compare and -Wshadow + fix heaps of warnings - refs #2907 2015-06-12 14:51:18 -07:00
Dane Springmeyer
8d3d136da7 fix hang on windows in pixel_cast
- manifested converting double -> int64_t.
  - it is unclear why this explicitness is needed on windows
    to avoid greater calling itself. But it is clear that the
    static_cast<double>(<std::int64_t>) is not enough for the
    template deduction to match the <double,double> case automatically
  - Making this explicit is probably better anyway, but odd it is needed.
  - Finishes closing #2893, refs #2893, amends 96f7120ecc and d29a0f18b1
  - Seen with both VS 2014 CTP 4 and VS 2015 Preview
2015-06-12 12:38:22 -07:00
Dane Springmeyer
29b464e868 simplify numeric_compare template logic 2015-06-12 12:01:26 -07:00
Dane Springmeyer
a5e10aa25c std::numeric_limits are not yet constant on windows - see #2911 2015-06-12 11:48:49 -07:00
artemp
a030f5531d add <limits> 2015-06-12 14:43:56 +01:00
Artem Pavlenko
8f1f15dc49 Merge pull request #2908 from mapnik/fix_pixel_cast
Fix pixel cast - good catch broken signed/unsigned comparisons! 

I made bounds methods return constexpr - I don't expect noticeable performance improvements but here we go :)
2015-06-12 13:45:26 +01:00
artemp
15041ba334 replace boost::numeric::bounds with detail::bounds where highest/lowest return constexpr
( since c++11 std::numeric_limits<T>::min/max return `static constexpr T`)
prefer if/else if..  over if/if...)
2015-06-12 13:40:47 +01:00
artemp
74d6e7740d Merge branch 'master' into fix_pixel_cast 2015-06-12 13:01:14 +01:00
Jiri Drbalek
01fc7315ca update visual tests 2015-06-12 10:07:46 +00:00
Dane Springmeyer
8e89b788df Add a a few tests for set/get pixel - refs #2893 2015-06-12 00:12:28 -07:00
Dane Springmeyer
d29a0f18b1 fix pixel_cast by avoiding comparing across sign<->unsigned - refs #2893 2015-06-12 00:02:59 -07:00
Dane Springmeyer
62b0d2b06e update visual tests to get travis passing again post #2898 2015-06-11 16:51:47 -07:00
Dane Springmeyer
6922375cf7 Merge pull request #2905 from mapnik/fix-jpeg-crash
Fix jpeg crash
2015-06-11 14:06:29 -07:00
Dane Springmeyer
5465adc229 fix expected error message 2015-06-11 14:04:20 -07:00
Dane Springmeyer
84a0c49ec3 Avoid crashing if we try to read a png as a jpeg - closes #2903 2015-06-11 14:02:34 -07:00
Dane Springmeyer
6a3d63aa40 consistent initialization in scriptrun and placement_finder 2015-06-11 11:44:27 -07:00
Dane Springmeyer
3b450f14bf Avoid potential division by zero [coverity 54716] 2015-06-11 11:43:41 -07:00
Blake Thompson
d3f37d8f1e Updated clipper to be reversed and fixes to the way the algorithm operates. 2015-06-11 12:47:00 -05:00
artemp
167708329d Merge branch 'mapycz-fix-raster-scaling' 2015-06-11 13:21:32 +01:00
artemp
ed3a74afed disambiguate naming 2015-06-11 13:20:49 +01:00
artemp
eabe5b50e6 Merge branch 'master' into mapycz-fix-raster-scaling 2015-06-11 13:15:38 +01:00
artemp
96f7120ecc add pixel_cast<T>() ref #2893
replace boost::numeric_cast with mapnik::pixel_cast
2015-06-11 13:10:02 +01:00
artemp
e32465368b Merge branch 'fix-raster-scaling' of https://github.com/mapycz/mapnik into mapycz-fix-raster-scaling 2015-06-11 10:28:41 +01:00
artemp
b228da7bc3 remove unused grammar + remove stderr 2015-06-11 10:27:32 +01:00
Dane Springmeyer
f5a792807e fully header only impl should not use MAPNIK_DECL 2015-06-10 23:03:07 -07:00
Dane Springmeyer
87541f19d5 update test data 2015-06-10 22:01:13 -07:00
Dane Springmeyer
9ef7561a2c Merge pull request #2901 from mapnik/pj_transform_inf
handle pj_transform HUGE_VAL results (aka inf)
2015-06-10 20:09:43 -07:00
Dane Springmeyer
352586e9d7 handle pj_transform HUGE_VAL results (aka inf)
- turns out pj_transform will not always return an error code for
   failed transforms and may instead just set values as HUGE_VAL
 - this commit handles this and calls it an error by return false
   from forward/backward

Arguably if `point_count` > 1 some values might be correctly transformed
while others might be HUGE_VAL. For the purposes of Mapnik we will consider
any HUGE_VAL as an error because we have no way to handle partial failures.
2015-06-10 18:34:11 -07:00
artemp
1a95f1753e remove dead code 2015-06-10 16:32:05 +01:00
artemp
40b963f9ad csv_grammar - handle various quotting options + disable csv_utils::fix_json_quoting(csv_line) 2015-06-10 13:40:55 +01:00
artemp
793a2f9ffb better not to rely on implicit conversion to bool but use pointer comparison with nullptr 2015-06-10 11:42:34 +01:00
artemp
e5f1379fea handle escape characters 2015-06-10 11:41:45 +01:00
artemp
cb832c0964 format 2015-06-10 11:41:28 +01:00
artemp
f1feedc54c Merge branch 'master' into large_csv 2015-06-10 11:14:19 +01:00
artemp
8e30a89522 remove wkt_generator_grammar_int to minimise code duplication
remove redundant template parameter - we can deduce coord_type from Geometry
add coord generator traits to control generator instantiation at compile time
2015-06-10 11:10:17 +01:00
artemp
89d258743a use inheritance to define geometry ( struct geometry : geometry_base<T> ) + provide value_type type alias in geometry 2015-06-10 10:55:34 +01:00
Blake Thompson
08602392a3 Merge branch 'master' into offset 2015-06-09 13:18:31 -05:00
Blake Thompson
d209e5bc33 After some tweaking determined what I feel like are the best values for threshold and limiting sharp corners 2015-06-09 13:15:12 -05:00
Blake Thompson
dd104b0b1b Updated offset converter to remove large spikes 2015-06-09 11:31:50 -05:00
artemp
989af2ea42 use csv_grammar to parse csv lines 2015-06-09 15:22:37 +01:00
artemp
11e58275e9 fix typedef's 2015-06-09 15:22:01 +01:00
Blake Thompson
75f7cb26bb Reversed the offsets 2015-06-09 09:18:52 -05:00
artemp
f4ec97489d add 'csv' dir 2015-06-09 10:33:01 +01:00
artemp
908f03bc19 add csv_grammar 2015-06-09 10:21:38 +01:00
artemp
35ff68a7ec refactor - detect_separator free func 2015-06-09 10:17:55 +01:00
artemp
6bb95d2c85 Merge branch 'master' into large_csv 2015-06-09 09:58:53 +01:00
Dane Springmeyer
804e523e71 update tests after #2897 2015-06-08 19:06:43 -07:00
Dane Springmeyer
32d925b965 fix clipping regression on line patterns #2897 (proper tests depend on 2896) 2015-06-08 19:06:43 -07:00
Blake Thompson
66efe02224 Merge pull request #2898 from mapnik/offset
Offset Fix
2015-06-08 21:02:21 -05:00
Blake Thompson
735ac5a6e1 Updated visual tests 2015-06-08 21:00:36 -05:00
Blake Thompson
e9ff7b9339 Merge branch 'master' into offset 2015-06-08 20:53:41 -05:00
Dane Springmeyer
c9293b8fd0 actually fix #2894 - refs #2202 2015-06-08 18:51:13 -07:00
Blake Thompson
42de75593d Updated unit test to be correct 2015-06-08 20:32:21 -05:00
Blake Thompson
a74c4abe57 Reverted to original offset directions for now 2015-06-08 19:33:00 -05:00
Blake Thompson
eb5ca2af87 Merge branch 'offset' of github.com:mapnik/mapnik into offset 2015-06-08 17:13:58 -05:00
Blake Thompson
7aa7860b65 Added tests to offset 2015-06-08 17:13:02 -05:00
Dane Springmeyer
8af1b2def6 Merge branch 'master' of github.com:mapnik/mapnik into offset 2015-06-08 14:22:08 -07:00
Dane Springmeyer
bca0fb872c update visual test images after #2894 2015-06-08 14:21:00 -07:00
Dane Springmeyer
2a01b2da03 Merge branch 'master' of github.com:mapnik/mapnik into offset 2015-06-08 13:54:04 -07:00
Jiri Drbalek
76b7466719 fix rendering raster without scaling 2015-06-08 17:31:56 +00:00
artemp
82a8735ef8 Merge branch 'master' into large_csv 2015-06-08 17:21:25 +01:00
Dane Springmeyer
fad969421f ensure visual tests compile if GRID_RENDERER is disabled 2015-06-06 12:42:00 -07:00
Dane Springmeyer
583fbaec14 fix test compile if cairo is disabled 2015-06-06 12:30:56 -07:00
Dane Springmeyer
d7bffd51f2 shuffle marker_helpers includes 2015-06-06 08:19:54 -07:00
Dane Springmeyer
29c9e97d76 minor code cleanup in process_group_symbolizer 2015-06-06 08:09:06 -07:00
artemp
ce33e2d3cc Merge branch 'master' into large_csv 2015-06-06 10:39:17 +01:00
Blake Thompson
68c5d07634 Merge pull request #2888 from mapycz/makefile-non-bash
fix make python for non-bash shells
2015-06-05 17:40:45 -05:00
Blake Thompson
4de33bd483 Updated offset so that it only requires onetime through and rewind is not required to be called. This was done because some adapters do not respond well to rewind. 2015-06-05 17:12:42 -05:00
Blake Thompson
35f4ae5bc7 Tune threshold some for offset converter 2015-06-05 12:03:52 -05:00
Jiri Drbalek
d3baf8041a fix make python for non-bash shells 2015-06-05 15:14:31 +00:00
Blake Thompson
c3574c1008 Initial commit changing offsets 2015-06-05 10:04:24 -05:00
artemp
f208717070 fix spelling 2015-06-04 17:21:08 +01:00
artemp
e0e46eb3a8 csv plugin : add file_length standalone helper, make file_length local variable 2015-06-04 17:21:08 +01:00
Dane Springmeyer
dcfa0b655c fix #2863 by adding back compatibility of point symbolizer interior placement on point geometries + update visual tests 2015-06-04 07:45:44 -07:00
Dane Springmeyer
a38cc2aab6 disable tiff test on windows - closes #2838 2015-06-03 15:04:50 -07:00
Dane Springmeyer
e17505686c fix compile - followup to #2880 2015-06-03 14:16:30 -07:00
Dane Springmeyer
3b0cc75182 Merge pull request #2884 from mapycz/ignore-mapnik-settings-env
add mapnik-settings.env to .gitignore
2015-06-03 14:04:19 -07:00
Dane Springmeyer
4bf4bb0104 Merge pull request #2880 from zerebubuth/fix/rapidxml-loader-trim-whitespace
Fix rapidxml XML loader to trim whitespace
2015-06-03 14:03:53 -07:00
Matt Amos
1778d19b22 Added headers required on Mac OS - not sure why not on Linux. 2015-06-03 15:56:37 +01:00
artemp
42e1adca84 c++11 - use std::bind 2015-06-03 14:00:14 +01:00
Jiri Drbalek
fa35e1c193 update test data 2015-06-03 13:10:57 +00:00
Jiri Drbalek
aa8197bd6c add mapnik-settings.env to .gitignore 2015-06-03 12:01:12 +00:00
Artem Pavlenko
a235316573 Merge pull request #2883 from mapycz/missing-style
better handling of missing styles
2015-06-03 11:54:06 +01:00
Jiri Drbalek
27ba7483be xml loader: throw on missing style for strict parsing 2015-06-03 10:36:50 +00:00
artemp
3a4c67c9d6 Merge remote-tracking branch 'origin/master' 2015-06-03 11:30:57 +01:00
Artem Pavlenko
bd4504331d Merge pull request #2882 from mapnik/remove_clipper
Removed angus clipper library from code and updated all visual tests …
2015-06-03 11:30:29 +01:00
artemp
3c159f7163 remove unused dump_xml.hpp 2015-06-03 11:18:32 +01:00
Jiri Drbalek
abf64342f9 raise missing style message to MAPNIK_LOG_ERROR 2015-06-03 10:04:33 +00:00
Blake Thompson
a138b8717d Removed angus clipper library from code and updated all visual tests to master 2015-06-02 14:14:21 -05:00
Matt Amos
dd112b33e2 Added visibility attribute to XML symbols.
Thanks to @flippmoke, symbol visibility is exactly the cause of
the previous compilation error. Until it's decided whether or not
to turn this off (at least for testing & coverage builds?), I've
added the necessary annotations to allow it to compile.
2015-06-02 18:10:59 +01:00
artemp
8fa314c418 follow up from be731f17ce - fix read_polyline (-fsanitize=address) 2015-06-02 17:50:10 +01:00
Matt Amos
b21ed59190 Add test for XML parser whitespace trimming behaviour.
This tests the at the XML parser trims whitespace from XML text
nodes. This was already the behaviour of the libxml2 parser, but
not the rapidxml parser.

Note that this makes #2878 pass for the rapidxml parser as well
as the libxml2 parser. It seems that Travis uses the rapidxml
parser only.
2015-06-02 17:50:08 +01:00
Matt Amos
5616d406b4 Trim whitespace in rapidxml parser text nodes.
The libxml parser already trims text nodes, which leads to a
difference in behaviour when reading map style XML. This patch
normalises the behaviour between the two.
2015-06-02 17:50:08 +01:00
artemp
8e1e5f19d1 Merge remote-tracking branch 'origin/master' 2015-06-02 15:39:35 +01:00
artemp
59b69846fe Merge remote-tracking branch 'origin/master' 2015-06-02 15:39:01 +01:00
artemp
90a27abccb catch and remove more spurious std::move's 2015-06-02 15:36:31 +01:00
Dane Springmeyer
f8370acc9c fix a few files that need utf_conv_win.hpp 2015-06-02 07:14:31 -07:00
artemp
82a98a6d85 catch and remove more spurious std::move's 2015-06-02 14:48:02 +01:00
artemp
df4226a825 remove spurious std::move's (clang - moving a temporary object prevents copy elision [-Wpessimizing-move]) 2015-06-02 14:26:35 +01:00
artemp
be731f17ce use vec.resize() ref #2846 (this fixes -fsanitize=address error on OS X) 2015-06-02 14:24:19 +01:00
artemp
de568ff054 polygon<T> - add default ctor 2015-06-02 14:23:22 +01:00
artemp
2eaa90033a move singleton to util/singleton.hpp
move windows UTF conversion routines to util/utf_conv_win.hpp
2015-06-02 11:10:41 +01:00
artemp
9a93b21159 remove unused member variable + make singleton always thread safe 2015-06-02 10:32:30 +01:00
artemp
8653508a9a use std::aligned_storage in CreateStatic policy 2015-06-02 10:27:22 +01:00
artemp
b3af8bd5f9 implement DCLP using c++11 (http://preshing.com/20130930/double-checked-locking-is-fixed-in-cpp11/)
ref #2838
2015-06-02 10:24:38 +01:00
artemp
c399469d95 use constexpr instead of BOOST_STATIC_CONST 2015-06-01 17:23:51 +01:00
artemp
5e9b40aebd use assignment to initialise built-in types 2015-06-01 14:03:53 +01:00
artemp
6f9a5dcd0b use STL algorithms 2015-06-01 13:58:37 +01:00
Artem Pavlenko
2e377e876a Merge pull request #2879 from zerebubuth/fix/remove-unused-source-files
Remove unused source `memory.[ch]pp`.
2015-06-01 11:22:11 +01:00
Artem Pavlenko
9106f5ca9e Merge pull request #2877 from mapycz/fix-text-vertex-placement-infinite-loop
vertex placement: fix infinite loop
2015-06-01 10:23:19 +01:00
Matt Amos
ebab4df95f Remove unused source memory.[ch]pp.
I could not find any references to this source file from any
other, and it looks like it has been largely unmodified for the
past 5 years. This suggests that it has been orphaned.
2015-05-29 19:06:13 +01:00
Jiri Drbalek
5ea57b62de vertex placement: fix infinite loop 2015-05-28 15:06:56 +00:00
Jiri Drbalek
b0759e8ade visual tests: update visual data 2015-05-27 10:25:25 +00:00
Blake Thompson
a08d4dcc72 Fix for rasterlite plugin compile 2015-05-26 18:21:57 -05:00
Blake Thompson
32652e5c4a Merge pull request #2872 from pnorman/patch-3
make test/run independent of bash location
2015-05-26 17:57:52 -05:00
Paul Norman
d683795af5 make test/run independent of bash location 2015-05-26 14:38:51 -07:00
Blake Thompson
847a9f0d45 Merge pull request #2839 from mapnik/static_strategy
Changed from numeric casts to static casts in strategies
2015-05-26 16:19:13 -05:00
Blake Thompson
ee551cd949 Removed vector tile strategy 2015-05-26 16:18:10 -05:00
Blake Thompson
3768702699 Updated unit tests 2015-05-26 16:03:25 -05:00
Blake Thompson
85e2b53490 Changed from floor to round 2015-05-26 15:52:41 -05:00
Blake Thompson
506d2f435f Added vector tile strategy 2015-05-26 15:52:41 -05:00
Blake Thompson
611eb6e7a3 Changed from numeric casts to static casts 2015-05-26 15:52:41 -05:00
Blake Thompson
94dd9eb613 Merge pull request #2865 from mapycz/improve-visual-test-6
Visual tests improvements, support for grid renderer
2015-05-26 15:44:40 -05:00
Blake Thompson
4f6d87e5b1 Merge branch 'master' of github.com:mapnik/mapnik 2015-05-26 15:15:16 -05:00
Blake Thompson
feae68f142 FreeBSD build script fix closes #2861 2015-05-26 15:15:08 -05:00
Blake Thompson
93359d00d2 Merge pull request #2870 from mapnik/suse_fix
-fPIC fix
2015-05-26 15:12:30 -05:00
Blake Thompson
3492d06f80 Always use -fPIC, refs #2861, closes #2867 2015-05-26 15:11:44 -05:00
Blake Thompson
775fcb5378 Updated clipper so that it uses stable_sort rather then sort so results are the same across operating systems 2015-05-26 14:40:16 -05:00
Blake Thompson
e027204b91 Added c++ with -fPIC for SUSE 2015-05-26 13:02:18 -05:00
Jiri Drbalek
b5d07a7e0d visual tests: update visual data 2015-05-25 21:32:47 +00:00
Jiri Drbalek
d4de1226ab visual tests: add support for grid renderer 2015-05-25 21:03:40 +00:00
Jiri Drbalek
c1461f495a visual tests: handle runner exceptions 2015-05-25 21:03:40 +00:00
Jiri Drbalek
86ce91bd09 visual tests: apply constness 2015-05-25 21:03:40 +00:00
Jiri Drbalek
344a6ec8ba grid: formatting 2015-05-25 21:03:40 +00:00
Jiri Drbalek
51064a9479 grid: use correct types 2015-05-25 21:03:40 +00:00
Dane Springmeyer
91065df5f0 Merge pull request #2852 from mapnik/svg-visual-tests
Add svg_renderer to visual tests
2015-05-25 08:26:40 -07:00
Dane Springmeyer
ea3eb674c7 default compiler to cc/c++ / remove obsolete special casing for os x 2015-05-24 13:51:45 -07:00
Dane Springmeyer
b0f93e4596 Merge pull request #2862 from pnorman/patch-2
Don't hard-code bash path in mapnik-config
2015-05-24 13:49:01 -07:00
Dane Springmeyer
4667e9470a more portable workaround for gil c++11 bug - closes #2859 2015-05-24 13:48:04 -07:00
Paul Norman
eeec7850d0 Don't hard-code bash path in mapnik-config
[[ is a bashism, so this script needs bash, but shouldn't assume a location.
2015-05-24 13:16:31 -07:00
Blake Thompson
647d20981a Merge pull request #2855 from pnorman/host_typo
Remove stray " in HOST config line
2015-05-23 21:37:37 -05:00
Blake Thompson
a4f068b6d9 Merge pull request #2856 from pnorman/libmapnik_gitignore
Expand .gitignore for so files
2015-05-23 20:45:25 -05:00
Paul Norman
7dba9cb04b Expand .gitignore for so files
The existing lines weren't catching libmapnik.so.3.0.0
2015-05-23 18:39:51 -07:00
Paul Norman
f0364c40a9 Remove stray " in HOST config line 2015-05-23 16:53:00 -07:00
Dane Springmeyer
11a90c401c Merge pull request #2854 from pnorman/configure_bash
Use sh instead of bash for configure
2015-05-23 16:34:00 -07:00
Paul Norman
9954b64b6a Use sh instead of bash for configure
Not everywhere has bash installed or installs it to /bin/bash

Given that there's no bash-specific features in configure, it makes
sense to just use sh
2015-05-23 15:59:52 -07:00
Dane Springmeyer
77907bdb1e another ifdef for renderers 2015-05-23 12:53:58 -07:00
Dane Springmeyer
c6adab02f4 Merge branch 'master' of github.com:mapnik/mapnik into svg-visual-tests 2015-05-23 12:08:58 -07:00
Dane Springmeyer
9d9a1283d6 make grind: no need to source mapnik-settings + add grinding of visual tests 2015-05-23 12:05:40 -07:00
Dane Springmeyer
ad09abee21 free memory in visual tests to keep valgrind happier 2015-05-23 12:05:10 -07:00
Dane Springmeyer
018c595dda properly ifdef cairo and svg renderers 2015-05-23 11:59:48 -07:00
Dane Springmeyer
0646e9446e use new visual test data with svg 2015-05-23 11:10:24 -07:00
Dane Springmeyer
99560b23ab add svg_renderer to visual tests 2015-05-23 11:08:51 -07:00
Dane Springmeyer
9a697a7dd6 boottrap: fix paths embedded in .la files
- these are invalid for local setups since they have travis absolute paths by default
 - this is not needed for building mapnik (since mapnik does not use libtool)
 - but it enables using the result of mapnik-config to build apps that do use libtool
 - so it unblocks building mod_tile against a local mapnik/mapnik-config built against mason
2015-05-23 10:33:18 -07:00
Dane Springmeyer
aae52dad2e u_cleanup is called from unit/run.cpp already [skip ci] 2015-05-22 13:56:59 -07:00
Dane Springmeyer
6c8a72dfb0 also skip running unit tests since they (currently at least) depend on test data - followup to #2845 2015-05-22 09:52:01 -07:00
Dane Springmeyer
0ac8389622 Merge pull request #2845 from mapycz/improve-visual-test-5
visual tests: skip visual tests when test data are not present
2015-05-22 09:48:57 -07:00
Jiri Drbalek
c349412056 visual tests: skip visual tests when test data are not present 2015-05-22 17:02:52 +00:00
artemp
9c9a7a06a0 unit test geometry - use appropriete std::string constructor ( file_io.get() doesn't guarantee to return null terminated C-string!) 2015-05-22 09:24:45 +01:00
artemp
bbbe24ac9f format - remove extra ; 2015-05-22 09:09:50 +01:00
Artem Pavlenko
8d911d8c77 Merge pull request #2843 from mapnik/fix-webp-views
Fix potential crash when encoding webp via image_view
2015-05-22 08:59:03 +01:00
Dane Springmeyer
d5e4197aa2 fixup webp test 2015-05-21 20:42:18 -07:00
Dane Springmeyer
c2e94c68a5 fix crash + add crashing testcase for #2842 2015-05-21 20:39:14 -07:00
Dane Springmeyer
145781aec9 remove uneeded includes [skip ci] 2015-05-21 11:11:04 -07:00
Dane Springmeyer
4a69a94fed always compile tests even if not installing 2015-05-21 07:41:28 -07:00
artemp
2e832586ab use mapnik geometry! 2015-05-21 15:00:20 +01:00
artemp
4debc817b5 don't pass invalid bounding_boxes to boost::geometry::rtree_index 2015-05-21 11:52:30 +01:00
artemp
3b663af863 use boost::spirit::standard instead of boost::spirit::ascii to avoid assertions failing (isascii_(ch)) in debug builds - ref #2829 2015-05-21 11:27:21 +01:00
Blake Thompson
8534d5e5c2 Updated to latest visual test version 2015-05-20 17:35:08 -05:00
Dane Springmeyer
fad048861d use latest visual test data 2015-05-20 14:23:28 -07:00
Blake Thompson
60ec991b2c Merge pull request #2837 from mapnik/correct
Geometry Correct
2015-05-20 16:21:47 -05:00
Dane Springmeyer
ec8f1620e5 correct polygons in topojson and osm plugins too 2015-05-20 14:09:52 -07:00
Dane Springmeyer
84e4d8bf22 Start calling geometry::correct everywhere possible - refs #2834 2015-05-20 14:00:30 -07:00
Dane Springmeyer
0f8b379eea update visual tests after mapnik/test-data-visual#1 2015-05-20 11:24:01 -07:00
Blake Thompson
f964046c19 Merge pull request #2830 from mapnik/clamp_multi
Rename set_alpha and multiply_alpha
2015-05-20 13:15:45 -05:00
Blake Thompson
05b4ea4955 Removed multiply_opacity 2015-05-20 13:14:44 -05:00
Blake Thompson
2031215247 Renamed set_opacity to apply_opacity, reverted it to the old logic of set_alpha. Updated tests, clamping is now used. 2015-05-20 13:08:18 -05:00
Dane Springmeyer
786dc49a6b update visual tests 2015-05-20 10:59:08 -07:00
Blake Thompson
b68d079255 Changed the name of the set_alpha and multiply_alpha to be set_opacity and multiply_opacity 2015-05-20 12:39:01 -05:00
Blake Thompson
25c6576fdd Updated the way that multiply_alpha works, such that it is not clamped at the multiplier, but rather at the result of the multiplier and alpha. 2015-05-20 12:39:00 -05:00
Dane Springmeyer
5d7c43457e Merge pull request #2825 from mapycz/improve-interior
improve interior placement
2015-05-20 10:37:39 -07:00
Dane Springmeyer
6537183f86 Merge pull request #2827 from mapycz/visual-tests-parallel
visual tests: set number of parallel threads by JOBS environment variable
2015-05-20 10:17:00 -07:00
Dane Springmeyer
6a7d785557 Merge pull request #2826 from mapycz/improve-visual-test-3
improve visual tests
2015-05-20 10:16:52 -07:00
Dane Springmeyer
adf85264c1 Merge pull request #2832 from afflerbach/unused-nodes-error-message
Message about unused text nodes now also contains line numbers.
2015-05-20 10:08:21 -07:00
Jörg Afflerbach
b385c71789 Message about unused text nodes now also contains line numbers.
Helped me a lot when I needed to find a superfluous `-->` in a large `map.xml`.
2015-05-20 18:55:29 +02:00
artemp
a8a90b7656 use std::lock_guard instead of unique_lock (better fit for the job) 2015-05-20 16:12:22 +01:00
artemp
433741877d fix - use std::size_t to avoid narrowing 2015-05-20 11:31:41 +01:00
artemp
6c14ff9b7a fix char type 2015-05-20 11:31:24 +01:00
Dane Springmeyer
093d857ddc Add support for 64 bit field types in GDAL 2.0 - closes #2685 2015-05-19 22:39:39 -07:00
Jiri Drbalek
b5c2b98412 visual tests: set number of parallel threads by JOBS environment variable 2015-05-19 18:05:38 +00:00
Jiri Drbalek
5ad9b4531c visual tests: allow style paths in command line arguments 2015-05-19 17:30:58 +00:00
Jiri Drbalek
8519bde143 visual tests: drop config.cpp 2015-05-19 17:30:58 +00:00
Jiri Drbalek
3db7b0ca9b visual tests: use boost::filesystem::path for paths 2015-05-19 17:30:58 +00:00
Blake Thompson
c37720066d Merge pull request #2824 from zerebubuth/test/port-python-tests
Port some python tests
2015-05-19 08:33:43 -05:00
artemp
3ce65e8b65 rename view_to_string to view_to_stream and tempalate on stream type 2015-05-19 11:58:20 +01:00
artemp
05b5d16e87 more std::size_t fixes (consistent usage) 2015-05-19 11:43:39 +01:00
artemp
64979f24b7 use enumeration type ! 2015-05-19 11:30:51 +01:00
artemp
3b5a8f354f use std::size_t 2015-05-19 11:17:01 +01:00
Jiri Drbalek
efd554a04e interior placement: always compute center of the longest segment 2015-05-19 08:37:57 +00:00
Matt Amos
0db207d076 Bump submodule hash for new test data file. 2015-05-19 00:33:46 +01:00
Matt Amos
782a949543 Use approx when testing floating point approximate equality. 2015-05-18 22:53:11 +01:00
Matt Amos
369887428e Use REQUIRE_THROWS instead of manually checking with try/catch. 2015-05-18 22:40:34 +01:00
Matt Amos
26f233c505 Test failure on thrown exception is already handled by the test framework. 2015-05-18 22:37:13 +01:00
Matt Amos
2bb50371ca Need optional I/O header on clang++, apparently. 2015-05-18 22:34:34 +01:00
Matt Amos
a16b6156ed Ported CSV tests from Python. 2015-05-18 22:14:37 +01:00
Matt Amos
818ede5b93 Ported box2d_test.py 2015-05-18 15:10:55 +01:00
Matt Amos
8e62007e4f Added port of agg_rasterizer_integer_overflow_test.py 2015-05-18 14:46:01 +01:00
Matt Amos
468bc5257b Re-order libs to satify correct link order for ICU symbols from mapnik-json library. 2015-05-18 14:45:30 +01:00
artemp
bf6b7d79bd use if/else if ... 2015-05-18 11:21:56 +01:00
Dane Springmeyer
b2691f5906 Merge pull request #2819 from mapycz/fix-boost-scoped-enum
fix compilation error due to boost scoped enum with boost < 1.51
2015-05-18 00:07:28 -07:00
Dane Springmeyer
4034c7f1f0 Merge pull request #2820 from mapycz/fix-deprecation-warning
fix deprecation warning
2015-05-18 00:07:01 -07:00
Jiri Drbalek
5ab59c860d fix deprecation warning 2015-05-18 08:01:27 +00:00
Jiri Drbalek
848044e8c4 fix compilation error due to boost scoped enum with boost < 1.51 2015-05-17 19:44:48 +00:00
Dane Springmeyer
476e65e921 Merge pull request #2816 from zerebubuth/fix/boost-scoped-enum-c++11-abi
Fix compilation error due to Boost scoped enum & C++11 mode.
2015-05-16 17:20:57 -07:00
Matt Amos
a5cf088568 Fix compilation error due to Boost scoped enum & C++11 mode.
Boost versions before 1.57 are broken when the system package and Mapnik are compiled against different standards. On Ubuntu 14.04 using boost 1.54, it breaks scoped enums. It's a bit of a hack to just turn it off like this, but seems the only available work-around. See https://svn.boost.org/trac/boost/ticket/6779 for more details.
2015-05-16 21:41:40 +01:00
Blake Thompson
4d7c31abba Updated test data again 2015-05-15 17:09:42 -05:00
Dane Springmeyer
a3ac9dbca2 remove unused boost/math include and typedefs 2015-05-15 14:43:42 -07:00
Dane Springmeyer
2a1005c040 avoid warnings in geometry_equal test 2015-05-15 14:43:42 -07:00
Dane Springmeyer
7a0cf4d750 fix unused typedef warning in image_util 2015-05-15 14:43:42 -07:00
Dane Springmeyer
f1e6be4572 silence boost warning in geojson_datasource 2015-05-15 14:43:42 -07:00
Blake Thompson
cf3ff82f1a Also allow the possibility for negative values being passed to image option values 2015-05-15 15:51:53 -05:00
Blake Thompson
4fce3a7451 Updates to fix failing image options 2015-05-15 15:25:52 -05:00
Blake Thompson
219ad1f2cc Updated min zoom and max zoom to use maximum scale denom and minimum scale denominator #1447 2015-05-15 14:34:12 -05:00
Blake Thompson
776f9aee9a Updates to test/data 2015-05-15 13:54:24 -05:00
Dane Springmeyer
8aec508e10 put nik2img on PATH [skip ci] 2015-05-15 11:49:01 -07:00
Dane Springmeyer
1aa02e2081 tweak doc on updating visual tests [skip ci] 2015-05-15 11:33:38 -07:00
Dane Springmeyer
c6c0c5907f update visual tests and data 2015-05-15 11:33:20 -07:00
Dane Springmeyer
77cf3697ae move sourcing of mapnik-settings.env to localize.sh 2015-05-15 11:28:55 -07:00
Blake Thompson
3e24c5a417 Doh, fixing stupid C++ that I wrote after properly writing a unit test 2015-05-15 13:21:51 -05:00
Blake Thompson
90de0d65cb Corrected errors in palette unit test and corrected logic in bounding box projection transform 2015-05-15 12:15:27 -05:00
artemp
2565dc0975 remove unused boost::tokenizer headers from mapnik/utils 2015-05-15 16:55:30 +01:00
artemp
e892f752e9 update remaining image writers to use image_options 2015-05-15 16:55:30 +01:00
Blake Thompson
6960c85cd2 Removed pull requests from latest publishing closes #2794 2015-05-15 10:48:05 -05:00
Blake Thompson
cf68412ef1 Merge pull request #2814 from mapnik/feature/add_tests
Palette unit tests
2015-05-15 10:39:00 -05:00
Blake Thompson
22d70decd4 Palette unit tests 2015-05-15 10:37:52 -05:00
artemp
08986ca8a1 truncate white space character (U-0020) at wrapping point - ref #2670 2015-05-15 15:55:51 +01:00
artemp
ccc4a63cb9 call preceding with index one pass current to handle case when i == break_point ( breakitr->preceding( i + 1))
ref #2701
2015-05-15 14:41:18 +01:00
Dane Springmeyer
fd23aacd7b shuffle includes based on iwyu findings 2015-05-14 23:38:36 -07:00
Dane Springmeyer
7a2aae15d3 Merge pull request #2765 from mapycz/fix-pg-datasource-srid
postgis: prefix table name with schema
2015-05-14 23:06:51 -07:00
Dane Springmeyer
c3d2f813f4 Merge pull request #2804 from mapycz/rm-log
remove useless log
2015-05-14 23:06:11 -07:00
Dane Springmeyer
3ae6e49a2e Merge pull request #2812 from mapnik/feature/add_tests
Adding tests and cleanup
2015-05-14 23:05:48 -07:00
Dane Springmeyer
956de13d4e fix issues reported by scan-build - closes #2813 2015-05-14 18:00:25 -07:00
Dane Springmeyer
53be585240 iwyu in view_strategy.hpp 2015-05-14 17:59:40 -07:00
artemp
6ed878955a cleanup 2015-05-14 15:39:11 +01:00
artemp
75a77882e8 image_options - add key0=value0:key1:key2=value2 parser
remove tokenizer usage from image_util_png
2015-05-14 15:37:21 +01:00
Jiri Drbalek
a2d7ba4665 update visual tests 2015-05-14 16:18:15 +00:00
Jiri Drbalek
7a0f38c8f2 update visual tests 2015-05-14 15:50:26 +00:00
Artem Pavlenko
86a603ac8d Merge pull request #2810 from mapycz/improve-visual-test-2
handle styles with missing reference images
2015-05-14 14:11:09 +01:00
Artem Pavlenko
2a8086fbcc Merge pull request #2788 from mapycz/fix-labeling-on-polygons
fix labeling on polygons
2015-05-14 14:10:02 +01:00
Jiri Drbalek
78ce66aee0 remove useless log 2015-05-14 12:25:53 +00:00
artemp
881dba4fc9 fix camel case 2015-05-14 12:53:21 +01:00
artemp
ee414c4796 partially revive numeric_cast<> 2015-05-14 12:40:00 +01:00
Jiri Drbalek
87d4990f9a handle styles with missing reference images 2015-05-14 11:36:08 +00:00
Jiri Drbalek
a8e3174817 text on polygon: fix missing closing segment 2015-05-14 11:26:01 +00:00
Jiri Drbalek
527cbe7897 fix labeling on polygons 2015-05-14 11:26:01 +00:00
artemp
5126491705 fix unit test 2015-05-14 12:08:14 +01:00
artemp
5b865d1f2e more constness 2015-05-14 12:07:34 +01:00
artemp
3b3ca55042 remove numeric_cast + more constness correctness 2015-05-14 11:17:53 +01:00
artemp
e20ae67110 apply constness 2015-05-14 10:47:06 +01:00
artemp
78c56968c1 add clamp(v, min, max) function + clamp opacity in ctor 2015-05-14 10:43:25 +01:00
Blake Thompson
d1616737f2 Removed the mapnik type of 'byte' because it seemed sparsely used and simply providing data type should be easier as it is never going to change. Also added some tests around mapnik palette 2015-05-13 19:32:54 -05:00
Blake Thompson
f3abe7fc25 Added test coverage to image buffer 2015-05-13 16:50:31 -05:00
Blake Thompson
86b65146a7 Added more tests around image_any 2015-05-13 16:50:31 -05:00
Blake Thompson
deba4c114a Added test coverage for image_any 2015-05-13 16:50:31 -05:00
Blake Thompson
cebbca16d4 Improved test coverage for image and image view 2015-05-13 16:50:31 -05:00
Blake Thompson
f2b26f5707 Initial commit for image unit test 2015-05-13 16:50:31 -05:00
Blake Thompson
c3dfda4977 Merge pull request #2808 from mapnik/bugfix/strategy_rounding
Bugfix/strategy rounding
2015-05-13 13:45:26 -05:00
Blake Thompson
d904f06b10 Merge pull request #2805 from mapycz/improve-visual-test
visual tests: use boost::filesystem::unique_path() instead of boost::uuids::uuid
2015-05-13 13:45:02 -05:00
Blake Thompson
f9acd07aaf Merge pull request #2807 from mapnik/drop-big-endian
Drop obsolete and unsupported big endian support
2015-05-13 13:43:09 -05:00
artemp
3e16c4b8f2 remove unused vars 2015-05-13 15:15:52 +01:00
artemp
ba117c6384 update SVG path generator to avoid using boost::phoenix::if_() which doesn't work with boost 1.58 2015-05-13 11:33:09 +01:00
artemp
270679bc20 style 2015-05-13 11:32:34 +01:00
Blake Thompson
166e606b71 Better tests to fully cover all cases 2015-05-12 15:01:17 -05:00
Blake Thompson
39428585f0 Added the rounding_cast utility, and added a scale_rounding_strategy to support this new casting type. Added tests for it 2015-05-12 14:36:29 -05:00
Blake Thompson
1dddfd17ef Removed try catch around set_alpha, and just checked bounds. Added unit tests for image_view 2015-05-12 12:24:14 -05:00
Dane Springmeyer
613766b104 drop obsolete and unsupported big endian support - refs #2806 2015-05-12 10:19:37 -07:00
Jiri Drbalek
7ca96eb824 visual tests: use boost::filesystem::unique_path() instead of boost::uuids::uuid 2015-05-12 12:52:02 +00:00
artemp
73dbec32fa Merge branch 'fix-topojson' 2015-05-12 10:19:47 +02:00
artemp
a9ae6c111c Merge branch 'master' into fix-topojson 2015-05-12 09:42:29 +02:00
Dane Springmeyer
d0abe672fc support older boost in visual tests - closes #2801 2015-05-11 21:23:39 -07:00
Dane Springmeyer
2d2f63f27f visual tests: show errors when hit both in console and in html report 2015-05-11 19:49:38 -07:00
Dane Springmeyer
b9d39a2883 avoid crash on uninitialized pointer [skip ci] 2015-05-11 19:22:44 -07:00
Dane Springmeyer
175e9f1571 fix spelling [skip ci] 2015-05-11 19:07:33 -07:00
Dane Springmeyer
a79b33236a fix spelling [skip ci] 2015-05-11 19:04:23 -07:00
Dane Springmeyer
706be7397f Merge branch 'master' of github.com:mapnik/mapnik 2015-05-11 17:49:42 -07:00
Dane Springmeyer
d57f1cbb71 display deprecated value in enumeration warning [skip ci] 2015-05-11 17:49:35 -07:00
Dane Springmeyer
41ad16f4d7 hello world plugin is now standalone at https://github.com/mapnik/hello-world-input-plugin - refs #2790 2015-05-11 17:07:33 -07:00
Dane Springmeyer
493e1d8362 fix #2743 [skip ci] 2015-05-11 16:59:00 -07:00
Dane Springmeyer
c2e2c96dde #2789 is landed, update the contributing docs around adding more visual tests [skip ci] 2015-05-11 16:52:08 -07:00
Dane Springmeyer
834ae832be tuple adapter is needed in the end 2015-05-11 16:52:08 -07:00
Dane Springmeyer
14c73304de iwyu 2015-05-11 16:52:08 -07:00
Dane Springmeyer
46246fdbf6 ensure topojson plugin id starts at 1 for consistency #753 2015-05-11 16:52:07 -07:00
Blake Thompson
e44cdef805 Fix get_pixel with image_view 2015-05-11 18:19:24 -05:00
Blake Thompson
c7ddec8406 Added ignore for visual test runner 2015-05-11 16:37:27 -05:00
Blake Thompson
ba0cc39046 Updated tests so that they use REQUIRE_THROWS 2015-05-11 15:51:50 -05:00
Jiri Drbalek
5220afb9f2 Merge pull request #2796 from mapycz/cpp-visual-test-runner
new visual test runner
2015-05-11 22:14:32 +02:00
Jiri Drbalek
220ecb1215 update visual tests 2015-05-11 20:13:21 +00:00
Blake Thompson
74eea94a4e Merge branch 'master' of github.com:mapnik/mapnik 2015-05-11 13:14:20 -05:00
Blake Thompson
f54164da75 Changed the way that set alpha worked, renaming old method to multiply_alpha, added new set_alpha, that simply sets the alpha. Added protection for overflows and underflows. Added unit tests to cover all code 2015-05-11 13:12:13 -05:00
artemp
614d2688de make non-state mutating operator()s const 2015-05-11 16:09:01 +02:00
Jiri Drbalek
688f76a260 new visual test runner 2015-05-10 20:14:04 +00:00
Blake Thompson
1ca5ae4446 Forgot to add unit test 2015-05-10 14:28:10 -05:00
Blake Thompson
bbe88a9352 Added fix for null image views and added test coverage for is_solid 2015-05-10 14:27:44 -05:00
Dane Springmeyer
23872dcd26 ensure topojson parser is robust to invalid arc index 2015-05-09 07:04:03 -07:00
Dane Springmeyer
61c2cd5ed5 tuple adapter is needed in the end 2015-05-09 06:59:14 -07:00
Dane Springmeyer
7ceba047c0 iwyu 2015-05-09 06:54:38 -07:00
Dane Springmeyer
f669a60a0f ensure topojson plugin id starts at 1 for consistency #753 2015-05-09 06:07:16 -07:00
Blake Thompson
fbfd6664bc Added unit test for premultiply 2015-05-08 20:19:50 -05:00
Dane Springmeyer
5162027034 avoid closing empty path 2015-05-07 16:12:38 -07:00
Dane Springmeyer
340ed85e4e fix windows compile 2015-05-06 07:10:35 -07:00
Dane Springmeyer
4c76edaef7 algorithm is a somewhat large stl header, move it to cpp 2015-05-06 06:37:06 -07:00
Dane Springmeyer
b11eeef4b6 remove std::clog print 2015-05-06 06:35:37 -07:00
Dane Springmeyer
0bfb7bae7a Add deprecation warning for enum's using _ 2015-05-06 06:35:17 -07:00
Dane Springmeyer
b10a6f7a92 remove unused coord_array header 2015-05-06 06:34:54 -07:00
Dane Springmeyer
126c777c8d shuffle around boost/geometry usage in headers to reduce compile time 2015-05-05 22:04:49 -07:00
Dane Springmeyer
a43bec6d0b no need for geometry::correct in csv plugin 2015-05-05 20:47:29 -07:00
Dane Springmeyer
f2863a7d2a explicitly use mapnik::tags to avoid boost::geometry::tags conflict 2015-05-05 20:46:19 -07:00
artemp
47c272b874 c++ constness, formatting 2015-05-05 14:12:29 +02:00
Blake Thompson
0eecbd3e0f Modified marker cache to store shared_ptrs in order to prevent threading issues and to close #2713 2015-05-04 14:11:41 -05:00
Blake Thompson
291bd1c9db Fix directories 2015-05-04 11:35:09 -05:00
Blake Thompson
9439279f53 hopefully solved linux compile issues 2015-05-04 09:37:45 -05:00
Blake Thompson
c99b7fcb4c Updated mason_latest to print to perhaps figure out what is causing issues 2015-05-04 09:30:40 -05:00
artemp
6d4a4139b3 is_switchable to control switchabilty of vertex_converters -- revive stroke_tag
fix vertex_converter in cairo/agg
2015-05-04 14:49:17 +02:00
artemp
470da20d53 fix remanining cAmEl case names 2015-05-04 12:49:11 +02:00
artemp
377c5e56b8 image_view - add move ctro, delete assignment operator, use std::size 2015-05-04 12:11:24 +02:00
artemp
ba0c18a228 c++ style 2015-05-04 11:22:06 +02:00
artemp
a583e9bbb3 Merge remote-tracking branch 'refs/remotes/origin/master'
is necessary,
2015-05-04 11:00:19 +02:00
artemp
081cf02dcf fix method signitures to use std::size_t
rename getSize() -> size(), getRowSize() -> row_size
2015-05-04 10:57:57 +02:00
Dane Springmeyer
0c6991d668 gotta make the python bindings [skip ci] 2015-05-04 01:22:09 -07:00
artemp
663a7db8fd use std::size_t 2015-05-04 10:14:01 +02:00
Dane Springmeyer
49647d0236 speed up bootstrap with parallel fetch [skip ci] 2015-05-04 00:37:34 -07:00
Dane Springmeyer
9434fcae43 no benefit to caching mason_packages 2015-05-04 00:30:36 -07:00
Dane Springmeyer
a5e258344e make target to setup python bindings + run visual tests 2015-05-04 00:30:25 -07:00
Blake Thompson
1fd964d175 Updated the mason builds so that plugins will find the libmapnik.dylib in certain situations 2015-05-01 14:01:29 -05:00
Blake Thompson
b48bf5f48e Fix for benchmark 2015-04-30 17:29:35 -05:00
Dane Springmeyer
3baf6f3450 clipping test: expect 30 verts [skip ci] 2015-04-30 15:07:02 -07:00
Dane Springmeyer
a9bda0a5df remove agg_conv clipper - we are only interested in PolyTree 2015-04-30 14:27:53 -07:00
Dane Springmeyer
7843cb5bc3 Add visual test data 2015-04-30 14:27:19 -07:00
Dane Springmeyer
655d27775b update test data 2015-04-30 14:26:49 -07:00
Blake Thompson
baa7eae051 Small update to mason_latest 2015-04-30 14:25:05 -05:00
Dane Springmeyer
147602244b disable is_switchable for stroking and offsets - refs #2791 2015-04-30 11:42:36 -07:00
Blake Thompson
067946bb58 Updated mason_latest again 2015-04-30 12:39:30 -05:00
Dane Springmeyer
e6536da644 higher git depth [skip ci] 2015-04-30 08:42:31 -07:00
Dane Springmeyer
d15c274847 stick with clang-3.5 for due to odd crash with 3.6 - refs #2785 2015-04-30 08:24:59 -07:00
Dane Springmeyer
ff3289abe9 add details about how tests+submodules work - refs #2789 [skip ci] 2015-04-30 08:11:53 -07:00
Dane Springmeyer
404f942e4b update test-data submodule 2015-04-30 08:02:47 -07:00
Dane Springmeyer
19e6bff9cd use https for submodule so that travis (and others) can clone 2015-04-30 07:53:55 -07:00
Dane Springmeyer
207709e45f add note to bootstrap about mapnik-settings.env [skip ci] 2015-04-30 07:42:32 -07:00
Dane Springmeyer
5a594dd0c1 move C++ test running to test/run + make output prettier 2015-04-30 07:41:16 -07:00
Dane Springmeyer
44d4068571 c++ tests: only source mapnik-settings.env when it exists 2015-04-30 07:31:45 -07:00
Dane Springmeyer
7a1c5981fb be explict about depending on submodules 2015-04-30 07:25:24 -07:00
Dane Springmeyer
3af06a11c1 test-data now comes in via submodule - refs #2789 2015-04-30 07:25:01 -07:00
Dane Springmeyer
77d9c886a2 fix paths for font_registration_test.cpp - refs #2787 2015-04-30 07:12:30 -07:00
Dane Springmeyer
ad2e8afb55 fix failing C++ tests that depend on test data - closes #2787 2015-04-30 06:57:47 -07:00
Artem Pavlenko
a608269946 Merge pull request #2786 from mapycz/fix-labeling
fix labeling
2015-04-30 10:17:24 +02:00
Jiri Drbalek
78d7ea007a fix labeling 2015-04-30 07:20:10 +00:00
Dane Springmeyer
b730d437f7 pj_clear_initcache is only available in proj >= 4.8 2015-04-29 18:00:47 -07:00
Dane Springmeyer
f861df2130 fix compile on windows (M_PI) [skip ci] 2015-04-29 15:58:13 -07:00
Dane Springmeyer
45e65e85f4 bootstrap: upgrade freetype, harfbuzz, and gdal 2015-04-29 15:41:19 -07:00
Dane Springmeyer
4ade976ee1 fix SVG rendering 2015-04-29 15:41:18 -07:00
Dane Springmeyer
919bf27dc3 close polygon paths 2015-04-29 15:41:18 -07:00
Blake Thompson
5808b7f185 Fix to mason_latest 2015-04-29 12:13:52 -05:00
Dane Springmeyer
df0f992182 keep installing boost_python to ensure it is easily available for python-mapnik [skip ci] 2015-04-29 08:59:16 -07:00
Dane Springmeyer
2003134be0 Merge pull request #2784 from mapycz/fix-benchmark
fix benchmark
2015-04-29 06:58:56 -07:00
Blake Thompson
14a56e2094 Merge pull request #2780 from mapnik/issue_2779
make mapnik-config able to report relative paths to share/ data
2015-04-29 08:54:24 -05:00
Blake Thompson
54b05800d9 Another slight update so that latest only builds from master 2015-04-29 08:51:22 -05:00
Blake Thompson
e12d53ba79 Added space 2015-04-29 08:29:45 -05:00
Jiri Drbalek
8a2b5c9e82 benchmark: update reference images 2015-04-29 13:01:14 +00:00
Jiri Drbalek
27c116d893 benchmark: fix bad memory access 2015-04-29 12:53:46 +00:00
Jiri Drbalek
7fbb620f70 benchmark: fix image loading 2015-04-29 12:48:35 +00:00
Artem Pavlenko
051944a22f Merge pull request #2783 from mapycz/fix-infinite-loop
fix infinite loop
2015-04-29 11:41:52 +02:00
artemp
fd1bcbbeba remove unused includes 2015-04-29 11:35:44 +02:00
Jiri Drbalek
2a79d1500b fix infinite loop 2015-04-29 08:58:19 +00:00
Blake Thompson
9d34b71cc7 UGH A BRACKET I HAVENT SEEN 2015-04-28 22:14:35 -05:00
Blake Thompson
a31d5ec19d Another commit to perhaps fix this travis issue... ugh. 2015-04-28 22:03:41 -05:00
Blake Thompson
7cb1d12079 A fix for travis issues? 2015-04-28 18:28:12 -05:00
Blake Thompson
5014f8beee A few more updates to the way travis and mason work 2015-04-28 17:30:18 -05:00
Blake Thompson
9553f916af Another small change 2015-04-28 13:04:34 -05:00
Blake Thompson
563316befb A small update to perhaps make all this stuff work 2015-04-28 12:21:55 -05:00
Blake Thompson
783e164115 Merge branch 'test_mason' into issue_2779 2015-04-28 12:17:23 -05:00
Blake Thompson
3acaf66121 Another modification to mason latest 2015-04-28 12:10:07 -05:00
Blake Thompson
163c36c82b Moving some things around in script 2015-04-28 12:10:07 -05:00
Blake Thompson
9e4916e621 Small fix to script. 2015-04-28 12:10:07 -05:00
Blake Thompson
cc85b03e9a Made execute-able 2015-04-28 12:10:07 -05:00
Blake Thompson
42e2b462a4 Attempt for auto mason publish 2015-04-28 12:10:07 -05:00
artemp
c64dc3672a vertex_converter - refactor to pass Processor to apply function (while it allows to instantiate vertex_converter object only using converter tags, it doesn't reduce object code)
make offset_converter 'non-switchable' relying on be able to shortcut in `vertex(*x, *y)` when offset is 0.0 -> results in reduced binary size
2015-04-28 14:18:33 +02:00
Dane Springmeyer
2de1805aa3 make mapnik-config able to report relative paths to share/ data 2015-04-27 16:02:41 -07:00
Dane Springmeyer
3e54b06935 keep setting CPLUS_INCLUDE_PATH/LIBRARY_PATH - accidentally dropped in f08dcf9a83 [skip ci] 2015-04-27 14:14:10 -07:00
Dane Springmeyer
a005248688 set correct PYTHONPATH for os x local --user pip install 2015-04-27 06:36:51 -07:00
artemp
666ce82ae4 add is_switchable to control switchabilty of vertex_converters 2015-04-27 14:00:52 +02:00
Dane Springmeyer
b83fc8c2cc back to OS X for coverage - refs #2778 2015-04-26 19:37:36 -07:00
Dane Springmeyer
e60dfbba38 remove unused close_poly_tag 2015-04-26 19:34:58 -07:00
Dane Springmeyer
f9439a590f define BOOST_MPL_LIMIT_VECTOR_SIZE before boost/geometry 2015-04-26 19:34:42 -07:00
Dane Springmeyer
6722b71e55 fix PYTHONPATH for linux 2015-04-27 01:03:47 +02:00
Dane Springmeyer
bd39189c6e heaviest compile first 2015-04-27 01:03:35 +02:00
Dane Springmeyer
cfeac9ab2f add back run_tests script 2015-04-27 00:45:12 +02:00
Dane Springmeyer
bf92a90648 silence boost geometry warnings [skip ci] 2015-04-27 00:32:09 +02:00
Dane Springmeyer
a3db323205 travis: try ccache, clang-3.6, coverage on linux 2015-04-27 00:30:25 +02:00
Dane Springmeyer
6048f43dfb avoid cleaning mason_packages 2015-04-27 00:28:26 +02:00
Dane Springmeyer
66ad95cbbe remove extra unit test print [skip ci] 2015-04-26 23:32:37 +02:00
Dane Springmeyer
d9ea4e9b6e ensure clean valgrind run 2015-04-26 23:26:11 +02:00
Dane Springmeyer
930eb184d8 pedantic proj api usage 2015-04-26 23:24:19 +02:00
Dane Springmeyer
b211b7357d test on postgres 9.4 + run linux first 2015-04-26 22:11:04 +02:00
Dane Springmeyer
6047575991 fix path to cpp-coveralls 2015-04-26 22:07:17 +02:00
Dane Springmeyer
97347bb9e5 cache mason_packages + make cpp-coverage install cross platform 2015-04-26 22:06:20 +02:00
Dane Springmeyer
45e244b7ef better sudoless clang-3.5 install 2015-04-26 20:35:47 +02:00
Dane Springmeyer
ea6f217ad9 use mapnik-settings.env 2015-04-26 20:32:20 +02:00
Dane Springmeyer
4841e04b80 remove old test data, now using https://github.com/mapnik/test-data 2015-04-26 20:24:22 +02:00
Dane Springmeyer
d83afb3c75 pull data from test-data repo 2015-04-26 20:23:02 +02:00
Dane Springmeyer
8a64d6aeba drop useless test (should be covered by visual tests) 2015-04-26 01:16:25 +02:00
Dane Springmeyer
6227ca8588 upgrade catch 2015-04-26 01:15:31 +02:00
Dane Springmeyer
c4f497be0a drop old cpp_tests folder [skip ci] 2015-04-25 22:13:26 +02:00
Dane Springmeyer
edf7616b19 reorganize c++ tests 2015-04-25 22:08:12 +02:00
Dane Springmeyer
c03998d4c9 remove obsolete c++ test files 2015-04-25 10:43:14 +02:00
Dane Springmeyer
8489bb12f8 Add operator!= to datasource (needed for copy_move_test.cpp) 2015-04-25 10:34:25 +02:00
Dane Springmeyer
2ae3dfa8b3 fix compile of copy_move_test.cpp 2015-04-25 10:33:35 +02:00
Dane Springmeyer
0685c43802 followup after #2773: remove python from install doc,static datasources, utils 2015-04-25 08:21:59 +02:00
Dane Springmeyer
a8b4793642 Merge pull request #2776 from mapnik/split-python
Split python
2015-04-25 06:01:36 +02:00
Dane Springmeyer
ac4e4a2334 Merge branch 'master' of github.com:mapnik/mapnik into split-python 2015-04-25 00:32:38 +02:00
artemp
d89033a0ca reduce binary size providing overloads for forward method
```
template <typename Geometry, typename Processor>
static void forward(Dispatcher & disp, Geometry & geom, Processor & proc,
                        typename std::enable_if<!std::is_same
                        <typename detail::converter_traits<Geometry,Current>::conv_type,
                        transform_path_adapter<view_transform, Geometry> >::value >::type* = 0)
```
2015-04-24 18:13:18 +02:00
artemp
69afcdf9bf fix hardcoded detector type 2015-04-24 15:15:01 +02:00
artemp
f9bd031243 pass and store feature by const ref 2015-04-24 15:12:48 +02:00
Dane Springmeyer
d40fb04284 port old c++ tests to catch.hpp 2015-04-24 14:40:22 +02:00
Dane Springmeyer
0170ba1ae3 port all old c++ tests to new c++ tests 2015-04-24 12:39:27 +02:00
artemp
68510afdc1 remove const 2015-04-24 12:35:21 +02:00
Dane Springmeyer
23b80c6757 Merge pull request #2772 from mapycz/fix-gcc-compile
fix compile with gcc
2015-04-24 09:26:10 +02:00
Dane Springmeyer
8bb605e2e9 move python bindings out of core #2773 - now at https://github.com/mapnik/python-mapnik 2015-04-24 09:04:00 +02:00
Dane Springmeyer
686731cade remove python plugin from core
- now at https://github.com/mapnik/non-core-plugins
 - refs #2773, #1875, #1337,
2015-04-24 08:51:56 +02:00
Jiri Drbalek
8d78e8bfcb fix compile with gcc 2015-04-23 14:49:06 +00:00
Dane Springmeyer
d310806485 fix visual test 2015-04-23 09:48:48 +02:00
Dane Springmeyer
01ee96e089 drop concurrent jobs 2015-04-23 09:31:55 +02:00
Dane Springmeyer
d591600c04 include boost/version.hpp where needed - refs #2770 2015-04-23 09:31:46 +02:00
Dane Springmeyer
f9165e2ee1 Merge pull request #2770 from zerebubuth/disable_is_valid_on_older_boost
Disable missing geometry functions in older Boost versions.
2015-04-23 09:03:54 +02:00
Matt Amos
79f29f3894 Disable missing geometry functions in older Boost versions.
The functions `is_valid` and `is_simple` and their associated
headers are only present in versions of Boost >= 1.56, and will
cause compilation errors with previous versions of Boost. This
masks them with preprocessor macros to allow the compilation to
complete, at the cost of some (currently not widely used)
functionality.
2015-04-23 03:52:46 +01:00
Blake Thompson
1c413c882c Merge branch 'master' of github.com:mapnik/mapnik 2015-04-22 12:14:09 -05:00
Blake Thompson
1639653299 Proof of ownership by flippmoke for PYPI support. 2015-04-22 12:13:58 -05:00
Dane Springmeyer
25eee4fe74 update visual test images 2015-04-22 17:43:52 +02:00
Dane Springmeyer
5b86e92199 Add is_valid test 2015-04-22 15:44:21 +02:00
Dane Springmeyer
2c35a0f8a1 Merge pull request #2739 from mapnik/mapnik-geometry
New geometry storage and API
2015-04-22 15:35:07 +02:00
artemp
3366e804c9 hit_test - cache x,y for MOVE_TO and use on CLOSE_PATH command 2015-04-22 15:30:59 +02:00
artemp
86cc903835 point_symbolizer - revive interior point placement 2015-04-22 15:01:52 +02:00
Dane Springmeyer
124362d2d4 stop correcting geometries at decode time
- the original motivation for this was to avoid needing to
   mutate a copy later on (for operations needing correct winding order)
 - but mutating a copy is looking feasible, so removing this now.
2015-04-22 14:27:43 +02:00
Dane Springmeyer
ef3364695b avoid potential access of uninitialized text_placements_ptr - closes #2766 2015-04-22 14:27:07 +02:00
Jiri Drbalek
eb3fe1f718 add visual test - polygon interior 3 2015-04-22 14:27:07 +02:00
Jiri Drbalek
2ec62bd1c1 add visual test - polygon interior 2 2015-04-22 14:27:07 +02:00
Jiri Drbalek
34b2388b1d add visual test - polygon interior 1 2015-04-22 14:27:07 +02:00
artemp
1dd202a282 Merge branch 'mapnik-geometry' 2015-04-22 12:33:00 +02:00
artemp
7de7139242 Merge branch 'master' into mapnik-geometry 2015-04-22 12:32:29 +02:00
Dane Springmeyer
2e2bbfad7d avoid potential access of uninitialized text_placements_ptr - closes #2766 2015-04-22 12:30:38 +02:00
artemp
0f998c28b2 Merge branch 'mapnik-geometry-template' into mapnik-geometry 2015-04-22 12:28:21 +02:00
artemp
06d77865db update to templated geometry 2015-04-22 12:23:51 +02:00
artemp
1f83eaa6ac geometry_adapters - make generic 2015-04-22 12:22:52 +02:00
artemp
2768aa6a4a Merge branch 'mapnik-geometry' into mapnik-geometry-template 2015-04-22 12:13:29 +02:00
Dane Springmeyer
2679559f15 Merge pull request #2761 from mapnik/debug-rings
Add DebugSymbolizer mode=rings
2015-04-22 01:29:44 +02:00
Blake Thompson
1bb8136390 Fix for bench 2015-04-21 10:29:22 -05:00
Blake Thompson
d7f7bc18c1 A large set of changes that help allow WKT for int64_t type geometeries, modified some strategies, made it so that the clipper would use mapnik geometries. 2015-04-21 09:34:52 -05:00
Jiri Drbalek
d0f19c421a postgis: remove unnecessary else path 2015-04-20 12:43:05 +00:00
Jiri Drbalek
edcc0565fb postgis: prefix table name with schema 2015-04-20 12:01:43 +00:00
Blake Thompson
edda6cb13f Updated several sections of code, noteably added strategy_group_first as another way to perform transforms with groups, added tests similar to uses of vector tiles in geometry_strategy_test.cpp 2015-04-17 15:49:23 -05:00
Blake Thompson
8ad5648c10 Working version of strategy grouping 2015-04-17 11:15:45 -05:00
Dane Springmeyer
a621022536 Merge pull request #2763 from mapycz/test-polygon-interior
Test polygon interior
2015-04-17 15:37:18 +02:00
Jiri Drbalek
ac4c090feb add visual test - polygon interior 3 2015-04-17 12:40:36 +00:00
Jiri Drbalek
2bddb31419 add visual test - polygon interior 2 2015-04-17 12:40:23 +00:00
Jiri Drbalek
85b370dfd7 add visual test - polygon interior 1 2015-04-17 12:35:17 +00:00
Blake Thompson
75ccfdf934 A venture into variadic templates for strategies and transforms. 2015-04-16 23:37:20 -05:00
Dane Springmeyer
0a1fc7e476 Merge branch 'mapnik-geometry' of github.com:mapnik/mapnik into debug-rings 2015-04-16 16:29:29 +02:00
Blake Thompson
a19da799e0 Slight fixes after merge 2015-04-15 16:05:56 -05:00
Blake Thompson
7a50bb5214 Merge branch 'mapnik-geometry' into mapnik-geometry-template 2015-04-15 15:16:47 -05:00
Blake Thompson
26131fb708 Updated clipper 2015-04-15 00:35:31 -05:00
Dane Springmeyer
97fd53f650 Merge branch 'mapnik-geometry' of github.com:mapnik/mapnik into debug-rings 2015-04-14 20:00:29 +02:00
Dane Springmeyer
1a7b6729d1 regenerate new expected images 2015-04-14 15:38:08 +02:00
Dane Springmeyer
748fe3d228 fix polygon winding order for shapefiles + add test enforcing it 2015-04-14 15:35:32 +02:00
Dane Springmeyer
3fb41e865a fix outline drawing in debugsymbolizer ring mode 2015-04-14 15:33:05 +02:00
Blake Thompson
feca4d9f9b Updated the clipper dependency to allow it to have some methods linked externally 2015-04-14 01:02:33 -05:00
Dane Springmeyer
cdb9a2ead4 add debug symbolizer mode for visualizing exterior and interior rings and their winding order 2015-04-14 02:44:14 +02:00
Dane Springmeyer
1dc77443ab add vertex_adapter to work per polygon ring 2015-04-13 18:48:45 +02:00
artemp
87e978a6b9 prefer c++11 alias type declaration over typedef for consistency 2015-04-13 15:03:19 +02:00
artemp
41aa591878 Merge branch 'master' into mapnik-geometry 2015-04-13 12:47:41 +02:00
artemp
4f3c8663a3 visual tests : fix marker-on-hex-grid 2015-04-13 11:38:38 +02:00
artemp
c1bc8ffc64 simlified_converter - use start (move_to) x,y on close_path command (drops tiny islands) 2015-04-13 11:17:17 +02:00
Blake Thompson
f98fd0da7c Added tests for non standard projections, forcing use of proj4. 2015-04-10 14:05:58 -05:00
Blake Thompson
2392c7eb12 Added geometry_reprojection_impl 2015-04-10 10:55:30 -05:00
artemp
33661c818d Merge branch 'mapnik-geometry' into mapnik-geometry-template
Conflicts:
	benchmark/test_polygon_clipping.cpp
	include/mapnik/geometry.hpp
	include/mapnik/geometry_adapters.hpp
	include/mapnik/marker_helpers.hpp
2015-04-10 14:52:40 +02:00
artemp
d5f9a14b58 more fixes (dependent names etc) 2015-04-10 14:17:36 +02:00
artemp
61f42b229d update to templated mapnik-geometry 2015-04-10 14:16:26 +02:00
artemp
90b6fee2ac don't return from void function 2015-04-10 14:15:12 +02:00
artemp
2ebc729cc8 Clipper - fix PolyTree traversal 2015-04-10 14:13:08 +02:00
Blake Thompson
87fb41907a Added template to geometries 2015-04-09 15:22:51 -05:00
artemp
fb61a2bb90 ref #2755 test if centroid is within bounding box 2015-04-09 12:40:06 +02:00
artemp
3f1aa7b4b4 geometry : allow boost::geoemetry algorithms to work directly with box2d<double>, removing bounding_box 2015-04-09 12:33:31 +02:00
artemp
2581e48087 vertex_converters - attempt to improve size and compilation times 2015-04-09 10:55:09 +02:00
artemp
938709955e support all geomtry types 2015-04-08 18:48:41 +02:00
artemp
2bc2e6b85e use geometry_to_path to convert geometry 2015-04-08 18:48:41 +02:00
artemp
24dbaf5217 add geometry_to_path implementation 2015-04-08 18:48:41 +02:00
artemp
bfae2a8df6 cleanup 2015-04-08 18:48:41 +02:00
Blake Thompson
bb7f965d6c Updated geometry_reprojection tests to include all variant types, put in fix for geometry_equal tool which wasn't working properly with geometry_collections, corrected result of failing hit_test in python tests after the correct implementation of hit test was throwing out invalid polygons. 2015-04-08 11:36:10 -05:00
artemp
310865a0c3 help compiler to apply RVO ( return the same object by value) 2015-04-08 13:10:22 +02:00
Blake Thompson
431c581759 Added a lot of additional tests for geometry_reprojection 2015-04-07 18:37:30 -05:00
Blake Thompson
c5d5a1f22e Added several unit tests around reprojection. 2015-04-07 17:20:29 -05:00
Blake Thompson
0fec41a87e Updated reprojection code 2015-04-07 11:55:45 -05:00
artemp
54d8746aa8 svg_renderer - add generate_path vertex processor (work-in-progress) 2015-04-07 15:46:06 +02:00
artemp
6afc4531ec add value_type alias 2015-04-07 15:39:47 +02:00
artemp
10a07bc142 generic geometry transform algorithm 2015-04-07 15:38:00 +02:00
artemp
d1b971f389 fix benchmark/test_polygon_clipping.cpp compilation 2015-04-07 12:14:17 +02:00
Dane Springmeyer
fc91179298 Merge pull request #2749 from mapycz/fix-compile-json-grammar
fix compile json grammar with boost 1.49
2015-04-06 21:04:52 -04:00
Blake Thompson
6be658f5b5 Moved geometry envelope to an impl 2015-04-06 11:00:03 -05:00
Dane Springmeyer
159997fe25 avoid -Wsign-compare warning 2015-04-05 08:56:06 -04:00
Dane Springmeyer
c4273ffed6 be explicit about where value_converter is 2015-04-05 03:10:53 -04:00
Dane Springmeyer
369a82e421 fix variable shadowing in clipper 2015-04-05 02:23:31 -04:00
Dane Springmeyer
bc77157c57 re-expose geometry_empty test / fix compile 2015-04-04 13:24:00 -04:00
Dane Springmeyer
d4ce36a41e remove unneeded headered detected by iwyu 2015-04-04 13:21:33 -04:00
Dane Springmeyer
bd673c0dbe more iwyu 2015-04-04 13:21:09 -04:00
Dane Springmeyer
ae50ce7321 add headers detected as needed by include-what-you-use 2015-04-04 13:20:40 -04:00
Dane Springmeyer
633668f1d2 no need for iostream in geometry_envelope 2015-04-04 13:20:11 -04:00
Dane Springmeyer
9bd171bcd1 geometry_is_empty should only accept const& 2015-04-04 13:19:55 -04:00
Blake Thompson
19eaf4cfff Fix for geometry envelope with geometry collections and added tests. 2015-04-03 18:56:57 -05:00
Blake Thompson
fb0ea81606 Modified envelope so that it no longer keeps creating new bboxes, fix in hit filter for rings with too little geometry 2015-04-03 11:24:47 -05:00
Blake Thompson
4091504dac Optimization for when point is found in a hole 2015-04-03 11:24:47 -05:00
Dane Springmeyer
ecbacc5933 Merge branch 'master' of github.com:mapnik/mapnik into mapnik-geometry 2015-04-03 12:17:59 -04:00
Dane Springmeyer
6d84d03c0b add script to easily check the sizes of structures 2015-04-03 12:14:40 -04:00
Blake Thompson
c32a13eaa8 An update to gdal_featureset that hopefully will correct a problem with alpha detection on TIFFs that have nodata in an RGB and are Byte in size per band 2015-04-02 16:11:45 -05:00
Blake Thompson
2460f7ba04 Corrected ray casting check in polygon hit test 2015-04-02 14:27:39 -05:00
artemp
03a118a8ba add ClipperLib::PolyTree based clipping test (4) 2015-04-02 18:24:25 +02:00
Blake Thompson
6f4f7a07be Added a feature to geojson helper method 2015-04-02 09:28:45 -05:00
artemp
63b97e2e52 attempt to fix SEG_CLOSE command handling 2015-04-02 16:12:56 +02:00
artemp
146bf85349 add 'clipper' based offset converter - it created buffer around geometry so can't replace current impl 2015-04-02 16:11:46 +02:00
artemp
3be0074c20 bug fix - add missing break statement 2015-04-02 14:58:05 +02:00
Dane Springmeyer
529231f709 make clipperlib::PolyNode and PolyTree visable from the outside 2015-04-01 21:44:16 -04:00
Blake Thompson
5ca850a17e Added proper use of auto in several for loops 2015-04-01 17:55:36 -05:00
Blake Thompson
78835c9d87 Initial commit for new method to provide geometry reprojection 2015-04-01 16:18:05 -05:00
artemp
390fff5bb4 ensure we're returning the same object from multiple return paths
from_wkb now returns geometry::geometry_empty instead of throwing
update cpp_tests
2015-04-01 15:04:05 +02:00
Dane Springmeyer
b88aaed491 wkb: use 'mapnik::geometry::correct' 2015-03-31 12:30:05 -07:00
Dane Springmeyer
928ebad6b9 Avoid inf recursion in geometry::is_empty 2015-03-31 12:29:14 -07:00
Dane Springmeyer
f96744c0e2 split out to_wkt and from_wkt as was previously done 2015-03-31 09:15:23 -07:00
artemp
3c2430150d add 'is_clockwise' as generic function
shape_io -- rely on RVO optimisation (remove an extra std::move)
2015-03-31 13:43:37 +02:00
artemp
7775089a24 make is_simple and is_valid work typed geometries directly 2015-03-31 13:43:37 +02:00
Jiri Drbalek
9862ac66bf fix compile json grammar with boost 1.49 2015-03-31 10:29:33 +00:00
Dane Springmeyer
7cbabd9b46 workaround boost bug on osx - refs #2747 2015-03-30 13:34:46 -07:00
artemp
8735311f83 radial distance - set x=y=0 on SEG_CLOSE command 2015-03-30 12:40:28 +02:00
artemp
6a6af26566 handle SEG_CLOSE in visvalingam_whyatt and douglas_peucker 2015-03-29 19:11:07 +02:00
artemp
3593f3c52c attempt to fix zhao simplification to handle zZ (SEG_CLOSE) command correctly 2015-03-29 18:49:09 +02:00
artemp
919d41aeb6 remove unused member variable 2015-03-29 13:55:46 +02:00
Dane Springmeyer
d5f98ba07c avoid duplicated line_to - matches 6a827f50, rolls back a2185bb9d8 2015-03-28 23:55:20 -07:00
Dane Springmeyer
a2185bb9d8 add vertex_adapter.cpp tests
- focus is on behavior of polygons (including with holes)
 - reverts 6a827f501 because it seems incorrect to me and without it the vertex_adapter.cpp tests pass
 - @artemp if you see something I don't please restore 6a827f501, but updated the vertex_adapter.cpp tests
   to show what the expected behavior should be
2015-03-27 23:16:49 -07:00
Dane Springmeyer
01a9b4c077 add regression coverage for #2745 2015-03-27 09:10:04 -07:00
artemp
51b65534f5 geojson bounding box grammar - don't require "type": "Feature" to appear in particular order (ref #2745) 2015-03-27 10:36:04 +01:00
artemp
64312a8dc1 geojson bounding box grammar - don't require "type": "Feature" to appear in particular order 2015-03-27 10:32:52 +01:00
Blake Thompson
8c93d05796 More attempts to fix visual tests for windows 32 bit 2015-03-26 14:50:17 -05:00
Blake Thompson
1fa27227b9 For windows only increased the pixel difference threshold from 0 to 3 2015-03-26 12:57:23 -05:00
artemp
6aae88f90f only apply unique to line_string and polygon 2015-03-26 18:41:15 +01:00
artemp
75699eb5b4 remove duplicate include 2015-03-26 18:33:17 +01:00
artemp
b025071b28 add geometry_unique algo (removes coincident points) 2015-03-26 18:32:09 +01:00
artemp
b0587a01c0 correct line_string/multi_line_string 2015-03-26 18:13:44 +01:00
artemp
f06443910f update polygon clipping test 2015-03-26 17:31:31 +01:00
artemp
a2933f9cb1 fix includes 2015-03-26 17:31:19 +01:00
artemp
330bc5686c avoid relying on x and y in SEG_CLOSE command - instead cache MOVE_TO's coordinates 2015-03-26 17:30:00 +01:00
artemp
6a827f5018 don't output last-vertex (== first-vertex) - SEG_CLOSE should be sufficient 2015-03-26 17:27:40 +01:00
artemp
bc913bcc59 fix names 2015-03-26 17:26:39 +01:00
artemp
a05225d8b1 move vertex_adpaters into separate header 2015-03-26 17:20:38 +01:00
artemp
74fb3ddde0 Merge branch 'master' into mapnik-geometry 2015-03-25 16:19:02 +01:00
artemp
06f512f584 markers_helper - add support for geometry collections 2015-03-25 16:15:48 +01:00
artemp
ba423f0955 wkt parser/genrator - handle POINT EMPTY by constructing geometry::geometry_empty 2015-03-25 15:52:12 +01:00
artemp
dc6f1924fa split multi geometries before applying placement algos 2015-03-25 14:20:47 +01:00
artemp
389d00d442 make geometry methods templated to allow using modified geometry types ( e.g variant<reference_wrapper<T>..>
symbolizer_helper - store geometries in custom varaint using reference_wrapper<T const>
2015-03-25 12:58:50 +01:00
artemp
22de30bb37 update variant (add support for 'unwrapping' std::reference_wrapper<T> and accessing std::reference_wrapper<T>::type through get<T>()) 2015-03-25 10:52:33 +01:00
Dane Springmeyer
f2673c6432 fix cairo_test.py [skip ci] 2015-03-24 20:38:08 -07:00
Dane Springmeyer
dfddd53c84 renable all polygon clippers 2015-03-24 18:47:44 -07:00
Dane Springmeyer
c964b090ed first pass updating the clipping test
- actual results are still slightly broken for agg and clipper
 - todo: try clipper directly rather than through agg interface
 - todo: color polygon parts differently in test renderer
2015-03-24 18:43:29 -07:00
Dane Springmeyer
834a74b1ed make geometry_correct more flexible but harder to misuse 2015-03-24 18:43:05 -07:00
Dane Springmeyer
93e825d727 delete previous incantation of boost polygon clipper 2015-03-24 16:44:50 -07:00
Dane Springmeyer
55fd38a25a back to j1 for first compiles since travis cannot build src/renderer_common/process_group_symbolizer.cpp 2015-03-24 16:42:44 -07:00
Dane Springmeyer
a3e2079bc5 update datasource hit test (not sure why it changed) 2015-03-24 16:31:11 -07:00
Dane Springmeyer
f153c5c6be more coverage of wkb parsing 2015-03-24 16:30:48 -07:00
Dane Springmeyer
7527dadf64 restore filter_test.py to previous 3.x behavior 2015-03-24 14:55:54 -07:00
Dane Springmeyer
b87e09c147 fix memory datasource accumulate_extent 2015-03-24 14:46:26 -07:00
Dane Springmeyer
2c49c8b7fa update the geometry_io test
- one bug in wkb empty parsing is leading to failure
 - removed testing of len(geom) but we should consider bringing this back
   in the future based on http://www.boost.org/doc/libs/1_57_0/libs/geometry/doc/html/geometry/reference/algorithms/num_geometries.html
2015-03-24 14:17:33 -07:00
Dane Springmeyer
852776d5e3 geometry is_empty refactoring 2015-03-24 14:16:58 -07:00
Dane Springmeyer
546e46756c fix ogr plugin compile 2015-03-24 14:16:28 -07:00
Dane Springmeyer
dcc5632f82 svg_renderer is broken, disable temporarily 2015-03-24 14:15:57 -07:00
Blake Thompson
3270d42b74 Standardizing on the output of a boolean to string is true or false rather then 0 or 1. 2015-03-24 14:32:25 -05:00
Dane Springmeyer
04158ab9d5 fix sqlite_rtree_test.py 2015-03-24 11:08:23 -07:00
Dane Springmeyer
e954609ed9 fix sqlite_test.py 2015-03-24 11:03:58 -07:00
artemp
4389c80d84 and finaly, rename 'new_geometry' namespace to 'geometry' 2015-03-24 14:21:28 +01:00
artemp
7e03d41606 rename geometry_impl.hpp to geometry.hpp 2015-03-24 13:32:05 +01:00
artemp
323fdd5212 rename geometry -> path ( geometry_type -> path_type) 2015-03-24 13:17:07 +01:00
artemp
ac1ffa2bfb move geometry.hpp into path.hpp and update code base to reflect this change 2015-03-24 12:42:09 +01:00
artemp
1cf0a897ac move datasource::geometry_t into separate header and rename -> datasource_geometry_t to avoid cyclic dependencies issue
to_ds_type - return actual datasource_geometry_t (remove optional)
update across datasources
experssions - revert to using
2015-03-24 12:13:31 +01:00
artemp
163da958f4 mapnik-geometry - add 'geometry_empty' type to support unintialised geometries 2015-03-24 10:30:33 +01:00
artemp
9aa3542680 update more python tests 2015-03-24 09:38:02 +01:00
artemp
446e6be7bd json geometry generator - output "null" for uninitialised geometry 2015-03-23 19:09:31 +01:00
artemp
d71ff55545 update to mapnik-geometry 2015-03-23 18:04:37 +01:00
artemp
a5cd3b0194 update filter_test 2015-03-23 12:18:50 +01:00
artemp
600cc41d11 update csv_test 2015-03-23 12:18:28 +01:00
artemp
2420604d8c check if geometry has been initialised before dispathing 2015-03-23 12:17:43 +01:00
artemp
b1f79f28ee tests - update feature_test 2015-03-23 12:17:09 +01:00
artemp
807a940f1e ensure [mapnik::geometry_type] attribute is stored as mapnik::value_integer 2015-03-23 12:16:21 +01:00
artemp
36e9525a49 add 'unknown' geometry type 2015-03-23 11:57:40 +01:00
artemp
9f04e2317a update to mapnik-geometry - TODO: investigate test failure 2015-03-23 11:00:16 +01:00
artemp
9c5f38ac14 python bindings - 'geometry' property 2015-03-23 10:44:40 +01:00
artemp
e6905272b7 mapnik::feature_impl - add set_geometry_copy(geometry const&) 2015-03-23 10:43:20 +01:00
Dane Springmeyer
dca44f799b update osm plugin to new geometry 2015-03-22 15:46:27 -07:00
Dane Springmeyer
7fae024e32 update sqlite plugin to new geometry 2015-03-22 14:58:14 -07:00
Dane Springmeyer
cb6f5a7ca4 add empty method on new_geometry::polygon 2015-03-22 12:14:43 -07:00
Dane Springmeyer
95ca3a02f8 update pgsql2sqlite to new geometry 2015-03-22 12:14:11 -07:00
Dane Springmeyer
9732369750 remove old typedef 2015-03-22 11:42:23 -07:00
Dane Springmeyer
1a57aef9c6 implement hit_test for new_geometry 2015-03-22 11:41:44 -07:00
Dane Springmeyer
537a392a09 update gdal plugin to new geometry 2015-03-21 21:13:58 -07:00
Dane Springmeyer
f0563fd8f3 more geometry tests for ogr plugin 2015-03-21 20:08:43 -07:00
Dane Springmeyer
1994b1c25f update ogr plugin to new geometry 2015-03-21 20:08:07 -07:00
Blake Thompson
63c72789d9 Fixed a segfault from occuring if to_wkb was called with a null geometry 2015-03-20 17:03:49 -05:00
artemp
a7174f181c handle collections 2015-03-20 11:06:04 +01:00
artemp
9352d69987 refactor local pattern alignment calc 2015-03-20 10:43:42 +01:00
artemp
360f920924 Merge branch 'master' into mapnik-geometry 2015-03-20 09:51:59 +01:00
Blake Thompson
be9d2ad53c Removed perhaps unrequired MAPNIK_DECL 2015-03-19 23:11:12 -05:00
Blake Thompson
0f76580f6e Tweaked image view null a little 2015-03-19 22:35:09 -05:00
Blake Thompson
08a3911b0a Added the introduction of an image_view_null, this could possibly fix windows build issues 2015-03-19 21:28:16 -05:00
Blake Thompson
f8010f0ba1 Updated image_view any with < and == operators, removed default constructor from image_view and image_view_any 2015-03-19 14:58:01 -05:00
Blake Thompson
702b91e369 Included image_view headers in impl 2015-03-19 14:39:37 -05:00
Dane Springmeyer
0cb9cec686 remove header gaurd from impl file 2015-03-19 12:14:24 -07:00
Dane Springmeyer
c1d7fe3a8f fix compile error on windows: error C2065: 'M_PI': undeclared identifier 2015-03-19 12:14:24 -07:00
Blake Thompson
9fd4ea2829 Possibly fixing windows issues 2015-03-19 14:01:22 -05:00
Blake Thompson
454398985c Implementing < and == operators in image 2015-03-19 13:42:17 -05:00
artemp
8a0b4a6b6e Merge branch 'master' into mapnik-geometry 2015-03-19 19:17:01 +01:00
artemp
ea465b06a9 geojson generator - null geometries 2015-03-19 13:44:34 +01:00
Jiri Drbalek
5c65dadd72 add comment about compatibility 2015-03-19 12:32:30 +01:00
artemp
3bbb9a24f1 debug_symbolizer - update to use mapnik-geometry 2015-03-19 12:30:21 +01:00
artemp
8de2621b99 datasource : temporary reinstate get_geometry_type() method to increese test coverage and ease migration to mapnik-geometry 2015-03-19 12:09:07 +01:00
artemp
8635c87118 wkt generator - handle 'EMPTY' geometries 2015-03-19 11:00:18 +01:00
Dane Springmeyer
4a831b4936 fix msvs compiler error: C2899: typename cannot be used outside a template declaration 2015-03-19 00:44:59 -07:00
Dane Springmeyer
85b20f45d7 Merge pull request #2682 from mapycz/fix-enum-word-separator
fix enum word separator
2015-03-19 00:22:31 -07:00
Dane Springmeyer
1b9ae043f2 Merge pull request #2732 from zerebubuth/fix-group-symbolizer-avoid-edges
Fix GroupSymbolizer placement options
2015-03-19 00:18:05 -07:00
artemp
f412ffbb86 python bindings - more support (work-in-progress) 2015-03-18 17:37:18 +01:00
artemp
28fe4847b9 csv.input - correct WKT geometry to be consistent
symbolizer_helper - handle geometry types in VERTEX_PLACEMENT
2015-03-18 16:18:44 +01:00
artemp
6a8e78ab9c fix group_symbolizer_helper 2015-03-18 13:50:15 +01:00
artemp
c1fca4f539 add vertex_adapter_traits 2015-03-18 13:49:51 +01:00
Matt Amos
78f10479e9 Added extra tests for GroupSymbolizer placement options.
Added tests for avoid-edges and minimum-padding when used with
GroupSymbolizer, as originally explained in #2729.
2015-03-18 11:57:21 +00:00
Matt Amos
dd5f6ea739 Use correct bounding box for avoid-edges check.
This was previously using `query_extent_`, which is in
world-space, but it should have been using `dims_`, which is the
extent of the rendered area in pixel-space, as the calculations
for collisions are all done in pixel-space.
2015-03-18 11:57:21 +00:00
artemp
c0af10d324 fix wkb_formats_test 2015-03-18 12:43:30 +01:00
artemp
236c21ffbd cxx tests - update geometry test 2015-03-18 12:43:05 +01:00
artemp
1bb06d89fa group_symbolizer - update to mapnik-geometry 2015-03-18 12:10:21 +01:00
artemp
ab5116df8d dot_symbolizer - update to use mapnik-geometry 2015-03-17 16:53:28 +01:00
artemp
e516583d6c building_symbolizer - update to mapnik-geometry 2015-03-17 15:47:51 +01:00
artemp
beb705acb3 Merge branch 'master' into mapnik-geometry 2015-03-17 09:45:19 +01:00
Blake Thompson
5a49842952 Moved image_null into a header 2015-03-16 12:18:07 -05:00
artemp
fd8ac66cde start converting to mapnik-geometry 2015-03-16 17:38:20 +01:00
artemp
8747e0ff19 fix - don't forget to add poly's 2015-03-16 17:27:37 +01:00
artemp
71c9c04e92 Merge branch 'master' into mapnik-geometry 2015-03-16 16:20:46 +01:00
artemp
c528a31684 to_wkb - optimise to multi_point geometries 2015-03-16 16:19:24 +01:00
artemp
ad393cdd75 python bindings - revive 'to_wkb(byteOrder)' method 2015-03-16 16:15:21 +01:00
artemp
642bdfa78c fix geometry_to_wkb utility 2015-03-16 16:14:54 +01:00
artemp
5f073ee299 mapnik-geometry based to_wkb() implementation 2015-03-16 16:14:17 +01:00
artemp
58d07338e9 polygon vertex adapter - output SEG_CLOSE for each loop 2015-03-16 12:01:57 +01:00
Dane Springmeyer
dc31d53cdc fix labeling on polygons (allows kurdish-text visual test to pass) 2015-03-16 00:32:25 -07:00
Blake Thompson
2e10b2ca1a A small change to help compare grids faster in python. 2015-03-15 13:07:46 -05:00
Blake Thompson
a1f6c2a5ec Merge pull request #2731 from mapnik/image_impl
Image impl
2015-03-13 19:41:27 -05:00
Blake Thompson
3553205f74 Updated travis coverage to remove pycairo 2015-03-13 19:24:41 -05:00
Blake Thompson
bd94cc6a60 Updated the image_view to add mapnik_decl 2015-03-13 18:21:24 -05:00
Blake Thompson
46ea6a5b1a Added impl for image_view_any and fix to benchmark that was missing include for mapnik/color.hpp 2015-03-13 17:28:22 -05:00
Blake Thompson
c262e51428 Fix for operator= in image 2015-03-13 16:49:28 -05:00
Blake Thompson
64ee848445 Forgot to add src/image_vew.cpp 2015-03-13 16:48:45 -05:00
Blake Thompson
29099ece46 Added image_view implementation 2015-03-13 16:34:49 -05:00
artemp
12613b59d4 fix typo 2015-03-13 17:12:23 +01:00
Blake Thompson
bf61a033d3 Intial commit for impl 2015-03-13 10:52:39 -05:00
artemp
924536e0f2 formatting 2015-03-13 14:29:05 +01:00
artemp
0b90fe7209 avoid unnecessary copying 2015-03-13 13:40:29 +01:00
artemp
58b36badd9 minor formatting 2015-03-13 13:23:36 +01:00
artemp
abd10cab0c add support for all geometry types 2015-03-13 13:23:07 +01:00
artemp
f54eb68063 return geometry_type(geom) 2015-03-13 13:22:32 +01:00
artemp
f627b8ace3 csv - use mapnik-geometry 2015-03-13 11:13:15 +01:00
artemp
6ef63aa7a5 memory_feature - update to use mapnik-geometry 2015-03-13 11:05:56 +01:00
Blake Thompson
7a84df012d reordered python stuff to hopefully make coverage pass 2015-03-12 11:17:53 -05:00
artemp
914b8dbd76 Merge branch 'master' into mapnik-geometry 2015-03-12 15:14:45 +01:00
Artem Pavlenko
9117e7d9ff Merge pull request #2621 from mapycz/markers-upright
marker direction
2015-03-12 14:58:16 +01:00
artemp
50ca6fcbe8 Merge branch 'master' into mapnik-geometry 2015-03-12 14:55:45 +01:00
artemp
b823d6dc34 geojson - fix brackets blues 2015-03-12 14:53:47 +01:00
artemp
f787137166 python bindings - revive to_wkt method + cleanups 2015-03-12 14:44:13 +01:00
artemp
48ce3ccc38 wkt generator fix erroneous brackets 2015-03-12 14:43:19 +01:00
artemp
6d13454f72 reinstate 'from_wkt' interface 2015-03-12 14:12:53 +01:00
artemp
c4607aaeeb wkt-generator - update to mapnik-geometry model 2015-03-12 14:12:14 +01:00
artemp
2753db1c4c factor out boost::spirit::traits::transform_attribute into separate header 2015-03-12 14:11:52 +01:00
artemp
ab318e0676 remove unused header 2015-03-12 13:59:30 +01:00
artemp
da45acb047 wkt parser grammar - allow MULTIPOINT(x0 y0, x1 y1,....,xN yN) as well
as MULTIPOINT((x0 y0), (x1 y1),....,(xN yN)) syntax
2015-03-12 11:58:09 +01:00
Blake Thompson
0fba975670 An update so that mapnik tests will pass in debug mode 2015-03-11 22:40:51 -05:00
Blake Thompson
7575468e5c Redirecting output of cpp-coveralls to dev null to limit how much is in travis logs 2015-03-11 17:04:23 -05:00
Blake Thompson
28d4bbb688 Forgot to also exclude mason_packages 2015-03-11 17:01:19 -05:00
Blake Thompson
bcc523f0a2 One more try to get travis working properly 2015-03-11 16:59:09 -05:00
Blake Thompson
3f814014fe Updated travis stuff again because I forgot a semicolon. 2015-03-11 13:52:16 -05:00
Blake Thompson
fffe156674 Still was having issues with travis and cpp-coveralls install so trying something else 2015-03-11 13:01:05 -05:00
Blake Thompson
693dfb109d Corrected cpp-coveralls install path 2015-03-11 12:48:59 -05:00
Blake Thompson
8adc1641fd One more try at correct travis configuration for coverage 2015-03-11 12:41:06 -05:00
Blake Thompson
94e773f151 Forgot to add debug mode for coverage. 2015-03-11 12:27:33 -05:00
Blake Thompson
0a1e9cea33 Added code coverage to mapnik 2015-03-11 12:24:33 -05:00
artemp
a5d51af51c cpp_tests : start porting to mapnik-geometry 2015-03-11 18:16:22 +01:00
artemp
f72291650b fix line_string tag typo 2015-03-11 15:20:24 +01:00
artemp
696be39119 python bindings - mapnik.LineStirng basic interface 2015-03-11 14:02:30 +01:00
artemp
e91389dcd5 make point implicitly_convertible to geometry + to_geojson() 2015-03-11 13:05:32 +01:00
artemp
f0798a8ae3 python bindings - add 'centroid' method 2015-03-11 12:56:38 +01:00
artemp
b62694920b python bindings - revive from_wkb method 2015-03-11 12:40:39 +01:00
artemp
26fdd0b680 python bindings - restore from_wkt method 2015-03-11 12:28:04 +01:00
artemp
525cb60f0c fix compilation (add required headers and typedef) 2015-03-11 12:23:27 +01:00
artemp
f3edf2dfc0 wkt_grammar - update to use mapnik-geometry and optimise(minimise) memory allocations 2015-03-11 11:55:43 +01:00
Blake Thompson
fe01d52845 Removed unused resolution data from grids 2015-03-10 23:19:30 -05:00
Dane Springmeyer
c245c208ee add expected test images 2015-03-10 21:08:27 -07:00
Dane Springmeyer
c8e56f1128 fix high zoom crash in line pattern rendering - closes #2726 2015-03-10 18:16:04 -07:00
Blake Thompson
80e64bb394 Merge branch 'master' of github.com:mapnik/mapnik 2015-03-10 19:59:59 -05:00
Blake Thompson
f715f9cf22 Updated the name of methods in grids from properties to fields because they are an array rather then a map. 2015-03-10 19:59:46 -05:00
Dane Springmeyer
87b75ff118 fixup test for #2726 2015-03-10 17:54:22 -07:00
Dane Springmeyer
f28bc09118 add testcase for #2726 (currently crashing) 2015-03-10 17:54:22 -07:00
Blake Thompson
bb08020d1d Updated image reader so that it would throw an exception rather then returning a 0 pointer. 2015-03-10 10:05:50 -05:00
artemp
c3284aa958 Merge branch 'master' into mapnik-geometry 2015-03-10 11:17:53 +01:00
artemp
6df5ef4ac9 grod_renderer - update to use mapnik-geometry 2015-03-10 11:16:16 +01:00
Blake Thompson
7ee9745a8f Updated param to allow value_boolean 2015-03-09 16:33:20 -05:00
artemp
a89dd47a4b Merge branch 'master' into mapnik-geometry 2015-03-09 18:48:58 +01:00
artemp
e7843ba471 use sequencial catch blocks 2015-03-09 18:48:41 +01:00
artemp
0863ef1e92 vertex_processor - handle geometry_collection 2015-03-09 18:47:34 +01:00
Blake Thompson
e20c68d384 Corrected a bug in hsl2rgb where if s was equal to zero an incorrect result was achieved. 2015-03-09 12:07:39 -05:00
artemp
40c9abcb2b calc centroid 2015-03-09 17:00:00 +01:00
artemp
397655cc16 use apply_vertex_converter 2015-03-09 16:59:34 +01:00
artemp
a958f5bda2 use mapnik-geometry 2015-03-09 16:59:00 +01:00
artemp
f919bd2c41 fix applying clip flag 2015-03-09 16:58:32 +01:00
artemp
72e31d2768 update to use mapnik-geometry 2015-03-09 16:57:19 +01:00
artemp
cc3f8be837 remove unused headers 2015-03-09 16:37:26 +01:00
artemp
54f87b40d2 use sequencial catch blocks 2015-03-09 16:30:10 +01:00
artemp
317e9c497f Merge branch 'master' into mapnik-geometry 2015-03-09 14:59:45 +01:00
Blake Thompson
ffad24f31d Added bugfix for image_view where if an image of zero width or height created a view, it would cause a segfault because it created a 1,1 size view. 2015-03-08 23:28:56 -05:00
Dane Springmeyer
073e46aad8 avoid querying for srid when geometry_table is empty
- this can happen when the table detection fails - refs #2718
 - ideally this would not happen but it lessens the impact if it does
 - amends 4a1f4a9b5e
2015-03-08 12:54:19 -07:00
Dane Springmeyer
acee056710 add tests validating current (non-ideal) need for manually supplying 'geometry_table' for specific sql query - refs #2718 2015-03-08 12:53:25 -07:00
Dane Springmeyer
c1e947bff1 fully static geojson parsing grammars 2015-03-07 12:00:38 -08:00
Dane Springmeyer
09afe230fb add test for #2721 2015-03-06 17:10:21 -08:00
Dane Springmeyer
2143dbe7ef allow postgres tests to pass if postgres is not running: followup to #2725 2015-03-06 17:08:41 -08:00
Blake Thompson
95f98e5311 Merge branch 'master' of github.com:mapnik/mapnik 2015-03-06 17:24:34 -06:00
Blake Thompson
61abe608ee Added the ability to get_type from an image, fixed possible bugs associated with image copy. 2015-03-06 17:24:23 -06:00
Dane Springmeyer
051462e00f fix postgis error reporting - closes #2725 2015-03-06 14:01:22 -08:00
artemp
174bc5969a text symbolizer update to mapnik-geometry (partial) 2015-03-06 12:17:02 +01:00
Blake Thompson
ea6677df37 A fix to the jpeg driver making it operate with parameters like the other file formats. 2015-03-05 21:51:48 -06:00
artemp
8411cdfa0c add centroid 2015-03-05 22:30:38 +01:00
artemp
d682c5a201 markers placement update 2015-03-05 20:54:36 +01:00
Blake Thompson
34e02bec38 A fix for jpeg saving, as it wasn't properly dealing with a colon for saving with quality. 2015-03-05 09:37:22 -06:00
artemp
aa5ae6b843 update markers_symbolizer to work with mapnik-geometry (work-in-progress) 2015-03-05 15:07:23 +01:00
artemp
38dc240d6d geometry - add generic is_valid(), is_simple() and correct() 2015-03-05 12:11:23 +01:00
artemp
d25ef607a2 cleanup 2015-03-05 12:09:16 +01:00
artemp
13a5bdf984 minor formatting 2015-03-05 12:08:21 +01:00
artemp
c020e8bcc3 revive basic python functionality 2015-03-05 10:45:27 +01:00
artemp
ee77a0ef10 correct arg type 2015-03-05 10:45:12 +01:00
artemp
24a586415c expose wkbByteOrder in wkb.hpp 2015-03-05 10:44:40 +01:00
artemp
b66739cf86 move fusion adapted geometry into separate header to avoid duplication 2015-03-05 10:43:03 +01:00
Dane Springmeyer
7c9a18b16b scons: make harfbuzz min version recommended but not strict 2015-03-04 16:26:12 -08:00
Dane Springmeyer
d5e3dba3df scons: cross compilation fixes 2015-03-04 16:25:15 -08:00
Dane Springmeyer
e69bedadff add @rouault to authors for gdal plugin contributions - refs #2686 2015-03-04 16:14:07 -08:00
Dane Springmeyer
7f597233c9 better exception when boost regex cannot initialize ICU support - closes #2722 2015-03-04 12:38:45 -08:00
artemp
cd15d8f2b3 revive polygon/line pattern rendering 2015-03-04 18:39:31 +01:00
artemp
ae1da6ae12 topojson - correct multi_polygons 2015-03-04 18:39:11 +01:00
artemp
87e9c64fc4 topojson grammar - add optional bbox element which is omitted 2015-03-04 14:55:13 +01:00
artemp
58f21f33ea remove slicing 2015-03-04 14:54:11 +01:00
artemp
a6f0c30a74 topojson grammar - add optional bbox element which is omitted 2015-03-04 14:52:55 +01:00
artemp
b2c3598f8d Merge branch 'master' into mapnik-geometry 2015-03-04 14:42:42 +01:00
artemp
b69d740446 remove bogus simplification 2015-03-04 14:37:54 +01:00
artemp
54da1e9d0c viewer - update to latest mapnik::image apis 2015-03-04 14:37:17 +01:00
artemp
f4a1e9368b wkb_reader/json input grammar - correct polygons to have CCW exterioir/CW interior 2015-03-04 12:09:08 +01:00
artemp
9e35540b50 fix line_string iterator types
register CCW polygons - CCW exterior and CW interior rings
remove unused code (cleanups)
2015-03-04 12:07:22 +01:00
artemp
3ddfe34aa5 Merge branch 'master' into mapnik-geometry 2015-03-04 10:30:08 +01:00
artemp
587437c368 variant - add get<T> overloads where T is stored as recursive_wrapper<T> and avoid directly dealing with recursive_wrapper<T> 2015-03-04 10:19:30 +01:00
artemp
ec7f2f3f0c feature_generator - adapt to new geometry generator 2015-03-04 09:23:57 +01:00
artemp
920a9549c4 geometry_generator - new copy-less grammar 2015-03-04 09:21:22 +01:00
artemp
bdbaf947f7 default assignment op + cleanups 2015-03-04 09:19:53 +01:00
Dane Springmeyer
4afcac5563 try to solve #2714 2015-02-26 11:12:19 -08:00
artemp
c58a5b4151 json : geometry_generator_grammar for mapnik-geometry (TODO) 2015-02-26 16:24:07 +01:00
artemp
a3b7328936 add 'which' method for compatibility with boost::variant 2015-02-26 16:23:20 +01:00
artemp
da1bc2463d c++11 syntax 2015-02-26 16:22:56 +01:00
artemp
b74976d547 make inline 2015-02-26 16:22:34 +01:00
Dane Springmeyer
5a4e821cae fix save_map test for multipolygon-centroid-postgis.xml by avoiding whitespace usage 2015-02-25 20:09:24 -08:00
Dane Springmeyer
cce06dfe45 fix datasource type used 2015-02-25 19:07:35 -08:00
Dane Springmeyer
bd5b5bd258 Add missing test files 2015-02-25 18:57:29 -08:00
Dane Springmeyer
ea35569a51 do not generate sqlite spatial index on the fly 2015-02-25 18:57:00 -08:00
Dane Springmeyer
a6df5f9056 tests for line wrap bug (currently non-ideal) refs #2701 2015-02-25 18:54:31 -08:00
Dane Springmeyer
d9d63bb5ca add tests for #2078 and #2151 (currently non-ideal results) 2015-02-25 18:51:57 -08:00
Dane Springmeyer
1506a1d867 avoid : in image paths - refs #2717 2015-02-25 15:25:10 -08:00
artemp
78c72ee389 topojson.input - update to mapnik-geometry 2015-02-24 15:59:26 +01:00
artemp
102fd539f9 generic way to apply vertex converters to mapnik-geometry 2015-02-24 15:18:46 +01:00
artemp
0d6eb8bcab rename polygon_vertex_adapter_3 -> polygon_vertex_adapter 2015-02-24 14:31:32 +01:00
artemp
0885dfb15a rename polygon3 -> polygon 2015-02-24 14:13:00 +01:00
artemp
e99db29214 move vertex_processor into separate header 2015-02-24 13:58:46 +01:00
artemp
367208ece1 generic geometry_type impl
remove geometry_type from mapnik::datasource
2015-02-24 11:17:26 +01:00
artemp
8400be91c7 generic box2d<double> envelope(geometry const& ) 2015-02-24 10:42:33 +01:00
artemp
ab151a095e Merge branch 'master' into mapnik-geometry 2015-02-24 09:30:02 +01:00
Dane Springmeyer
2818ff96e8 test reversed point geojson 2015-02-23 23:52:54 -08:00
Dane Springmeyer
6c57c08a53 add more cxx tests of new geometry 2015-02-23 23:45:11 -08:00
Dane Springmeyer
89e36a8685 adapt json geometry_parser to fca584de1b 2015-02-23 23:44:44 -08:00
Dane Springmeyer
81a3be6e6f Merge pull request #2716 from mapnik/fix-gdal-atexit-crash
Prevent potential for crashes at exit related to libgdal
2015-02-23 15:00:58 -08:00
Dane Springmeyer
7152c7c621 do not call dlclose on plugins linking libgdal 2015-02-23 14:56:18 -08:00
Dane Springmeyer
2c716e1665 Merge branch 'master' of github.com:mapnik/mapnik into mapnik-geometry 2015-02-23 11:44:55 -08:00
Dane Springmeyer
19cafa00fb makefile: speed up build by using libmapnik-json.a as proxy for whether 'heavy' compiles have run yet 2015-02-23 11:44:36 -08:00
Dane Springmeyer
568d3cbf41 don't use geom collection, instead diff geom per feature 2015-02-23 11:43:32 -08:00
Dane Springmeyer
20e7340699 fix compile of helloworld plugin 2015-02-23 10:36:48 -08:00
artemp
2984fb9594 revive geojson plugin 2015-02-23 19:07:26 +01:00
artemp
6f13044d09 update bounsing box grammar to work with mapnik-geometry 2015-02-23 18:05:50 +01:00
artemp
07ab1fea66 fix namings 2015-02-23 18:05:13 +01:00
artemp
5cd0771824 json grammar - add support for geometry_collection 2015-02-23 17:40:16 +01:00
artemp
c4315ca46b remove unused type alias 2015-02-23 17:39:11 +01:00
Blake Thompson
8153c1a9fd Removed get_pixel_color from python bindings and added new parameter to get_pixel so that it will return color on demand. 2015-02-23 10:27:00 -06:00
artemp
fca584de1b json grammar - start porting to mapnik-geometry 2015-02-23 12:19:00 +01:00
artemp
968ab32c02 enable copy ctor (needed by json geometry grammar) 2015-02-23 12:09:42 +01:00
artemp
45a75fb876 Merge branch 'master' into mapnik-geometry 2015-02-23 10:06:43 +01:00
artemp
e523d648df formatting 2015-02-23 10:06:13 +01:00
Dane Springmeyer
d603becc28 update expected tests (straggler after png hextree fix) 2015-02-22 23:28:35 -08:00
Dane Springmeyer
8919ae2f35 Merge pull request #2686 from rouault/gdal_input_dataset_rasterio
Gdal.input dataset rasterio improvements
2015-02-22 22:14:52 -08:00
Dane Springmeyer
4b5cc89626 support PG_INCLUDES/PG_LIBS for pointing to libpq (instead of pg_config) 2015-02-20 13:22:23 -08:00
Dane Springmeyer
f08dcf9a83 scons+bootstrap: use absolute paths, but don't resolve symlinks
- relative paths continue to be supported in the config.py to make it easy
   to share config.py versions across systems
 - os.path.realpath was previously used to internally create absolute paths
   but now we use os.path.abspath instead to avoid resolving symlinks to keep
   the internally stored paths as simple as possible
 - this all will allow mapnik-config to report more similar paths to what was
   passed in (just absolute)
2015-02-20 12:56:08 -08:00
artemp
2a8174831a mapnik-geometry - simplify and streamline implementation 2015-02-20 17:44:35 +01:00
artemp
9f84ed6950 position_grammar - start using mapnik-geometry 2015-02-20 17:43:59 +01:00
artemp
60f38780b3 boost.geometry <-- mapnik-geometry adapters 2015-02-20 17:43:07 +01:00
artemp
d8dfe69952 add support for reading geometry_collection 2015-02-20 17:21:40 +01:00
artemp
30da25a9c7 add geometry_collection type 2015-02-20 17:21:17 +01:00
artemp
c5c5fc9e62 update viewer 2015-02-20 17:03:55 +01:00
artemp
7031099b76 Merge branch 'master' into mapnik-geometry 2015-02-20 17:03:46 +01:00
Dane Springmeyer
801a92c99f occi: defer symbol resolution till runtime for osx 2015-02-19 23:12:07 -08:00
Dane Springmeyer
8cf7172539 fix linking of occi plugin 2015-02-19 23:06:04 -08:00
Blake Thompson
dc0cfef4bb Merge pull request #2712 from mapnik/release/image_data_any
Release/image data any
2015-02-19 13:56:33 -06:00
Blake Thompson
198be8f1cc Merge branch 'release/image_data_any' of github.com:mapnik/mapnik into release/image_data_any 2015-02-19 12:19:21 -06:00
Blake Thompson
2ebce8e7e1 Updated svg2png for new markers 2015-02-19 12:19:01 -06:00
artemp
bd6c90bf00 remove CoordArray and read points directly into line_string or linear_ring 2015-02-19 17:13:43 +01:00
artemp
6d8ff4a476 add temp convinience methods 2015-02-19 17:13:00 +01:00
artemp
1c3dbdd3ab postgis.input + use mapnik-geometry 2015-02-19 16:05:09 +01:00
artemp
87d60620c2 mapnik-geometry : update wkb reader 2015-02-19 16:04:14 +01:00
artemp
9bb95d208c add include guard 2015-02-19 16:01:46 +01:00
artemp
9fed6fd571 shape.input - fix multi-polygon handling 2015-02-19 14:32:45 +01:00
artemp
fec1d75e8e add basic cairo support 2015-02-19 12:03:15 +01:00
artemp
5678e55abf shapeindex - use range based for loop 2015-02-19 11:04:13 +01:00
artemp
42983ff015 add basic support for point_symbolizer and mapnik::new_geometry::point 2015-02-19 10:45:03 +01:00
Dane Springmeyer
dd0b8459f5 insert_marker to take rvalue it if is moved inside the function 2015-02-19 01:37:45 -08:00
Dane Springmeyer
2aa23eca43 fix type of raster_marker_render_thunk' 2015-02-19 01:37:19 -08:00
Dane Springmeyer
cb869e60f3 no need for templated 'raster_marker_render_thunk' 2015-02-19 01:36:43 -08:00
artemp
33d45db318 c++ style - better syntax 2015-02-19 10:20:17 +01:00
Blake Thompson
5180168491 Merge branch 'master' into release/image_data_any 2015-02-18 23:03:51 -06:00
Blake Thompson
744dc4472f Merge branch 'release/image_data_any' of github.com:mapnik/mapnik into release/image_data_any 2015-02-18 23:02:34 -06:00
Blake Thompson
390fbaac92 BOOM SHAKALAKA:
This update is in Ref #2649. It provides an update to markers and their processing such that:

 * All shared_ptrs are no longer required around markers
 * Markers are now const
2015-02-18 22:58:33 -06:00
artemp
b49b8042c1 shape.input/agg - add polygon3 support 2015-02-18 18:12:47 +01:00
artemp
133f7d04ef agg_renderer - support multi_line_strings 2015-02-18 14:26:11 +01:00
artemp
8e34077aef more cleanups 2015-02-18 13:51:20 +01:00
artemp
604d7b08af use reserve to pre-allocate line_strings + cleanups 2015-02-18 13:48:05 +01:00
artemp
2e4e1f71b8 adapt to use mapnik::new_geometry::geometry (shape.input only) 2015-02-18 13:21:16 +01:00
artemp
0223e1f93e Merge branch 'master' into mapnik-geometry 2015-02-18 11:10:07 +01:00
artemp
a1f7017d45 new geometry implementation - initial barebone framework 2015-02-18 11:07:26 +01:00
Dane Springmeyer
7ab9ade36d fix oracle library name 2015-02-17 11:32:54 -08:00
Dane Springmeyer
a2dabb370d fix build+link of oracle plugin 2015-02-16 23:09:16 -08:00
Dane Springmeyer
817489e97a functions fully defined in hpp do not need MAPNIK_DECL - refs #2708 2015-02-16 19:05:41 -08:00
Dane Springmeyer
842e4bebe6 start fixing windows compile - refs #2708 2015-02-16 18:48:14 -08:00
Blake Thompson
6418a129c1 Removed graphics.hpp from benchmark 2015-02-16 15:56:29 -06:00
Blake Thompson
b2c1c86d99 Merge branch 'master' into release/image_data_Any
Conflicts:
	benchmark/test_polygon_clipping.cpp
2015-02-16 14:37:01 -06:00
Blake Thompson
0cd9c1fc34 Updated image_any building switch statement to support all the correct types, added tests for all the new data formats with get and set in python. 2015-02-16 14:23:55 -06:00
Dane Springmeyer
203ce8b9a6 renable polygon clipping tests despite current flaws 2015-02-15 14:00:20 -08:00
Dane Springmeyer
6a89b37a76 upgrade clipper to v6.2.8 / svn r492 2015-02-15 13:06:01 -08:00
Dane Springmeyer
435f329cef fix agg::conv_clip_polygon validation 2015-02-15 13:01:57 -08:00
Dane Springmeyer
e1941f87f0 clipping bench: validate per geom 2015-02-15 12:59:55 -08:00
Dane Springmeyer
1ebd6afd9c improve sql subselect parsing + add tests - closes #2704 2015-02-13 01:26:19 -08:00
Dane Springmeyer
54dc9dd0f3 add shapeindex tests - refs #2703 2015-02-13 00:05:34 -08:00
Dane Springmeyer
5424c350cd avoid inf loop on empty point3d shapefile 2015-02-13 00:04:09 -08:00
artemp
884de5a044 fix condition for skipping M (measure) in PointZ 2015-02-12 22:18:00 +01:00
Dane Springmeyer
2aaaecbcaf initialize pos_ variable in path_iterator + fix spelling 2015-02-12 11:38:31 -08:00
Dane Springmeyer
df60a2f37f more tests for object stringify in geojson plugin - refs #2678 2015-02-12 11:37:46 -08:00
artemp
3aaac077cb add test_large_geojson_properties 2015-02-12 15:53:29 +01:00
artemp
bb57ebd258 implement get_geometry_type() for 'large json' strategy
@springmeyer - we should talk re: validity of this approach. I know the baclground but still.
2015-02-12 15:50:13 +01:00
artemp
e8f397c41c instantiate geojson grammar using chr_iterator_type = char const* - via #2700 2015-02-12 11:51:11 +01:00
Dane Springmeyer
81ef45b06c fixup polygon clipping test build 2015-02-11 23:47:26 -08:00
Dane Springmeyer
58645c7842 json error handler: fix -Wunused-parameter warning 2015-02-11 23:13:59 -08:00
Dane Springmeyer
f562f6e5d4 further validate results of clipping tests 2015-02-11 22:42:31 -08:00
Dane Springmeyer
216d1e9324 adapt clipping benchmark to vertex_adapter interface - refs #2688 2015-02-11 15:53:09 -08:00
Dane Springmeyer
7fbc254673 fix polygon_clipper to work with vertex_adapter 2015-02-11 15:52:36 -08:00
Dane Springmeyer
89a58c5879 Merge branch 'master' of github.com:mapnik/mapnik into release/image_data_any 2015-02-11 10:01:42 -08:00
Dane Springmeyer
30c6cf636c make path replace portable 2015-02-10 23:49:00 -08:00
Dane Springmeyer
7d2b34d654 finish fixing windows build - closes #2698 2015-02-10 19:02:32 -08:00
Dane Springmeyer
8608ea3308 only enable geojson memory mapped files if SHAPE_MEMORY_MAPPED_FILE defined (TODO: rename this define) - refs #2698 2015-02-10 18:50:27 -08:00
Dane Springmeyer
1dc5452c74 msvs 2014 compile fixes 2015-02-10 18:20:08 -08:00
Dane Springmeyer
e475464bc9 bootstrap: no trailing slashes in PROJ_LIB and ICU_DATA 2015-02-10 15:18:47 -08:00
Dane Springmeyer
d08e84794f use curl for nose download 2015-02-10 12:51:22 -08:00
Dane Springmeyer
2042ffd824 avoid need to instanciate expensive svg_path_generator twice 2015-02-10 12:16:01 -08:00
Artem Pavlenko
4e5522756a Merge pull request #2688 from mapnik/vertex_adapter
implement vertex interface in vertex_adapter and make mapnik::geometry_type immutable
2015-02-10 19:09:22 +01:00
artemp
109e104971 Merge branch 'master' into vertex_adapter 2015-02-10 15:13:23 +01:00
Artem Pavlenko
38aff0a2a2 Merge pull request #2697 from mapycz/std-replace
prefer stl over boost
2015-02-10 15:12:41 +01:00
Jiri Drbalek
310011a8b9 prefer stl over boost 2015-02-10 12:46:10 +00:00
Dane Springmeyer
6d611b8e1a cleanup commented code 2015-02-09 23:28:27 -08:00
Dane Springmeyer
41ed56df14 Merge branch 'master' of github.com:mapnik/mapnik into vertex_adapter 2015-02-09 18:16:57 -08:00
Dane Springmeyer
2bc761d99a fixup harfbuzz version check - refs #2694 #2544 2015-02-09 17:52:09 -08:00
Dane Springmeyer
ec2d644f6b Merge pull request #2694 from mapycz/scons-harfbuzz-version
scons: check for harfbuzz version
2015-02-09 17:28:52 -08:00
Dane Springmeyer
59f9d802ed Merge pull request #2696 from mapnik/ogr-extra-meta
Report proj4 string in extra metadata for ogr plugin - refs #2650
2015-02-09 16:30:01 -08:00
Dane Springmeyer
578f8a7c29 report proj4 string in extra metadata for ogr plugin - refs #2650 2015-02-09 15:46:00 -08:00
Dane Springmeyer
0e137cd6ee iwyu 2015-02-09 14:18:15 -08:00
Blake Thompson
d31bf5b171 Updated tests from cast to copy 2015-02-09 13:46:48 -08:00
Dane Springmeyer
56d1818862 Makefile clean: remove duplicate pyc cleanup 2015-02-09 13:20:39 -08:00
Jiri Drbalek
4fcf0ea3e8 scons: check for harfbuzz version 2015-02-09 14:15:22 +00:00
artemp
960794b7a0 fix copyright 2015-02-09 13:47:29 +01:00
artemp
1ecf3f0889 use const ref when iterating over geometries in feature 2015-02-09 13:46:01 +01:00
artemp
146dc1c094 fix copyright 2015-02-09 11:38:08 +01:00
artemp
2ece72658a Merge branch 'master' into vertex_adapter 2015-02-09 10:05:02 +01:00
Artem Pavlenko
827e8a29a4 Merge pull request #2689 from mapycz/prefer-stl
prefer STL implementation
2015-02-09 10:03:59 +01:00
artemp
5e6468f9bf update viewer to use vertex_adapter 2015-02-09 10:01:31 +01:00
Jiri Drbalek
02dff77fff add visual test - marker direction 2015-02-07 12:23:36 +00:00
Jiri Drbalek
1cd5e69b3a add direction property for markers 2015-02-07 12:23:35 +00:00
Jiri Drbalek
87cc1347c7 move normalize_angle to utils 2015-02-07 12:23:17 +00:00
Blake Thompson
6e0d6d423b Merge branch 'master' into release/image_data_any
Conflicts:
	include/mapnik/grid/grid_marker_helpers.hpp
2015-02-06 16:19:40 -06:00
Blake Thompson
9875335fb8 Renamed image_cast to image_copy 2015-02-06 15:27:19 -06:00
artemp
0f22fb596b enforce geometry_type const by removing ``inline geometry_type& get_geometry(std::size_t index)`` 2015-02-06 17:13:41 +01:00
Jiri Drbalek
1bb1653e69 prefer STL implementation 2015-02-06 16:13:31 +00:00
artemp
e19fdad3a6 implement vertex interface in vertex_adapter and make mapnik::geometry_type immutable 2015-02-06 16:45:51 +01:00
Jiri Drbalek
35d6769448 update visual tests - prefer hyphens as word separator in enums 2015-02-06 15:42:43 +00:00
Jiri Drbalek
5418b8ea40 prefer hyphens as word separator for enum values 2015-02-06 15:37:28 +00:00
Even Rouault
7c44b2412e gdal.input: take into account nodata_tolerance in optimized code path
Solves failures of https://travis-ci.org/mapnik/mapnik/jobs/49647112
on tiff-nodata-edge-rgba and tiff-nodata-tolerance tests
2015-02-06 00:41:57 +01:00
Jordan Hollinger
187a42f006 Merge pull request #2680 from mapycz/rm-grid_marker_helpers
remove redundant header
2015-02-05 17:01:36 -05:00
Even Rouault
efdca26f2d gdal.input: optimize nodata handling in RGB case
When the data type is Byte, instead of reading a first time
the red band to deduce the value of the alpha component of
the output image, read the RGB bands first.
2015-02-05 20:38:27 +01:00
Even Rouault
073bad21c0 gdal.input: use GDALDataset::RasterIO() to read RGB sources
Enabled when the R,G,B channels are bands 1, 2 and 3
And also read the alpha channel at the same time, if it is band 4
2015-02-05 20:33:52 +01:00
Blake Thompson
04d51d3696 Another small change hopefully to fix linux build isssues. 2015-02-04 21:19:59 -06:00
Blake Thompson
5966b12973 Small changes to hopefully fix compile issues on linux 2015-02-04 20:48:59 -06:00
Blake Thompson
06ef081282 Another set of fixes for the compare SSE code, added test where it was failing 2015-02-04 18:26:18 -06:00
Blake Thompson
c0fcf48019 Fixed issues with SSE compare when the threshold is greater then zero. Added several new SSE methods for unsigned integers. 2015-02-04 17:46:18 -06:00
Blake Thompson
ffb34544e6 Merge branch 'master' into release/image_data_any 2015-02-04 15:46:54 -06:00
Blake Thompson
2b8bd59d82 A large set of updates:
* Added new gray data types adding those to the variants and updating all the code necessary for them
* Added basic SSE to the image compare method, (only for RGBA) must be enabled with the -DSSE_MATH flag this is not yet put into the build process in any location.
* Fixed the resulting image for some TIFF visual tests, most likely they were incorrect due to fixes in TIFF reader
* Added some MAPNIK_DECL where necessary to grid rendering.
* Added support for more data types in GDAL plugin with grayscale images.
* Added views for all the new gray data types
* Updated python bindings for new gray data types.

Ref #2681
2015-02-04 15:41:58 -06:00
artemp
8faf04663c update tests/python_tests/geojson_plugin_test.py 2015-02-04 18:34:53 +01:00
artemp
3331368e05 amend test 2015-02-04 18:29:03 +01:00
artemp
ae9eafa2c1 allow "stringified" nested objects and arrays as feature property 2015-02-04 18:28:47 +01:00
Jiri Drbalek
f38ee06224 remove redundant header 2015-02-04 14:46:17 +00:00
Jiri Drbalek
e14fc117fd Merge pull request #2652 from mapycz/add-text-upright-auto-down
add text upright auto-down
2015-02-04 07:44:27 +01:00
Jiri Drbalek
56adb32701 add visual test - text upright 2015-02-03 16:32:23 +00:00
Jiri Drbalek
1fcbdc3e98 add upright value auto-down 2015-02-03 16:08:36 +00:00
artemp
eec661d263 geojson plugin
* use parse_geojson(Iterator start, Iterator end) signiture
* use Iterator = char const*
* remove unneeded I/O in 'initialise_index'
* use memory mapped file (currently #if/def)
2015-02-03 13:37:49 +01:00
artemp
9f282af61a json - instantiate grammars using Iterator = char const* to avoid potentially expensive std::string allocations 2015-02-03 13:37:39 +01:00
Dane Springmeyer
0e017be98d merge with master + fixups 2015-02-03 00:38:55 -08:00
Dane Springmeyer
71e7faed0d Merge branch 'master' of github.com:mapnik/mapnik into release/image_data_any
Conflicts:
	tests/python_tests/image_test.py
	tests/python_tests/image_tiff_test.py
	tests/visual_tests/images/tiff-opaque-edge-raster2-600-400-1.0-agg-reference.png
	tests/visual_tests/images/tiff-opaque-edge-raster2-600-400-2.0-agg-reference.png
2015-02-03 00:05:15 -08:00
Dane Springmeyer
192f62ecbf turn off default debug prints 2015-02-02 22:57:16 -08:00
Dane Springmeyer
5551cae0be cache GDALDataset object for re-use 2015-02-02 22:50:17 -08:00
Dane Springmeyer
a60a3855a1 travis cleanups 2015-02-02 22:09:03 -08:00
Dane Springmeyer
047a27925f bootstrap cleanups 2015-02-02 22:08:52 -08:00
Dane Springmeyer
cf38337121 Merge pull request #2676 from mapnik/pycairo
Build and test against pycairo - refs #2675
2015-02-02 21:31:41 -08:00
Dane Springmeyer
d915e1e634 update a few more visual tests 2015-02-02 21:26:09 -08:00
Dane Springmeyer
8670655012 build and test against pycairo - refs #2675 2015-02-02 20:30:59 -08:00
Dane Springmeyer
3e43c692cc update visual test images after #2671 2015-02-02 20:23:45 -08:00
Dane Springmeyer
d9e49fd09a tests: support regenerating test images in more python tests 2015-02-02 19:00:09 -08:00
Dane Springmeyer
f0b0ee3e7e scons: collect pycairo flags at configure time 2015-02-02 18:59:29 -08:00
Dane Springmeyer
8d956f3018 add @flippmoke to authors in alpha order 2015-02-02 14:11:57 -08:00
Dane Springmeyer
09914584ea Add @sarametz to authors - refs #2671 2015-02-02 14:10:24 -08:00
Dane Springmeyer
c361e538f7 Merge pull request #2671 from sarametz/png8_encoding_bug
Png8 encoding bug
2015-02-02 14:08:05 -08:00
Dane Springmeyer
8cccb3a027 Merge pull request #2674 from mapnik/kurdish-text-visual-test
Kurdish text visual test
2015-02-02 11:35:35 -08:00
Dane Springmeyer
625a37ed12 test both geojson.input and ogr.input - refs #2666 2015-02-02 10:58:03 -08:00
Dane Springmeyer
33a7bbb4e1 Merge branch 'master' of github.com:mapnik/mapnik into kurdish-text-visual-test 2015-02-02 10:54:20 -08:00
Dane Springmeyer
074b1e2836 cleanup commented code after 89e516b493 2015-02-02 10:46:20 -08:00
Dane Springmeyer
8dd20e9d3c add back os import 2015-02-02 10:46:12 -08:00
Dane Springmeyer
956d936162 fix pep8 linter command + update a few linted files 2015-02-02 10:38:08 -08:00
Dane Springmeyer
7d78115886 pyflakes driven python file cleanup 2015-02-02 10:38:08 -08:00
Dane Springmeyer
0f3bffde24 add benchmark, remove custom PREFIX 2015-02-02 10:38:08 -08:00
Dane Springmeyer
0d6c10a2fa fix gamma misuage in image_encoding_speed_test 2015-02-02 10:38:08 -08:00
Dane Springmeyer
851597f3f0 add visual test for reading GeoJSON GeometryCollection 2015-02-02 10:38:08 -08:00
Dane Springmeyer
a67e0dec12 python test cleanup 2015-02-02 10:38:08 -08:00
Dane Springmeyer
21862d57c0 re-enable webp tests + update expected images after #2662 2015-02-02 10:38:08 -08:00
artemp
d5ff3f5f2c fix bbox extractor 2015-02-02 18:44:56 +01:00
artemp
89e516b493 unicode string grammar via boost/libs/spirit/example/qi/json/json/parser/grammar.hpp
update json based grammars
2015-02-02 11:22:54 +01:00
Dane Springmeyer
5ebdbe5703 bootstrap: update sqlite 2015-01-29 22:45:46 -08:00
Dane Springmeyer
dab31989c5 bootstrap: use libpng 1.6.16 2015-01-29 22:03:23 -08:00
Blake Thompson
5a4f9321d0 A few updates to attempt to fix pixel getting and setting 2015-01-29 16:10:56 -07:00
Sara Metz
f38d2ee69b Fixes bugs that cause tests in PR #2599 to fail 2015-01-30 10:40:50 +13:00
Dane Springmeyer
6004fd2c93 Merge pull request #2669 from mapycz/fix-gcc-compile
fix gcc compile
2015-01-29 13:26:28 -08:00
Robert Coup
44500b9a71 Test for 2px png8 encoding bug (hextree & octree) 2015-01-30 10:15:10 +13:00
Jiri Drbalek
711fc8ccf2 fix gcc compile 2015-01-29 20:50:37 +00:00
Blake Thompson
826e13f911 Renamed background to fill, added numeric casting to fill utility, changed clog uses to MAPNIK_LOG, changed the implementation of fill some so that it only used a single template 2015-01-29 13:27:42 -07:00
Dane Springmeyer
b13dfaf644 amend 89b3e108e6 by fixing image size to be square 2015-01-29 10:24:40 -08:00
Dane Springmeyer
89b3e108e6 add testcase for kurdish language - refs #2666 2015-01-29 10:19:15 -08:00
Dane Springmeyer
f300b9f777 bootstrap: simplify mason setup 2015-01-29 09:09:43 -08:00
artemp
e3c96666c4 json - make feature_collection_grammar "on-feature" callback based 2015-01-29 12:33:18 +01:00
Blake Thompson
de99180a44 Added new image_cast method and added its bindings to python, added two new properities to images: offset and scaling. Added way to cast between image types with offset and scaling. Added new unit tests for color and casting. Made it so that pixel setting doesn't result in overflows or underflows. Made the return of get_pixel, dynamic based on what is passed to it. Added new methods for setting pixels that are doubles and ints. 2015-01-28 20:20:14 -06:00
Dane Springmeyer
4b3f69e851 #2651 is fixed, remove workaround in postgis plugin 2015-01-28 18:18:09 -08:00
Dane Springmeyer
c433dbcd68 bootstrap cleanups 2015-01-28 17:59:01 -08:00
artemp
0d62e0f83c link to Oracle client library (libclntsh) to avoid missing symbols - ref #2659 2015-01-28 13:07:03 +01:00
artemp
610f01bd0b update params_test - #2651 2015-01-28 12:56:10 +01:00
artemp
1f3e36c3ec use perfect forwarding to resolve copy/move semantics of universal references - #2651 2015-01-28 12:55:57 +01:00
Dane Springmeyer
1753d0ab47 require boost >= 1.56 for geojson/topojson plugins 2015-01-27 22:20:03 -08:00
Dane Springmeyer
f8523ef728 scons: hack to make sure makefile pre-build does not break if grid renderer is not enabled 2015-01-27 22:18:25 -08:00
Dane Springmeyer
4e5fa8490a scons: hack to make sure makefile pre-build does not break if grid or cairo renderers are not enabled 2015-01-27 22:17:30 -08:00
Dane Springmeyer
cbb364085f move aside variant io 2015-01-27 21:52:05 -08:00
artemp
cf16f5e6c9 move operator<< into separate header <mapnik/util/variant_io.hpp> 2015-01-27 21:42:35 -08:00
Dane Springmeyer
1c4799f680 remove stray remains of large_geojson plugin (now part of geojson plugin formally) 2015-01-27 18:16:56 -08:00
Dane Springmeyer
b80ae5740a Merge pull request #2665 from mapnik/double-jobs
Double jobs
2015-01-27 18:12:57 -08:00
Dane Springmeyer
60d219a2aa makefile pre-build: fix target names 2015-01-27 16:22:40 -08:00
Dane Springmeyer
8d233becdc build process_group_symbolizer.cpp first along with markers 2015-01-27 15:54:36 -08:00
Dane Springmeyer
939e53e70b python: fix compile when cairo is enabled but not pycairo 2015-01-27 15:33:58 -08:00
Dane Springmeyer
0ec4d3101c travis: try doubling jobs 2015-01-27 15:21:40 -08:00
Dane Springmeyer
dfb6116786 Merge branch 'master' of github.com:mapnik/mapnik into release/image_data_any
Conflicts:
	tests/python_tests/pgraster_test.py
2015-01-27 15:19:12 -08:00
Blake Thompson
dc931555d2 Added required include 2015-01-27 17:18:20 -06:00
Robert Coup
93f67f9bc9 Merge pull request #2657 from rcoup/antimeridian-box-projection-2648
Handle bounds reprojections which cross the anti-meridian. Fixes #2648
2015-01-28 11:44:50 +13:00
Dane Springmeyer
d38b3bb2cf respect alpha in cairo comparisons (reasons for ignoring it once no longer apply - refs #2662) 2015-01-27 14:38:38 -08:00
Dane Springmeyer
6d5e2b1865 add support for UPDATE=1 to update visual tests (whether failing or not) 2015-01-27 14:29:48 -08:00
Robert Coup
65ef3bc625 Handle bounds reprojections which cross the anti-meridian. #2648
When doing an envelope-points reprojection to a geographic CS, check
the points stay in clockwise order. Otherwise expand the resulting bounds
to include the world.

Includes visual test. Cairo tests aren't finding differences, but the renderer
is doing the right thing.
2015-01-28 11:18:16 +13:00
Dane Springmeyer
3d68084b88 bootstrap: add cairo / cleanup variables in config 2015-01-27 14:12:18 -08:00
Blake Thompson
bc28c12572 Found more situations where getRowSize should be used over multiplying the width by the pixel size. 2015-01-27 15:29:43 -06:00
Dane Springmeyer
835f34c976 Merge pull request #2664 from mapnik/zero-visual-pixel-threshold
drop pixel threshold to 0 - refs #2662 and #2663
2015-01-27 13:23:04 -08:00
Dane Springmeyer
584ca5d92f drop pixel threshold to 0 - refs #2662 and #2663 2015-01-27 12:26:28 -08:00
Dane Springmeyer
4e57be6b86 Merge pull request #2663 from mapnik/low-visual-test-thresholds
try zero thresholds for visual tests - refs #2662
2015-01-27 11:58:31 -08:00
Dane Springmeyer
44ceb77438 try zero thresholds for visual tests - refs #2662 2015-01-27 11:28:33 -08:00
Blake Thompson
b090882902 Added compare utility to python bindings and image_util, modified set_grayscale_to_alpha to take a color optionally. 2015-01-27 11:41:05 -06:00
Dane Springmeyer
eb598f4435 bootstrap: avoid need for bash 4.x 2015-01-26 23:38:22 -08:00
Dane Springmeyer
1b771593b5 travis: fix bash syntax 2015-01-26 23:07:44 -08:00
Dane Springmeyer
ca59ed1cd6 travis/osx: put bash on PATH 2015-01-26 23:02:04 -08:00
Dane Springmeyer
dbea56621f travis: upgrade bash on osx / restore make 2015-01-26 22:53:34 -08:00
Dane Springmeyer
8c7a9aed18 travis: postgres is not viable on osx 2015-01-26 22:47:58 -08:00
Dane Springmeyer
b9ef27c221 travis: re-expand matrix 2015-01-26 22:39:52 -08:00
Dane Springmeyer
7d8be57d81 visual tests coming soon via image_data_any branch - for now remove failing pgraster tests - refs #2639 2015-01-26 22:36:38 -08:00
Dane Springmeyer
5de637854d comment params test for now to get travis green - refs #2651 2015-01-26 22:35:36 -08:00
Dane Springmeyer
d94f5a0cee get pgraster tests passing again + update expected images - refs #2639 2015-01-26 22:14:38 -08:00
Dane Springmeyer
c8f70d3260 embed help text labeling expected vs actual for side-by-side images 2015-01-26 21:58:27 -08:00
Dane Springmeyer
fa17f0bdb0 actually src needs to be non-const 2015-01-26 21:44:25 -08:00
Dane Springmeyer
ebfbbef454 add visual tests for pgraster to try to make sense of failures 2015-01-26 21:36:47 -08:00
Dane Springmeyer
921c058d7d use image.blend is gone so use image.composite 2015-01-26 21:35:35 -08:00
Dane Springmeyer
84b5194130 image.composite: source should be immutable 2015-01-26 21:35:02 -08:00
Dane Springmeyer
48982c0619 Merge branch 'master' of github.com:mapnik/mapnik into release/image_data_any
Conflicts:
	tests/python_tests/image_tiff_test.py
2015-01-26 20:09:00 -08:00
Dane Springmeyer
3047b53ef1 bootstrap: update mason deps 2015-01-26 17:14:42 -08:00
Dane Springmeyer
f176630fcf remove invalid tests - will be fixed by proper tests coming via image_any branch from @flippmoke 2015-01-26 16:52:31 -08:00
Dane Springmeyer
89118c2fcb tiff_reader: only gaurd against over-allocation at read time 2015-01-26 16:33:30 -08:00
artemp
2a50372d25 use correct grammar instantiation 2015-01-26 12:51:34 +01:00
artemp
a1c562c6fc cleanup 2015-01-26 12:51:10 +01:00
artemp
c99cb19643 Merge branch 'large-geojson' 2015-01-26 11:39:35 +01:00
artemp
cc47bfd7fa extract attributes schema + remove std::cerr 2015-01-26 11:09:06 +01:00
artemp
2a3af1eb40 move boost.geometry <-- mapnik::box2d<double> into separate header for better modularity and code re-use 2015-01-26 10:37:09 +01:00
artemp
1263bc9c2e merge large geojson plug-in into geojson.input 2015-01-26 10:19:18 +01:00
artemp
44905ffc43 geojson.input - use adapted box2d<double> as box_type + make spatial index compatible with large_geojson 2015-01-26 09:42:06 +01:00
artemp
d45b9db86e remove unused include directives 2015-01-26 09:41:20 +01:00
artemp
2f42cb91cc Merge branch 'master' into large-geojson 2015-01-26 09:16:06 +01:00
Blake Thompson
31a0caf2e4 Merge branch 'master' into release/image_data_any 2015-01-25 14:09:29 -06:00
Blake Thompson
997da1e630 Fix for benchmark 2015-01-24 21:29:50 -06:00
Blake Thompson
f616367ac2 Including std library that was missing. 2015-01-24 21:16:36 -06:00
Blake Thompson
64ed541f88 Merge pull request #2653 from mapnik/bugfix/tiff_io
Bugfix/tiff io
2015-01-24 21:04:39 -06:00
Blake Thompson
5d9f047002 Fixed some issues in color and bindings where you could create a color and premultiplied was not set and it was resulting in it being assigned randomly, causing some issues at runtime.
Updated some images in visual tests that were orginally set prior to all tiffs being premultiplied, this was causing a slight difference in a few pixels.

Updated the tiff tests a lot.

Fixed tiff reader so that it always considers everything read from RGB or RGBA as premultiplied. This is due to the fact that RGBA reader always premultiplies the alpha no matter its original form.

Put in a fix so that the file does not exist no longer shows up in the test running.

Fixed some failing tests in the c++ test due to tiffs now always being premultiplied for RGB(A)
2015-01-24 20:48:15 -06:00
Dane Springmeyer
8d6b70ea70 bootstrap: split build time and runtime settings 2015-01-24 10:18:32 -08:00
Dane Springmeyer
80a141da78 config.py generation fixups 2015-01-24 10:10:07 -08:00
Dane Springmeyer
c69b4b1151 fix mason dir check 2015-01-24 10:07:26 -08:00
Dane Springmeyer
3e8b701194 bootstrap cleanups 2015-01-24 10:05:58 -08:00
Dane Springmeyer
93570f820a mason bootstrap: expat and sqlite_rtree fixes 2015-01-24 08:51:16 -08:00
Dane Springmeyer
d930265467 mason bootstrap: ensure clang finds correct gcc-4.8 lib 2015-01-24 08:42:05 -08:00
Dane Springmeyer
2652649ea0 scons: fix sqlite_rtree linux configure test in absence of pkg-config 2015-01-24 08:41:06 -08:00
Dane Springmeyer
e26132cf9f travis cleanup 2015-01-23 23:51:54 -08:00
Dane Springmeyer
6344b24193 travis: disable benchmarks, install nose 2015-01-23 23:29:24 -08:00
Dane Springmeyer
1a28cf763f use clang 2015-01-23 23:05:41 -08:00
Dane Springmeyer
3ba834109a debug configure fail 2015-01-23 23:01:08 -08:00
Dane Springmeyer
be1690d5c7 try sudoless clang upgrade 2015-01-23 22:57:45 -08:00
Dane Springmeyer
bdc49e2adb fix mason setup 2015-01-23 21:44:32 -08:00
Dane Springmeyer
03192c5f2a fix bash syntax 2015-01-23 20:42:03 -08:00
Blake Thompson
a100b2fe1f Fixed the issues associated with TIFFs, now they always will return as premultiplied in the event they are rgba8 due to the way that the TIFF reader operates. Also added premultiply as a flag inside color class and exposed many of its components, made it so that setting and getting pixels took into consideration the state of the color and the image when dealing with the two. 2015-01-23 18:08:59 -06:00
Dane Springmeyer
e53f4e8637 sudoless 2015-01-23 14:21:54 -08:00
Dane Springmeyer
34b685db40 travis: try bootstraping deps with mason 2015-01-23 14:04:41 -08:00
artemp
7f0e77d172 Merge branch 'master' into large-geojson 2015-01-23 18:12:33 +01:00
Dane Springmeyer
6ab91b2300 allow manually passing lib/include paths for libxml2 and freetype 2015-01-23 09:12:11 -08:00
Dane Springmeyer
ec111c8a27 add extra metadata to lyr desc + use for srid/keyfield in postgis - closes #2650 2015-01-22 18:44:56 -08:00
Blake Thompson
490645d2e3 Perhaps a solution to TIFF IO problems 2015-01-22 20:36:45 -06:00
Dane Springmeyer
fcdc826294 Add (currently failing) test for #2651 2015-01-22 18:25:37 -08:00
Dane Springmeyer
faddf1a615 fix compile of rasterlite plugin 2015-01-22 15:59:01 -08:00
Dane Springmeyer
4a1f4a9b5e Use geometry_table_ rather than table_ for SRID lookup
- this will result in a faster query in the case that
   the user provides an explicit geometry_table option
2015-01-22 15:55:30 -08:00
Blake Thompson
51172c8fdf Move image_data.hpp to image.hpp and renamed most everything from image_data to image alone. This might lead to the need to clean up some variables that are currently named image through out the code at some time, but I think in the long term is much better as image is a better name for the base class. 2015-01-22 11:39:37 -06:00
Blake Thompson
e353225772 Modified the name of image_data_null to image_null. 2015-01-22 10:58:01 -06:00
artemp
58f770bf85 support BOOST_VERSION < 105600 2015-01-22 16:34:28 +01:00
artemp
e42d0deb61 correct types usage 2015-01-22 16:23:44 +01:00
artemp
2b82157127 cleanup 2015-01-22 16:21:01 +01:00
artemp
669d369e30 Merge branch 'master' into large-geojson 2015-01-22 16:12:14 +01:00
Blake Thompson
e01ce5b7d6 Changed image_data_gray* to image_gray* Ref #2633. 2015-01-21 21:08:04 -06:00
Blake Thompson
22a384ef33 Moved image_data_rgba8 to image_rgba8. Ref #2633 2015-01-21 20:31:02 -06:00
Blake Thompson
e4a5424613 Merge branch 'release/image_data_any' of github.com:mapnik/mapnik into release/image_data_any 2015-01-21 19:40:23 -06:00
Blake Thompson
0f388ed68f Changed the name of image_data_any to image_any. Moved header file for image_data_any to image_any. Ref #2633 2015-01-21 19:40:12 -06:00
Dane Springmeyer
82bc43c76f fix stray include of graphics.hpp 2015-01-21 16:32:31 -08:00
Blake Thompson
93f835177b Removed all the code for the previous type of image and image_32. Ref #2633 2015-01-21 17:57:16 -06:00
Blake Thompson
b57b1c12d6 Some smaller fixes that cause the proper operator to be called in visitor_create_marker. All tests now passing. Ref #2633 2015-01-21 17:09:53 -06:00
Dane Springmeyer
d6175adb1a Update README.md 2015-01-21 14:28:12 -08:00
Dane Springmeyer
df9613369e temp fix: copy rather than move image_data inside marker to avoid mutating marker 2015-01-20 20:38:22 -08:00
Dane Springmeyer
4856886284 fix compile of rundemo.cpp 2015-01-20 19:37:31 -08:00
Blake Thompson
9fda26f859 Merge branch 'release/image_data_any' of github.com:mapnik/mapnik into release/image_data_any 2015-01-20 18:33:50 -06:00
Blake Thompson
badb0c9a97 This is a complete removal of code that utilizes image_32 in the library. It is a sweeping change that does some of the following:
* Changes all agg_renderers to use a image_data_any variant (only image_data_rgba8 is implemented currently)
* Changes the marker and marker_cache to use image_data_any images
* Changes the symbolizers so that they must be aware of the source data type they are attempting to render and the render type that is expected to be rendered into.
* Moves many utilities into image_utils, that were previously in image_32.

The kicker is that this still isn't working perfectly yet, but I am commiting so I don't have tears in case everything is lost on my computer.

Ref #2633
2015-01-20 18:30:10 -06:00
Dane Springmeyer
97869f7dc1 minor include cleanup for image_utils 2015-01-20 09:06:21 -08:00
Blake Thompson
2439f1b298 A whole lot of changes. #Ref 2633 2015-01-20 10:48:33 -06:00
artemp
5a7a285216 extraxt_bounding_box_grammar - add generic json support to deal with arbitary key:value's in GeoJSON 2015-01-20 12:05:35 +01:00
artemp
9ba25cefe4 large_geojson - use 'C' style I/O for performance 2015-01-20 11:30:27 +01:00
artemp
9a74a55dd6 formatting 2015-01-20 11:29:58 +01:00
artemp
85cacfe378 use vector<char> as a buffer 2015-01-20 10:36:34 +01:00
artemp
bfe1d63ea0 debug : print total extent 2015-01-19 22:06:24 +01:00
artemp
a408a84fb0 ignore invalid bounding boxes from "geometry": null 2015-01-19 22:04:21 +01:00
artemp
1f693b8fa2 larger_geojson - store {offset, size} in spatial index and remove multi_pass requirement
TODO: try std::fread instead of ifstream, use std::vector<uint8_t> instead of std::string
2015-01-19 18:10:59 +01:00
artemp
15a83ff54d extract bounding boxes from GeoJSON - re-implement grammar to store offset and size of "Feature" elements 2015-01-19 18:09:23 +01:00
Blake Thompson
aa03cf4f7c Implemented a new get_pixel method to go along with the set_pixel method in image_util. Ref #2633 2015-01-16 22:15:33 -06:00
Blake Thompson
a002139e18 Added set_pixel to visitor pattern and moved it to image_util. Added exception throwing in composite only if debug flags are on.
Ref #2633
2015-01-16 18:26:56 -06:00
Blake Thompson
1470bea9cb Migrated composite_pixel out of image_32, it is now in image_utils. Ref #2633 2015-01-16 16:48:43 -06:00
Blake Thompson
0b2c4e57cf Merge_rectangle has met the wood chipper. Ref #2633 2015-01-16 16:04:02 -06:00
Blake Thompson
a7b8ca2888 Moved set_rectangle out of image_32 into image_util.
Ref #2633
2015-01-16 15:36:53 -06:00
Blake Thompson
35be6117c8 Merge branch 'master' into release/image_data_any 2015-01-16 13:09:25 -06:00
Blake Thompson
aebb6fee58 Removed the background and set/get background from image_32 class. Removed clear method from image_32. Added new fill method for image_data_any, that allows many generic types to fill an image.
Ref #2633
2015-01-16 13:06:52 -06:00
artemp
f50a34d1b8 use boost::spirit::iterator_policies::first_owner in multi_pass 2015-01-16 17:54:04 +01:00
artemp
da02dc40c2 sort index array by offsets 2015-01-16 17:19:59 +01:00
artemp
b15224af1b add <iomanip> for std::setprecision 2015-01-16 17:19:17 +01:00
artemp
0c280b5066 reduce verbosity 2015-01-16 16:41:38 +01:00
artemp
da960fea33 use std::advance to work with std::iterators 2015-01-16 16:40:28 +01:00
artemp
b6cd3b37ef store {bbox, offset} to match boost.geometry rtree instantiation 2015-01-16 16:24:31 +01:00
artemp
788fd8c80b large_geojson.input - initial implementation 2015-01-16 16:22:46 +01:00
artemp
8b19793dc8 fix grammar (use iter_pos parser instead of hacking raw[] directive) + cleanups 2015-01-16 10:05:02 +01:00
artemp
785cf5c09f extract_bounding_box grammar initial impl 2015-01-16 09:48:57 +01:00
Blake Thompson
ff019cbe28 Merge pull request #2645 from mapnik/feature/set_alpha_move
Moved set_alpha to src/image_util.cpp and out of image_32. Added a boole...
2015-01-15 21:06:06 -06:00
Blake Thompson
5bc83eee49 Added a new test for set_color_to_alpha 2015-01-15 21:03:42 -06:00
Blake Thompson
33ccc12355 Moved set_color_to_alpha and set_grayscale_to_alpha to image_util.
Ref # 2633
2015-01-15 20:26:20 -06:00
Blake Thompson
3b1c99ff1b Moved set_alpha to src/image_util.cpp and out of image_32. Added a boolean response to premultiply_alpha and demultiply_alpha so that if it is changed in set_alpha and other locations like the python bindings for composite that the image can be restored to its original state. Removed blend from python bindings.
Ref #2633
2015-01-15 17:57:21 -06:00
Blake Thompson
c74df56200 Merge pull request #2643 from mapnik/feature/blend_cleanup
Removed the set_rectangle_alpha code from image_32. Added new blend usin...
2015-01-15 15:11:44 -06:00
Blake Thompson
1f540b42c6 Removed the set_rectangle_alpha code from image_32. Added new blend using composite to python bindings to replace it by doing src_over with composite.
Ref #2633
2015-01-15 13:01:32 -06:00
Blake Thompson
58f5812425 Merge pull request #2637 from mapnik/feature/is_solid_move
is_solid to image_util
2015-01-15 11:17:11 -06:00
Blake Thompson
4d3145991d Removed some commented out code in src/image.cpp 2015-01-15 11:00:58 -06:00
Blake Thompson
0a1a0b405b Merge branch 'feature/is_solid_move' of github.com:mapnik/mapnik into feature/is_solid_move
Conflicts:
	include/mapnik/image_util.hpp
2015-01-15 11:00:40 -06:00
Blake Thompson
73d9c60168 Small fix for is solid to work with image_view_any and image_data_any properly. 2015-01-15 10:53:21 -06:00
Dane Springmeyer
cf646030f3 move is_solid to hpp for now to avoid linking errors 2015-01-15 10:21:11 -06:00
Dane Springmeyer
61bc705117 fix linking error with saving image 2015-01-15 10:14:01 -06:00
Dane Springmeyer
40c1649b0e fix is_solid return 2015-01-15 10:14:00 -06:00
Blake Thompson
7ce7416999 Added is_solid to image_utils. It is currently built to support the eventual use of image_view_any and image_data_any, but for a limited time supports the passing of image_view_rgba8 and image_data_rgba8.
Ref #2633
2015-01-15 10:14:00 -06:00
Dane Springmeyer
508521d5e5 move is_solid to hpp for now to avoid linking errors 2015-01-14 21:20:15 -08:00
Dane Springmeyer
d0d899a9dd fix linking error with saving image 2015-01-14 21:19:45 -08:00
Dane Springmeyer
e03739e316 fix is_solid return 2015-01-14 21:10:39 -08:00
Dane Springmeyer
7d2db67cf3 Merge pull request #2640 from mapnik/feature/premultiply_demultiply_move
Feature/premultiply demultiply move
2015-01-14 21:04:43 -08:00
Dane Springmeyer
364fb4961b fix handling of premultiplied pixels during rendering 2015-01-14 21:04:05 -08:00
Dane Springmeyer
1f25bae0f4 fix compile of svg2png 2015-01-14 21:03:35 -08:00
Dane Springmeyer
39d8d65343 Merge pull request #2642 from mapnik/group-markers
Support MarkersSymbolizer in GroupSymbolizer
2015-01-14 18:58:27 -08:00
Dane Springmeyer
b55d5def0d sync with latest master/3.x 2015-01-14 18:35:40 -08:00
Blake Thompson
202a0e8e5f Added a lot of premultiply_alpha functions to attempt to have proper premultiplication of data prior to compositing. There still seem to be some errors in the resulting images, but I am not quite sure what they are yet. 2015-01-14 18:29:00 -06:00
Blake Thompson
42c7d7ddf2 Merge branch 'release/image_data_any' into feature/premultiply_demultiply_move 2015-01-14 15:37:06 -06:00
Blake Thompson
03440c0108 Merge branch 'master' into release/image_data_any 2015-01-14 15:36:03 -06:00
Blake Thompson
cbc76f7361 Some minor corrections to allow for the source to build properly with out linking errors with vis to hidden. 2015-01-14 15:24:16 -06:00
Blake Thompson
4184f75011 Moved premultiply and demultiply out of image_32 and other parts of the code. The image_data object is now responsible for keeping track of its own premultiplied_alpha status. Created a new utility method in image_util to preform premultiplication.
Added visitor pattern to several different methods as well to prepare for image_data_any including compositing.

Ref #2633
2015-01-14 12:42:30 -06:00
Blake Thompson
e04b0617e7 Added myself to authors
What a self promoting bastard.
2015-01-13 13:34:03 -06:00
Blake Thompson
4b25c755a7 Added is_solid to image_utils. It is currently built to support the eventual use of image_view_any and image_data_any, but for a limited time supports the passing of image_view_rgba8 and image_data_rgba8.
Ref #2633
2015-01-13 11:43:20 -06:00
artemp
8063fa0f5e viewer - use new image APIs and fix compilation 2015-01-13 11:46:20 +01:00
artemp
c2bba2b622 fix noncopyable usage 2015-01-13 11:45:07 +01:00
artemp
235326c8db image_32 : add image_32(image_data_rgba8 &&) ctor 2015-01-13 11:44:24 +01:00
Dane Springmeyer
056feb4daa add text-transform:reverse + full test coverage for text-transform uppercase/lowercase/capitalize - closes #2634 2015-01-12 15:38:21 -08:00
Blake Thompson
f58f65ee4c Merge branch 'master' into release/image_data_any 2015-01-12 15:07:00 -06:00
Blake Thompson
2379c396c3 Removed unrequired save_as_jpeg in image_util.hpp 2015-01-12 15:06:39 -06:00
Blake Thompson
7a16ebe7fa Merge remote-tracking branch 'origin/image' into release/image_data_any 2015-01-12 14:51:08 -06:00
Dane Springmeyer
248c8a79c2 enable rasterlite error again, accidentally disabled in 62dbfea 2015-01-09 16:13:57 -08:00
Dane Springmeyer
62dbfeaa28 fix rasterlite plugin + add visual test - closes #2630 2015-01-09 16:13:04 -08:00
Dane Springmeyer
ac04512bb5 fix rasterlite linking when deps are static libs 2015-01-09 15:37:45 -08:00
Dane Springmeyer
6580ff784f add unit tests for rasterlite plugin 2015-01-09 15:36:41 -08:00
Blake Thompson
d7f758e073 Undo change to localize 2015-01-09 16:51:04 -05:00
Blake Thompson
42ee4ec90d Moved cairo out of the image_util.*pp files and now have created a cairo_io.*pp files.
Ref #2622
2015-01-09 16:49:31 -05:00
Dane Springmeyer
34743bfe27 Merge pull request #2632 from mapnik/better-svg-marker-overrides
Amend/partially revert #2609
2015-01-09 13:37:44 -08:00
Dane Springmeyer
c7bb16fcd9 amend/partially revert #2609 2015-01-09 12:11:41 -08:00
Dane Springmeyer
014af51d95 repack svg::path_attributes - drops 387 -> 376 (then 360 with gradient packing) - refs #2631 2015-01-09 11:56:52 -08:00
Dane Springmeyer
2a5dd5e924 pack mapnik::gradient to save 8 bytes (128 -> 120) - refs #2631 2015-01-09 11:43:17 -08:00
Dane Springmeyer
bfb0878147 add to map deprecations tests 2015-01-09 10:59:18 -08:00
Dane Springmeyer
32586c6462 add test ensuring we can still parse deprecated styling properties 2015-01-09 10:48:50 -08:00
Dane Springmeyer
ad3e214beb stop using deprecated marker-type in visual tests 2015-01-09 10:26:20 -08:00
Blake Thompson
b2118b6c2e Merge branch 'master' into bugfix/image_util_impl 2015-01-09 11:00:42 -05:00
Dane Springmeyer
879e9d517b test coverage for #827 / 52d0e3e6 2015-01-08 18:01:43 -08:00
Dane Springmeyer
a96cf38a33 fix compile of new cxx tests if tiff is not available - closes #2625 2015-01-08 17:44:41 -08:00
Dane Springmeyer
2747fd5329 fix python bindings after #2629 2015-01-08 17:38:22 -08:00
Blake Thompson
b05e6b8c51 Merge branch 'master' into bugfix/image_util_impl 2015-01-08 20:25:53 -05:00
Blake Thompson
08c675e1a4 Merge branch 'master' into bugfix/image_util_impl
Conflicts:
	include/mapnik/image_view.hpp
	src/image_util.cpp
2015-01-08 20:25:15 -05:00
Dane Springmeyer
049be27b1e fix compile when building against pycairo headers 2015-01-08 16:35:55 -08:00
Blake Thompson
094d0ec3e1 Another large set of modifications, finally allow this branch to build. Mostly modifications to the image_util_* files. Different processing based on the image type is now possible, and save_to_stream now could possibly accept grayscale with out breaking existing code. 2015-01-08 19:31:14 -05:00
Dane Springmeyer
b263b7993e Merge pull request #2629 from mapnik/less_image_32
Less image_32
2015-01-08 14:49:45 -08:00
Blake Thompson
035557450d Split out the process for tiff, webp, and jpeg into their own util folders. Added the intial concepts for an image_view_any variant. 2015-01-08 16:55:51 -05:00
Dane Springmeyer
d22ad11b09 remove unneeded image_32 signatures for save_to_string/file after fbecd5f 2015-01-08 13:55:25 -08:00
Dane Springmeyer
fbecd5ff33 always pass image_data to save_to_string/file 2015-01-08 13:54:43 -08:00
Dane Springmeyer
96cff81f57 restore compile of map_request_test (asserts still disabled - refs #2575) 2015-01-08 13:52:55 -08:00
Dane Springmeyer
acb3bb0821 trim down image_32 - refs #2627 2015-01-08 13:16:32 -08:00
Dane Springmeyer
e4cb1b33a0 remove getData and getBytes on image_view (they are unused) - refs #2627 2015-01-08 10:52:40 -08:00
Dane Springmeyer
63ccb4c36c remove try/except around 'import mapnik' which is more trouble than help 2015-01-08 10:32:24 -08:00
Blake Thompson
472e41966d Added new scaling trait for image_32 as it is a part of image_data_any 2015-01-08 11:52:44 -05:00
Blake Thompson
81ef4225ac Continuing to modify various areas of image_util so that save_to_stream will be provided an image_data_any object. 2015-01-08 11:30:02 -05:00
Blake Thompson
847682d783 Some more minor changes 2015-01-08 10:17:07 -05:00
Blake Thompson
cc0a27f2f0 More stuff to break it all 2015-01-08 10:17:07 -05:00
Blake Thompson
454326df17 An intial commit of a large set of changes attempting to clean up the way that saving images is processed in image_util.hpp and image_util.cpp.
* Changed the passing of rgba_palette to a shared_ptr in order to better facilitate the use of a visitor pattern.
 * Moved PNG util processing into its own set of files so that image_util_impl.hpp would not have to depend on HAVE_PNG.
2015-01-08 10:13:06 -05:00
artemp
8db7f58e8f image_compositing - fix composite method signature to composite(T & dst, T const& src,...) via providing const_rendering_buffer adapter 2015-01-08 12:45:04 +01:00
artemp
515491ab70 image_compositing - fix composite method signature to composite(T & dst, T const& src,...) via providing const_rendering_buffer adapter 2015-01-08 12:42:38 +01:00
artemp
b53430110a Merge branch 'master' into image 2015-01-08 10:27:21 +01:00
Blake Thompson
6df688160c More stuff to break it all 2015-01-07 18:16:38 -05:00
Dane Springmeyer
481b6b7958 remove uneeded/unused nonconst access to image_view - amends 0d2eb9cb5f 2015-01-07 15:12:11 -08:00
Dane Springmeyer
86e8ddc8ec update expected images after e590a21 2015-01-07 14:54:08 -08:00
Dane Springmeyer
e590a218b6 fix svg syntax 2015-01-07 14:52:22 -08:00
Blake Thompson
a3f6a989de An intial commit of a large set of changes attempting to clean up the way that saving images is processed in image_util.hpp and image_util.cpp.
* Changed the passing of rgba_palette to a shared_ptr in order to better facilitate the use of a visitor pattern.
 * Moved PNG util processing into its own set of files so that image_util_impl.hpp would not have to depend on HAVE_PNG.
2015-01-07 15:44:31 -05:00
artemp
00a20b78da add initial support for writing image_data_gray16 ( only TIFF supported ) 2015-01-07 18:17:44 +01:00
artemp
cd0ac2d0f6 Merge branch 'master' into image 2015-01-07 17:49:51 +01:00
artemp
5361d21beb move mapnik::noncopyable to mapnik::util::noncopyable where it belongs 2015-01-07 13:11:09 +01:00
artemp
4aa54f61c7 Merge branch 'master' into image 2015-01-07 12:22:45 +01:00
artemp
f6651ac74d use std::make_shared 2015-01-07 12:20:19 +01:00
artemp
18554ec0b1 remove static_visitor usage and rely on automatic result type deduction
(NOTE: expression_evaluator requires  ```using result_type = T1;``` )

Conflicts:
	src/image.cpp
2015-01-07 11:39:06 +01:00
artemp
affc5ee7c1 update variant to the latest version 2015-01-07 11:38:10 +01:00
artemp
c2ea32feac remove static_visitor usage and rely on automatic result type deduction
(NOTE: expression_evaluator requires  ```using result_type = T1;``` )
2015-01-07 11:35:21 +01:00
artemp
b28aadcf41 update variant to the latest version 2015-01-07 10:51:59 +01:00
Dane Springmeyer
a52700b505 more test coverage of svg markers and collision boxes - refs #2609 #1754 2015-01-06 17:20:00 -08:00
artemp
b0b89e76d1 image class - containing image_data_any and initial basic python interface 2015-01-06 12:44:28 +01:00
Dane Springmeyer
2a33ead4cc finish centralizing boost::filesystem usage to single cpp file - refs #1177 2015-01-06 00:33:33 -08:00
Dane Springmeyer
b396db54dd fix -Wsign-compare warning in image_data.hpp 2015-01-05 14:21:59 -08:00
Dane Springmeyer
14015fefe4 fix json output escaping to match json spec 2015-01-05 12:03:16 -08:00
Dane Springmeyer
49908b5e3b json_feature_properties_test: print test name for failures 2015-01-05 11:46:29 -08:00
artemp
c9672b6a9d escaped_string - fix output encoding 2015-01-05 14:23:10 +01:00
artemp
fa8feea603 remove unused utf8 phoenix function 2015-01-05 12:39:18 +01:00
artemp
bb9b9ff031 feature_generator_grammar - template get_id on FeatureType 2014-12-23 09:07:31 +01:00
Dane Springmeyer
1faaf595ec update expected visual images against freetype 2.5.4 2014-12-22 13:48:40 -08:00
artemp
132507571b template feature_generator_grammar on FeatureType - ref #2546 2014-12-22 15:56:46 +01:00
artemp
14b497d236 use boost::phoenix v3 style declaring return types 2014-12-22 11:58:11 +01:00
artemp
f1373883c2 json feature_generator_grammar - re-factor properties_generator_grammar into separate compilation unit - ref #2546 2014-12-22 11:52:13 +01:00
Dane Springmeyer
dc8253ec2a support expressions in text-placements - closes #2597 2014-12-19 19:05:54 -08:00
artemp
008168f75c image_data - ref #1927
* store image width and height in dimensions object
* allow specifying max_size for width and height (default 0xffff)
* throw if width or height are out of range - 0...max_size
2014-12-19 11:52:40 +01:00
Dane Springmeyer
5e9009a86b fix windows compile 2014-12-18 21:26:31 -08:00
Dane Springmeyer
b235910895 fix conditional dlopen support 2014-12-18 21:13:47 -08:00
Dane Springmeyer
b0f94bff44 Merge pull request #2608 from mapnik/image_data_any
Image data any
2014-12-18 20:21:29 -08:00
Dane Springmeyer
0d42906dc1 Merge branch 'master' of github.com:mapnik/mapnik into image_data_any
Conflicts:
	tests/visual_tests/images/dots-500-100-1.0-agg-reference.png
	tests/visual_tests/images/dots-500-100-2.0-agg-reference.png
	tests/visual_tests/images/marker-svg-opacity-500-100-1.0-agg-reference.png
	tests/visual_tests/images/marker-svg-opacity-500-100-2.0-agg-reference.png
2014-12-18 20:16:16 -08:00
artemp
ce291a553b I don't see enough performance gain to justify this - reverting for now
Revert "shape.input - sqeeze a bit more performance by reinterpret casting bytes array to point {double,double}"

This reverts commit 2f8426a019.
2014-12-18 18:44:04 +01:00
artemp
2f8426a019 shape.input - sqeeze a bit more performance by reinterpret casting bytes array to point {double,double}
avoiding one std::vector memory allocation - NOTE: this works because coordinates are stored in Double: Signed 64-bit IEEE double-precision floating point number (8 bytes) with little endian byte order - ref #2151
2014-12-18 11:57:52 +01:00
artemp
34d96f3ef2 shape.input - avoid expensive hit_test and instead use relatively cheap orientation test to distinguish
between inner and outter rings (Polygon/NultiPolygon) -- ref #2151  https://github.com/mapbox/unpacker/issues/324

```txt
A polygon consists of one or more rings. A ring is a connected sequence of four or more
points that form a closed, non-self-intersecting loop. A polygon may contain multiple
outer rings. The order of vertices or orientation for a ring indicates which side of the ring
is the interior of the polygon. The neighborhood to the right of an observer walking along
the ring in vertex order is the neighborhood inside the polygon. Vertices of rings defining
holes in polygons are in a counterclockwise direction. Vertices for a single, ringed
polygon are, therefore, always in clockwise order. The rings of a polygon are referred to
as its parts.
```
2014-12-18 11:28:28 +01:00
artemp
4f93b7c879 shape.input - avoid expensive hit_test and instead use relatively cheap orientation test to distinguish
between inner and outter rings (Polygon/NultiPolygon) -- ref #2151  https://github.com/mapbox/unpacker/issues/324

```txt
A polygon consists of one or more rings. A ring is a connected sequence of four or more
points that form a closed, non-self-intersecting loop. A polygon may contain multiple
outer rings. The order of vertices or orientation for a ring indicates which side of the ring
is the interior of the polygon. The neighborhood to the right of an observer walking along
the ring in vertex order is the neighborhood inside the polygon. Vertices of rings defining
holes in polygons are in a counterclockwise direction. Vertices for a single, ringed
polygon are, therefore, always in clockwise order. The rings of a polygon are referred to
as its parts.
```
2014-12-18 11:23:38 +01:00
Dane Springmeyer
5b176d2224 raster-colorizer test for both gdal and raster plugins 2014-12-17 12:33:24 -08:00
Dane Springmeyer
efd83f9142 update expected visual tests 2014-12-17 12:26:32 -08:00
Dane Springmeyer
c051f61646 dont set nodata for image_data_rgba8: fixes tiff_reprojection-1 visual test 2014-12-17 12:26:23 -08:00
Dane Springmeyer
dfe0be57f0 update warp expected image 2014-12-17 12:06:07 -08:00
Dane Springmeyer
387b8f85d5 new dot symbolizer for fast rendering of points - refs #1651 mapbox/mapnik-vector-tile#62 #2612 2014-12-17 12:01:28 -08:00
Dane Springmeyer
17d3bd8a9d consistent std::move in image data move ctor 2014-12-17 12:01:28 -08:00
Joel Brown
52d4b0edfd change config_error to std::runtime_error in scale_hsla struct 2014-12-17 12:01:05 -08:00
Dane Springmeyer
fe58aabe55 markers: support restyling svg stroke and fill without limit - closes #2609 - refs mapnik/mapnik-support#27 2014-12-17 12:01:04 -08:00
Dane Springmeyer
6d4b4494bf update visual test images for #2590 2014-12-17 11:55:22 -08:00
Dane Springmeyer
7066053d4b drop use of xml entities in text-font-features test - fixes #2590 2014-12-17 11:55:22 -08:00
Dane Springmeyer
f8bedf4f65 support building without dlopen support
Conflicts:
	SConstruct
2014-12-17 11:55:22 -08:00
Dane Springmeyer
0c8c55031a add deque to array alloc benchmark 2014-12-17 11:55:22 -08:00
artemp
12eb56d96a better names + unbuffered io + use image_data_xxx for allocating strip
e#	2x2.png
2014-12-17 18:34:47 +01:00
Dane Springmeyer
b86a2d4c7e remove debug prints 2014-12-17 08:52:04 -08:00
Dane Springmeyer
ffe8f71008 refactor premultiplication handling in raster rendering 2014-12-17 08:52:03 -08:00
artemp
160e9bb9b5 warp - initialise target with nodata if available 2014-12-17 14:54:54 +01:00
artemp
137bd0ba3b format 2014-12-17 14:54:31 +01:00
artemp
0d7fbdc25d implement image_data_warp_dispatcher + fix hardcoded nodata 2014-12-17 14:26:17 +01:00
artemp
78fbc6df17 expose warp_image templated method 2014-12-17 14:24:58 +01:00
artemp
6130b7f40d set nodata for single band raster (got missed in spaghetti code) 2014-12-17 14:23:42 +01:00
artemp
a59d634ffc nodata value can be floating point 2014-12-17 14:22:30 +01:00
artemp
5adbd85439 explicit std::move 2014-12-17 11:05:13 +01:00
Dane Springmeyer
569a539518 new dot symbolizer for fast rendering of points - refs #1651 mapbox/mapnik-vector-tile#62 #2612 2014-12-16 21:45:56 -08:00
Dane Springmeyer
1dfdfb3b22 consistent std::move in image data move ctor 2014-12-16 21:14:06 -08:00
Dane Springmeyer
1b428f87fa Merge pull request #2610 from kernelsanders/master
change config_error to std::runtime_error in scale_hsla struct
2014-12-16 20:04:51 -08:00
Joel Brown
cfd48fe3cd change config_error to std::runtime_error in scale_hsla struct 2014-12-16 17:50:23 -08:00
Dane Springmeyer
f0a696264c markers: support restyling svg stroke and fill without limit - closes #2609 - refs mapnik/mapnik-support#27 2014-12-16 18:34:53 -05:00
Dane Springmeyer
ba60af48af update visual test images for #2590 2014-12-16 16:39:21 -05:00
Dane Springmeyer
ee7ed11446 drop use of xml entities in text-font-features test - fixes #2590 2014-12-16 16:36:25 -05:00
Dane Springmeyer
bedcd41b67 support building without dlopen support
Conflicts:
	SConstruct
2014-12-16 16:05:42 -05:00
Dane Springmeyer
381eab1f3d add deque to array alloc benchmark 2014-12-16 13:51:12 -05:00
artemp
1df88908e4 refactor warping code to work with different pixel_types and minimise code duplication 2014-12-16 12:04:18 +01:00
artemp
7518459ba1 remove redundant case 2014-12-16 12:03:54 +01:00
artemp
c3e7b12238 fix nasty typo + refactor more 2014-12-16 12:02:40 +01:00
artemp
110841fc55 image_scaling - re-factor set_scaling_method for re-use accross code base 2014-12-16 10:37:50 +01:00
artemp
ecf9a686a3 c++11 - use constexpr 2014-12-16 10:17:05 +01:00
artemp
979d706c26 move image_scaling traits into separate header to enable code sharing 2014-12-16 10:13:40 +01:00
artemp
3276bed965 Merge branch 'master' into image_data_any 2014-12-16 09:33:28 +01:00
artemp
89a84150ee use std::move 2014-12-15 14:58:00 +01:00
Blake Thompson
0d2eb9cb5f Updates for Ref #2594 and #2592 (Related to #2491)
* Added support for scanline, stripped and tiled
 * Added new configuration options for TIFF:
   - method
   - tile_height (Default 0)
   - tile_width (Default 0)
   - rows_per_strip (Default 0)
 * Removed 'scanline' configuration option for TIFF.
 * Changed RGBA TIFFs to be ASSOCALPHA rather then UNASSOCALPHA
2014-12-15 02:52:32 +00:00
Dane Springmeyer
cdd817d772 benchmarks: refactor to allow early exit if tests do not validate 2014-12-12 11:59:45 -05:00
artemp
85d954ab6a make composite method templated and fix visibility issue
(reverts  1ff4125e92)
2014-12-12 11:39:36 +01:00
artemp
3cbe969f03 fix external visibility issue for explicit instantiations of scale_image_agg - ref #2587 2014-12-12 11:09:52 +01:00
artemp
72f437c52a tiff_reader - fix
( "...where the -Sy is due the reversal of direction from J increasing- down in raster space to Y increasing-up in model space.")
2014-12-12 10:18:34 +01:00
Dane Springmeyer
067703db48 add tiff benchmark 2014-12-11 15:01:17 -05:00
artemp
5dd87de782 template scale_image_agg on image_data_type to squash code duplication 2014-12-11 18:54:32 +01:00
artemp
6b7ae6d700 use image_data_dispatcher to dispatch composite/colorize based on image_data_type 2014-12-11 11:07:21 +01:00
artemp
b38ac5c2ca add no-op gray8 scaling 2014-12-11 11:06:44 +01:00
artemp
9caf17e397 correct image_data typo 2014-12-11 11:05:17 +01:00
artemp
f921e1eef4 raster_colorizer - template colorize method on image_data type 2014-12-11 10:10:32 +01:00
artemp
dd22d34d07 formatting 2014-12-11 09:39:25 +01:00
artemp
218b22fba9 remove cast 2014-12-11 09:38:58 +01:00
artemp
5021a4e122 tiff_reader - fix end_y calc in read_stripped 2014-12-10 18:11:41 +01:00
artemp
1dfad4b10b raster.input - attempt getting bounding box from image_reader 2014-12-10 12:54:35 +01:00
artemp
74c96f0bda make bounding_box return optional<box2d<double>> to be consistent with current behavour 2014-12-10 12:53:39 +01:00
artemp
2efde962aa image_reader - add bounding_box virtual method 2014-12-10 10:44:51 +01:00
artemp
4b1204a3b8 correct alloc size + prefer std::copy over memcpy 2014-12-10 10:34:12 +01:00
artemp
917d346093 use RAII for resource management 2014-12-10 09:44:37 +01:00
artemp
ef64b4937c Revert "avoid allocating memory"
This reverts commit 665c2f5bc0.
2014-12-10 09:39:08 +01:00
Dane Springmeyer
f0ba989596 Merge pull request #2602 from mapycz/standalone-tests
Standalone visual tests
2014-12-09 19:18:29 -05:00
Jiri Drbalek
af35cf7cdf xml test styles standalone 2014-12-09 20:13:38 +00:00
Jiri Drbalek
3e8b50464b update visual test runner for standalone tests 2014-12-09 20:13:36 +00:00
Jiri Drbalek
2f7a9fa50a add __contains__ method 2014-12-09 20:00:44 +00:00
artemp
665c2f5bc0 avoid allocating memory 2014-12-09 19:22:19 +01:00
artemp
9bf629c9b8 declare tiff callbacks inline 2014-12-09 17:30:50 +01:00
Dane Springmeyer
cf4f775855 Merge branch 'master' of github.com:mapnik/mapnik into image_data_any 2014-12-09 10:31:19 -05:00
Dane Springmeyer
5504692a43 remove duplicate include 2014-12-09 10:30:55 -05:00
Dane Springmeyer
653cc08500 fix msvs compile by using explicit assigment operator - closes #2588 2014-12-09 10:27:05 -05:00
Dane Springmeyer
4b2ad9e65f port image_data fixes from image_data_any branch 2014-12-09 10:14:06 -05:00
Dane Springmeyer
93c6207153 repack tiff_reader to avoid slop (saves 16 bytes) 2014-12-09 08:34:13 -05:00
artemp
303d625b7c tiff_reader - fix reading tiled tiffs + flip vertically output from TIFFReadRGBATile + cleaups 2014-12-09 12:25:21 +01:00
artemp
12f051bf56 image_data - fix setRow implementation 2014-12-09 12:22:44 +01:00
Dane Springmeyer
4e671fd0e9 tiff io: test paletted (aka colormapped) tiff 2014-12-09 01:15:09 -05:00
Dane Springmeyer
36d7e455ed tiff io: disable strip chopping to ensure we fail fast on 'tiff_dos_strip_chop.tif' from gdal autotests 2014-12-09 00:39:19 -05:00
Dane Springmeyer
fcf71c36d9 tiff io: avoid over-allocation + add more tests 2014-12-09 00:17:02 -05:00
Dane Springmeyer
dc1ed0ae29 tiff io: also test reading from in memory buffer 2014-12-08 22:58:44 -05:00
Dane Springmeyer
8b0ba79d2a more debugging output for failed read_tile 2014-12-08 20:39:44 -05:00
Dane Springmeyer
d2935e65ce test reading 2014-12-08 18:45:00 -05:00
Dane Springmeyer
dcae6395af start testing tiff read and image type returned 2014-12-08 18:13:23 -05:00
Dane Springmeyer
24a9816913 test tiff photometric setting 2014-12-08 17:16:56 -05:00
Dane Springmeyer
f121d805a9 no need for TIFFRGBAImageOK 2014-12-08 17:12:44 -05:00
Dane Springmeyer
a706cdb000 fixup tiff alpha handling cxx tests 2014-12-08 17:04:05 -05:00
Dane Springmeyer
66e65666ae test that gray32f is not blank (currently failing) 2014-12-08 16:47:08 -05:00
Dane Springmeyer
6ca1cd6c74 avoid crashing on images with alpha 2014-12-08 16:43:32 -05:00
Dane Springmeyer
cb3771fbe5 fix reading of tiled tiff tile dimensions for gray32f 2014-12-08 15:23:06 -05:00
Dane Springmeyer
bc3f59af12 new c++ tiff tests - refs #2491 2014-12-08 14:52:52 -05:00
Dane Springmeyer
dc3df99f66 rename tiff test image 2014-12-08 14:11:32 -05:00
artemp
7fcc4a0846 use TIFFReadTile (or TIFFReadEncodedTile) instead of TIFFReadRGBATile to have consistent orientation
(FIXME: python tests failures)
2014-12-08 18:55:40 +01:00
artemp
017def88b1 update raster-color-to-alpha tests to use raster.input 2014-12-08 15:55:06 +01:00
artemp
912771b8fd generic read_tiled<ImageData> initial implementation + read PHOTOMETRIC_RGB using high-level RGBA expanding interface 2014-12-08 15:51:00 +01:00
Dane Springmeyer
79366386c7 Merge pull request #2598 from mapycz/add-test-iconic-font
add visual test iconic font
2014-12-07 16:08:05 -05:00
Jiri Drbalek
20178013ea add visual test iconic font 2014-12-07 16:13:48 +00:00
Blake Thompson
74fb5f0890 Merge branch 'image_data_any' of github.com:mapnik/mapnik into image_data_any 2014-12-05 15:43:20 -05:00
Blake Thompson
8aec9aca89 Some really basic tests that I was using for testing, many more need to be added 2014-12-05 15:43:14 -05:00
Dane Springmeyer
23d78680cf add (currently failing) tests for #1927 2014-12-05 14:04:37 -05:00
Dane Springmeyer
96baff431f use c++ style casts im tiff_reader 2014-12-05 13:59:20 -05:00
Dane Springmeyer
3da1342185 Add mention of unique_ptr and std::copy to contributing docs 2014-12-05 12:28:51 -05:00
artemp
ce605e3982 use RAII for resource management 2014-12-05 18:01:45 +01:00
Dane Springmeyer
fc0894634c improve image tests 2014-12-05 11:36:50 -05:00
artemp
902858e55f tiff_reader: initial support for reading gray8/gray16/gray32f/rgba8/rgba16/rgba32f data
Note: current code only works with image data organized in strips. Tile-orientated reading needs implementing
2014-12-05 17:35:26 +01:00
Dane Springmeyer
cc2cf2876f Merge branch 'master' of github.com:mapnik/mapnik into image_data_any 2014-12-05 09:45:12 -05:00
Dane Springmeyer
ba4230c8ad stop setting -Wsign-compare since this is too noisy as a default 2014-12-05 09:44:54 -05:00
Dane Springmeyer
d6e9126132 fix linking of scale_image_agg - refs #2587 2014-12-05 09:43:57 -05:00
Jiri Drbalek
aebd45b286 Merge pull request #2536 from mapycz/improve-font-feature-settings
font-feature-settings improvements
2014-12-05 07:28:00 +01:00
Blake Thompson
4d159a3900 fixin' okie spelling 2014-12-04 18:13:11 -05:00
Blake Thompson
daecced552 A small modification to the image_tests removing some options not indended to be left on 2014-12-04 17:17:14 -05:00
Blake Thompson
bf5c532269 Series of changes for the tiff encoder:
* Added configuration options for the TIFF encoder. The options are:
   - compression: adobe_deflate(default), deflate, lzw, none
   - zlevel: 0-9
   - scanline: 1,0 (Forces scanline encoding)
 * Fixed bug in encoder with scanline where memory was being modified
 * by TIFFWriteScanline. A buffer is now created for each row to prevent
 * modification of the underlying image_data.
2014-12-04 17:11:33 -05:00
Jiri Drbalek
778e654933 update visual test - font-feature-settings 2014-12-04 21:19:13 +00:00
Jiri Drbalek
2282fab53e use font-feature-settings per text_item 2014-12-04 21:19:13 +00:00
Rafa de la Torre
af4c2620aa Ignore overviews with 0 scale in pgraster
refs #2551

Postgis raster_columns view is returning NULL values for raster
overviews with large scale factors. That issue in postgis is described
in http://trac.osgeo.org/postgis/ticket/3006

This causes two main problems:

  - The first overview with scale = NULL is wrongly chosen for rendering
    always

  - The messed up scaling factor causes the render symbolizer to spent
    an insane amount of CPU and memory to render a messed up tiles.

The patch in postgis is expected to be released with the new version, a
few months from now.

Conflicts:
	plugins/input/pgraster/pgraster_datasource.cpp
2014-12-04 12:29:16 -05:00
artemp
0006de7420 image_data - fix copy constructor 2014-12-04 18:26:58 +01:00
Rafa de la Torre
6cb8b6e14b Ignore overviews with 0 scale in pgraster
refs #2551

Postgis raster_columns view is returning NULL values for raster
overviews with large scale factors. That issue in postgis is described
in http://trac.osgeo.org/postgis/ticket/3006

This causes two main problems:

  - The first overview with scale = NULL is wrongly chosen for rendering
    always

  - The messed up scaling factor causes the render symbolizer to spent
    an insane amount of CPU and memory to render a messed up tiles.

The patch in postgis is expected to be released with the new version, a
few months from now.

Conflicts:
	plugins/input/pgraster/pgraster_datasource.cpp
2014-12-04 11:09:44 -05:00
Blake Thompson
fa902bc97d Removed logging accidently left in test. 2014-12-04 10:49:21 -05:00
Blake Thompson
e6c5f705e5 Fixed error with selection criteria for stripe vs tiled, added modulus check on length and width to select striped in some situations, changed bitspersample for RBGA. (ref #2491) 2014-12-04 10:48:19 -05:00
artemp
38da080f82 make concrete image_data type names more expressive and explicit about color channels/depth:
image_data_32 -> image_data_rgba8
image_data_8  -> image_data_gray8
image_data_16 -> image_data_gray16
image_data_float32  -> image_data_gray32f

NOTE: currently image_data_gray16::pixel_type = std::int16_t (signed 16 bit int) to match GDAL
should we support unsigned types?
2014-12-04 11:02:42 +01:00
artemp
6b3fc9907f specify alpha 0 in default-color e.g "#00000000" 2014-12-04 10:33:44 +01:00
artemp
06ab69a08e further simplify raster rendering code 2014-12-04 10:33:28 +01:00
artemp
3b3e255f5e add comment 2014-12-04 10:31:56 +01:00
Blake Thompson
cdaca0ba11 Updated tiff processing so now the encoder will utilize different types of data as well as will use Tile based encoding in most situations, if the image is large will revert to scanline based encoding. 2014-12-03 18:41:49 -05:00
Dane Springmeyer
f82d57f497 work in progress: start enhancing tiff reader to handle bits per sample 2014-12-03 18:37:27 -05:00
Dane Springmeyer
2f0e236bc0 update expected visual test images 2014-12-03 16:30:35 -05:00
Dane Springmeyer
cbe0a0cca5 update agg blending cpp test - refs #1452 2014-12-03 15:19:22 -05:00
Dane Springmeyer
954d0db46c Merge branch 'master' of github.com:mapnik/mapnik into image_data_any 2014-12-03 13:53:14 -05:00
Dane Springmeyer
02135991ed convert raster_symbolizer_test to use full image comparisons 2014-12-03 13:53:04 -05:00
Dane Springmeyer
9d479f246b update a few expected images 2014-12-03 13:41:57 -05:00
Dane Springmeyer
6bba6b88de update a few expected images 2014-12-03 13:38:55 -05:00
artemp
de7a268333 read single band as int16 then agg_scale and colorize in gray16 color space, output rgb8 (aka image_data_32)
NOTE: proof-of-concept needed re-factoring/duplicate code removal
2014-12-03 18:19:44 +01:00
Dane Springmeyer
27159b8086 update visual test images after agg rgba improvements 2014-12-03 12:10:49 -05:00
artemp
6fc8002dec use new image_reader API 2014-12-03 10:58:05 +01:00
artemp
802428712e initial image_data_any read(...) implementation - always read into image_data_32 2014-12-03 10:56:19 +01:00
artemp
1df9d89a70 add to image_reader and implement empty (placeholder)
```image_data_any read(unsigned x, unsigned y, unsigned width, unsigned height) final```
in png/jpeg/webp/tiff readers
2014-12-03 10:44:56 +01:00
artemp
33607145a6 add image_data_null which is cheap to construct (no mem alloc)
add default ctor to image_data_any -> image_data_null
2014-12-03 10:26:21 +01:00
artemp
83aa06e329 move image_data_any into seprate header 2014-12-03 10:12:46 +01:00
Dane Springmeyer
1ff4125e92 fix visibility of mapnik::composite function to python bindings - refs #2587 2014-12-03 00:43:04 -05:00
Dane Springmeyer
46215c0f35 fix compile of pgraster plugin 2014-12-03 00:35:34 -05:00
Dane Springmeyer
ce7085ab63 remove duplicate/uneeded mapnik::raster ctor 2014-12-03 00:34:49 -05:00
Dane Springmeyer
4d39d2aac1 iwyu 2014-12-02 14:40:03 -05:00
Dane Springmeyer
946434002f handle/throw on invalid encoding for ucnv_open 2014-12-02 14:21:36 -05:00
Dane Springmeyer
9d5e46a1f9 drop unsupported geotiff output - refs #967 2014-12-02 13:28:02 -05:00
Dane Springmeyer
d77463d1b8 use c++11 typed enum in vertex.hpp 2014-12-02 08:09:36 -08:00
artemp
19e3ce9035 gdal : experimenting with fetching gray scale single band as image_data_float32 2014-12-02 15:56:40 +01:00
Dane Springmeyer
d92ba2e1b0 more c++11 typed enums 2014-12-01 22:20:18 -08:00
artemp
2365fb2f43 add support for agg_pixfmt_gray32(_pre) and port changes to agg_color_gray/rgba and gamma calc from https://github.com/pelson/antigrain 2014-12-01 11:55:05 +01:00
artemp
6fec43bf9e gdal - read single band as image_data_float32
(scaling/compositing FIXME)
2014-11-28 12:51:23 +01:00
artemp
bf9c99e3d3 initial image_data_any implentation (work-in-progress) 2014-11-26 12:22:36 +01:00
artemp
33c1d21b7f use four letter abriviations to determine datatypes (https://www.sqlite.org/datatype3.html) 2014-11-25 11:09:42 +01:00
Artem Pavlenko
db4b74e8bb Merge pull request #2580 from StevenLooman/master
Tests and fix for SQLite datasource missing column
2014-11-24 12:51:55 +01:00
artemp
83bad7a816 feature_collection_grammar: fix a mistake - #2582 2014-11-24 12:42:24 +01:00
artemp
c5ab5f68d9 feature_collection_grammar: make argument order consistent across parsing rules - #2582 2014-11-24 12:37:37 +01:00
artemp
ee9481cb38 feature_collection_grammar : allow passing start_id at parse time - #2582 2014-11-24 12:26:11 +01:00
artemp
8567aa25e0 fix text-line-wrap grid ids 2014-11-24 11:25:54 +01:00
artemp
d1e0078abf use qi::locals<std::size_t> for per parse feature id generation and remove generate_id phoenix function
(NOTE: ids start from 1)
2014-11-24 11:18:45 +01:00
artemp
d5cc6f522e python bindings: update copyright year 2014-11-24 09:54:43 +01:00
Dane Springmeyer
62d5cf7f16 fix error message in geojson plugin 2014-11-21 19:57:24 -08:00
Steven Looman
e7cf55222c Add test case for missing columns in SQLite datasource, using subquery. Refs #2579 2014-11-20 18:58:20 +01:00
Steven Looman
07a07c6268 Default to string type when column type could not be determined. Refs #2579 2014-11-20 18:48:31 +01:00
Steven Looman
4555e117e7 Add test case for missing columns in SQLite datasource. Refs #2579 2014-11-20 18:30:20 +01:00
artemp
333965b588 update copyright year 2014-11-20 15:25:50 +01:00
artemp
6adf62ec5a image_data : remove unused owns_data_ field 2014-11-20 15:08:07 +01:00
artemp
1757797031 update cpp tests - ref #2491 2014-11-20 14:43:17 +01:00
artemp
f7649c27b0 image_data : re-factor (ref #2491)
* factor out raw image data alloc/dealloc into separate detail::buffer
* remove shallow ctor
* remove no-op dtor from image_data
2014-11-20 14:36:03 +01:00
artemp
5e2a53bac9 c++ mapnik style 2014-11-20 14:35:50 +01:00
artemp
4f3521ac24 image_data: use std::size_t + various cleanups 2014-11-20 12:46:16 +01:00
artemp
79bbe13c0d mapnik::raster : allow passing image_data into ctor 2014-11-20 10:31:56 +01:00
Dane Springmeyer
2577a6c9b8 update a few visual tests against latest cairo - closes #2574 2014-11-13 12:17:15 -08:00
Jiri Drbalek
034e9e2bb2 Merge pull request #2568 from mapycz/fix-marker-many-vertices
fix marker line placement on "squiggly" lines
2014-11-13 19:25:20 +01:00
Jiri Drbalek
1b0a129755 add visual test - marker on line with many vertices 2014-11-13 13:21:49 +00:00
Jiri Drbalek
c540210fc6 update visual tests 2014-11-13 12:51:37 +00:00
Jiri Drbalek
cb46131bc5 move text-specific inverted y axis logic from vertex_cache to placement_finder 2014-11-13 12:51:36 +00:00
Jiri Drbalek
60ea198aa3 marker line placement rewrite 2014-11-13 12:51:36 +00:00
Jiri Drbalek
849a58cd80 make vertex_cache::current_segment_angle() public 2014-11-13 12:51:36 +00:00
Jiri Drbalek
000c2713ed make marker placement methods noncopyable, movable 2014-11-13 12:51:36 +00:00
Jiri Drbalek
69fc93d87a add move constructor to vertex_cache 2014-11-13 12:51:36 +00:00
Jiri Drbalek
3013197de7 move vertex_cache and tolerance_iterator from text directory 2014-11-13 12:51:36 +00:00
Dane Springmeyer
ce081f1730 add mention of always using std:: for cmath 2014-11-12 09:57:52 -08:00
Dane Springmeyer
1ed2b29f0a travis: test PLUGIN_LINKING=static 2014-11-11 15:27:29 -08:00
Dane Springmeyer
437d486bbd fix building with PLUGIN_LINKING=static 2014-11-11 14:42:53 -08:00
Dane Springmeyer
4a2735fe91 c++ style: use reinterpret_cast rather than c style casts 2014-11-10 16:53:58 -08:00
Dane Springmeyer
3cbde2dc54 map.remove_all should clear other containers 2014-11-07 19:50:18 -05:00
Dane Springmeyer
e397345bce map.register_fonts recurse should be optional like font_engine 2014-11-07 19:05:28 -05:00
Dane Springmeyer
183f182ef7 remove duplicate check for .woff font type 2014-11-07 19:04:50 -05:00
Dane Springmeyer
8cad5bed2b workaround msvs 2014 CTP 4 compiler error - closes #2561 2014-11-05 13:41:30 -05:00
Dane Springmeyer
58f13823af remove debug print 2014-11-05 13:41:30 -05:00
Dane Springmeyer
c4e4bbf350 nik2img: make params as variables opt-in 2014-11-05 13:41:30 -05:00
Robert Coup
76d5bdae8c Merge pull request #2556 from stephend/master
Throw datasource_exception on GDAL RasterIO() failures
2014-11-05 18:21:13 +13:00
Dane Springmeyer
bff4465976 fix msvs compiler error - closes #2560 2014-11-04 17:50:43 -05:00
Dane Springmeyer
5cd2cd629f nik2img: optionally make map parameters available as variables 2014-11-04 15:31:51 -05:00
Dane Springmeyer
26d7519e57 link cpp tests to grammar libs 2014-11-04 13:17:29 -05:00
Dane Springmeyer
a65987af31 geojson plugin: fix compile against boost 1.57 2014-11-04 11:41:23 -05:00
Dane Springmeyer
22bd30230a remove unneeded option 2014-11-04 11:41:23 -05:00
Dane Springmeyer
d6b74443a7 use non static ref to global memory font cache 2014-11-04 11:41:23 -05:00
Jiri Drbalek
4cfecf1575 Merge pull request #2558 from mapycz/test-line-simplify
add visual test - simplify line
2014-11-04 16:30:50 +01:00
Jiri Drbalek
40510437fe add visual test - simplify line 2014-11-04 14:08:27 +00:00
Jiri Drbalek
b88735954b Merge pull request #2557 from mapycz/fix-simplify-radial-distance
fix default value condition
2014-11-03 17:29:59 +01:00
Jiri Drbalek
7a89f1ab02 fix default value condition 2014-11-03 15:35:16 +00:00
Stephen Davis
824c99f565 throw datasource_exception on GDAL RasterIO failures 2014-11-03 11:24:38 +13:00
Dane Springmeyer
38cb85a7df avoid a few more boost warnings 2014-10-27 10:30:36 -07:00
Dane Springmeyer
06d9021d66 update map after 808e820 2014-10-27 09:25:10 -07:00
Dane Springmeyer
808e820164 smarter type handling for Map parameters 2014-10-27 09:24:33 -07:00
Dane Springmeyer
aa85a4ff1e default to transparent not pink if color expression fails 2014-10-27 09:23:27 -07:00
Dane Springmeyer
180bc17fc6 smarter type extraction in python_to_value 2014-10-27 09:22:54 -07:00
Dane Springmeyer
b860b58f0f comment exit calls in densehashtable - refs #2547 2014-10-27 09:03:05 -07:00
Dane Springmeyer
f34ac45b86 remove unneeded osm files - refs #2547 2014-10-27 08:56:58 -07:00
Jordan Hollinger
d524738ad9 Remove point symbolizer support from group symbolizer. 2014-10-27 09:43:42 -04:00
Jordan Hollinger
ee692eea73 Merge branch 'master' of github.com:mapnik/mapnik into group-markers
Conflicts:
	include/mapnik/grid/grid_marker_helpers.hpp
	include/mapnik/marker_helpers.hpp
	include/mapnik/renderer_common/process_group_symbolizer.hpp
	src/cairo/process_markers_symbolizer.cpp
	src/renderer_common/process_group_symbolizer.cpp
	tests/visual_tests/images/group-symbolizer-1-512-512-1.0-agg-reference.png
	tests/visual_tests/images/group-symbolizer-1-512-512-1.0-cairo-reference.png
	tests/visual_tests/images/group-symbolizer-1-512-512-2.0-agg-reference.png
	tests/visual_tests/images/group-symbolizer-1-512-512-2.0-cairo-reference.png
2014-10-27 09:29:45 -04:00
Jordan Hollinger
864426ae54 Add reference images for new visual test group-symbolizer-4. 2014-10-27 07:46:44 -04:00
Jordan Hollinger
6f4593fb4a Update reference images for visual test group-symbolizer-1. 2014-10-27 07:46:44 -04:00
Jordan Hollinger
16b1b5a77c Support markers in group symbolizer. 2014-10-27 07:46:44 -04:00
Jordan Hollinger
bfb8d80e37 Add visual test for several cases of raster and vector markers within group symbolizer. 2014-10-27 07:46:44 -04:00
Jordan Hollinger
85622ab575 Update group symbolizer tests to use markers symbolizers. 2014-10-27 07:46:43 -04:00
Jordan Hollinger
1b15e53b63 Refactor markers dispatchers to use a common base class to share code. 2014-10-27 07:46:43 -04:00
Dane Springmeyer
ecb529cba2 handle boost::spirit::qi::expectation_failure 2014-10-24 21:36:19 -07:00
Dane Springmeyer
f80d1f9c00 support scale_factor in render_with_vars 2014-10-24 21:36:19 -07:00
Dane Springmeyer
ab451cbee2 support unicode keys in dict2attr 2014-10-24 21:36:19 -07:00
artemp
38a169e56e Merge branch 'MapQuest-peucker' 2014-10-24 15:20:25 +01:00
artemp
71085323a7 Merge branch 'peucker' of git://github.com/MapQuest/mapnik into MapQuest-peucker 2014-10-24 15:20:05 +01:00
artemp
ff8b1294a5 Merge branch 'kapouer-patch-3' 2014-10-24 14:39:43 +01:00
Jérémy Lal
87f9481621 Add missing argument to mapnik::raster call 2014-10-24 14:58:16 +02:00
Dane Springmeyer
c3dbd83348 try running benchmarks on travis again 2014-10-23 16:16:51 -07:00
artemp
f686d3de1b update dejavu-fonts-ttf path (v 2.34) 2014-10-23 11:35:20 +01:00
artemp
456ebe006b fix [-Wparentheses] warning 2014-10-23 09:51:45 +01:00
Dane Springmeyer
654c31d72d Add to changelog 2014-10-23 01:36:39 -07:00
Dane Springmeyer
eddbc2d3da copy edit of changelog 2014-10-23 01:20:02 -07:00
Dane Springmeyer
ad52fc7637 get mapnik version in a less brittle way 2014-10-23 01:02:14 -07:00
Dane Springmeyer
2ce6a317dd better defaults for git metadata 2014-10-23 01:00:35 -07:00
Dane Springmeyer
64b614c570 no need to ingore obsolete files [skip ci] 2014-10-23 00:43:23 -07:00
Dane Springmeyer
036a3bb14f only report git metadata for git checkout builds 2014-10-23 00:42:10 -07:00
Dane Springmeyer
f6e077fb08 remove unused scons function 2014-10-23 00:41:06 -07:00
Dane Springmeyer
4621fd6445 fix srs in c++ demo 2014-10-23 00:15:33 -07:00
Dane Springmeyer
520bab27be remove pycairo from python demo - closes #2533 2014-10-23 00:15:19 -07:00
Dane Springmeyer
900def16ae put mapnik-config on PATH [skip ci] 2014-10-23 00:06:40 -07:00
Dane Springmeyer
16ea7d85b2 add to authors 2014-10-23 00:04:52 -07:00
Dane Springmeyer
ed425b7f3f move local boost headers into deps directory 2014-10-22 23:51:44 -07:00
Dane Springmeyer
a0dc3df575 move mapnik-config back to utils/ 2014-10-22 23:46:33 -07:00
Dane Springmeyer
63f2171edc finish removal of workspace dir - amends 27d8cef3c4 2014-10-22 23:37:55 -07:00
Dane Springmeyer
c7fb48eb75 update expected visual test 2014-10-22 15:35:07 -07:00
Dane Springmeyer
a1314935af fix initialization order in proj_transform 2014-10-22 15:34:17 -07:00
Dane Springmeyer
27666bb686 ignore -Wunsequenced warnings 2014-10-22 15:34:04 -07:00
Dane Springmeyer
15a2acf0d5 silence warnings in pgraster plugin - refs #2356 2014-10-22 15:33:25 -07:00
Dane Springmeyer
ca3078938c simplify and install mapnik wkt and json libs 2014-10-22 00:09:22 -07:00
Dane Springmeyer
46a41f3ae1 initialize proj_transform::is_source_equal_dest_ 2014-10-22 00:08:48 -07:00
Dane Springmeyer
e88748c57e stop defaulting to -Wextra [skip ci] 2014-10-21 20:31:48 -07:00
Dane Springmeyer
a00c56f40c travis cannot cope with debug builds 2014-10-21 20:24:11 -07:00
Dane Springmeyer
aae4a20ec9 fix various -Wunused-parameter warnings 2014-10-21 20:23:17 -07:00
Dane Springmeyer
95b301deb4 set ignore unknown pragmas after -Wall and -Wextra 2014-10-21 20:22:33 -07:00
Dane Springmeyer
dcfa056413 merge 2014-10-21 19:49:03 -07:00
Dane Springmeyer
14cf32d9c0 Merge pull request #2542 from mapnik/warnings
Silence boost warnings using pragmas
2014-10-21 18:00:00 -07:00
Dane Springmeyer
d25f0c316a silence more warnings 2014-10-21 17:44:47 -07:00
Dane Springmeyer
87192bfcb7 silence more boost warnings 2014-10-21 16:57:44 -07:00
Dane Springmeyer
241c2ebf0b try gcc too 2014-10-21 16:54:53 -07:00
Dane Springmeyer
7acaa3068a silence warning in font_engine_freetype 2014-10-21 16:54:46 -07:00
Dane Springmeyer
83588937b9 silence boost warnings 2014-10-21 16:37:27 -07:00
Dane Springmeyer
0ec4fbef45 add std::fill to array alloc benchmark 2014-10-21 13:11:32 -07:00
Dane Springmeyer
963ac22588 silence -Wunused-parameter warning in grain-extract for now - refs #2067 2014-10-21 13:01:14 -07:00
artemp
d62a4b0914 update to dejavu-fonts-ttf-2.34 2014-10-21 16:54:43 +01:00
artemp
295f15bd51 ImageData -> image_data (remove camel-case) 2014-10-21 16:06:27 +01:00
artemp
fdd646aa5b more c++ 2014-10-21 15:52:01 +01:00
artemp
30907b3dd1 use c++ std::fill/copy instead of c-style memset/memcpy 2014-10-21 14:57:34 +01:00
artemp
107bad002d c++11 - use c++ style casts + cleanups + use std::fill 2014-10-21 14:51:27 +01:00
Dane Springmeyer
27c959b1bf quiet use of mapnik-test-data 2014-10-20 22:43:17 -07:00
Dane Springmeyer
18183aed2a fix a few -Wunused-parameter warnings 2014-10-20 22:28:40 -07:00
Dane Springmeyer
96733cda41 adapt to new dejavu version 2014-10-20 22:28:15 -07:00
Dane Springmeyer
02b7537d6d remove unused/supported second arg to parse_expression 2014-10-20 22:20:04 -07:00
Dane Springmeyer
f8b8eb1c52 upgrade scons to 2.3.4 2014-10-20 22:18:07 -07:00
Dane Springmeyer
2572568f29 upgrade bundled unifont to 7.0.05 and dejavu to 2.34 2014-10-20 22:17:27 -07:00
Dane Springmeyer
1b35d5a31b C++ test cleanup 2014-10-20 19:55:11 -07:00
Dane Springmeyer
a6978cb375 contributing: note that shared/unique_ptr should be used sparingly 2014-10-20 12:56:24 -07:00
artemp
52d0e3e641 expression grammar - add boolean_constants and floating_point_constants symbols
```python
>>> import mapnik
>>> f=mapnik.Feature(mapnik.Context(),1)
>>> expr = mapnik.Expression("rad_to_deg * pi")
>>> expr.evaluate(f)
180.0
```
2014-10-20 17:57:08 +01:00
artemp
1ed3d24193 update variant.hpp (use std::forward<T> for perfect forwarding - via @DennisOSRM) 2014-10-20 15:48:47 +01:00
Dane Springmeyer
29c8ba5ef6 Merge pull request #2461 from mapycz/test-data-binding
add visual test - text data binding
2014-10-18 10:14:13 -07:00
Jiri Drbalek
fef8079f03 add visual test - text data binding 2014-10-18 16:50:57 +00:00
Jiri Drbalek
4c11a4809c improve visual test - more data bound properties 2014-10-18 16:31:20 +00:00
Dane Springmeyer
e473e10f22 Merge pull request #2540 from mapycz/fix-geometry-transform-scale-factor
ignore scale_factor for geometry-transform scale
2014-10-18 07:04:14 -07:00
Jiri Drbalek
8ed1a2141b add visual test - geometry-transform scale 2014-10-18 10:31:07 +00:00
Jiri Drbalek
4549c0b63c ignore scale_factor for geometry-transform scale 2014-10-18 10:31:07 +00:00
Dane Springmeyer
2af2775e83 simplify readme 2014-10-17 17:32:44 -07:00
Dane Springmeyer
1a9002859d fix test - previous image was actually being rendered with radial-distance 2014-10-17 13:34:47 -07:00
artemp
2516d6dd43 default to GLOBAL alignment 2014-10-17 21:23:00 +01:00
artemp
ea9cc4c54b remove cast 2014-10-17 21:22:36 +01:00
artemp
6eb65434c5 upgrade to new get<value_type, keys::key> 2014-10-17 20:45:15 +01:00
artemp
35a044578b re-implement assign_value to use target property type 2014-10-17 18:45:08 +01:00
artemp
bbdc136b5b fix names + update property_meta_type tuple 2014-10-17 18:44:26 +01:00
artemp
b3e3a4f6bd update get<>() to use values from symbolizer_default_values.hpp 2014-10-17 10:39:40 +01:00
artemp
9d87f7715b symbolizer properties default values 2014-10-17 10:38:54 +01:00
Dane Springmeyer
75e46c9a6a python: conditionally require paths.py be available 2014-10-15 20:11:08 -07:00
Dane Springmeyer
b90763469a iwyu 2014-10-15 19:03:36 -07:00
Dane Springmeyer
dac7170616 break out topojson parsing grammar 2014-10-15 18:59:39 -07:00
Dane Springmeyer
bdb1f900eb sync code between geojson and topojson rtree impl 2014-10-15 18:51:53 -07:00
Dane Springmeyer
fa18783bf5 python tests: remove either paths.py data or env settings for fonts/plugins 2014-10-15 18:40:07 -07:00
Dane Springmeyer
4e8125d2ad use c file io wrapper in geojson/topojson plugins 2014-10-15 11:36:57 -07:00
Dane Springmeyer
9684880062 c file io wrapper: no need for explicit move + reset seek after checking size in ctor 2014-10-15 11:36:25 -07:00
artemp
2e4c5b3ee0 use finer control over rtree instantiation 2014-10-15 15:15:31 +01:00
artemp
0aac586f7c use enclosing namespaces in core lib 2014-10-15 15:14:21 +01:00
Dane Springmeyer
52e9531179 always return a value from evaluate_displacement 2014-10-14 21:35:20 -07:00
Dane Springmeyer
03b6b71ed2 update a few visual tests based on osx+mapnik-packaging deps 2014-10-14 21:03:15 -07:00
Dane Springmeyer
e1c1371935 Merge pull request #2514 from mapycz/perf-tolerance-iterator
exponential tolerance_iterator
2014-10-14 20:49:19 -07:00
Dane Springmeyer
8b441cbd2d fix mapnik/node-mapnik#332 2014-10-14 20:30:55 -07:00
Dane Springmeyer
1c80cfe44f fix geojson plugin linking #2535 2014-10-14 20:26:13 -07:00
Dane Springmeyer
7a58a9413d remove uneeded include 2014-10-14 20:23:21 -07:00
Dane Springmeyer
f00b35f56b remove unneeded boost/cast.hpp header 2014-10-14 17:58:02 -07:00
Dane Springmeyer
4c93d14537 get sqlite rtree tests passing on windows - refs #1871 and #2530 2014-10-14 17:49:04 -07:00
Dane Springmeyer
a98158e97d close sqlite db after testing 2014-10-14 17:35:59 -07:00
Jiri Drbalek
6c0aa68451 update grid reference images 2014-10-14 10:47:51 +00:00
Jiri Drbalek
2f36fbf1b0 update cairo reference images 2014-10-14 10:47:51 +00:00
Jiri Drbalek
a6e4a1bfce update agg reference images 2014-10-14 10:47:51 +00:00
Jiri Drbalek
f95f200ac1 make tolerance_iterator exponential 2014-10-14 10:47:45 +00:00
Dane Springmeyer
09f91a24a0 Merge pull request #2523 from mapycz/halign-adjust-immutable
halign adjust with immutability of style objects in mind
2014-10-13 18:47:37 -07:00
Dane Springmeyer
ad91c56718 Avoid BOOST_MPL_LIMIT_VECTOR_SIZE redefined warning 2014-10-13 18:06:53 -07:00
Dane Springmeyer
9a78c6dfe1 improve register_datasources + drop filesystem v2 support since v3 is default in boost >= 1.46 2014-10-13 17:43:14 -07:00
Dane Springmeyer
66ce021ad5 cairo_gradient: fallback to radial if the class is misused to prevent crash on uninitalized pattern 2014-10-13 17:26:32 -07:00
Dane Springmeyer
1f1c8a322b initialize all member variables 2014-10-13 17:23:45 -07:00
Dane Springmeyer
4b689ef05d fix casting to doubles 2014-10-13 17:23:30 -07:00
Dane Springmeyer
2d7f79a8c5 fix possible out-of-bounds write [coverity] 2014-10-13 16:19:51 -07:00
Artem Pavlenko
12ebb97779 Merge pull request #2528 from mapycz/fix-plugin-sqlite-shared-cache
sqlite plugin - disable shared cache for sqlite prior to 3.7.15
2014-10-13 14:42:48 +01:00
artemp
1e3b82a245 add new line 2014-10-13 14:23:06 +01:00
artemp
f8031dec96 no need to initialise `evaluated_xxx' structures as initialisation happens at evaluation step 2014-10-13 14:11:23 +01:00
Jiri Drbalek
959451af5d sqlite plugin - disable shared cache for sqlite prior to 3.7.15 2014-10-13 13:07:21 +00:00
artemp
7969a1c13a use more appropriate header 2014-10-13 13:23:14 +01:00
Jiri Drbalek
be7b593957 update visual test - horizontal-alignment="adjust" 2014-10-13 12:16:48 +00:00
Jiri Drbalek
1252369292 add horizontal-alignment="adjust" with immutability of style objects in
mind
2014-10-13 12:16:48 +00:00
artemp
4fe0c249a6 make hb_feature_t EqualityComparable and fix font_feature_settings operator== 2014-10-13 11:22:28 +01:00
Dane Springmeyer
5a91c68399 link wkt grammers from python bindings 2014-10-13 01:17:57 -07:00
Dane Springmeyer
9dae68ebbf add builds scripts for json/wkt grammars 2014-10-13 01:07:11 -07:00
Dane Springmeyer
44bc5b59d6 break out wkt/json grammars into separate libraries 2014-10-13 01:06:36 -07:00
Dane Springmeyer
6b1c4d00e5 MAPNIK_DECL font_feature_settings 2014-10-12 22:00:25 -07:00
Dane Springmeyer
885a98f9c1 improve handling of format properties - refs #2516
- changes evaluated_format_properties_ptr to unique_ptr
 - refactors group symbolizer helper to keep scope by
   having each "thunk" own its helper
 - glyph_info can now be noncopyable
 - format node children now need an owner for their
   evaluated_format_ptr so the enclosing parent layout
   now allocates and holds pointers in a deque
 - plus other noncopyable/move constructor fixes
2014-10-12 21:41:59 -07:00
Dane Springmeyer
a39cb0aaf8 break up geometry grammars - refs #2526 2014-10-12 16:50:36 -07:00
Dane Springmeyer
38b944aef7 break apart expression+transform grammars - refs #2526 2014-10-12 16:36:33 -07:00
Dane Springmeyer
35b4518b13 iwyu 2014-10-12 16:35:35 -07:00
Dane Springmeyer
a9f58c70b4 shuffle complexity into layout constructor
- should reduce mistakes in refactoring
  - gives top level ownership of evaluated_format_properties_ptr to a layout node (#2516)
  - not sure ^^ if this actually keeps it in scope enough for rendering?
  - moves data transformation functions off of text_symbolizer_properties
2014-10-12 16:07:26 -07:00
Dane Springmeyer
cf2df4f0cc harfbuzz shaper: return early if itemizer returns empty list 2014-10-12 15:48:15 -07:00
Dane Springmeyer
f3eba54078 noncopyable glyph_info - refs #2516 2014-10-12 14:24:57 -07:00
Dane Springmeyer
2000c1713d in place construction of glyph_positions 2014-10-12 13:54:07 -07:00
Dane Springmeyer
4e7feaf747 move glyph_positions to new cpp 2014-10-12 13:46:35 -07:00
Dane Springmeyer
39ff0945ef in place construction of pixel_positions 2014-10-12 13:38:18 -07:00
Dane Springmeyer
94aa67b0af vertex_cache: in place construction of segments 2014-10-12 13:30:24 -07:00
Dane Springmeyer
e4c895d4c1 zero copy usage of text_line 2014-10-12 13:23:03 -07:00
Dane Springmeyer
a648538bcd add more code comments to placement_finder to help explain layouts 2014-10-12 12:18:59 -07:00
Dane Springmeyer
f1c3d0c3ce iwyu in group_symbolizer_helper.hpp 2014-10-12 12:00:00 -07:00
Dane Springmeyer
8f94f23ea5 update postgis visual test I missed updating after #2519 2014-10-12 11:09:58 -07:00
Dane Springmeyer
6e894b1b97 avoid failing cairo tests due to #2334 (let's revert once #2334 is fixed) 2014-10-12 11:06:10 -07:00
Dane Springmeyer
22476b151f fix code comment: test actually for #1533 2014-10-12 11:04:31 -07:00
Dane Springmeyer
a8c8ea9ac4 reserve space for glyph_pos in renderer prepare_glyphs 2014-10-11 22:59:56 -07:00
Dane Springmeyer
3d142c2712 move evaluate_text_properties to standalone function - refs #2516 2014-10-11 22:48:00 -07:00
Dane Springmeyer
84b20ad9c9 Merge pull request #2522 from mapnik/ff_settings_by_value
Store and pass font_feature_settings by value
2014-10-11 22:46:12 -07:00
Dane Springmeyer
e6a66aaaba finish work to pass font_feature_settings by value - refs #2516 2014-10-11 22:39:40 -07:00
Dane Springmeyer
a61364d263 revert halign support - refs #2426 2014-10-11 20:03:56 -07:00
Dane Springmeyer
f7849cea09 make evaluated_text_properties noncopyable 2014-10-11 19:28:04 -07:00
Dane Springmeyer
477d6cc7ee zero-copy text_item insertion 2014-10-11 19:12:15 -07:00
Dane Springmeyer
b455cc9098 give glyph_info better ctor 2014-10-11 17:52:54 -07:00
Dane Springmeyer
eabdf46118 drop unwise glyph_info caching - reverts 99a46f6910 - re-opens #2334 2014-10-11 17:32:41 -07:00
Dane Springmeyer
d4f0d51a91 cairo text rendering: avoid double call of set_character_sizes for text and halo 2014-10-11 16:59:22 -07:00
Dane Springmeyer
ba285aa9fa remove unused (after 8bc7a56cda) font_face::char_height_ 2014-10-11 15:55:15 -07:00
Dane Springmeyer
b275144004 make cairo_context.add_text more like agg::text_renderer 2014-10-11 13:08:28 -07:00
Dane Springmeyer
51620e2b4d cairo: avoid creating evaluated_format_properties_ptr on stack 2014-10-11 11:37:16 -07:00
Dane Springmeyer
e1eb9fa5b1 reduce pointer usage in text renderer - refs #2516 2014-10-10 18:01:24 -07:00
Dane Springmeyer
5687765508 Merge pull request #2519 from mapnik/max-glyph-height2
use real max glyph height
2014-10-10 15:35:29 -07:00
Dane Springmeyer
4bfe542f31 update expected cairo images 2014-10-10 15:26:09 -07:00
Dane Springmeyer
45987988fb update expected agg images 2014-10-10 15:26:03 -07:00
Dane Springmeyer
b35eaec891 update expected grids 2014-10-10 15:25:51 -07:00
Dane Springmeyer
e29be4cec5 update a few expected images in python tests 2014-10-10 15:25:06 -07:00
Dane Springmeyer
8bc7a56cda use real max glyph height
- avoids breakage on fonts lacking an `X` glyph (#2506)
      - avoids needing to create and mutate a temporary glyph (#2516)
      - lots of minor visual changes - mostly improvements notably more correct collision boxes for lines with tall glyphs
2014-10-10 15:18:11 -07:00
artemp
74e872c48b avoid storing evaluated text properties in text_symbolizer_properties (all style related strucures must be read-only)
make process(..) method const
2014-10-10 12:38:06 +01:00
Dane Springmeyer
c6ed108a72 start marking as much of the text structures as const as possible - refs #2516 2014-10-09 23:00:39 -07:00
Dane Springmeyer
2d88f736fe remove uneeded access to format tree 2014-10-09 20:51:43 -07:00
Dane Springmeyer
e8bb880a45 fully disable text symbolizer for now - refs #2324 2014-10-09 20:51:43 -07:00
Dane Springmeyer
c26c60e48e remove set_old_style_expression 2014-10-09 20:51:43 -07:00
Dane Springmeyer
e98ea70d2e add a benchmark that tests rendering with shared map - refs #2516 2014-10-09 20:29:42 -07:00
Dane Springmeyer
344108c621 const not viable yet on itemizer 2014-10-09 20:00:35 -07:00
Dane Springmeyer
364af033a2 stash work on trying to convert font_feature_settings to be passed by value 2014-10-09 19:23:11 -07:00
Dane Springmeyer
2e4a9cfaf2 itemizer should be const in icu_shaper 2014-10-09 18:44:28 -07:00
Dane Springmeyer
536b23bfde fix uneeded pointer indirection with glyph_info/glyph_position 2014-10-09 18:38:29 -07:00
Dane Springmeyer
aed5243302 avoid creating evaluated_format_properties on the stack 2014-10-09 18:24:39 -07:00
Dane Springmeyer
38567d8213 font_set: explicitly initialize face_names_ member 2014-10-09 17:36:51 -07:00
Dane Springmeyer
5cc44ceee3 accept scale_factor as option in test_rendering bench 2014-10-09 17:33:01 -07:00
Dane Springmeyer
1fead3396b cleanup unused clipped_ member of base_symbolizer_helper after 9835057b0f 2014-10-09 11:40:30 -07:00
Dane Springmeyer
3479fcaec5 finish templating the json geometry generator on geometry container 2014-10-09 00:48:58 -07:00
Dane Springmeyer
7bc956e9e8 fix mis-spelling of fwd declare for text_placement_info_dummy 2014-10-08 16:51:33 -07:00
Dane Springmeyer
c4857c640b clean up string handling in font_set::add_face_name 2014-10-08 16:46:48 -07:00
Dane Springmeyer
1f29ce7d3d back to using shared_ptr for holding text_placement_info 2014-10-08 16:28:07 -07:00
Dane Springmeyer
a24b29624a remove unused include 2014-10-08 16:27:38 -07:00
Dane Springmeyer
98794accb4 travis: run all visual tests using threaded load 2014-10-08 14:25:42 -07:00
Dane Springmeyer
280c280a9c make rendering bench shell easy to run 2014-10-08 14:23:33 -07:00
Kevin Kreiser
2178f1602c note to self. read coding convention guidelines before actually writing code. 2014-10-08 15:05:38 -04:00
Kevin Kreiser
5962d68621 tab vs spaces in ide finally fixed. apologies 2014-10-08 14:37:18 -04:00
Kevin Kreiser
d8a9a5ed4d make the simplify test function general purpose so others can add other test cases for other simplification algorithms 2014-10-08 14:33:50 -04:00
Kevin Kreiser
96bf063b1c standardize commenting convention. i prefer lower case no space (ie laziness) but that doesnt seem to be the norm. 2014-10-08 14:09:07 -04:00
Kevin Kreiser
a5bedfbae3 fix some whitespace issues. somehow tabs were getting in there 2014-10-08 14:05:25 -04:00
Kevin Kreiser
b7d3a798cd add ramer douglas peucker to the list of simplify converters. also add tests for the simplify converters but so far only testing peucker. also add a method to the wkt factor for converting geometry container to wkt 2014-10-08 13:47:36 -04:00
Dane Springmeyer
65438f17aa further tests of path expressions for shields 2014-10-08 08:00:59 -07:00
Dane Springmeyer
3019787b30 enable another shield test - this one using null path expression 2014-10-08 08:00:59 -07:00
Dane Springmeyer
3a7c8ff3fb make scoped_state noncopyable 2014-10-08 08:00:59 -07:00
artemp
37f6aadcbb template json::(multi_)geometry_grammar on Geometry and GeometryContainer respectfully 2014-10-08 11:01:28 +01:00
artemp
7f219b4f8b use phoenix v3 syntax + cleanups 2014-10-08 11:00:25 +01:00
artemp
66252075e9 use <type_traits> 2014-10-08 10:37:35 +01:00
Dane Springmeyer
0a192a5260 completely purge buggy osm plugin from visual tests 2014-10-07 15:44:20 -07:00
artemp
29c7c5ac3e throw std::runtime_error on expectation failure 2014-10-07 11:21:44 +01:00
artemp
5990eecec5 better rules names 2014-10-07 11:21:05 +01:00
Dane Springmeyer
41009bfeb3 fix font caching logic 2014-10-07 00:21:52 -07:00
Dane Springmeyer
c2fe4a14be drop useless template usage for has_key 2014-10-06 23:21:13 -07:00
Dane Springmeyer
934f0dec1d warn if duplicate attribute - closes #2508 2014-10-06 23:20:43 -07:00
Dane Springmeyer
7ce776a79c fix handling of shield-text-opacity/text-opacity - closes #2507 2014-10-06 21:52:29 -07:00
Dane Springmeyer
6e7935b959 visual test coverage of shield-text-opacity/text-opacity - refs #2507 2014-10-06 21:51:58 -07:00
Dane Springmeyer
51f62ad083 dodge #2505 by avoiding registering gdal/ogr plugin 2014-10-06 18:19:52 -07:00
Dane Springmeyer
87e5df48de scons: fix memory leak in configure test 2014-10-06 17:23:18 -07:00
Dane Springmeyer
1ae43a25ff text_properties code cleanup - pregame for #2504 2014-10-06 16:59:49 -07:00
Dane Springmeyer
5a1126b0c0 higher grid tolerance, even for OS X 2014-10-06 14:31:38 -07:00
Dane Springmeyer
37bd319c87 start more font reg/cache tests 2014-10-06 14:31:27 -07:00
Dane Springmeyer
f733c7f2ac comment debug code 2014-10-06 14:31:11 -07:00
Dane Springmeyer
1670fdabf0 fix line symbolizer 'rasterizer' property - closes #2503 2014-10-06 14:10:43 -07:00
Dane Springmeyer
8be50220e0 Merge pull request #2501 from MapQuest/grid_markers_fix
Grid markers fix for issue #2500
2014-10-06 12:30:19 -07:00
Dane Springmeyer
737c299341 fix back compat for text-placement-type:dummy - closes #2502 2014-10-06 11:37:39 -07:00
jhollinger2
c5d0c44de0 Merge branch 'grid_markers_fix' into marker-refactor
Conflicts:
	include/mapnik/grid/grid_marker_helpers.hpp
2014-10-06 14:08:40 -04:00
jhollinger2
5ca07a26d1 Refactor marker helpers for agg and grid renderer. 2014-10-06 14:03:48 -04:00
Jordan Hollinger
f6368da679 Update other affected test grids from recenter fix in grid markers helper. 2014-10-06 09:16:16 -04:00
Jordan Hollinger
8405400776 Pass recentered transform to markers_placement_finder in vector_markers_rasterizer_dispatch_grid. Update expected grids for test case. 2014-10-06 09:16:16 -04:00
Jordan Hollinger
47bd76e683 Add test case to isolate collision error in grid renderer. 2014-10-06 09:16:16 -04:00
Dane Springmeyer
4aec64871d add missing header 2014-10-03 20:00:33 -07:00
Dane Springmeyer
e0ba9e9a8c use common dispatch for symbolizers 2014-10-03 19:07:08 -07:00
Dane Springmeyer
2cf3990e0d warn if fontset not found and load_map is not in strict mode - closes #1791 2014-10-03 17:43:44 -07:00
Dane Springmeyer
ebf7a61135 fix unsafe return of temporary - closes #2493 2014-10-03 16:39:25 -07:00
Dane Springmeyer
2925a70046 c++ style / delay std::string creation in xml loading 2014-10-03 16:39:25 -07:00
Dane Springmeyer
b09df2fa13 Merge pull request #2490 from MapQuest/group-margin
Use margin attribute in group symbolizer
2014-10-03 12:19:02 -07:00
Jordan Hollinger
8dad0c8975 Add test case expected results. 2014-10-03 14:45:25 -04:00
jhollinger2
4dfa76a0fc Update group symbolizer collision to use margin instead of minimum-distance. Add test case. 2014-10-03 13:46:23 -04:00
artemp
e8b3083a6a remove std::function usage in text_properties 2014-10-03 16:00:05 +01:00
Dane Springmeyer
f81fc53cbc fix compile on windows of font_feature_settings.cpp - refs #2489 2014-10-02 16:31:16 -07:00
Dane Springmeyer
75df4b12fd remove unneeded boost/version.hpp 2014-10-02 16:29:27 -07:00
Dane Springmeyer
f586f6909f make vertex_cache noncopyable 2014-10-02 15:41:21 -07:00
Dane Springmeyer
109b45a0ad c++ style 2014-10-02 15:37:55 -07:00
Dane Springmeyer
d1f522b201 min compiler is g++ 4.8 - refs #2486 2014-10-02 13:24:00 -07:00
Dane Springmeyer
dfaa860522 Revert "min compiler is g++ 4.8 - refs #2486"
This reverts commit 612b4a0207.
2014-10-02 13:23:35 -07:00
Jiri Drbalek
47c9d77f8f Merge pull request #2485 from mapycz/fix-text-layout-wrap-char
add wrap-character support to Layout node of TextSymbolizer
2014-10-02 21:36:31 +02:00
Dane Springmeyer
612b4a0207 min compiler is g++ 4.8 - refs #2486 2014-10-02 12:04:32 -07:00
Jiri Drbalek
5861980f91 add wrap-character support to Layout node of TextSymbolizer 2014-10-02 18:34:37 +00:00
Dane Springmeyer
4ec3b5d013 travis: use harfbuzz from fontforge ppa 2014-10-02 11:27:59 -07:00
Dane Springmeyer
0a120dc92b disable minor failing params/value_null test for now - refs #2471 2014-10-02 11:27:16 -07:00
Dane Springmeyer
68fba05f5e try testing against boost 1.48 again - refs #2469 #2471 2014-10-02 10:32:16 -07:00
Dane Springmeyer
d4f11bd80e fix miniz visibility with -fvisibility=hidden 2014-10-02 10:27:17 -07:00
artemp
2bab0512ff refactor vertex_cache to use unique_ptr's and less copying 2014-10-02 16:36:50 +01:00
artemp
9b58b65583 Merge branch 'mapycz-fix-compile-ubuntu-precise' 2014-10-02 15:10:08 +01:00
artemp
a04276d90a use c++11 features over boost when available 2014-10-02 15:09:17 +01:00
Jiri Drbalek
667b6e3adc fix compile on ubuntu precise 2014-10-02 12:18:39 +00:00
Dane Springmeyer
a77bc9deb0 Merge pull request #2454 from mapnik/localized-font-cache
3.x port of localized font caching
2014-10-02 01:01:07 -07:00
Dane Springmeyer
dc6b6c1e81 c++ tests for font registration and caching on map 2014-10-02 00:48:02 -07:00
Dane Springmeyer
66889d32f9 only memcache local fonts if not already globally known and not already cached (avoid extra io for ttc) 2014-10-02 00:47:32 -07:00
Dane Springmeyer
887f5a982b remove unneeded include 2014-10-01 21:08:36 -07:00
Dane Springmeyer
0efb6964ef per map load cache if a fonts is known as valid 2014-10-01 20:59:05 -07:00
Dane Springmeyer
687a33575c fast, non-caching check if a font can be opened and read 2014-10-01 20:32:03 -07:00
Dane Springmeyer
ad7e619ba3 remove state from freetype_engine - now fully static 2014-10-01 20:03:03 -07:00
Dane Springmeyer
898d58c4f5 face_set_ptr can be unique rather than shared 2014-10-01 19:01:26 -07:00
Dane Springmeyer
940c4a321d Merge branch 'master' of github.com:mapnik/mapnik into localized-font-cache 2014-10-01 18:54:25 -07:00
Dane Springmeyer
d29add9db3 use face_manager_freetype typedef everywhere 2014-10-01 18:54:11 -07:00
Dane Springmeyer
767c51cea2 add missing stdexcept include 2014-10-01 18:51:17 -07:00
Dane Springmeyer
d3802daea2 Merge branch 'master' of github.com:mapnik/mapnik into localized-font-cache 2014-10-01 18:45:41 -07:00
Dane Springmeyer
d96093d3aa rebase with master 2014-10-01 18:45:28 -07:00
Dane Springmeyer
bef269bc01 Add file_io.hpp 2014-10-01 18:44:19 -07:00
Dane Springmeyer
23cb5dd47d new util::file class wrapping cstdio + more library usage 2014-10-01 18:31:04 -07:00
Dane Springmeyer
3cdd42bab4 fix include 2014-10-01 18:29:59 -07:00
Dane Springmeyer
e6fe3cd8a6 new font_library raii class 2014-10-01 18:19:26 -07:00
Dane Springmeyer
83533c16c6 fix add_layer move signature - refs #2453 2014-10-01 14:20:58 -07:00
Dane Springmeyer
aae56fa387 avoid style, layer, and fontset copies in load_map - refs #2453 2014-10-01 14:09:09 -07:00
Dane Springmeyer
32f80b2b3e fix layer buffer default 2014-10-01 14:08:08 -07:00
Dane Springmeyer
9b2c14466c explicit move ctor for feature_type_style 2014-10-01 13:54:44 -07:00
Dane Springmeyer
ed3bc1d411 explicitly initialize all members of layer class in ctor 2014-10-01 13:53:12 -07:00
Dane Springmeyer
9ecdc839b5 c++ style 2014-10-01 11:24:41 -07:00
Dane Springmeyer
1b70ce8c3d Merge pull request #2477 from mapycz/fix-plugin-sqlite
fix multiple attach to the same sqlite database
2014-10-01 10:52:17 -07:00
Sandro Santilli
aa2ddc5ded Further speedup dataraster test by importing only tiled 2014-10-01 10:48:03 -07:00
Sandro Santilli
a226482158 Use a smaller input file for testing dataraster 16bsi
Also test a minor number of overviews.
The aim is to make the test faster (#2470)
2014-10-01 10:47:56 -07:00
Dane Springmeyer
24e1bcfeec fix visibility of agg headers needed for svg2png built with -fvisibility=hidden - similiar to #1860 2014-10-01 10:34:47 -07:00
Dane Springmeyer
d9b9b0efac fix -Wdangling-else warning in clipper.cpp 2014-10-01 10:34:47 -07:00
Jiri Drbalek
b6438a80d1 fix multiple attach to the same sqlite database 2014-10-01 14:02:38 +00:00
artemp
7c5cdc8e2c fix viewer compilation 2014-10-01 14:07:27 +01:00
artemp
745d45bb68 remove std::function from placement loop
(std::function incurs overhead of polymorphic dispatch internally and relatively expensive - avoid using in performance critic code)
2014-10-01 11:26:14 +01:00
artemp
1d5f1f12f0 remove static std::map<marker_placement_e, boost::function<markers_placement(Locator &locator,Detector &detector,markers_placement_params const& params)>
^ it was hurting compile times badly
2014-10-01 11:26:14 +01:00
Artem Pavlenko
6b1a2621b5 Merge pull request #2474 from joto/std_chrono
Use std::chrono instead of boost::chrono in benchmarks.
2014-10-01 10:53:51 +01:00
Jochen Topf
0aec5003b3 Use std::chrono instead of boost::chrono in benchmarks.
This reduces the external dependencies and fixes a bug where a duration was
reported in microseconds instead of milliseconds on some systems.
2014-10-01 11:38:08 +02:00
Dane Springmeyer
d09765ad08 travis: give up and just do clang++/release 2014-09-30 21:54:20 -07:00
Dane Springmeyer
0cf9498d21 travis: is there hope? 2014-09-30 21:40:10 -07:00
Dane Springmeyer
e9e5ec4a6b quick fix for #2451 2014-09-30 21:29:55 -07:00
Dane Springmeyer
548f30b81f travis: try JOBS=4 for gcc 2014-09-30 21:24:43 -07:00
Dane Springmeyer
4c07585312 fix #2464 2014-09-30 21:16:29 -07:00
Dane Springmeyer
babffe08fb travis: fix Debug comparision 2014-09-30 19:39:52 -07:00
Dane Springmeyer
e55e606025 Travis: debug JOBS in DEBUG mode 2014-09-30 19:19:25 -07:00
Dane Springmeyer
98f89ce2fd Merge pull request #2472 from zerebubuth/warning_2468
Fix compiler warning about uninitialised variable.
2014-09-30 19:16:54 -07:00
Dane Springmeyer
7e8275a283 travis: tune JOBS 2014-09-30 19:08:26 -07:00
Dane Springmeyer
eda8c3336b travis: fix typo 2014-09-30 18:50:26 -07:00
Dane Springmeyer
d4f7c2ae49 travis use boost 1.55 over 1.48 to dodge for now #2469 and #2471 2014-09-30 18:47:41 -07:00
Dane Springmeyer
4cbc139689 remove boost::format usage 2014-09-30 18:35:07 -07:00
Matt Amos
e759b61b07 Fix compiler warning about uninitialised variable. 2014-10-01 02:12:19 +01:00
Dane Springmeyer
8bf957e73e disable failing test for now (it is non critical + mysterious) - refs #2438 2014-09-30 17:53:24 -07:00
Dane Springmeyer
efec7cd843 visual tests: specialize grid diff tolerance 2014-09-30 17:42:40 -07:00
Dane Springmeyer
53b3cb3b46 visual tests: better grid diffing 2014-09-30 17:42:40 -07:00
Dane Springmeyer
e392feeec2 re-enable gcc, more JOBS, less boost 2014-09-30 17:05:34 -07:00
Dane Springmeyer
dfc7ba86d3 remove unused typedef 2014-09-30 17:00:52 -07:00
Dane Springmeyer
6d8f126c3f avoid -Wunused-local-typedefs warning in sparsehash 2014-09-30 16:57:44 -07:00
Dane Springmeyer
3bd7ee87c6 clean config.cache by default 2014-09-30 16:40:08 -07:00
Dane Springmeyer
c53bcd99a6 csv plugin: only attempt to parse ascii as numbers - closes #2450 2014-09-30 16:30:45 -07:00
Dane Springmeyer
9cba3a2036 travis: try more aggressive JOBS again - refs #2439 2014-09-30 14:52:50 -07:00
Dane Springmeyer
ad43b37672 Merge branch 'master' of github.com:mapnik/mapnik into localized-font-cache 2014-09-30 14:42:15 -07:00
Dane Springmeyer
09b02ddc17 Merge branch 'master' of github.com:mapnik/mapnik into localized-font-cache
Conflicts:
	src/build.py
2014-09-30 14:42:01 -07:00
Dane Springmeyer
f34d12094c new files 2014-09-30 12:50:42 -07:00
Dane Springmeyer
822d3a5bce break apart symbolizer.hpp + fwd declars + svg output grammar impl 2014-09-30 12:50:08 -07:00
Dane Springmeyer
985ddb3aeb fix compile of (currently unsed) symbolizer_grammar.hpp 2014-09-30 12:12:58 -07:00
Dane Springmeyer
6be1eb94c2 Revert "ditch boost/function" - refs #2465
This reverts commit 24052580b9.
2014-09-30 10:45:56 -07:00
Dane Springmeyer
1452c5b92f Merge pull request #2466 from mapnik/reduce-compile-times
reduce compile time by minimizing template instantiations
2014-09-30 10:45:39 -07:00
Dane Springmeyer
092e2c0913 travis: use harfbuzz v0.9.35 2014-09-30 08:58:33 -07:00
Dane Springmeyer
c4ee28cf1b install doc: note minimum harfbuzz version for font-feature-settings - refs #2456 2014-09-30 08:57:54 -07:00
Artem Pavlenko
7238a5a7e5 Merge pull request #2463 from joto/patch-2
Use std uint8_t instead of boost::uint8_t
2014-09-30 15:01:35 +01:00
Jochen Topf
da2c0a6949 Use std uint8_t instead of boost::uint8_t
Broke compilation
2014-09-30 15:58:29 +02:00
artemp
9c0046fb61 reduce compile time by minimizing template instantiaions 2014-09-30 14:44:02 +01:00
Dane Springmeyer
00382775a9 more make clean fixes 2014-09-29 21:20:01 -07:00
Dane Springmeyer
8752271910 code cleanup 2014-09-29 19:59:59 -07:00
Dane Springmeyer
41b0e0e16b remove scoped_array include 2014-09-29 19:43:00 -07:00
Dane Springmeyer
5e250e0dd9 avoid boost stdint usage 2014-09-29 19:42:34 -07:00
Dane Springmeyer
40a1189357 chip away at complexity of marker_helpers.hpp 2014-09-29 19:32:22 -07:00
Dane Springmeyer
d111dcbed6 iwyu 2014-09-29 18:47:05 -07:00
Dane Springmeyer
dc57849b7d geometry container typedef fixing 2014-09-29 18:40:57 -07:00
Dane Springmeyer
c654994dbc remove obsolete text_path.hpp header 2014-09-29 18:23:46 -07:00
Dane Springmeyer
d2a7fda55d fix visibility of regex_match/replace nodes 2014-09-29 18:12:39 -07:00
Dane Springmeyer
24052580b9 ditch boost/function 2014-09-29 17:51:05 -07:00
Dane Springmeyer
d0b167affc iwyu shuffle 2014-09-29 17:14:40 -07:00
Dane Springmeyer
9b0d6fc702 iwyu 2014-09-29 17:01:40 -07:00
Dane Springmeyer
3ee609112a using pimpl to isolate boost::regex headers - refs #2439 2014-09-29 16:48:19 -07:00
Dane Springmeyer
aaec8058fa fix property name in error message 2014-09-29 16:32:46 -07:00
Dane Springmeyer
a41978f439 iwyu 2014-09-29 13:50:21 -07:00
Dane Springmeyer
ba689b379e iwyu 2014-09-29 13:50:14 -07:00
Dane Springmeyer
848370c678 speed up compile / move iomanip to cpp - refs #2439 2014-09-29 13:49:56 -07:00
Dane Springmeyer
a1b98e6238 speed up compile / avoid boost/math - refs #2439 2014-09-29 13:49:22 -07:00
Dane Springmeyer
89f64f6b97 avoid spirit usage in function_call.hpp - refs #2439 2014-09-29 13:12:46 -07:00
artemp
8ff17378a4 make index constexpr 2014-09-29 21:03:34 +01:00
artemp
752d9def3c remove unused //#include <mapnik/expression_node.hpp> 2014-09-29 21:03:09 +01:00
Dane Springmeyer
b7b39d4444 add missing file 2014-09-29 12:11:03 -07:00
Dane Springmeyer
688e97e148 move dasharray parser to cpp file - refs #2439 2014-09-29 12:07:15 -07:00
artemp
953f4b700c remove unused mpl header 2014-09-29 19:29:44 +01:00
artemp
14ba64174b make arguments noncopyable 2014-09-29 14:07:39 +01:00
artemp
e8f7bd0efd Merge branch 'vertex-converter' 2014-09-29 12:35:15 +01:00
artemp
95d13e0b3d Merge branch 'master' into vertex-converter 2014-09-29 12:34:54 +01:00
artemp
4f67ec0fc7 update cairo and grid renderers to use new vertex_converters 2014-09-29 12:25:34 +01:00
artemp
7f81fc9146 cleanup 2014-09-29 12:22:54 +01:00
artemp
e57f66b97d re-implement vertex_converters using c++11 feature (removes dependency on boost::mpl/boost::fusion) 2014-09-29 11:58:04 +01:00
artemp
8382751404 fix cpp_test 2014-09-29 11:57:47 +01:00
artemp
06d4f0aa11 revert template instantiation depth to 300 2014-09-29 11:57:01 +01:00
Dane Springmeyer
4541a2207b simplify code in create_face 2014-09-28 23:54:24 -07:00
Dane Springmeyer
11d8f40342 add code comments to create_face 2014-09-28 23:32:29 -07:00
Dane Springmeyer
0a1906f7a6 cleanup 2014-09-28 23:32:02 -07:00
Dane Springmeyer
5f0b5ddafd ignore font cache in map assignment and comparison 2014-09-28 23:31:48 -07:00
Dane Springmeyer
7b97e3ace8 unique_ptr for font_face_set 2014-09-28 22:35:08 -07:00
Dane Springmeyer
e21e8b6696 c++ style 2014-09-28 22:20:59 -07:00
Dane Springmeyer
758f75dcaa fix benchmark compile 2014-09-26 23:00:02 -07:00
Dane Springmeyer
d1adabf7d5 3.x port of localized font caching and then some 2014-09-26 19:54:07 -07:00
Dane Springmeyer
d3d6b09516 fix windows compile - apparently numeric_limits is not viably constexpr - closes #2452 2014-09-26 16:57:16 -07:00
Dane Springmeyer
a9c7bfcdf8 simplify text rendering benchmark to only render text + be explicit about clipping - refs #2326 2014-09-26 12:55:31 -07:00
Jiri Drbalek
50b2189f38 Merge pull request #2449 from mapycz/test-valign
add visual test text vertical-alignment
2014-09-26 21:55:28 +02:00
Jiri Drbalek
17852989e0 add visual test text vertical-alignment 2014-09-26 19:27:43 +00:00
Jiri Drbalek
359a34838a Merge pull request #2445 from mapycz/improve-test-text-displacement
improve visual test - show line direction
2014-09-26 19:53:08 +02:00
Jiri Drbalek
5921d201d0 improve visual test - show line direction 2014-09-26 17:51:55 +00:00
Dane Springmeyer
c37f5fa242 Merge pull request #2444 from joto/patch-1
Add info on memory requirements.
2014-09-26 08:47:11 -07:00
artemp
130e621ace use c++11 in vertex_converters (work-in-progress) 2014-09-26 12:41:03 +01:00
Jochen Topf
1b262b6953 Add info on memory requirements. 2014-09-26 11:44:56 +02:00
Dane Springmeyer
385a77fc47 pass map to renderer common (viable after 60a55cb48, needed for upcoming font changes) 2014-09-25 22:37:43 -07:00
Dane Springmeyer
59eb03a346 simplify parse error in xml 2014-09-25 22:20:44 -07:00
Dane Springmeyer
2dbefde750 add validation to face_ptr_creation benchmark 2014-09-25 13:09:05 -07:00
Jiri Drbalek
78e3f6c43d Merge pull request #2440 from mapycz/fix-data-binding
fix text symbolizer property data binding
2014-09-25 20:51:56 +02:00
Jiri Drbalek
13f950159f fix text symbolizer property data binding 2014-09-25 18:26:36 +00:00
Dane Springmeyer
60a55cb48b noncopyable renderer_common (needed for upcoming font work) 2014-09-24 22:46:19 -07:00
Dane Springmeyer
a26a82dc12 allow font re-registration - closes #1895 2014-09-24 18:22:45 -07:00
Dane Springmeyer
c9452d3a70 replace tabs with spaces - amends c322655c 2014-09-24 17:48:25 -07:00
Dane Springmeyer
5b6ab82f7a skip postgis tests if postgres not running 2014-09-24 17:43:48 -07:00
Dane Springmeyer
eb8686388f add to string impl for length func - closes #2437 2014-09-24 17:37:16 -07:00
Dane Springmeyer
fb60492696 skip load/save map tests when postgis is not running 2014-09-24 17:36:50 -07:00
Dane Springmeyer
18910f4c44 postgis tests - skip if createdb not found (TODO: check return code) 2014-09-24 17:22:09 -07:00
Dane Springmeyer
64f3815687 ensure boost system is linked after thread - closes #2436 2014-09-24 17:11:43 -07:00
Dane Springmeyer
74b33d3042 back to 2 JOBS 2014-09-24 16:00:27 -07:00
Dane Springmeyer
b56168d0a4 actually fix make clean first run - refs #2112 2014-09-24 15:59:08 -07:00
Dane Springmeyer
1c1cd076f8 Remove unused unifont 2014-09-24 15:42:54 -07:00
Dane Springmeyer
aa239a65ed remove unneeded include 2014-09-24 12:23:54 -07:00
artemp
c322655cc6 add visual test for expressions function length(<expr>) 2014-09-24 13:16:29 +01:00
Dane Springmeyer
97dcd2fd59 only accept JOBS via make setting and default to 1 - closes #2430 2014-09-23 11:25:01 -07:00
Dane Springmeyer
ebb6678a61 point postgis-inline.xml at template_postgis 2014-09-23 11:25:01 -07:00
artemp
4be6ca37e9 c++11 - use auto 2014-09-23 18:49:31 +01:00
Artem Pavlenko
5e00bb47bd Merge pull request #2431 from joto/doc-fixes
Various doc fixes.
2014-09-23 15:15:06 +01:00
artemp
7a1cc786fc position_grammar - re-order rules to allow expectation operators 2014-09-23 15:12:22 +01:00
artemp
2f319e92cc use error_handler across json parsers 2014-09-23 14:58:10 +01:00
artemp
1382e57ebe avoid allocating potentially large std::string in error_handler 2014-09-23 14:02:08 +01:00
artemp
f4694d03ff json error handler : use MAPNIK_LOG_ERROR and better message 2014-09-23 13:22:53 +01:00
Jochen Topf
ee460e6eb4 Various doc fixes. 2014-09-23 11:31:21 +02:00
Jiri Drbalek
ebe0021679 Merge pull request #2426 from mapycz/add-text-adjust
add text attribute horizontal-alignment="adjust"
2014-09-23 11:08:43 +02:00
Jiri Drbalek
bf1eac02ab add visual tests horizontal-alignment="adjust" 2014-09-23 08:49:27 +00:00
Jiri Drbalek
31607cb3f4 add text attribute horizontal-alignment="adjust" 2014-09-23 08:49:27 +00:00
Dane Springmeyer
d59529d22f map ExpressionFormat -> Format for 2.3.x back compat - refs #2429 2014-09-22 23:34:36 -07:00
artemp
43c04a72bf add set_property_from_xml_impl specialization from std::string
( parse as an expression first )
2014-09-22 12:04:05 +01:00
artemp
5db32ab2e2 properties_util : template apply static method on value type 2014-09-22 11:23:57 +01:00
artemp
5df668d126 refactor error handler to work with mapnik/debug macros 2014-09-22 10:10:08 +01:00
Dane Springmeyer
e7e235a8b5 tweak wrap-character test to start failing due to #2424 2014-09-19 16:59:49 -07:00
Dane Springmeyer
b8a0c16213 add visual test for wrap-character - refs #2333 2014-09-19 16:55:34 -07:00
Dane Springmeyer
69dd74e079 rename wrap-char -> wrap-character to match Mapnik 2.3.x - refs #2333 2014-09-19 16:53:03 -07:00
Dane Springmeyer
0c901f790e respect halo-transform in grid_renderer 2014-09-19 15:37:13 -07:00
Dane Springmeyer
fee3a5568c add an inline postgis test 2014-09-19 15:26:07 -07:00
Dane Springmeyer
de717d5d1b update visual tests after #2377 2014-09-19 15:21:14 -07:00
Dane Springmeyer
9e78712dc4 Merge pull request #2377 from mapycz/3.x-fix-text-on-line-glyph-distance
text rendering with line placement on corners in 3.x
2014-09-19 15:12:32 -07:00
Dane Springmeyer
d91bf978fd minor visual test updates after #2416 2014-09-19 14:52:00 -07:00
Dane Springmeyer
98adcc2d58 fix compile with clang++ after #2416 2014-09-19 14:51:27 -07:00
Dane Springmeyer
7576c8e384 fix return of painted in grid_renderer 2014-09-19 14:34:08 -07:00
Dane Springmeyer
68d90adda6 enable painted for svg_renderer
Conflicts:
	include/mapnik/svg/output/svg_renderer.hpp
2014-09-19 14:34:07 -07:00
Dane Springmeyer
753cd5d6a0 Merge pull request #2416 from mapycz/add-font-features
add font-feature-settings
2014-09-19 14:30:17 -07:00
Dane Springmeyer
f67e300286 Merge pull request #2418 from mapycz/fix-image-painted
fix image painted
2014-09-19 14:07:39 -07:00
Dane Springmeyer
ce5926f8bc Merge pull request #2421 from strk/master-srid-in-test
Add missing input srid in test
2014-09-19 13:49:08 -07:00
Dane Springmeyer
491a8b5006 travis: test JOBS=1 2014-09-18 15:49:14 -07:00
Dane Springmeyer
07a152f044 visual tests: test grids + 2x scale_factor 2014-09-18 15:26:50 -07:00
Dane Springmeyer
013aea0e18 fix feature test to expect exception 2014-09-18 14:44:38 -07:00
Dane Springmeyer
dcd21e75d9 be able to pass down scale_factor to python grid renderering 2014-09-18 14:44:38 -07:00
Dane Springmeyer
f888e0a9f6 link shapeindex to libicuuc - fixes #2419 2014-09-18 14:29:22 -07:00
Jiri Drbalek
9a85d7dab2 update visual tests 2014-09-17 19:33:30 +00:00
Jiri Drbalek
57be44d815 text ligatures off when character-spacing > 0 2014-09-17 19:22:14 +00:00
Jiri Drbalek
81dcb4e3e1 add visual test font-feature-settings 2014-09-17 19:22:14 +00:00
Jiri Drbalek
2dcfa9e4b7 add font-feature-settings 2014-09-17 19:22:07 +00:00
Sandro Santilli
576e56ec17 Add missing input srid in test
Happens to work without srid specification due to && operator not
re-checking in newer postgis, but would fail with older postgis.
2014-09-17 15:48:16 +02:00
Jiri Drbalek
dc57f7251c add c++ test image painted 2014-09-16 18:57:29 +02:00
Jiri Drbalek
e6a32f22cf fix image painted 2014-09-16 18:54:52 +02:00
artemp
cdf6cf6e99 fix feature_test 2014-09-12 17:22:02 +01:00
artemp
4c296e65e7 use expectation operators parsing attributes #2390 2014-09-12 17:19:11 +01:00
Dane Springmeyer
0cb63c51e8 finish removing ancient reduced size grid rendering pathway - amends f3a824c2cc 2014-09-12 00:56:51 -07:00
Dane Springmeyer
91ee910ad2 remove debugging line 2014-09-11 15:46:49 -07:00
Dane Springmeyer
519149087e add support to tiff reader for reporting alpha 2014-09-11 15:44:48 -07:00
Dane Springmeyer
c0f8dd8d47 travis: fewer jobs to try to work around oom 2014-09-11 13:30:48 -07:00
Dane Springmeyer
edbc972de7 Revert "travis: try increasing swap"
This reverts commit e95d863fd4.
2014-09-11 13:30:15 -07:00
Dane Springmeyer
e95d863fd4 travis: try increasing swap 2014-09-11 10:45:05 -07:00
Dane Springmeyer
7fdae08ce1 unmask now fixed raster warping test - amends db39528231 - refs #1913 2014-09-11 10:22:19 -07:00
Dane Springmeyer
c43a4ba27d add more to changelog 2014-09-11 10:15:27 -07:00
Dane Springmeyer
6c4b51eb56 remove unneeded inclusion of box2d.cpp in shapeindex 2014-09-11 10:15:27 -07:00
artemp
af33a87cfd disable AA when warping images #1913 2014-09-11 16:49:00 +01:00
artemp
e545b68699 revert accidental removal of 'wrap-before' expression 2014-09-11 10:14:36 +01:00
artemp
2b5b573074 Merge branch 'MapQuest-min-dist-compatibility' 2014-09-10 16:36:25 +01:00
artemp
246336d2b1 Merge branch 'min-dist-compatibility' of git://github.com/MapQuest/mapnik into MapQuest-min-dist-compatibility 2014-09-10 16:20:36 +01:00
artemp
f8dc7b023a text - add ``repeat-wrap-char`` parameter default:false (#2333) 2014-09-10 16:08:41 +01:00
Jordan Hollinger
9b5a9dfe3e Change text-margin option to margin. 2014-09-10 07:45:41 -04:00
artemp
90f6258b41 expressions : add ``lenght()`` unary function 2014-09-10 12:09:33 +01:00
artemp
b441586acf text-symbolizer: revive 'wrap-char' property which uses special (naive) line_breaker - ref #2333 2014-09-09 17:30:01 +01:00
artemp
635c3728f2 wrap BreakIterator into std::unique_ptr to avoid leaking memory
(per ICU docs: "The caller owns the returned object and is responsible for deleting it.")
2014-09-08 12:01:22 +01:00
Dane Springmeyer
b0e4533dda start updating 3.0.0 changelog 2014-09-07 22:14:08 -07:00
Dane Springmeyer
479b9e13d0 Merge pull request #2383 from MapQuest/min-dist-compatibility
3.x -> 2.3.x compatibility for minimum-distance
2014-09-06 22:50:13 -07:00
Dane Springmeyer
4ac190e8ef fix handling of marker width/height 2014-09-06 22:44:57 -07:00
Dane Springmeyer
ecc8696664 simplify load_map code 2014-09-06 22:15:26 -07:00
Dane Springmeyer
cc07ac2b00 simplify marker width/height handling 2014-09-06 22:13:30 -07:00
Dane Springmeyer
54b2880e53 markers: support offset, geometry-transform, and simplify - closes #2108 2014-09-06 21:27:15 -07:00
Dane Springmeyer
bb0df1d6c6 require rendering benchmarks to use font-directory 2014-09-06 19:09:34 -07:00
Dane Springmeyer
e1d30132f3 fix map zoom doc - closes #2402 2014-09-06 18:17:25 -07:00
Dane Springmeyer
43795532e5 get visual tests running on windows 2014-09-06 23:04:01 +00:00
Dane Springmeyer
dc8a46017f fix recursion on windows - closes #2414 2014-09-06 21:07:48 +00:00
Dane Springmeyer
9d363ce7e7 change runtime warning to compile time warning 2014-09-06 12:57:53 -07:00
Dane Springmeyer
1482835c08 fix visibility of image compositing/scaling with -flto - closes #2413 2014-09-06 10:52:00 -07:00
Dane Springmeyer
e26570dfdb completely ignore layers with status=off - closes #153 2014-09-06 10:08:40 -07:00
Dane Springmeyer
8b059b0d42 initial tests for marker avoid-edges - 2727eddf9 2014-09-05 09:25:34 -07:00
artemp
fef3d22154 support avoid-edges in all markers placements 2014-09-05 16:33:20 +01:00
artemp
2727eddf90 implement 'avoid-adges' for markers placements (point placement)
(TODO: support all placement types)
2014-09-05 16:19:55 +01:00
artemp
3cb047fc5c avoid callling TIFFs global structures ref #2391 2014-09-05 12:30:33 +01:00
artemp
aea77a7155 use generic_json types in topojson grammar
refactor value_converters into separate header
usd value_converters in geojson parser
2014-09-05 12:13:58 +01:00
Jiri Drbalek
b7e7e29781 fix text rendering with line placement on corners 2014-09-05 10:46:46 +00:00
Jiri Drbalek
1af6f5db10 format 2014-09-05 10:46:46 +00:00
Jiri Drbalek
69708dc640 add length method 2014-09-05 10:46:46 +00:00
Dane Springmeyer
a8ce980594 Merge pull request #2410 from pnorman/patch-1
Update memory requirements for g++ compiling
2014-09-05 00:31:06 -07:00
Paul Norman
0ed67daf10 Update memory requirements for g++ compiling
Compiling with g++ fails with out of ram on Launchpad VMs with 4GB RAM + 1 GB swap
2014-09-05 00:14:10 -07:00
Dane Springmeyer
035a947892 no need for harfbuzz-icu 2014-09-04 23:16:25 -07:00
Dane Springmeyer
492e084714 add copy ctor to rule: avoids last copy of syms in load_map - closes #1293 2014-09-04 22:03:54 -07:00
Dane Springmeyer
1c0de9e978 add visual test for fitting markers between text - refs #1666 2014-09-04 20:35:14 -07:00
Dane Springmeyer
ecdb12ac07 speed up topojson parsing - closes #2397 2014-09-04 20:26:52 -07:00
Dane Springmeyer
1b8e74e8a9 Merge branch 'master' of github.com:mapnik/mapnik 2014-09-04 20:02:42 -07:00
Dane Springmeyer
25a41ae31b restore value hash + add test harness 2014-09-04 19:38:53 -07:00
Dane Springmeyer
3025b0e9e4 fix save_map test on windows 2014-09-05 02:34:25 +00:00
Dane Springmeyer
41e07e3083 Merge pull request #2398 from mapnik/3x-msvs
Support for Windows 2013/2014 + C++11
2014-09-04 16:43:12 -07:00
Dane Springmeyer
3c1ad84f95 remove mapnik-config.bat 2014-09-04 16:40:37 -07:00
Dane Springmeyer
cdefc71488 Revert "start fixing visual tests to run on windows"
This reverts commit 79c6ab46a5.
2014-09-04 16:40:28 -07:00
Dane Springmeyer
d787e59718 remove gyp specific build files 2014-09-04 16:37:29 -07:00
Dane Springmeyer
7ee9f3268a Merge branch 'master' of github.com:mapnik/mapnik into 3x-msvs 2014-09-04 13:06:02 -07:00
Dane Springmeyer
f73eef6f7a rollback png8 default in 2.3.x - closes #2110 2014-09-04 12:08:47 -07:00
Dane Springmeyer
038cc41cd4 we are targeting 2014 so rollback 2013 CTP workarounds 2014-09-04 18:26:17 +00:00
Dane Springmeyer
eed46b87cf fix gdal,proj,icu share creation 2014-09-04 17:14:26 +00:00
Dane Springmeyer
2cc7c5a4f7 attempt to get all save_map tests working cross platform 2014-09-04 09:48:04 -07:00
Dane Springmeyer
7d5d02e031 Merge branch 'master' of github.com:mapnik/mapnik into 3x-msvs 2014-09-04 09:22:53 -07:00
Dane Springmeyer
c30f1715e6 Revert "workaround msvs variant init bug"
This reverts commit be44b647fa.
2014-09-04 09:22:43 -07:00
Dane Springmeyer
98c881432a Revert "attempt to workaround other mapnik_value_type->variant bugs"
This reverts commit 7dc1aed9ee.
2014-09-04 09:21:14 -07:00
artemp
72e2f4446f re-implement mapnik::value deriving from value_base and update across core
fix mapnik::value conversions in topojson plugin
2014-09-04 17:10:13 +01:00
artemp
0985cc907d remove copy converting ctor and fix converting move constuctor to use 'universal reference' and perfect forwarding
( re : http://isocpp.org/blog/2012/11/universal-references-in-c11-scott-meyers)
2014-09-04 14:54:42 +01:00
Sean Gillies
c52994ff8b Allow user to specify a python executable.¬
¬
Fall back on `python`. Unlike the solution in PR #2395 this¬
puts all the responsibility for selecting the right python in the¬
case that "python" is Python 3 on the user. I've followed the lead¬
of the Python documentation Makefile. See

http://hg.python.org/cpython/file/340d48347295/Doc/README.txt
http://hg.python.org/cpython/file/340d48347295/Doc/Makefile

Intent is that if your `python` is Python 2 everything works as
before and that is your `python` is Python 3 but you have a
`python2` you can specify that instead.¬

Conflicts:
	run_tests
2014-09-03 15:56:58 -07:00
Dane Springmeyer
b6bd5d744e travis: more debugging of mapnik-test-data 2014-09-03 12:29:10 -07:00
Dane Springmeyer
55a0ce5fdb update visual tests after #2399 2014-09-03 11:57:24 -07:00
Jiri Drbalek
67d8f41a1b fix angle calculation
Conflicts:
	src/text/vertex_cache.cpp
2014-09-03 11:53:23 -07:00
Dane Springmeyer
21d213a653 travis: debug mapnik-test-data 2014-09-02 13:17:35 -07:00
Dane Springmeyer
27fbd2dcbe add https://github.com/mapbox/mapnik-test-data to tests - /cc @GretaCB 2014-09-02 11:55:09 -07:00
Dane Springmeyer
58a8f19b16 add csv test with utf8 data inlined 2014-08-31 20:28:51 -07:00
Dane Springmeyer
4227862660 fix broken path remove on windows 2014-08-31 20:24:41 -07:00
Dane Springmeyer
dbdf9c8180 don't test whitespace 2014-08-31 20:14:15 -07:00
Dane Springmeyer
72ca8d6faa spruce up mapnik-config.bat 2014-08-31 20:09:39 -07:00
Dane Springmeyer
cfe79a6fe3 make sure postgis test does not run on windows if no server is availabl 2014-08-31 20:09:16 -07:00
Dane Springmeyer
f4ba1eba15 fixup python bootstrapping 2014-08-31 19:16:39 -07:00
Dane Springmeyer
d8f8831417 Merge branch 'master' of https://github.com/mapnik/mapnik into 3x-msvs 2014-08-31 17:51:38 -07:00
Dane Springmeyer
1ba744162b Add nik2img.cpp 2014-08-31 17:51:02 -07:00
Dane Springmeyer
afee619e63 support windows in nik2img.cpp 2014-08-31 17:32:48 -07:00
Dane Springmeyer
7dc1aed9ee attempt to workaround other mapnik_value_type->variant bugs 2014-08-31 17:18:15 -07:00
Dane Springmeyer
dcdd580f98 stash notes on getting python tests running 2014-08-31 13:58:38 -07:00
Dane Springmeyer
351c0894fa avoid inconsistent dll linkage warnings with python + switch back to python.org install 2014-08-31 13:58:25 -07:00
Dane Springmeyer
be44b647fa workaround msvs variant init bug 2014-08-31 12:44:12 -07:00
Dane Springmeyer
79c6ab46a5 start fixing visual tests to run on windows 2014-08-31 08:08:52 +00:00
Dane Springmeyer
18d759f0db reference fonts locally for now 2014-08-31 08:08:14 +00:00
Dane Springmeyer
6828dd5b1e get python bindings working 2014-08-31 07:45:26 +00:00
Dane Springmeyer
beaf7a56cc fix linking problems from python 2014-08-31 07:44:41 +00:00
Dane Springmeyer
bfc772f697 attempt to build the python bindings (TODO: symbol errors wrt to swap) 2014-08-31 07:01:06 +00:00
Dane Springmeyer
ddb6e7e007 remove tabs from mapnik.gyp 2014-08-31 06:30:04 +00:00
Dane Springmeyer
5bf866bbcb adapt to zlib and harfbuzz build changes 2014-08-31 04:19:15 +00:00
Dane Springmeyer
603ea3811f Merge branch 'master' of github.com:mapnik/mapnik into 3x-msvs 2014-08-30 20:05:33 -07:00
Dane Springmeyer
f9e11dabeb simplify agg_basics.h
- remove unused/obsolete asm
 - visual studio since 2010 supports long long and we target 2014 now
2014-08-30 15:39:52 -07:00
Dane Springmeyer
a8017ddae6 fix std:: prefixing for cmath 2014-08-30 15:13:34 -07:00
Dane Springmeyer
7e74967282 fix std:: prefixing for cmath 2014-08-30 15:13:26 -07:00
Dane Springmeyer
8cd198625e remove unused code 2014-08-30 14:30:51 -07:00
Dane Springmeyer
43eb395839 fixup mapnik-config.bat defines and link flags 2014-08-29 19:45:49 -07:00
Dane Springmeyer
6f476410fa Avoid boost auto-link warnings 2014-08-29 19:05:15 -07:00
Dane Springmeyer
d577ef8719 Merge branch 'master' of https://github.com/mapnik/mapnik into 3x-msvs 2014-08-29 18:56:43 -07:00
Dane Springmeyer
c36767af9e msvc 2014 linking fixes 2014-08-29 18:56:03 -07:00
Dane Springmeyer
aba0d790dc start running tests again 2014-08-29 18:53:10 -07:00
Dane Springmeyer
3004dfc8c1 fix conversions test with msvs 2014 2014-08-29 18:52:52 -07:00
Dane Springmeyer
c7f58ee64c clean up harfbuzz->icu interface 2014-08-29 17:41:29 -07:00
Dane Springmeyer
a2927c123b C++11 mode via v140 toolset + libc++ 2014-08-29 16:58:13 -07:00
Dane Springmeyer
6b364aedf1 harfbuzz in mapnik-config.bat 2014-08-29 16:46:38 -07:00
Dane Springmeyer
15356f6320 handle wchar_t UChar typedef on windows 2014-08-29 16:46:23 -07:00
Dane Springmeyer
cc5d80cb4d msvs 2014 built boost libs 2014-08-29 16:45:54 -07:00
Dane Springmeyer
12a45744fb Merge pull request #2403 from mapycz/3.x-fix-vertext_last-warning
fix compiler warning
2014-08-29 11:52:09 -07:00
Jiri Drbalek
21dcb2e2c4 fix compiler warning 2014-08-29 18:18:25 +00:00
Dane Springmeyer
8d7bf7a8da fix imagedata visability on windows 2014-08-29 11:01:04 -07:00
Dane Springmeyer
3638505854 add correct webp lib 2014-08-29 10:35:54 -07:00
artemp
a5925c1f15 remove redundant private copy assignment op 2014-08-29 18:06:08 +01:00
Dane Springmeyer
c5833e8724 run tests after copying mapnik.lib in place 2014-08-29 00:31:10 -07:00
Dane Springmeyer
3f6a5ae246 re-enable harfbuzz shaper 2014-08-29 00:05:34 -07:00
Dane Springmeyer
726d27866c hookk up harfbuzz 2014-08-28 22:18:12 -07:00
Dane Springmeyer
8e8bc6c745 dodge linking error with image_data on windows - refs #2396 2014-08-28 20:52:18 -07:00
Dane Springmeyer
6074e87bbb include optional - fix msvs compile - refs #2396 2014-08-28 19:29:07 -07:00
Dane Springmeyer
8faa358067 Merge pull request #2400 from mapnik/single-pass-json
Drop multi_pass iterator
2014-08-28 19:12:04 -07:00
Dane Springmeyer
6f3b8f969d params: make msvs happy 2014-08-28 19:06:17 -07:00
Dane Springmeyer
e146dee620 c++ style 2014-08-28 19:06:03 -07:00
Dane Springmeyer
b93d0e97e0 remove one more unused function::name that does not compile with msvs 2013 - refs #2396 2014-08-28 18:57:59 -07:00
Dane Springmeyer
324fb11f66 include <cstdint> - fixes msvs compile - refs #2396 2014-08-28 18:51:27 -07:00
Dane Springmeyer
37f4c574f3 remove unused function::name that does not compile with msvs 2013 - refs #2396 2014-08-28 18:49:56 -07:00
Dane Springmeyer
7ff712af52 remove unused code 2014-08-28 17:24:17 -07:00
Dane Springmeyer
3c66054524 Merge branch 'master' of github.com:mapnik/mapnik into 3x-msvs 2014-08-28 17:23:59 -07:00
Dane Springmeyer
23189d7059 remove invalid MAPNIK_DECL usage - amends d61efc0b5a (may break lto, but fixes windows) 2014-08-28 17:23:32 -07:00
Dane Springmeyer
4f773309f1 fix mapnik::logger usage 2014-08-28 13:59:48 -07:00
artemp
1ac0ebdd83 rename coord_transform to transform_path_adapter and move implementation into separate header 2014-08-28 10:59:08 +01:00
artemp
ecfaec1027 rename ctrans.hpp to view_transform.hpp 2014-08-28 10:29:04 +01:00
artemp
de22d5900c rename CoordTransform to view_transform to better reflect its purpose and be consistent 2014-08-28 10:17:15 +01:00
artemp
cc76ac4c6a c++ style - avoid implicit bool conversions in comparison + make note re:scale_denom *= p.scale_factor(); 2014-08-28 09:57:24 +01:00
artemp
4628dc3ff3 c++11 style 2014-08-28 09:55:16 +01:00
Dane Springmeyer
9b782d05f4 Merge pull request #2382 from IvanSanchez/master
Testcase for polygon rings winding order
2014-08-26 21:28:25 -07:00
Dane Springmeyer
f6a7bddca3 Merge pull request #2394 from strk/master-pgis-simplify-20th
Bring postgis simplification factor back to 1/20 of a pixel
2014-08-26 21:25:24 -07:00
Dane Springmeyer
91da442cdd fix issue 9 for 2013 CTP from #2396 2014-08-26 20:39:08 -07:00
Dane Springmeyer
0635052349 fix CTP 2013 issue 8 from #2396 2014-08-26 20:01:59 -07:00
Dane Springmeyer
a8e8632572 don't trust __cplusplus - addresses issue 5 from #2396 2014-08-26 19:24:53 -07:00
Dane Springmeyer
ee1c2aec47 use icu shaper to avoid needing to build harfbuzz right now - refs #2396 2014-08-26 19:24:06 -07:00
Dane Springmeyer
5789777199 fix issue 7 from #2396 2014-08-26 19:23:24 -07:00
Dane Springmeyer
f364069e25 fix issue 6 from #2396 2014-08-26 19:11:44 -07:00
Dane Springmeyer
c1140fb2ea fix issue 4 of #2396 2014-08-26 19:01:45 -07:00
Dane Springmeyer
cc970dea1c remove unused statistics member 2014-08-26 18:36:01 -07:00
Dane Springmeyer
616896c6ee remove spirit::multi_pass - refs #2397 2014-08-26 16:22:12 -07:00
Dane Springmeyer
b6bfab99b8 remove unneeded header 2014-08-26 16:09:04 -07:00
Dane Springmeyer
147375e197 workaround issue 3 from #2396 2014-08-26 13:23:48 -07:00
Dane Springmeyer
8d448dad5c fix issue 2 from #2396 2014-08-26 12:43:31 -07:00
Dane Springmeyer
884db7de8c fix issue 1 from #2396 2014-08-26 12:43:11 -07:00
Dane Springmeyer
6b86b10a3f ptree parser does not trim CDATA the same, so remove trailing whitespace to avoid test failures in save_map_test.py 2014-08-26 08:43:57 -07:00
Sandro Santilli
0d098a0467 Bring postgis simplification factor back to 1/20 of a pixel
This was the value in 2.2.x and was accidentally changed as part
of a completely unrelated commit, see:
http://github.com/mapnik/mapnik/issues/1639#issuecomment-53388951
2014-08-26 13:03:22 +02:00
artemp
bfa13152e3 implement unary functions as functors 2014-08-26 11:41:26 +01:00
artemp
4fcbeaf706 avoid creating expression_string(str) visitor objects recursively 2014-08-26 11:00:42 +01:00
artemp
0cfbd3c5e8 expression_string : implement function call support 2014-08-26 10:51:55 +01:00
Dane Springmeyer
3e1ab9beab fix gdal compile with msvs 2013 - closes #2257 2014-08-25 17:50:45 -07:00
Dane Springmeyer
6bdb2ebbf1 Add visual test 2014-08-25 17:36:22 -07:00
Dane Springmeyer
8e996e10ab add support for windows unicode paths in rapidxml loader
Conflicts:
	src/rapidxml_loader.cpp
2014-08-25 15:43:43 -07:00
Dane Springmeyer
70f71790fe simplify expression handling in marker_helpers 2014-08-25 14:51:22 -07:00
Dane Springmeyer
feffa8f53c respect int return type for WebPValidateConfig 2014-08-25 14:38:03 -07:00
Dane Springmeyer
1011e9d3c7 Add from_geojson test that validates current behavior - refs #2390 2014-08-25 12:04:35 -07:00
Dane Springmeyer
225810e3ee ogr: also accept 'inline' arg like geojson/topojson/csv plugins 2014-08-25 11:59:32 -07:00
artemp
3bd323ca85 expressions - add 'abs' function 2014-08-25 15:13:52 +01:00
artemp
2a254a4017 expressions - refactor function calls into separate compilation unit 2014-08-25 15:06:53 +01:00
artemp
4adb0abb64 expressions - implement unary and binary function expression nodes
(sample functions: exp, pow, sin, cos, min, max, tan, atan)
2014-08-25 14:17:18 +01:00
Dane Springmeyer
48c23f27dc remove duplicate calculation of image_ratio 2014-08-24 19:21:54 -07:00
Dane Springmeyer
0b8439c8d2 fix inialization order 2014-08-24 16:37:39 -07:00
Dane Springmeyer
7cb907e13f avoid warning from boost geometry
Conflicts:
	plugins/input/geojson/geojson_datasource.hpp
2014-08-24 16:00:27 -07:00
Dane Springmeyer
6fe0f93e70 remove svg renderer test 2014-08-24 13:46:33 -07:00
Dane Springmeyer
f6eca08c8d remove svg renderer test since its not actually asserting anything useful 2014-08-24 13:46:33 -07:00
Dane Springmeyer
4ebf1ae114 Merge pull request #2388 from mapycz/3.x-refactor-markers-placement
refactor marker placements
2014-08-24 12:09:23 -07:00
Jiri Drbalek
e1aededb09 refactor marker placements 2014-08-24 18:10:41 +00:00
Dane Springmeyer
45aa09b9bd travis: less JOBS in debug mode [skip ci] 2014-08-22 14:25:27 -07:00
Dane Springmeyer
d02f29255c add visual test mimicking a typographic map
- Helps prepare for #2377 more
 - More details on typographic maps at http://store.axismaps.com
 - See also #2385 and #678
2014-08-22 13:52:52 -07:00
Dane Springmeyer
b85ac0d6a5 register fonts in nik2img util 2014-08-22 13:22:12 -07:00
Jordan Hollinger
88782a85c8 Minor improvement to repeat handling in collision detector. 2014-08-22 13:38:01 -04:00
Jordan Hollinger
cf8d1873bc Update visual test repeat-labels-1 to test minimum-distance functionality. 2014-08-22 10:53:00 -04:00
Iván Sánchez Ortega
3b32185bd9 Merge branch 'master' of https://github.com/IvanSanchez/mapnik
Conflicts:
	tests/visual_tests/images/polygon-winding-order-300-300-1.0-agg-reference.png
	tests/visual_tests/images/polygon-winding-order-300-300-1.0-cairo-reference.png
	tests/visual_tests/images/polygon-winding-order-300-300-2.0-agg-reference.png
	tests/visual_tests/images/polygon-winding-order-300-300-2.0-cairo-reference.png
2014-08-22 16:32:29 +02:00
Iván Sánchez Ortega
dd4e2336c4 Added test case for winding order of polygon rings. See mapnik/mapnik#2371 and mapbox/tilemill#2110. 2014-08-22 16:31:01 +02:00
Iván Sánchez Ortega
bebe5e9e3a Added test case for winding order of polygon rings. See mapnik/mapnik#2371 and mapbox/tilemill#2110. 2014-08-22 16:26:02 +02:00
Jordan Hollinger
688dfcabc9 Disallow use of minimum-distance with either repeat-distance or text-margin. 2014-08-22 08:52:45 -04:00
artemp
eb7716aeed expressions - initial function_call framework implementation (TODO) 2014-08-22 12:30:25 +01:00
Dane Springmeyer
3e7f66c4a6 fix visual tests (removing accidental debug boxes) 2014-08-21 22:45:25 -07:00
Dane Springmeyer
7b56c71b89 add visual test for #983 2014-08-21 22:42:57 -07:00
Jordan Hollinger
a28d3dd99c Handle text-margin, repeat-distance, and backward compatible minimum-distance in placement_finder. Update visual tests. 2014-08-21 20:49:00 -04:00
Dane Springmeyer
601ac60c87 travis: fix order of ops 2014-08-21 17:01:51 -07:00
Dane Springmeyer
a85312179c travis: add back libstdc++ upgrade for c++11 support 2014-08-21 16:55:55 -07:00
Dane Springmeyer
5e8efd75d3 port travis fixes from #2380 to master 2014-08-21 16:36:55 -07:00
Dane Springmeyer
8254a5c1e5 enable native svg rendering with 'svg-ng' format in render_to_file refs #2229 2014-08-21 16:15:35 -07:00
Dane Springmeyer
920b92a3ef improve error message when c++11 compiler is not available - refs #2376 2014-08-21 15:03:57 -07:00
artemp
8db68fc5e3 hextree - avoid quantizing images with less than 3 pixels (hextree implementation requirement) 2014-08-21 12:43:43 +01:00
artemp
a4cd4821a0 ohh evil #ifdef/#endif - fix compiling with boost < 1.56 2014-08-21 12:21:47 +01:00
artemp
6dee6c1c86 fix typo :) 2014-08-21 11:40:42 +01:00
artemp
455168c6af topojson - use bulk-loading packing algorithm for rtree creation
(http://www.boost.org/doc/libs/1_56_0/libs/geometry/doc/html/geometry/spatial_indexes/introduction.html)
use unique_ptr where appropriate
2014-08-21 11:14:33 +01:00
Jordan Hollinger
c8c792277d Add attribute text-margin in place of minimum-distance. 2014-08-20 19:43:36 -04:00
Dane Springmeyer
bb897e0144 use fast path for bbox reprojection (skipping extra point-sampling) 2014-08-20 14:47:27 -07:00
Dane Springmeyer
22117c6c64 code comments to clarify when/why base_path is needed at parse time when loading from a string 2014-08-20 13:53:25 -07:00
Dane Springmeyer
b9060c038c rapidxml: avoid overhead of stringstream - amends 95d5b73 2014-08-20 13:46:00 -07:00
Dane Springmeyer
aa11335e70 ensure positions (multidimensional coords) works - refs #2319 2014-08-20 12:44:24 -07:00
Dane Springmeyer
889be25706 remove unneccessary error trapping 2014-08-20 12:40:29 -07:00
Dane Springmeyer
d5f7eeef6c tests for reversed order of type/coordinates in geojson geometry - refs #2319 2014-08-20 12:11:55 -07:00
Dane Springmeyer
7de6c181ec Merge pull request #2373 from strk/master-pgraster-credit
Add mention of CartoDB support in pgraster input plugin code
2014-08-20 08:42:30 -07:00
Sandro Santilli
01b56c3606 Add mention of CartoDB support in pgraster input plugin code 2014-08-20 17:31:41 +02:00
artemp
fd7682aab2 c++ pedantic 2014-08-20 16:11:27 +01:00
artemp
e4b3a46e3e fix geojson plugin, even better name is geometry_index (to avoid confusion) 2014-08-20 16:08:41 +01:00
artemp
2d50a2dccc topojson plugin : fix spatial index population, rename 'count' to 'index' 2014-08-20 16:00:12 +01:00
artemp
3c99514c85 GeoJSON : re-implement grammar to allow any order for "type", "coordinates" and "geometries" elements
Also, ammend positions parser to handle multi-dimensional coordinates e.g [x,y,z,....,N] (we only extract x and y)
2014-08-20 15:45:16 +01:00
artemp
1e4368e97a fix compilation with boost < 1.56 2014-08-20 09:42:28 +01:00
Dane Springmeyer
9020b8c6df adapt geojson+topojson plugins to boost 1.56 - refs #2367 2014-08-19 14:48:21 -07:00
Dane Springmeyer
7d23d49ecb fix #2368 2014-08-19 14:47:03 -07:00
Dane Springmeyer
65bd9e6926 adapt to ptree change in boost 1.56 - closes #2365
Conflicts:
	src/save_map.cpp
2014-08-19 09:08:33 -07:00
Dane Springmeyer
144d9a41f0 update expected test after 41064ed49d 2014-08-19 08:35:57 -07:00
artemp
59b089f65d remove unused (after grammar refactor) support_multi_pass.hpp include 2014-08-19 16:04:31 +01:00
Dane Springmeyer
1e19ca2103 travis: drop removal of postgis 2014-08-18 21:36:36 -07:00
Dane Springmeyer
7c1f9b1490 fix compile with older OGR 2014-08-18 21:33:37 -07:00
Dane Springmeyer
51baf411c3 travis: give up on gdal 2014-08-18 21:32:59 -07:00
Dane Springmeyer
bc9102da82 travis: yet another try to keep postgis installed 2014-08-18 21:19:18 -07:00
Dane Springmeyer
c8def83cd5 travis: debug postgis 2014-08-18 21:10:21 -07:00
Dane Springmeyer
b86d063bf0 travis: another try at gdal 2014-08-18 20:39:37 -07:00
Dane Springmeyer
5e379fc00f travis: alt gdal approach 2014-08-18 20:33:14 -07:00
Dane Springmeyer
ed568fcc2a attempt to repair postgres install 2014-08-18 20:14:50 -07:00
Dane Springmeyer
58d9520c34 Travis: remove lto testing code 2014-08-18 20:11:29 -07:00
Dane Springmeyer
e768117862 update expected image after pixel snapping change 2014-08-18 20:11:20 -07:00
Dane Springmeyer
41064ed49d pixel snapping for shields (and points) - closes #1866/refs #1316/amends 2fcd53134 2014-08-18 19:45:21 -07:00
Dane Springmeyer
e94b58f678 load_map: always parse transform so that xml warning keep working 2014-08-18 19:40:34 -07:00
Dane Springmeyer
d6c59d96ec fix simply option + tests for #1484 and #1992 2014-08-18 19:23:50 -07:00
Dane Springmeyer
0e87d913ed fix return type 2014-08-18 19:19:48 -07:00
Dane Springmeyer
5d424e9389 remove unneeded code 2014-08-18 19:19:38 -07:00
Dane Springmeyer
83b7ccb3ae optimize set_symbolizer_property_impl 2014-08-18 15:37:46 -07:00
Dane Springmeyer
c1bceffb45 Travis: drop concurrent jobs for clang 2014-08-18 15:36:54 -07:00
artemp
58a78e0d9a Merge branch 'MapQuest-jh-min-repeat-distance' 2014-08-18 14:05:33 +01:00
artemp
801848ac97 Merge branch 'jh-min-repeat-distance' of git://github.com/MapQuest/mapnik into MapQuest-jh-min-repeat-distance
Conflicts:
	include/mapnik/renderer_common/process_group_symbolizer.hpp
	src/text/text_properties.cpp
2014-08-18 14:05:14 +01:00
artemp
0f3b9e020d Merge branch 'mapycz-3.x-fix-compile' 2014-08-18 10:27:32 +01:00
Jiri Drbalek
f3fba6e299 fix compile with gcc 2014-08-17 13:15:56 +00:00
Dane Springmeyer
a4c926ac8a don't throw for OGR layers with no features - refs #2260 #2352 #2354
Conflicts:
	tests/python_tests/ogr_test.py
2014-08-15 19:49:33 -07:00
artemp
67379d1bba fix icu_shaper 2014-08-15 14:11:44 +01:00
artemp
f41b15f967 Merge remote-tracking branch 'origin/master'
y this merge is necessary,
2014-08-15 11:51:00 +01:00
Dane Springmeyer
751e039347 add RESPECT mode to make 'fixing' of bbox aspect a no-op on map 2014-08-14 20:27:27 -07:00
Dane Springmeyer
fe8e9a0094 remove unneeded Makefile variable [skip ci] 2014-08-14 13:40:08 -07:00
Dane Springmeyer
faeb12f5e9 tests: fix warnings in pgraster test 2014-08-14 12:53:33 -07:00
Dane Springmeyer
9c0f315588 clean up icu singletons to avoid valgrind seeing memory leak in hb_shape 2014-08-14 12:47:51 -07:00
Dane Springmeyer
8cfb49de81 fix quoting in svg output grammars - regressed in 350c2c29bd 2014-08-14 12:28:28 -07:00
Dane Springmeyer
595b81107c variant : make operator<< stricter to avoid unexpected instantiations - refs 7602779836 2014-08-14 11:50:58 -07:00
Dane Springmeyer
8ef6558496 iwyu 2014-08-14 10:04:26 -07:00
artemp
52ba1383ec move hash_value into value_adl_barrier namespace where it expected 2014-08-14 18:02:52 +01:00
artemp
454a69c582 mapnik::value - revive hash_value function implementation (#2358) 2014-08-14 10:00:23 +01:00
Dane Springmeyer
b415549823 limit benchmarks 2014-08-13 17:21:22 -07:00
Dane Springmeyer
5b52fa94b1 fix compile on linux 2014-08-13 17:21:11 -07:00
Dane Springmeyer
5e314b04a7 iwyu 2014-08-13 09:05:02 -07:00
Dane Springmeyer
0d47deb169 fix pgraster/postgis logic to skip tests if there is no postgres server running 2014-08-13 09:04:54 -07:00
artemp
17e1061536 Merge branch 'custom-variant-2' 2014-08-13 13:11:31 +01:00
artemp
e8b7d50ebb feature_generator_grammar - fix escaping 2014-08-13 13:06:38 +01:00
artemp
4ebd824368 make to_expression_string accept quotting char (default: '\'') 2014-08-13 13:05:22 +01:00
artemp
c8148f780e comment out implicitly_convertible<mapnik::value_bool, mapnik::symbolizer_base::value_type>(); 2014-08-13 13:04:49 +01:00
artemp
6972bc30d2 use mapnik_value_type promotion traits for better type mapping
in symbolizer and params + move mapnik_value_type traits to
value_types.hpp
2014-08-13 10:22:43 +01:00
artemp
1d02eb0d1d Merge branch 'master' into custom-variant-2 2014-08-13 09:06:58 +01:00
Dane Springmeyer
6ec3905fc5 fix redefinition warnings + dodge a compile error due to clashing toupper in python + clib by using iosfwd - closes #2355 2014-08-12 23:52:31 -07:00
Dane Springmeyer
5db9daaff1 fix compile error in svg_renderer_tests/path_element_test.cpp - refs #2355 2014-08-12 23:37:29 -07:00
Dane Springmeyer
522417835b Merge pull request #2354 from kernelsanders/master
add ogr plugin error handling to master/3.x
2014-08-12 23:20:27 -07:00
Dane Springmeyer
7da05accc0 Merge branch 'master' of github.com:mapnik/mapnik into custom-variant-2 2014-08-12 23:19:26 -07:00
Joel Brown
c517b20237 add ogr plugin error handling to master/3.x 2014-08-12 23:09:42 -07:00
Dane Springmeyer
44844f7bd0 postgis: disable NOTICES by default - refs #2296 2014-08-12 20:30:34 -07:00
Dane Springmeyer
78258a9459 quiet pgraster tests by default 2014-08-12 20:30:21 -07:00
Dane Springmeyer
e4c7e2419c make sure pgraster is rebuilt if headers change inside the postgis plugin dir 2014-08-12 20:29:51 -07:00
Dane Springmeyer
e03448ecb9 port pg_raster plugin to c++11/recent 3.x changes 2014-08-12 15:14:25 -07:00
Dane Springmeyer
4e12b999f0 pull in pgraster plugin by @strk from 2.3.x to master/3.x - refs #2329 #1660 2014-08-12 15:03:51 -07:00
Dane Springmeyer
8b6a0a32f6 improve interior position algorithm - patch from @mrwojo - closes #2137 2014-08-12 14:42:51 -07:00
Dane Springmeyer
a000df5e46 add testcase from #2137 2014-08-12 14:33:59 -07:00
Dane Springmeyer
04a9a050a7 note png8 default change in master changelog still (no longer 2.3.x) - refs #2110 2014-08-12 13:50:56 -07:00
Dane Springmeyer
9b789a398b remove bilinear8 from master/3.x - closes #2076 2014-08-12 13:43:37 -07:00
artemp
9f8b88ae4d we do need <iostrea> in non-debug 2014-08-12 20:08:52 +01:00
artemp
6136a32092 Merge branch 'master' into custom-variant-2 2014-08-12 19:44:37 +01:00
Dane Springmeyer
c604e925f5 apply #2350 to master/3.x too 2014-08-12 11:44:34 -07:00
Dane Springmeyer
072a914906 add visual test confirming ttc are read okay - refs #2274 2014-08-12 11:34:48 -07:00
Dane Springmeyer
5b3340413b update visual tests after fix in 04e4b47 - refs #2348 2014-08-12 11:33:52 -07:00
Dane Springmeyer
04e4b47d91 stricter string2bool conversion - refs #2348 2014-08-12 11:33:20 -07:00
Dane Springmeyer
3715217b2d Add string2bool test 2014-08-12 11:32:34 -07:00
Dane Springmeyer
bd66ead3fd adapt csv tests to boolean change - refs #1540 2014-08-12 11:32:02 -07:00
Dane Springmeyer
a13fa6720a csv: parse true/false as boolean in csv plugin - closes #1540 2014-08-12 11:16:05 -07:00
artemp
fb2dd283c0 fix DEBUG=yes compilation 2014-08-12 19:10:32 +01:00
artemp
b38dc14188 fix include order and ensure mapnik/config.hpp is before boost_shim_.. 2014-08-12 18:44:11 +01:00
Dane Springmeyer
c55a3c3130 csv plugin: support conversion to boolean types - closes #1540 2014-08-12 10:00:37 -07:00
artemp
82142a54cc fix compiler warnings 2014-08-12 17:43:04 +01:00
artemp
f57f3a7f83 ammend topojson_grammar and remove last boost::variant usage 2014-08-12 16:16:17 +01:00
artemp
7f8e18f89b cleanup 2014-08-12 16:15:57 +01:00
artemp
95cea92a4a convert all boost::variant to util::variant
apart from topojson (TODO)
2014-08-12 13:40:45 +01:00
artemp
8c7be886bd fix typo - uncomment column_collector 2014-08-12 10:47:29 +01:00
artemp
e5c316ae0b Merge branch 'master' into custom-variant-2 2014-08-12 10:41:58 +01:00
artemp
3f8c459195 make mapnik::symbolizer a mapnik::util::variant<Symbolizers...> 2014-08-12 10:40:38 +01:00
Dane Springmeyer
f76ea12700 enable other test from #2349 2014-08-11 23:08:17 -07:00
Dane Springmeyer
80aeceafc7 remove duplicate typedef for dash_array 2014-08-11 22:22:12 -07:00
Dane Springmeyer
01c6b42269 Merge pull request #2349 from plepe/allow-overlap-ignore-placement
allow-overlap, ignore-placement
2014-08-11 19:54:51 -07:00
Dane Springmeyer
fe31aed576 fix #2274 in master/3.x 2014-08-11 19:50:50 -07:00
Dane Springmeyer
a966929571 add license ref for NotoSans 2014-08-11 19:26:26 -07:00
Dane Springmeyer
19c6e26c5c tests for ttc support in master/3.x - refs #2274 2014-08-11 19:25:30 -07:00
Jordan Hollinger
c63e3a55f1 Merge branch 'master' of github.com:mapnik/mapnik into jh-min-repeat-distance 2014-08-11 17:43:51 -04:00
Dane Springmeyer
bbeb9fb631 disable font test until #2341 is fixed [skip ci] 2014-08-11 12:31:24 -07:00
Dane Springmeyer
7a0d316593 update visual tests after fix from 9a1639a1d6 2014-08-11 11:47:11 -07:00
artemp
eabba25948 fix cairo_renderer usage in demo/viewer + revert aac69d0b34 2014-08-11 15:43:38 +01:00
artemp
9a1639a1d6 AGG/Cairo - fix pattern opacity 2014-08-11 15:42:45 +01:00
artemp
201641a206 AGG/Cairo - fix pattern opacity 2014-08-11 15:36:48 +01:00
Stephan Bösch-Plepelits
ec3a2dd08b Tests for PointSymbolizer.allow-overlap and .ignore-placement with expr 2014-08-11 15:55:38 +02:00
Jordan Hollinger
726274c2c9 Merge branch 'master' of github.com:mapnik/mapnik into jh-min-repeat-distance 2014-08-11 09:48:04 -04:00
Stephan Bösch-Plepelits
7815d9c6f0 Tests for TextSymbolizer.allow-overlap: true/false/expr 2014-08-11 15:40:52 +02:00
artemp
27ee642bbe fix cairo_renderer usage in demo/viewer + revert aac69d0b34 2014-08-11 13:40:12 +01:00
artemp
9bfb41a39f convert symbolizer properties to use util::variant 2014-08-11 13:24:53 +01:00
artemp
aac69d0b34 expose cairo_renderer<cairo_surface_ptr> 2014-08-11 13:24:11 +01:00
artemp
c197822116 add getter interface compatible with boost::variant 2014-08-11 13:23:01 +01:00
artemp
e315922b70 Merge branch 'master' into custom-variant-2
Conflicts:
	include/mapnik/value.hpp
2014-08-11 11:53:59 +01:00
artemp
43b8069698 topojson - revert to using boost::variant for mapnik::topojson::geometry (TODO) 2014-08-11 11:51:19 +01:00
Dane Springmeyer
4054b97984 fix font testing 2014-08-10 20:56:13 -07:00
Dane Springmeyer
48078da22d debug font crash - refs #2341 2014-08-10 20:35:23 -07:00
Dane Springmeyer
c285cfa188 refactor cairo_renderer
- splits process functions into new cpp files to reduce peak compile memory usage
 - drops cairo_renderer_base to match agg_renderer design
 - only cairo_ptr is accepted so cairo_surface_ptr must be converted into a context first
 - fixes -fvisibility=hidden
2014-08-10 13:53:45 -07:00
Dane Springmeyer
9c7f8284bd iwyu 2014-08-10 13:52:45 -07:00
Dane Springmeyer
7cae3c34ca iwyu in renderer_common 2014-08-10 13:04:20 -07:00
Dane Springmeyer
9a1423e669 create cairo context raster than passing surface 2014-08-10 13:03:07 -07:00
Dane Springmeyer
4c10d90145 declare segment y_order inline 2014-08-10 13:02:34 -07:00
Dane Springmeyer
378ab71a51 more -fvisibility=hidden fixes for osx 2014-08-09 14:23:23 -07:00
Dane Springmeyer
b0392ff002 travis: fix benchmark run logic [skip ci] 2014-08-09 14:01:28 -07:00
Dane Springmeyer
678907e027 silence webp -Wunused-function warning 2014-08-09 13:57:01 -07:00
Dane Springmeyer
8ff987af6d iwyu 2014-08-09 13:46:13 -07:00
Dane Springmeyer
bcc92c9693 Travis: disable notifications + only run bench when built 2014-08-09 13:46:13 -07:00
Dane Springmeyer
1c0b1884c3 use extern template to solve -fvisibility=hidden issues on osx 2014-08-09 13:44:42 -07:00
Dane Springmeyer
52b1da225b less verbose ifdefs 2014-08-09 13:44:42 -07:00
Dane Springmeyer
d61efc0b5a -fvisibility=hidden fixes on osx with -flto 2014-08-09 13:44:42 -07:00
Dane Springmeyer
1c9afc9a86 boolean_type cleanup/code re-use 2014-08-09 13:44:41 -07:00
Dane Springmeyer
95430a3beb remove uneeded debug statement 2014-08-08 15:41:18 -07:00
Dane Springmeyer
4cb7b56f66 remove uneeded logging 2014-08-08 15:01:48 -07:00
Dane Springmeyer
fc70ab6c0a test a crazy matrix 2014-08-08 15:01:35 -07:00
Dane Springmeyer
578da31702 use extern template to fix osx -flto bug - closes #2339 2014-08-08 14:16:49 -07:00
Dane Springmeyer
1dd0675856 Merge pull request #2347 from mapnik/no-concept-check
remove boost concept_check usage - refs #2346
2014-08-08 13:16:26 -07:00
Dane Springmeyer
1727fae6e7 remove boost concept_check usage - refs #2346 2014-08-08 13:15:57 -07:00
Dane Springmeyer
e33e0150ad 2x faster compile of value_types.hpp - start working on #2346 2014-08-08 12:34:41 -07:00
Dane Springmeyer
5a35422ee5 build: remove -finline-functions which is no longer supported by clang-3.5 2014-08-08 12:00:20 -07:00
Dane Springmeyer
471eaed9df initialize is_geographic 2014-08-08 12:00:20 -07:00
Dane Springmeyer
8f183ac63a Merge pull request #2345 from mapnik/emplace
use emplace/emplace_back over insert/push_back - refs #2336
2014-08-08 11:30:14 -07:00
artemp
1f403a078e transform : is_null_node visitor 2014-08-08 16:43:15 +01:00
artemp
1a94ee1900 add link to custom generator TODO 2014-08-08 16:42:48 +01:00
artemp
93bad52e7e use is_null_visitor 2014-08-08 16:42:14 +01:00
artemp
7b255f2b95 value traits to control to value conversions + fix is_null 2014-08-08 16:41:03 +01:00
artemp
784d24828f replace boost::spirit::karma alternate operator (uses boost::variant) with direct util::variant to string conversion 2014-08-08 15:53:28 +01:00
artemp
6095df6702 Merge branch 'master' into custom-variant-2
Conflicts:
	include/mapnik/value.hpp
2014-08-08 12:31:31 +01:00
artemp
a80782e544 Merge branch 'mapycz-3.x-szn-markers-symbolizer-vertex-placements' 2014-08-08 12:16:30 +01:00
artemp
eff7fb2f94 Merge branch '3.x-szn-markers-symbolizer-vertex-placements' of git://github.com/mapycz/mapnik into mapycz-3.x-szn-markers-symbolizer-vertex-placements 2014-08-08 12:15:53 +01:00
artemp
09e78e3ee9 remove unused includes 2014-08-08 12:14:11 +01:00
artemp
ade32abcd8 mapnik::util::variant in mapnik::value 2014-08-08 12:13:49 +01:00
Jiri Drbalek
705260aa06 prefer c++ style comments 2014-08-08 06:34:33 +00:00
Jiri Drbalek
9b0953a955 remove needless virtual inheritance 2014-08-08 06:34:33 +00:00
Jiri Drbalek
04effe9a36 remove duplicate import 2014-08-08 06:34:33 +00:00
Jiri Drbalek
3e5b850328 visual tests - markers placement methods vertex-first and vertex-last 2014-08-08 06:34:33 +00:00
Jiri Drbalek
fa0b97fff7 add markers placement methods vertex-first and vertex-last 2014-08-08 06:34:33 +00:00
Dane Springmeyer
cbe643c3f5 scons: no need to link to fontconfig in static cairo build 2014-08-07 19:16:59 -07:00
artemp
e7caf63de2 remove unused includes 2014-08-07 16:53:32 +01:00
Dane Springmeyer
3d8a6714a1 travis: re-enable python bindings 2014-08-06 23:16:37 -07:00
Dane Springmeyer
f711cac261 travis: attempt to workaround ar lto bug 2014-08-06 22:42:56 -07:00
Dane Springmeyer
34b04cd0d1 agg: disable unused epsilon 2014-08-06 22:42:24 -07:00
Dane Springmeyer
ae716e7690 travis: disable RANLIB 2014-08-06 21:34:21 -07:00
Dane Springmeyer
67f564b980 travis: install harfbuzz in /usr/lib since gold linker ignores LD_LIBRARY_PATH 2014-08-06 20:20:57 -07:00
Dane Springmeyer
5f6602681c travis: gold linker needs to be told to see in /usr/local/lib 2014-08-06 20:16:12 -07:00
Dane Springmeyer
f34743918d travis: put custom installed clang-3.4 on path 2014-08-06 20:09:07 -07:00
Dane Springmeyer
04d2482061 further attempt at lto with clang 2014-08-06 20:03:02 -07:00
Dane Springmeyer
0ac4fdcad6 travis: debug failed configure 2014-08-06 19:33:41 -07:00
Dane Springmeyer
66f0e6b016 travis: also install libstdc++-dev 2014-08-06 19:24:40 -07:00
Dane Springmeyer
103b5bf6d5 travis: try building with -flto 2014-08-06 19:14:31 -07:00
Dane Springmeyer
b172129026 fix visual tests 2014-08-06 13:11:08 -07:00
Dane Springmeyer
38852f27bb iwyu 2014-08-06 12:29:07 -07:00
Dane Springmeyer
aaaf82f28c remove unused <<operator 2014-08-06 12:28:35 -07:00
Dane Springmeyer
6ae59b80af iwyu 2014-08-06 12:27:10 -07:00
Dane Springmeyer
d4bb7ee279 remove unused <<operator 2014-08-06 12:26:01 -07:00
Dane Springmeyer
eb2393f6a3 remove silly string compare between features (attributes is more explicit) 2014-08-06 11:40:45 -07:00
Dane Springmeyer
867b454f10 no need to output bbox in pj transform error 2014-08-06 11:40:02 -07:00
Dane Springmeyer
b8b76c1e1c iwyu 2014-08-06 08:17:31 -07:00
artemp
0490b7887c text_symbolizer - ``geometry-transform`` support 2014-08-06 14:54:38 +01:00
artemp
9835057b0f Use vertex_converters in text placement 2014-08-06 13:10:24 +01:00
artemp
ec97b8b744 c++ style 2014-08-06 12:32:50 +01:00
Dane Springmeyer
ce8aee1994 be explicit about copy needed to safely pass glyph_info into text_line - closes #2337 2014-08-05 17:03:30 -07:00
Dane Springmeyer
d27b45553a use emplace/emplace_back over insert/push_back - refs #2336 2014-08-05 15:19:37 -07:00
Dane Springmeyer
7a013e8151 switch glyph_info cache to an unordered_map (but no perf diff on osx) 2014-08-05 14:31:29 -07:00
Dane Springmeyer
9efed3edaf visual tests for patterns + svg - refs #1010 2014-08-05 14:02:57 -07:00
Dane Springmeyer
76bd45fa30 fix order of smooth/offset - same bug as #2202 but for patterns 2014-08-05 13:54:10 -07:00
Dane Springmeyer
2a7fc29e42 add support for opacity with svgs in pattern symbolizers - refs #1010 2014-08-05 13:48:40 -07:00
Dane Springmeyer
0c2e1d6166 travis: give up on gcc (too often killed by travis oom) 2014-08-05 13:10:56 -07:00
Dane Springmeyer
2f9bb66ab0 update expected test images for patterns after cairo fixes - refs #1386 and #1010 2014-08-05 12:34:57 -07:00
Dane Springmeyer
e111f77310 pedantic fixes to line_pattern_rasterizer 2014-08-05 12:33:39 -07:00
Dane Springmeyer
2c9e089317 move harfbuzz_shaper inc + other iwyu fixups 2014-08-05 11:10:49 -07:00
artemp
c3a83e6f74 re-arrange headers 2014-08-05 18:58:22 +01:00
Mike Morris
617524505b fix header include comment 2014-08-05 13:15:55 -04:00
artemp
2b90b382e7 move render_pattern into sepratre compilation module 2014-08-05 17:40:15 +01:00
artemp
a8991cd600 refactor clipping_extent into separate header for sharing 2014-08-05 17:22:13 +01:00
artemp
dd05521289 Revert "avoid overflowing"
This reverts commit ebd183d58e.
2014-08-05 13:13:52 +01:00
artemp
d01a5407ae remove unused symbolizer hash 2014-08-05 13:05:32 +01:00
artemp
ebd183d58e avoid overflowing 2014-08-05 11:57:57 +01:00
artemp
59b666cb77 Cairo : use vertex_converter in line_pattern_symbolizer (#1386)
fix pattern alignment
2014-08-05 11:48:42 +01:00
Dane Springmeyer
8232180614 c++11 style in harfbuzz_shaper.hpp 2014-08-04 23:42:42 -07:00
Dane Springmeyer
ab1e5def47 text_line: remove unneeded acces to glyph storage 2014-08-04 20:29:25 -07:00
Dane Springmeyer
99a46f6910 re-enable glyph_info caching - refs #2326, #2265, #2334 2014-08-04 19:50:16 -07:00
Dane Springmeyer
05f49f9cac visual tests - keep default debug severity levels 2014-08-04 19:18:38 -07:00
Dane Springmeyer
fb12fc8b68 default to global alignment for polygon patterns - refs #2325 2014-08-04 16:20:12 -07:00
Dane Springmeyer
a7e864b918 travis: drop jobs slightly given recent killed processes 2014-08-04 16:10:55 -07:00
Dane Springmeyer
db96f3c933 drop unnessary use of boost in transform_processor.hpp 2014-08-04 15:09:37 -07:00
Dane Springmeyer
aa63d6c9a0 include cleanups where we used to use boost 2014-08-04 14:42:51 -07:00
Dane Springmeyer
d7c3d8f774 fix std::sort and std::lower_bound usage 2014-08-04 14:42:24 -07:00
Dane Springmeyer
5134fdc0d3 use std::sort over boost::sort 2014-08-04 14:13:33 -07:00
Dane Springmeyer
a73440496a iwyu 2014-08-04 13:59:13 -07:00
Dane Springmeyer
03429f9bcb use std::unordered_map in non-perf critical code 2014-08-04 13:59:02 -07:00
Dane Springmeyer
75248e3376 remove obsolete wrap-character option for text symbolizer - closes #2333 2014-08-04 12:52:46 -07:00
Dane Springmeyer
2b1ab49463 finish python bindings + tests for #1448 and #1432 2014-08-04 12:10:26 -07:00
Dane Springmeyer
0da6098b35 travis: try full path to clang++ to work around broken libtool/ linking of libharfbuzz-icu 2014-08-04 10:36:43 -07:00
Dane Springmeyer
a865a47cb5 travis: debug broken clang++ build with harfbuzz 2014-08-04 10:24:27 -07:00
Dane Springmeyer
5af394e496 scons: ensure cairo_renderer.cpp is built farther in the stack away from expression_grammar.cpp 2014-08-04 10:24:11 -07:00
Dane Springmeyer
a8c6c5d71e travis: upgrade harfbuzz to 0.9.34 2014-08-04 10:06:57 -07:00
artemp
c1c5421fb6 add divide, linear-dodge and linear-burn blending modes (needs testing) 2014-08-04 12:33:37 +01:00
Dane Springmeyer
9f05389754 fix handling of all sym enums as expressions - fixes tests from #2328 2014-08-03 21:28:36 -07:00
Dane Springmeyer
532c03552d remove invalid csv line 2014-08-03 21:28:36 -07:00
Jordan Hollinger
8c052878b1 Add additional test cases to demonstrate use of new attribute repeat-distance by itself and combined with minimum-distance. 2014-08-03 16:11:22 -04:00
jhollinger2
0aad860a75 Add repeat-distance to text symbolizer properties.
Update collision detector to handle minimum-distance and repeat-distance seperately.
Update placement_finder to use repeat-distance.
Update group symbolizer to handle minimum-distance and repeat-distance.
2014-08-03 16:10:21 -04:00
Dane Springmeyer
a7586b28a0 Merge pull request #2330 from MapQuest/jh-min-distance-test
Test case for minimum distance
2014-08-03 12:39:40 -07:00
jhollinger2
9f741c21b5 Change back the logger severity. 2014-08-03 15:27:55 -04:00
Jordan Hollinger
c35658050f Add test cases to demonstrate repeated labels with and without minimum-distance. 2014-08-03 12:52:32 -04:00
Dane Springmeyer
f284589627 Merge pull request #2328 from plepe/bug-expr-horizontal-alignment
Bug: TextSymbolizer.horizontal-alignment - always left when using expressions
2014-08-01 12:56:58 -07:00
artemp
96cc6b5417 fix typo 2014-08-01 20:15:59 +01:00
artemp
21d28c419c Cairo : add SVG support for in line patterns 2014-08-01 14:37:39 +01:00
artemp
d44177b870 set image-transform for line pattern symbolizer 2014-08-01 13:40:08 +01:00
artemp
f2db42d5e4 support image-transform for vector patterns 2014-08-01 13:39:29 +01:00
Stephan Bösch-Plepelits
002c90f6a5 Tests: expressions for horizontal- and vertical-alignment (and dy) 2014-08-01 13:19:32 +02:00
artemp
a9f0408e4f polygon_pattern_symbolizer: use set_symbolizer_property + add image-transform 2014-08-01 10:05:30 +01:00
Stephan Bösch-Plepelits
ec39301d5e Tests: expressions for horizontal-alignment in TextSymbolizer 2014-08-01 10:07:43 +02:00
Dane Springmeyer
8b2243336b travis: attempt to fix gdal build with trick from naturalatlas/node-gdal#58 2014-07-31 20:19:06 -07:00
artemp
90099bc171 Cairo : add SVG pattern support in polygon_pattern_symbolizer 2014-07-31 15:43:59 +01:00
artemp
18a7731d42 AGG line/polygon_pattern_symbolizer add support for SVG patterns 2014-07-31 15:25:22 +01:00
artemp
d4224ae852 polygon_pattern_symbolizer - fix 'opacity' 2014-07-31 10:29:44 +01:00
Dane Springmeyer
c6a291271f fix conditional pixel snapping for marker rasters 2014-07-31 00:49:00 -07:00
Dane Springmeyer
3412c071ab initialize default black square in marker cache - refs #952 2014-07-31 00:41:27 -07:00
Dane Springmeyer
cc0e9d53a0 add debug symbolizer to group symbolizer visual tests 2014-07-31 00:20:28 -07:00
Dane Springmeyer
2901860cee fix iterator type 2014-07-30 23:54:27 -07:00
Dane Springmeyer
9ac581a67e update marker tests after d685307250 + add collision boxes to variety of test images 2014-07-30 23:46:12 -07:00
Dane Springmeyer
6078f4cef1 more marker bbox fixes 2014-07-30 23:43:48 -07:00
Dane Springmeyer
d685307250 fix regression in raster marker collision box placement - refs #2295 2014-07-30 22:50:01 -07:00
Dane Springmeyer
f1cffaeb1f Start fixing placement of raster markers with cairo renderer 2014-07-30 21:57:16 -07:00
Dane Springmeyer
d793539497 Add marker-symbolizer with raster + expressions test 2014-07-30 21:30:54 -07:00
Dane Springmeyer
a1cd4c2768 sync cairo with agg rendering for line_patterns 2014-07-30 17:51:44 -07:00
Dane Springmeyer
868885a52d update python rundemo.py - refs #2324 2014-07-30 16:51:12 -07:00
Dane Springmeyer
6070c9caf0 fix compile 2014-07-30 16:25:21 -07:00
Dane Springmeyer
936bfe201c remove tabs from cairo_renderer.cpp 2014-07-30 16:11:06 -07:00
Dane Springmeyer
2a18280dc5 Add support for dynamic expressions for dasharrays - closes #2168 2014-07-30 16:02:23 -07:00
Dane Springmeyer
b7ecd00c31 complete support for face-name/fontset-name in <Format> node - closes #1900 2014-07-30 14:16:32 -07:00
Dane Springmeyer
f5c9100ca2 travis: disable gdal install 2014-07-30 13:10:27 -07:00
Dane Springmeyer
350c2c29bd drop karma confix + solve conflicting spirit headers - closes #2323 2014-07-30 13:06:08 -07:00
Dane Springmeyer
da457eba81 Merge branch 'master' of github.com:mapnik/mapnik 2014-07-30 08:42:03 -07:00
artemp
3b707d1c79 opps - remove unused itarators decl 2014-07-30 16:41:10 +01:00
artemp
eee750e074 c++11 - range based for loop (tidy) 2014-07-30 16:39:49 +01:00
artemp
a6272fc16d fix symbolizer helper 2014-07-30 14:09:15 +01:00
artemp
61c05bfb45 re-use feature_collection_grammar 2014-07-30 11:28:23 +01:00
artemp
3f5344ca82 geojson - make feature_collection_grammar not dependend on mapnik::context 2014-07-30 11:01:54 +01:00
Dane Springmeyer
8646ccc83f start passing fontsets down to format and layout - refs #1900 2014-07-29 18:29:20 -07:00
Dane Springmeyer
8af453e77d scons: fix first-run clean problem #2112 2014-07-29 17:54:49 -07:00
Dane Springmeyer
65452698ff visual tests: generate failure report even if you ctrl-c the process early 2014-07-29 17:23:09 -07:00
Dane Springmeyer
0215a3cf04 stop accidentally overwriting expected test images 2014-07-29 17:22:36 -07:00
Dane Springmeyer
e7c6d84028 Avoid -Wdelete-non-virtual-dtor warning 2014-07-29 17:17:45 -07:00
Dane Springmeyer
acbebcdd79 Merge branch 'master' of github.com:mapnik/mapnik 2014-07-29 17:07:09 -07:00
Dane Springmeyer
673bd4fd8f use detail namespace in json/geometry_generator_parser.hpp 2014-07-29 17:06:54 -07:00
Dane Springmeyer
13c59729ae Merge pull request #2321 from plepe/bug-1900
Visual tests for issue #1900 (face-name and fontset-name in Format)
2014-07-29 17:06:02 -07:00
Dane Springmeyer
ba999ff4be Merge pull request #2295 from mapycz/3.x-szn-markers-symbolizer
refactor markers placements
2014-07-29 17:04:27 -07:00
Dane Springmeyer
1fa31d5d20 remove force-odd-labels - refs #2120 2014-07-29 14:37:29 -07:00
Dane Springmeyer
8cae95d98d disable failing test until #2319 is fixed 2014-07-29 14:36:58 -07:00
Dane Springmeyer
a8b9ecf54d avoid unused variable warnings in disabled python text_placement bindings 2014-07-29 09:39:07 -07:00
Dane Springmeyer
ea0a9240a3 save_map: pass explicit_defaults down to symbolizers 2014-07-29 09:38:39 -07:00
artemp
08c3dd1f88 convert remaining text properties to expressions 2014-07-29 14:43:26 +01:00
Stephan Bösch-Plepelits
a48ed22a06 Use points.csv instead of points.osm
- for mapnik/mapnik#1900
2014-07-29 14:46:14 +02:00
artemp
0c5c01d9a3 remove err ',' 2014-07-29 13:31:57 +01:00
artemp
c565aa8722 move symbolizer property handling to symbolizer_utils 2014-07-29 13:31:07 +01:00
Jiri Drbalek
6730408039 fix include 2014-07-29 11:52:43 +00:00
Jiri Drbalek
6a17e17c04 fix markers transforms calc 2014-07-29 11:52:43 +00:00
Jiri Drbalek
2940de0b0b refactor markers placements 2014-07-29 11:52:39 +00:00
Stephan Bösch-Plepelits
8a5f03b923 Visual Tests for issue mapnik/mapnik#1900
Conflicts:
	tests/visual_tests/test.py
2014-07-29 12:47:20 +02:00
artemp
97f87b1946 aggregate text symbolizer properties loading 2014-07-29 10:09:54 +01:00
artemp
9d91f3ca82 c++11 : cleanup crufty code 2014-07-29 10:09:21 +01:00
Dane Springmeyer
e525ca28b5 Re-instate skipping of proj_transform failures - closes #2147 2014-07-28 20:46:30 -07:00
Dane Springmeyer
cdb075f75f make clipping off by default - closes #2146 2014-07-28 20:31:10 -07:00
Dane Springmeyer
8feedd94cd rename mapnik::boolean to mapnik::boolean_type - closes #1899 2014-07-28 19:46:49 -07:00
Dane Springmeyer
51be686f6c remove paths-from-xml option in load_map parsing - closes #1893 2014-07-28 19:33:48 -07:00
Dane Springmeyer
914b4c2e8b support for inline topojson (in memory string) - closes #2058 2014-07-28 19:26:35 -07:00
Dane Springmeyer
9f9f981731 Static const topojson grammar for top speed - refs #2320 2014-07-28 19:17:07 -07:00
Dane Springmeyer
3cb26311fb fix topojson tests 2014-07-28 19:14:12 -07:00
Dane Springmeyer
366865cfea fix #2129 2014-07-28 19:11:18 -07:00
Dane Springmeyer
04115c5838 fix #2290 2014-07-28 19:06:56 -07:00
Dane Springmeyer
7521243a7a visual test for text-halo-transform - refs #2125 2014-07-28 18:56:57 -07:00
Dane Springmeyer
5fc2e01531 fix geojson plugin by avoiding static const grammar for now 2014-07-28 18:44:56 -07:00
Dane Springmeyer
8ae5d322db fix geojson plugin by avoiding static const grammar for now 2014-07-28 18:44:55 -07:00
Dane Springmeyer
14d9127bb7 Merge pull request #2305 from strk/master-readonly
Ensure read-only transactions
2014-07-28 18:00:59 -07:00
Dane Springmeyer
b0f722a30b fix #2299 2014-07-28 17:09:51 -07:00
Dane Springmeyer
c8ecff7ba1 reduce tolerance of cairo test on linux - closes #2302 2014-07-28 17:05:15 -07:00
Dane Springmeyer
d55a0010dc also move feature_collection_grammar to impl file 2014-07-28 16:51:24 -07:00
Dane Springmeyer
cb3a4e10b7 reduce lock-time when creating datasources - #2317 2014-07-28 16:17:31 -07:00
Dane Springmeyer
7f0029eb0b implement inline (in-memory string) support for GeoJSON plugin - refs #2058 2014-07-28 16:16:10 -07:00
Dane Springmeyer
ba1127ea57 add (currently failing) test for #2319 2014-07-28 16:15:34 -07:00
Dane Springmeyer
ddda3dc56d fix geojson plugin test 2014-07-28 13:07:27 -07:00
artemp
f338028802 fix init order 2014-07-28 17:50:44 +01:00
artemp
0cf6e47006 c++ char_properties -> evaluated_format_properties 2014-07-28 17:22:32 +01:00
artemp
72fd012221 c++ style 2014-07-28 15:16:59 +01:00
artemp
fb3d9cd7b6 convert horizontal/vertical/justify_alignment properties to expressions 2014-07-28 15:09:29 +01:00
artemp
61c0344dd6 generic set_property_from_xml implementation 2014-07-28 15:08:28 +01:00
artemp
c93b7fd632 cleanup 2014-07-28 12:20:14 +01:00
artemp
51cf60125e rename source files to reflect class name e.g layout -> text_layout 2014-07-28 12:10:34 +01:00
artemp
e31eefb1e0 implicit capture of this pointer by value 2014-07-28 11:29:56 +01:00
Dane Springmeyer
0d95f038a7 shuffle the cost of spirit grammars 2014-07-25 16:15:18 -07:00
Dane Springmeyer
bbc57f442c fix -Wsign-compare warnings in several grammars 2014-07-25 15:49:50 -07:00
Dane Springmeyer
d598a2bb55 iwyu 2014-07-25 15:35:27 -07:00
Dane Springmeyer
34bbf36e3a Revert "return code 0 to gracefully exit if python bindings are not available"
This reverts commit 2f08dc29ef.

Conflicts:
	tests/run_tests.py
	tests/visual_tests/test.py
2014-07-25 11:49:05 -07:00
artemp
e6a21253e1 tests fix : rename ExpressionFormat to Format 2014-07-25 14:29:46 +01:00
artemp
70059cc346 remove redundant ExpressionFormat node 2014-07-25 14:26:13 +01:00
artemp
37245fdde1 text properties : add framework to handle expressions in enumerations
+ make text-transform an expression
2014-07-25 14:19:41 +01:00
Dane Springmeyer
468bd150b7 scons: fix 'make clean' so it actually runs completely 2014-07-24 19:06:42 -07:00
Dane Springmeyer
ae1c88fb13 fix import 2014-07-24 19:00:15 -07:00
Dane Springmeyer
2f08dc29ef return code 0 to gracefully exit if python bindings are not available 2014-07-24 18:58:03 -07:00
Dane Springmeyer
ea5b4f56d0 Merge pull request #2314 from mapnik/grammar-refactor
Grammar refactor
2014-07-24 17:20:51 -07:00
Dane Springmeyer
30d8c2b686 travis: even more aggressive JOBS 2014-07-24 16:49:58 -07:00
Dane Springmeyer
e374ac70ae JOBS=6 for clang++, 2 for g++ 2014-07-24 16:09:53 -07:00
Dane Springmeyer
a10d69c1d8 try 4 cores 2014-07-24 15:46:51 -07:00
Dane Springmeyer
8dd47cd204 add missing files that instanciate grammars for python bindings 2014-07-24 15:46:18 -07:00
Dane Springmeyer
99de69d96f Merge branch 'master' of github.com:mapnik/mapnik into grammar-refactor 2014-07-24 14:55:30 -07:00
Dane Springmeyer
c5be70ff65 refactor spirit grammars 2014-07-24 14:31:59 -07:00
Dane Springmeyer
11b0816d2a sqlite plugin: use mapnik::geometry_container alias 2014-07-24 12:08:16 -07:00
artemp
ff96af0480 tex/formatting/format fix add_expressions 2014-07-24 14:51:34 +01:00
artemp
b53572ab9c update text/formatting/format 2014-07-24 14:45:02 +01:00
artemp
a65239bf4b fix format_node::to_xml - attach format_properties to new_node 2014-07-24 12:13:34 +01:00
artemp
9c39d4ebd2 collect expressions from format_properties 2014-07-24 12:00:46 +01:00
artemp
1927a00ee0 text-properties : make fill and halo-fill expressions 2014-07-24 11:37:16 +01:00
Dane Springmeyer
f8ccbf3ded fix compile of graphics.hpp 2014-07-23 14:32:48 -07:00
Dane Springmeyer
3defa77d88 remove big endian support - closes #2313 2014-07-23 14:16:44 -07:00
Dane Springmeyer
133f399777 iwyu 2014-07-23 14:16:11 -07:00
Dane Springmeyer
8dcd85a708 iwyu 2014-07-23 14:02:36 -07:00
Dane Springmeyer
cccb610976 fix xml round-tripping test 2014-07-23 13:00:34 -07:00
Dane Springmeyer
97b27c54c0 fix compile of svg renderer tests 2014-07-23 12:36:36 -07:00
Dane Springmeyer
9959006e61 remove boost::lexical_cast 2014-07-23 10:54:02 -07:00
Dane Springmeyer
bf8572fac6 remove boost::lexical_cast 2014-07-23 10:53:47 -07:00
Dane Springmeyer
2d2eec48c4 iwyu 2014-07-23 10:34:45 -07:00
artemp
8502019310 more format_properties expessions 2014-07-23 18:09:18 +01:00
artemp
e67f046a0e start re-factoring char_property (TODO: change name!) 2014-07-23 16:19:14 +01:00
artemp
510c4b538d pedantic 2014-07-23 09:31:42 +01:00
Dane Springmeyer
881603e94a iwyu 2014-07-22 23:58:27 -07:00
Dane Springmeyer
265043e4d7 iwyu 2014-07-22 23:57:06 -07:00
Dane Springmeyer
148007cc48 iwyu + fwd declares 2014-07-22 23:36:54 -07:00
Dane Springmeyer
3de2457799 fwd declare layer 2014-07-22 23:11:12 -07:00
Dane Springmeyer
58163a583c clean up tuple includes 2014-07-22 23:01:31 -07:00
Dane Springmeyer
64e70fb374 iwyu 2014-07-22 22:40:39 -07:00
Dane Springmeyer
a80d7c9602 std::unordered_map for non-perf critical debug code 2014-07-22 22:39:49 -07:00
Dane Springmeyer
95aa4c709d use std::unique_lock instead of boost::unique_lock 2014-07-22 20:06:13 -07:00
Dane Springmeyer
6c6b1bd650 iwyu 2014-07-22 19:45:54 -07:00
Dane Springmeyer
28a05c96ef iwyu + faster compile 2014-07-22 19:36:39 -07:00
Dane Springmeyer
db4a2daf28 simplify travis config 2014-07-22 16:14:22 -07:00
Dane Springmeyer
cfd971428c benchmarks: always link -lrt/-ldl on linux 2014-07-22 15:36:45 -07:00
Dane Springmeyer
62324714c1 dodge unimportant failing test (should throw) with old proj4 - closes #2309 2014-07-22 14:58:12 -07:00
Dane Springmeyer
d770afdb0d lower visual test threshold for agg on linux - refs #2309 2014-07-22 14:55:06 -07:00
Dane Springmeyer
ed6e16b92c again even smaller text size for lohit bengali test - refs #2309 2014-07-22 14:53:30 -07:00
Dane Springmeyer
f86ef33307 smaller text size for lohit bengali test - refs #2309 2014-07-22 14:52:34 -07:00
Dane Springmeyer
1fed3e1f32 use latest harfbuzz 2014-07-22 14:35:20 -07:00
Dane Springmeyer
d1336568c5 workaround old GDAL bug regarding rgba images and alpha reporting - closes #2310 2014-07-22 14:33:59 -07:00
Dane Springmeyer
8301e28b13 more marker tests on polygons - able to detect change from ecc5acbdb9 2014-07-22 12:17:40 -07:00
Dane Springmeyer
6a8b3e9cf9 fix clipping default until #2146 2014-07-22 12:15:45 -07:00
Dane Springmeyer
006c460c9c fix use of comp-op as data-driven expression 2014-07-22 10:52:30 -07:00
Dane Springmeyer
7744a65536 remove uneeded usage of boost::ignore_unused_variable_warning 2014-07-22 10:51:31 -07:00
artemp
98e8937d1c range based for loops + code cleanup 2014-07-22 16:22:43 +01:00
artemp
498bba7cf8 c++ : pass arg by const ref 2014-07-22 16:09:10 +01:00
artemp
f12b5e06dd c++ style 2014-07-22 15:58:37 +01:00
artemp
8cc9b06e12 visual tests: update to reflect #2308 change 2014-07-22 11:02:08 +01:00
Seth Fitzsimmons
8476efbbba Work in HSL so luma can be preserved
Signed-off-by: artemp <artem@mapnik.org>
2014-07-22 10:48:58 +01:00
artemp
bfc6c61d62 c++ - pass by const ref etc. 2014-07-21 14:46:54 +01:00
artemp
eacde4fe43 remove dummy_shaper 2014-07-21 12:41:31 +01:00
artemp
3c2dd839e4 serialize color properties 2014-07-21 12:28:27 +01:00
artemp
a9062fe112 restore serialization in text_properties and text/formattin/layout 2014-07-21 11:43:59 +01:00
artemp
ee58762bd9 add property_serializer impl 2014-07-21 11:19:26 +01:00
artemp
8465a78c97 use 2 spaces identation in xml output
prefer c++11 range based loops for readability
2014-07-18 21:05:25 +01:00
artemp
93d40323c5 orientation -> symbolizer_base::value_type 2014-07-18 15:48:56 +01:00
artemp
594470ee17 expressions in text/formatting/layout (work-in-progress) 2014-07-18 11:18:54 +01:00
artemp
f9ed5d4027 add has_attribute(std::string const&) member function 2014-07-18 11:17:48 +01:00
artemp
56381b5770 make set_property_from_xml more generic
(e.g work with symbolizer_base::value_type and optional<symbolizer_base::value_type>)
2014-07-18 11:15:30 +01:00
artemp
efe0cf57b4 move set_property_from_xml into separate header for re-use 2014-07-18 11:14:28 +01:00
artemp
dcb60d5842 make add_expressions pure virtual in base class 2014-07-17 17:26:54 +01:00
artemp
18d1d0b8d5 fix path_move_dx 2014-07-17 17:26:20 +01:00
artemp
620aa62ab5 remove unused member variable 2014-07-17 17:01:03 +01:00
artemp
21986e5d4a refactor pass 2014-07-17 16:55:22 +01:00
artemp
79c1ac96b4 avoid captures in displacement_evaluator 2014-07-17 16:55:22 +01:00
Dane Springmeyer
8eab2d31de remove dead code 2014-07-16 16:13:56 -07:00
artemp
8a01cce2f7 move displacement_evaluator_ initialisation
c++ style fixes
2014-07-16 16:34:42 +01:00
artemp
4166fcdd5d store displacement logic in std::function and delay calc until dx/dy are evaluated (layout) 2014-07-16 14:24:00 +01:00
Sandro Santilli
25c237fdd9 Ensure read-only transactions
Closes #2142
2014-07-16 11:04:39 +02:00
artemp
562058aff6 remove printing to cerr 2014-07-15 16:35:11 +01:00
artemp
6c03a617a5 text displacement expr : more re-factoring and various fixes 2014-07-15 16:31:43 +01:00
artemp
1f17620e18 make methods pure virtual where appropriate
pass std::string by const ref (!)
c++ style
2014-07-15 11:15:26 +01:00
artemp
72bae0d6b8 text properties : displacement expr 2014-07-15 10:15:56 +01:00
Dane Springmeyer
0b1ad62cf5 Merge pull request #2300 from strk/master-false-negatives
Fix false negative responses from python tests
2014-07-14 19:43:11 -07:00
Dane Springmeyer
383aa8c41a Merge pull request #2294 from Vanuan/patch-1
OSM plugin: area=yes is a polygon
2014-07-14 19:41:38 -07:00
Dane Springmeyer
998b10be12 fix compile of svg test 2014-07-14 11:42:23 -07:00
Sandro Santilli
cd21789111 Fix false negative responses from python tests
Closes #2298
2014-07-14 18:34:20 +02:00
artemp
f8fc104e7d more meaningful names 2014-07-14 16:55:57 +01:00
artemp
a66c1ddb06 convert to expressions: text-ratio, wrap-before, rotate-displacement 2014-07-14 16:51:11 +01:00
artemp
24e21cd387 set_property_from_xml helper function 2014-07-14 16:08:58 +01:00
artemp
0524a31d02 cleanup 2014-07-14 16:08:21 +01:00
artemp
73bda71710 text_properties : add expression_ptr's to the expression_set 2014-07-14 14:15:36 +01:00
artemp
00175c9e5f symbolizer : is_expression helper function 2014-07-14 14:15:06 +01:00
artemp
ee6d394321 color : add hash support 2014-07-14 12:36:04 +01:00
artemp
e066aa924f text_properties : wrap-width 2014-07-11 15:44:44 +01:00
artemp
de900539c6 Merge branch 'text-refactor' 2014-07-11 14:50:15 +01:00
artemp
bac581e0cc Merge branch 'master' into text-refactor 2014-07-11 14:49:57 +01:00
artemp
4afd98a34a text_properties : store 'orientation' parameter in symbolizer_base::value_type 2014-07-11 14:43:56 +01:00
artemp
8fc9d54619 fix typo 2014-07-11 11:53:06 +01:00
artemp
64ef711b76 move enumerations into separate compilation unit 2014-07-11 10:26:51 +01:00
artemp
61c54b3943 c++ style 2014-07-11 10:12:33 +01:00
artemp
c79e74116d cleanups 2014-07-11 09:51:34 +01:00
artemp
484c1fab50 c++ style 2014-07-10 17:14:34 +01:00
artemp
af9e39a5fa replace auto_ptr with unique_ptr (creeped in from 2.3.x) 2014-07-10 12:47:30 +01:00
artemp
9e84b6101b store const* in glyph_t 2014-07-10 12:46:42 +01:00
artemp
203a2c55e6 fix missing make_unique on c++11 compilers 2014-07-10 12:45:51 +01:00
artemp
72e0889000 replace auto_ptr with unique_ptr (creeped in from 2.3.x) 2014-07-10 12:28:52 +01:00
artemp
6cd7026aac pass text_placement_info by ref to placement_finder + formatting 2014-07-10 11:44:46 +01:00
artemp
8c6015ec60 first take at cleaning-up text placement code
(NOTE: get_text_info is temp disabled in python bindings)
2014-07-09 11:31:03 +01:00
artemp
17a23f5d6b call parse_symbolizer_base before setting symbolizer specific properties 2014-07-09 11:15:01 +01:00
artemp
fb1ec4cee0 remove dead code 2014-07-09 10:28:00 +01:00
artemp
9e76ca7870 color : add move ctor 2014-07-08 18:13:44 +01:00
artemp
04facd3542 mode range ``for loops`` 2014-07-08 17:02:22 +01:00
artemp
65ee7ea005 range based for loops for better readability 2014-07-08 16:39:22 +01:00
artemp
888ae11309 use pre-increment in iterator loops 2014-07-08 16:38:15 +01:00
artemp
81f7e69088 coord_arrat<T> : add support for range based for loop interface
update wkb parser to use it ^^
2014-07-08 16:22:24 +01:00
artemp
ebdfc5b11a use c++ casts 2014-07-07 19:23:28 +01:00
artemp
4556921e9a remove typedef usage
(FIXME: revisit yes/no hacky implementation with c++11 features)
2014-07-07 19:15:52 +01:00
artemp
fe215a684e c++11 style : replace (almost) all typedef with type alias's 2014-07-07 18:23:15 +01:00
artemp
0f01000570 prefer using type alias's instead of ``typedef``
e.g
```c++
using identifier attr(optional) = type-id ;
```
2014-07-07 11:56:16 +01:00
artemp
673c8edbb5 set_symbolizer_property_impl - pre-evaluate expressions when is_enum = false 2014-07-07 11:30:08 +01:00
artemp
0f9ff9fe5e typo 2014-07-07 11:30:08 +01:00
John Yani
5acc303a87 OSM plugin: area=yes is a polygon
Why this line is not here yet?
2014-07-05 17:56:22 +03:00
Dane Springmeyer
713a194315 [travis] drop to 2 JOBS / display cpu and free memory 2014-07-03 09:47:11 -07:00
artemp
1f2f17160e initial implementation to pre-evaluate symbolizer properties where possible
FIXME: generic version needs needs help type deduction
2014-07-03 16:35:18 +01:00
artemp
6d1422c5bb c++ style : pre-increment 2014-07-03 10:16:11 +01:00
artemp
ab3aad38ad symbolizer properties : image_transform, cleanups 2014-07-03 09:06:24 +01:00
Dane Springmeyer
6034837c95 perf/image_scaling: avoid unnessary clearing of target image which will already be zero-initialized 2014-07-03 00:37:50 -07:00
artemp
5ef8078252 markers_symbolizer properties update 2014-07-02 13:08:05 +01:00
artemp
13d3465000 update point_placement_enum, gamma_method_enum, line_rasterizer_enum parsing, gamma-method 2014-07-02 11:01:38 +01:00
artemp
3f040a3422 set_symbolizer_property : specialization for transform_type 2014-07-02 10:29:05 +01:00
artemp
4965dc6e7f fix name 2014-07-02 10:16:58 +01:00
artemp
504c6fdabd make ``simplify_algorithm`` an expression 2014-07-02 10:15:44 +01:00
artemp
dd9365a817 throw config_error, cleanup 2014-07-01 14:17:07 +01:00
artemp
292408656a Merge branch 'romanustinov9-master' 2014-07-01 14:03:52 +01:00
artemp
e052b6c6cf Merge branch 'master' of git://github.com/romanustinov9/mapnik into romanustinov9-master 2014-07-01 14:03:31 +01:00
artemp
a26f389cb2 throw on symbolizer property parsing failure 2014-07-01 14:02:35 +01:00
Roman Ustinov
595e8915a5 Made save_to_stream function available outside of library 2014-07-01 14:45:52 +04:00
artemp
91f08801ce consistent namings 2014-07-01 09:39:27 +01:00
artemp
2271e7413c ENUM_FROM_STRING macro to keep things tidy and scalable 2014-06-30 17:41:33 +01:00
artemp
79fa672843 support expressions in stroke-linejoin and stroke-linecap properties 2014-06-30 14:06:34 +01:00
artemp
19b38c2ed9 more generic expressions in enum
support expressions in halo-comp-op symbolizer property
2014-06-27 16:11:30 +01:00
artemp
aa9966ed88 parse comp-op property as enumeration_wrapper or expression_str 2014-06-27 13:58:03 +01:00
artemp
0702679bb0 don't call *params.get<std::string>("type"), instead use static datasource::name()
(FIXME: consider removing redundant 'name' in feature_layer_descriptor)
2014-06-26 10:51:24 +01:00
artemp
b197cbcdb7 tidy up 2014-06-25 09:01:20 +01:00
Dane Springmeyer
4f5d12defc Merge branch 'master' of github.com:mapnik/mapnik 2014-06-24 18:44:20 -07:00
Dane Springmeyer
b237a604dd fix #2283 2014-06-24 17:51:28 -07:00
artemp
a49abab7ed use std::uniqure_ptr<char[]> to store memory fonts 2014-06-24 12:05:53 +01:00
artemp
b9bfef634f wchar_t literal needs L"" 2014-06-24 11:45:13 +01:00
artemp
bfac02432b Merge branch 'stdio' 2014-06-24 11:42:52 +01:00
artemp
11c2aad531 Merge branch 'master' into stdio
Conflicts:
	src/font_engine_freetype.cpp
2014-06-24 11:42:33 +01:00
artemp
45ba10e701 use _wfopen in windows 2014-06-24 11:40:04 +01:00
artemp
8255163945 style 2014-06-24 11:23:13 +01:00
artemp
68775c52ff call FT_Done_Face for matching FT_Open_Face 2014-06-24 11:21:01 +01:00
artemp
f4acd06f84 c++11 - use std::unique_ptr instead of boost::scoped_array
(TODO  - consider storing unique_ptr's in memory_fonts_ and avoid constructing std::string)
2014-06-23 17:33:31 +01:00
artemp
284786ec16 wrap FILE* in std::unique_ptr (RAII)
pull C-i/o from std:: namespace
2014-06-23 17:23:28 +01:00
artemp
4d42df8f3c ensure we read the whole file at once 2014-06-23 17:11:53 +01:00
artemp
b1d8e06032 oops buffer.get() returns raw bytes (not \0 terminated C-string) 2014-06-23 17:08:00 +01:00
artemp
1c25c34dec no sure if 'rewind' is a standard - use fseek instead 2014-06-23 16:59:30 +01:00
artemp
4acba303a5 + use C-style I/O to read font file into memory 2014-06-23 16:56:59 +01:00
artemp
ebde5351af increase buffer size in std::streambuf for faster i/o 2014-06-23 16:26:50 +01:00
artemp
9496a95af4 use C-style file I/O 2014-06-23 15:33:31 +01:00
Dane Springmeyer
4c4ce5a04c windows build fixes in palette and miniz_png headers 2014-06-21 14:08:14 -07:00
Dane Springmeyer
34f1cc57c0 windows fix: declar miniz PNGWriter 2014-06-21 14:08:06 -07:00
Dane Springmeyer
8ae1b6da03 fix boost directory iterator to use wide paths - closes #2273
Conflicts:
	src/font_engine_freetype.cpp
2014-06-21 14:07:57 -07:00
Dane Springmeyer
6572cde97a use FT_Open_Face instead of FT_New_Face - refs #1897
Conflicts:
	src/font_engine_freetype.cpp
2014-06-21 14:01:44 -07:00
Dane Springmeyer
184d9dd43b fix unicode handling in is_regular_file check - refs #2273 2014-06-20 22:26:33 -07:00
Dane Springmeyer
5688a93858 update expected text images - refs #2277 #2276 2014-06-20 20:29:01 -07:00
artemp
b0980ac329 cairo renderer: comp_op/halo_comp_op support in text_symbolizer 2014-06-20 09:55:10 +01:00
artemp
f518d44be0 respect text and halo opacity in cairo renderer 2014-06-20 09:35:33 +01:00
Mike Morris
bed3c5a9c1 Merge pull request #2277 from mapnik/remove-rounding
Remove all glyph_info rounding
2014-06-19 22:02:15 -04:00
Dane Springmeyer
6ce0828a6f font registration test 2014-06-19 17:21:57 -07:00
Dane Springmeyer
8c3683f41f updated expected test images after #2272 2014-06-19 16:41:45 -07:00
Dane Springmeyer
29ed31f69d Merge branch 'master' of github.com:mapnik/mapnik 2014-06-19 16:28:35 -07:00
Dane Springmeyer
f523acdee4 add testcase for halo-comp-op - refs #2267 2014-06-19 16:28:28 -07:00
Mike Morris
cce05c4e52 Merge pull request #2276 from mapnik/remove-advance-rounding
Remove advance rounding
2014-06-19 18:26:33 -04:00
Mike Morris
2eafed2991 remove all rounding in glyph_info methods 2014-06-19 16:39:32 -04:00
Mike Morris
b8b22afbbc remove advance rounding 2014-06-19 16:38:15 -04:00
Mike Morris
24a7e87f1c Merge pull request #2272 from mapnik/unscaled-glyphs
Unscaled glyphs
2014-06-19 16:35:06 -04:00
Dane Springmeyer
e974279f1a update expected images again (not sure what went wrong before) refs #1313 - amends 66905ca69f 2014-06-19 10:23:23 -07:00
Dane Springmeyer
66905ca69f update expected images after 68a5cc55a6 - refs #1313 2014-06-19 09:53:07 -07:00
artemp
68a5cc55a6 image_filters : agg-stack-blur requires premultiplied pixels - move de/pre multipling into apply_filter() 2014-06-19 15:40:54 +01:00
artemp
2fb3069825 image-filters: apply image-filters in demultiplied colour space 2014-06-19 13:26:40 +01:00
artemp
c605ce81aa pedantic : prefer explicit double values in comparisons 2014-06-19 12:14:12 +01:00
Dane Springmeyer
8da2805d42 Merge branch 'master' into unscaled-glyphs
Conflicts:
	include/mapnik/text/dummy_shaper.hpp
	include/mapnik/text/harfbuzz_shaper.hpp
	include/mapnik/text/icu_shaper.hpp
2014-06-18 20:40:33 -07:00
artemp
2f15631182 premultiply R,G,B channels after applying filters 2014-06-18 19:06:53 +01:00
artemp
666a926864 moving instead of copying mapnik::glyph_info
Conflicts:
	include/mapnik/text/dummy_shaper.hpp
	include/mapnik/text/harfbuzz_shaper.hpp
	include/mapnik/text/icu_shaper.hpp
2014-06-18 14:23:18 +01:00
artemp
3c72aedba0 moving instead of copying mapnik::glyph_info 2014-06-18 14:15:12 +01:00
artemp
a5547b0473 Merge branch 'master' into unscaled-glyphs 2014-06-18 10:18:16 +01:00
Dane Springmeyer
118cce8d58 add test for #2240 2014-06-17 22:19:17 -07:00
Dane Springmeyer
6571508576 Merge branch 'master' of github.com:mapnik/mapnik 2014-06-17 21:42:42 -07:00
Mike Morris
f797c320ff remove unecessary x_scale/y_scale multiplication 2014-06-17 15:57:11 -04:00
artemp
6669765ce1 visual tests : add text-halo-opacity 2014-06-17 17:22:05 +01:00
artemp
2c3173c1aa support halo-comp-op property (#2267) 2014-06-17 15:11:34 +01:00
artemp
d9597972d4 prefer c++ style comments 2014-06-17 14:25:02 +01:00
artemp
8bd044ec13 + serialize halo-opacity 2014-06-17 14:24:31 +01:00
Mike Morris
28a3f4d2a2 fix line height 2014-06-16 18:47:16 -04:00
Sandro Santilli
4c525e0e25 Makefile tweaks for helloworld template plugin
- Do not force use of clang++ to build the plugin (broken on recent debian
   and derivates: https://bugs.debian.org/643959)
 - Do not force clean on install
 - Use -fPIC to build objects (or g++ complains)
2014-06-16 09:52:26 -07:00
Dane Springmeyer
8bb77bce92 image readers: ability to check if image has alpha before full read
Conflicts:
	src/webp_reader.cpp
2014-06-16 09:52:26 -07:00
Dane Springmeyer
6e6c9f21ac improve png comparison tests
Conflicts:
	tests/python_tests/png_encoding_test.py
2014-06-16 09:52:26 -07:00
Dane Springmeyer
5fcd974817 webp reader: initialize WebPDecoderConfig
Conflicts:
	src/webp_reader.cpp
2014-06-16 09:52:26 -07:00
Dane Springmeyer
d5ac946706 remove libcurl dependency
Conflicts:
	plugins/input/osm/dataset_deliverer.cpp
	plugins/input/osm/osm.cpp
	plugins/input/osm/osm_datasource.cpp
	plugins/input/osm/test.cpp
2014-06-16 09:52:26 -07:00
Dane Springmeyer
033a0e0ed7 fix miniz inlining 2014-06-16 09:52:25 -07:00
Dane Springmeyer
e421403f3d fix miniz encoder - closes #1560 2014-06-16 09:52:25 -07:00
Dane Springmeyer
cc874364b2 allow external image data - refs #2002
Conflicts:
	include/mapnik/image_data.hpp
	tests/cpp_tests/image_io_test.cpp
2014-06-16 09:52:25 -07:00
artemp
7cc87c2196 fix compilation warnings 2014-06-16 11:45:33 +01:00
artemp
6bb47d9f5e add 'cairo' subdir 2014-06-16 11:45:10 +01:00
artemp
cbab56fa79 text symbilizer : add halo-opactity property (#2268) 2014-06-16 11:24:16 +01:00
artemp
91a523733b fix unused parameter warnings 2014-06-16 11:23:50 +01:00
artemp
7eb8e25110 better namings + cleanup 2014-06-16 11:00:19 +01:00
Dane Springmeyer
16073a4742 Merge pull request #2270 from mapnik/make_unique
Fixes compile in c++11 mode
2014-06-12 20:28:03 -07:00
Dane Springmeyer
e5dd7e0ec7 attempt to fix compile on linux 2014-06-12 19:08:30 -07:00
Dane Springmeyer
7ca7ef1536 Merge branch 'master' of github.com:mapnik/mapnik into make_unique 2014-06-12 18:55:03 -07:00
Sean Gillies
441ae5cb9d Remove config example. 2014-06-12 16:32:27 -07:00
Mike Morris
a99905cff5 fix char_height zero 2014-06-12 19:10:18 -04:00
Dane Springmeyer
1ec7a3a8bd Merge branch 'master' of github.com:mapnik/mapnik 2014-06-12 15:58:41 -07:00
Mike Morris
38966674f1 line_height, ymin, ymax and advance all look right now 2014-06-12 16:16:02 -04:00
Mike Morris
3948e01c97 set glyph advance to floor for mapnik 2.x parity 2014-06-12 12:24:20 -04:00
Sean Gillies
4cb331b119 Add an example config file for cpp03-libstdcpp-x86_64-macosx. 2014-06-12 09:09:35 -07:00
artemp
3ded23fbab move make_unique out of std namespace and allow building with c++14 compilers
( -std=c++1y )
2014-06-12 15:14:05 +01:00
Mike Morris
2b843ec6a9 first attempt at unscaled glyph dimensions 2014-06-11 19:56:55 -04:00
Dane Springmeyer
ccfa25cf26 benchmark: also need -lrt on linux 2014-06-10 12:01:49 -07:00
Dane Springmeyer
62c6b5a456 fixup benchmark build flags 2014-06-10 12:00:36 -07:00
artemp
d2eca542a9 formatting 2014-06-10 09:15:50 +01:00
Dane Springmeyer
d0b357cab7 scons: support MAPNIK_NAME option to customize libmapnik name for custom packaging 2014-06-09 13:55:56 -07:00
Dane Springmeyer
f66d93d0ec fix compile of binding/python/mapnik_image.cpp after cairo header shuffling 2014-06-09 10:49:54 -07:00
artemp
390816a396 update scons to 2.3.1 2014-06-06 14:49:46 +01:00
artemp
30a39aa376 fix debug build 2014-06-06 14:49:16 +01:00
artemp
b6bab7d0bb move cairo renderer into its own subdir 2014-06-06 13:38:00 +01:00
artemp
5e386f5c97 capture built-in types by value 2014-06-06 13:12:55 +01:00
Dane Springmeyer
961e160ff9 update test image after #2264 2014-06-05 11:26:30 -07:00
artemp
14ed48db50 Merge branch 'refactor-markers' 2014-06-05 17:29:29 +01:00
artemp
89532d9903 Merge branch 'master' into refactor-markers
Conflicts:
	.travis.yml
2014-06-05 16:53:24 +01:00
artemp
de90d0ee2a fix markers transforms calc 2014-06-05 16:47:40 +01:00
artemp
81c4b9dd59 fix init order 2014-06-05 16:13:05 +01:00
artemp
bbb727e39a update cairo_renderer 2014-06-05 15:15:36 +01:00
artemp
961bc69a1c cleanup+format 2014-06-05 15:15:36 +01:00
Dane Springmeyer
a49744e774 fix compile of utf encoding benchmark on linux 2014-06-05 15:15:36 +01:00
Dane Springmeyer
c489549b56 add benchmark of utf 32->8 encoding speed 2014-06-05 15:15:36 +01:00
Dane Springmeyer
147a289936 update travis script 2014-06-05 15:15:36 +01:00
Dane Springmeyer
4a4ec224fd fix compile of utf encoding benchmark on linux 2014-06-04 14:45:33 -07:00
Dane Springmeyer
0859a74f81 add benchmark of utf 32->8 encoding speed 2014-06-04 12:09:42 -07:00
Dane Springmeyer
c276e7dcac re-enable clang since #2235 should be fixed soon 2014-06-04 10:51:07 -07:00
artemp
27b4faf4e7 remove dead code 2014-06-04 18:12:35 +01:00
artemp
a49e1d075e initial refactor pass (fixes #2235) 2014-06-04 18:05:27 +01:00
Dane Springmeyer
39258e2cc2 update travis script 2014-06-04 09:31:20 -07:00
Dane Springmeyer
1acd49d630 fix spelling in comment 2014-06-03 22:06:49 -07:00
Dane Springmeyer
a600a1fb91 improvements to GDAL 2.x handling - refs #2259 amends cbdd112223 2014-06-02 20:25:55 -07:00
Dane Springmeyer
dcbedc007a support for GDAL >= 2.0 in ogr plugin - refs #2259 2014-06-02 20:25:48 -07:00
artemp
bedd275e95 more const correctness + cleaups 2014-06-02 17:09:12 +01:00
artemp
526e03d8c1 pedantic : use const quialifier where appropriate 2014-06-02 16:47:55 +01:00
artemp
ed8bfcabe4 feature_impl : make context() method const 2014-06-02 16:47:11 +01:00
artemp
08a1a4392c c++ formatting 2014-06-02 12:34:25 +01:00
artemp
9792ee4e94 remove unused anonymous namespace 2014-06-02 12:09:00 +01:00
artemp
5078c88d00 format 2014-06-02 12:08:28 +01:00
artemp
22aa3f4aef create shape_io object per featureset to allow datasource sharing 2014-05-30 15:37:44 +01:00
artemp
1cb03bac2f mark is_open as const 2014-05-30 15:37:23 +01:00
artemp
6297c72f02 preserve old MemoryDatasource interface in Python 2014-05-30 11:03:57 +01:00
artemp
16fafbad43 share datasources between layers for now 2014-05-30 11:02:50 +01:00
artemp
f9cf23b59f memory_datasource: support datasource interface 2014-05-30 10:16:49 +01:00
artemp
2812735dfd c++ style 2014-05-30 10:15:29 +01:00
Dane Springmeyer
f88e602dcc more tests for handling of empty Parameters 2014-05-28 14:32:52 -07:00
artemp
659a715fc5 python : add comparison operators to Map/Layer/Datasource 2014-05-28 15:40:59 +01:00
artemp
7572ba58cb fix : allow comparing nullptr == nullptr -> true 2014-05-28 15:40:25 +01:00
artemp
aa5bff2a3f fix test name 2014-05-28 15:23:36 +01:00
artemp
01ac0fb7d9 more copy/move tests 2014-05-28 15:19:14 +01:00
artemp
0669e190de compare actuak mapnik::datasource objects 2014-05-28 15:18:11 +01:00
artemp
db88c41cb4 mapnik::datasource -- operator==() // comp parameters 2014-05-28 15:16:39 +01:00
artemp
d311fa11cd initial copy/move test 2014-05-28 11:24:50 +01:00
artemp
5654759a22 fixed returning reference to temp object
TODO: change signiture to return boost::optional<std::string const&> and fix crufty logic
2014-05-28 11:04:47 +01:00
artemp
4ef9cd8b45 use math functions from std:: 2014-05-28 10:59:01 +01:00
artemp
a010195b36 modify add_layer to work with both move and copy semantics 2014-05-28 09:54:56 +01:00
artemp
0fe172ec9e layer : add move ctor 2014-05-28 09:54:56 +01:00
Dane Springmeyer
48c027857c return const& string from xml_node::get_text() 2014-05-27 13:35:52 -07:00
artemp
fcfbc70abf + explicit move ctor's for mapnik::Map and mapnik::font_set
+ fix methods sig's
2014-05-27 15:35:37 +01:00
artemp
4474fc52e2 bug fix : call fontsets_.insert(fontset) before std::move(fontset) 2014-05-27 15:34:12 +01:00
artemp
7ff8c97afe correct method sig 2014-05-27 14:07:28 +01:00
artemp
c5e0c7e43f feature_type_style operator== 2014-05-27 13:44:01 +01:00
artemp
233b0c5332 add operator== to image_filters 2014-05-27 13:42:53 +01:00
artemp
9791766e32 fix typo 2014-05-27 12:36:05 +01:00
artemp
7b9ba0db31 canonical swap and operator== 2014-05-27 12:34:35 +01:00
artemp
f6a79ecaec font_set: add operator== and 'swap' impl 2014-05-27 12:33:20 +01:00
artemp
d25abed9d2 custom swap 2014-05-27 11:43:46 +01:00
artemp
9972680020 Map : add member-by-member comparison op 2014-05-27 11:34:39 +01:00
artemp
68300b92b5 fix comparison operator 2014-05-27 11:33:26 +01:00
artemp
c8b8937bf9 out-of-class swap method to be consistent 2014-05-27 11:21:13 +01:00
artemp
eb0b4dbc0b custom swap method 2014-05-27 11:20:32 +01:00
artemp
4f6b00b589 use custom swap() and avoid std::swap calling move ctor (recursion) 2014-05-27 10:36:42 +01:00
Dane Springmeyer
3bbcf7e927 travis: 5 crashed, back down to 4 jobs 2014-05-23 14:17:25 -07:00
Dane Springmeyer
3ff1d0d1e7 travis: 6 crashed, back down to 5 jobs 2014-05-23 14:08:14 -07:00
Dane Springmeyer
3ed6914c0f travis: try 6 jobs 2014-05-23 13:57:54 -07:00
Dane Springmeyer
2a60eead32 travis: try 4 jobs 2014-05-23 12:23:14 -07:00
Dane Springmeyer
c668890fb1 travis: try to nice g++ 2014-05-23 12:07:10 -07:00
Dane Springmeyer
6610fcc297 fix skipping of empty text nodes in rapidxml parser (matches libxml2) - closes #2253 2014-05-23 10:42:55 -07:00
Dane Springmeyer
6ef7b21107 travis: stop forcing JOBS=1 2014-05-23 10:34:21 -07:00
Dane Springmeyer
db325765c4 travis: another try to unbreak gdal/postgis 2014-05-23 09:02:43 -07:00
Dane Springmeyer
5e8618f97b travis: attempt to fix postgis install using method from https://github.com/OSGeo/gdal/blob/trunk/.travis.yml 2014-05-23 08:28:47 -07:00
artemp
f76c5576b6 + add compiler generated move ctor 2014-05-23 12:15:39 +01:00
Dane Springmeyer
12602c7e9c fix typo 2014-05-22 21:49:39 -07:00
Dane Springmeyer
d393470453 yet another try to please msvs 2010 2014-05-22 21:35:03 -07:00
Dane Springmeyer
8c0927baf0 no default args for template declaration 2014-05-22 21:34:58 -07:00
Dane Springmeyer
80dbdf28c9 fix msvs 2010 linking - refs #260 2014-05-22 21:29:03 -07:00
Dane Springmeyer
5974c79654 expose various image symbols for windows - refs mapnik/node-mapnik#260 2014-05-22 21:28:44 -07:00
Dane Springmeyer
680bb22133 fix ambiguous std::fabs and the compile on windows 2014-05-22 19:59:07 -07:00
Dane Springmeyer
051878c529 Merge pull request #2251 from mapnik/render-time-variables
[WIP] Render time variables
2014-05-22 19:56:32 -07:00
Dane Springmeyer
e182d9f8c3 try to get gdal/ogr plugins building 2014-05-22 17:13:20 -07:00
Dane Springmeyer
f9677641dd Merge branch 'master' of github.com:mapnik/mapnik into render-time-variables 2014-05-19 12:33:35 -07:00
artemp
509a59353c be more consistent with JS logic when evaluating operators on unicode_strings
'abc' + 'de' -> 'abcde'
'abc' ( - | * | / | % ) 'de' -> value_null
2014-05-19 12:54:16 +01:00
artemp
cf9e5fad3e return default constructed ``value_type->value_null` instead of `std::numeric_limits<value_type>::infinity()`` 2014-05-19 12:06:40 +01:00
Dane Springmeyer
e313b5ba62 benchmark: use halo-rasterizer='fast' (doubles perf) 2014-05-16 19:30:35 -07:00
Dane Springmeyer
c0559a80bd tests for #2245 2014-05-16 12:22:48 -07:00
Dane Springmeyer
03bb82b13f Merge branch 'master' of github.com:mapnik/mapnik into render-time-variables 2014-05-16 07:49:06 -07:00
artemp
a6a3af02d9 relax FeatureCollection grammar to allow arbitary key:value's 2014-05-16 11:18:27 +01:00
Dane Springmeyer
aaae8b1cba optimize raster rendering when not resizing 2014-05-15 23:38:47 -07:00
Dane Springmeyer
03bb19dc3a fix svg_renderer ctor 2014-05-15 18:35:27 -07:00
artemp
3cc8fad956 c++11 syntax 2014-05-15 14:00:46 +01:00
artemp
6f24bd1c01 mapnik c++ style 2014-05-15 13:52:43 +01:00
Dane Springmeyer
7fa6747a29 Merge branch 'master' of github.com:mapnik/mapnik into render-time-variables 2014-05-14 11:44:57 -07:00
artemp
d60c371257 slightly better err message 2014-05-14 13:19:59 +01:00
artemp
c9b263fbc8 font_engine
+ avoid initialising FT_Library per font registration
+ lock register_fonts
2014-05-14 13:17:09 +01:00
Dane Springmeyer
96f89e34b3 Merge branch 'master' of github.com:mapnik/mapnik into render-time-variables 2014-05-13 20:51:57 -07:00
Dane Springmeyer
e300a41dca variables now available as postgis datasource tokens 2014-05-13 20:47:22 -07:00
Dane Springmeyer
2f8451b99a variables support for cairo/grid/svg 2014-05-13 18:24:17 -07:00
Dane Springmeyer
6f176ab0bf Merge pull request #2241 from mapnik/freetype-new-lib
FT_New_Library/FT_Done_Library
2014-05-13 16:14:38 -07:00
Dane Springmeyer
92bf9782f8 scons: fix path remove to be less aggressive 2014-05-13 15:25:16 -07:00
artemp
f0fd0aa8ce font_engine : use FT_New_Library/FT_Done_Library with custom memory management (ref #2209 #2210) 2014-05-13 12:43:59 +01:00
Dane Springmeyer
29d92fd162 Merge branch 'master' of github.com:mapnik/mapnik into render-time-variables 2014-05-12 21:26:04 -07:00
Dane Springmeyer
039e620147 don't allow marker-spacing less than 1 - fixes #2218 2014-05-12 21:25:49 -07:00
Dane Springmeyer
544917788f Merge branch 'master' of github.com:mapnik/mapnik into render-time-variables 2014-05-12 09:20:49 -07:00
Dane Springmeyer
760d3c967e Merge branch 'master' of github.com:mapnik/mapnik 2014-05-12 09:20:32 -07:00
Dane Springmeyer
0465a4d43a do inherit dynamic library path 2014-05-12 09:20:24 -07:00
Dane Springmeyer
1e3f062af8 Merge branch 'master' of github.com:mapnik/mapnik into render-time-variables 2014-05-12 08:45:15 -07:00
artemp
ba35dfe3b0 mapnik::value - return 'infinity' if rhs == 0 to avoid division by zero 2014-05-12 10:14:10 +01:00
artemp
1a32cc5630 + add eq/neq operators value_null <--> T 2014-05-12 10:12:09 +01:00
Dane Springmeyer
2c661ed3d5 support for render time variables 2014-05-11 13:08:24 -07:00
Dane Springmeyer
57c9aee63d shapeindex: more consistent error output 2014-05-11 12:41:08 -07:00
Dane Springmeyer
404e221c25 fix #2239 2014-05-11 12:40:24 -07:00
Dane Springmeyer
c770cfec3c fix possible crash in mapnik::process_layout::box_offset_align 2014-05-10 07:47:41 -07:00
Dane Springmeyer
6171c3252d fix a few sign comparison warnings 2014-05-10 07:37:28 -07:00
Dane Springmeyer
b2d62d5fd9 travis: disable clang - refs #2235 2014-05-08 07:26:44 -07:00
Dane Springmeyer
7364a30e67 improve handling of colors as expressions 2014-05-08 00:45:18 -07:00
Dane Springmeyer
88701b8669 revert usage of -flto on linux due to #2238 - refs #2232 2014-05-08 00:42:41 -07:00
Dane Springmeyer
e137985ecd travis: try -Os with -flto to see if #2235 and #2232 are still broken on travis 2014-05-06 23:00:42 -07:00
Dane Springmeyer
01d580d747 fix variable shadowing 2014-05-06 18:38:04 -07:00
artemp
99bbb10290 c++11 : use int types from <cstdint> 2014-05-06 18:06:47 +01:00
Dane Springmeyer
7bf50e9b5b fix build of test_array_allocation.cpp on older boost 2014-05-05 18:29:14 -07:00
Dane Springmeyer
cd4fdf17fe Merge pull request #2231 from mapnik/fast-static-grammars
static grammars
2014-05-05 18:24:59 -07:00
Dane Springmeyer
d7bb97a22e simplify code 2014-05-05 18:16:42 -07:00
Dane Springmeyer
33acec6dcb make css_value_broken truly broken with latest mapnik - refs #2237 2014-05-05 17:12:45 -07:00
Dane Springmeyer
5ddde3c885 stop testing bogus wkb since it will crash wkb reader - refs #2236 2014-05-05 17:05:00 -07:00
Dane Springmeyer
b462913fa1 load_map: use const_iterator 2014-05-05 16:06:01 -07:00
Dane Springmeyer
74c7e67d60 Various c++11 improvements
- std::make_unique
 - avoiding uneccessary std::move calls which make actually prevent rvo (http://stackoverflow.com/questions/4986673/c11-rvalues-and-move-semantics-confusion)
 - more c++11 for loops
2014-05-05 16:02:42 -07:00
Dane Springmeyer
439fc9f700 fix variable shadowing in placements_list.hpp 2014-05-05 10:44:59 -07:00
Dane Springmeyer
15d3ceffc8 make clean: also clear out shared libs 2014-05-05 10:08:40 -07:00
Dane Springmeyer
f9ad079d39 benchmark: break out string to int/bool/double conversions 2014-05-05 10:08:25 -07:00
Dane Springmeyer
7158df8b08 benchmark: png encoding with z=1 to ensure we're testing hextree not zlib 2014-05-05 10:07:57 -07:00
Dane Springmeyer
ba17b9e374 add TODO comments for grammars that are not stateless - refs #2231 2014-04-30 11:04:26 -07:00
Dane Springmeyer
356cc85ad8 cleanup + rename svg_transform parser 2014-04-30 10:55:46 -07:00
Dane Springmeyer
97a45f21bb all static grammar usage const + xml_tree cleanups 2014-04-30 10:42:05 -07:00
Dane Springmeyer
8c1e69fdb8 static grammars
- construct on first use
 - allows for faster map loading and unloading of xml loading tree
 - modified expression and transform grammars to not take args/not crash
 - simplifies interfaces, allows fast parsing from python without passing grammar instance
2014-04-30 00:11:27 -07:00
Dane Springmeyer
ab7fc55535 more realistic expression benchmark string - refs #1167 2014-04-29 18:25:21 -07:00
Dane Springmeyer
2806bd1cac rapidxml: validate closing tags like libxml2 parser (no overhead measurable seen) 2014-04-29 14:32:57 -07:00
Dane Springmeyer
c399812c34 Merge pull request #2230 from MapQuest/jh-fix-group-symbolizer-text
Group symbolizer serialization
2014-04-29 11:01:37 -07:00
Jordan Hollinger
9ec187505b Add serialization for group symbolizer components. 2014-04-29 12:08:05 -04:00
Dane Springmeyer
59bba65ce8 inherit PYTHONPATH in localize.sh 2014-04-28 20:17:38 -07:00
Dane Springmeyer
69ec89789a array alloc bench: add static_vector + fix valarray usage 2014-04-28 19:58:15 -07:00
Dane Springmeyer
ad10497503 cache result of parse_expression to speed up map loading - refs #1167 2014-04-28 18:02:14 -07:00
Dane Springmeyer
ef837eb92f c++11 optimizations for faster map loading 2014-04-28 17:10:00 -07:00
Dane Springmeyer
73517c9104 fix return value for string2bool 2014-04-27 08:51:14 -07:00
Dane Springmeyer
5beac8fa2b update expecte test images accidentally overwritten from 2.3.x merge 2014-04-27 08:50:50 -07:00
Dane Springmeyer
b7b1acaa50 optimize string2bool 2014-04-25 21:46:40 -07:00
Dane Springmeyer
10ce32696a add support for halo-rasterizer for shields - closes #2226
Conflicts:
	src/load_map.cpp
	tests/visual_tests/images/shield-on-line-spacing-eq-width-600-400-1.0-agg-reference.png
	tests/visual_tests/images/shield-on-line-spacing-eq-width-600-400-2.0-agg-reference.png
2014-04-25 16:07:03 -07:00
Dane Springmeyer
72fd84f872 write test output to tmp 2014-04-24 23:54:33 -07:00
Dane Springmeyer
4724eaaf9e update a few visual tests 2014-04-24 23:51:29 -07:00
Dane Springmeyer
7295e9db5d fix syntax error after merge 2014-04-24 23:26:25 -07:00
Dane Springmeyer
169e7ee4b6 Merge pull request #2222 from mapnik/expr-v2
Expr v2
2014-04-24 23:16:27 -07:00
Dane Springmeyer
9adbfa59e7 disable python symbolizer attribute access tests for now 2014-04-24 22:44:33 -07:00
Dane Springmeyer
297442b7c6 fix postgis tests 2014-04-24 22:24:22 -07:00
Dane Springmeyer
f7cd4ded03 disable python plugin tests since they are so brittle and I'm too impatient to fix 2014-04-24 22:22:37 -07:00
Dane Springmeyer
f3a824c2cc grid renderer: remove old method and fix tests 2014-04-24 22:18:36 -07:00
Dane Springmeyer
4502ef2c83 fix symbolizer introspection test 2014-04-24 22:09:07 -07:00
Dane Springmeyer
06bbedaffb fix raster colorizer access from python 2014-04-24 22:01:58 -07:00
Dane Springmeyer
874cd00a2d update a few visual tests 2014-04-24 21:53:17 -07:00
Dane Springmeyer
9e9747ffad Merge branch 'master' of github.com:mapnik/mapnik into expr-v2
Conflicts:
	src/agg/process_building_symbolizer.cpp
	src/cairo_context.cpp
	src/cairo_renderer.cpp
	src/grid/process_building_symbolizer.cpp
	src/grid/process_line_pattern_symbolizer.cpp
	src/grid/process_text_symbolizer.cpp
	tests/python_tests/images/support/marker-text-line-scale-factor-0.899.png
	tests/python_tests/images/support/marker-text-line-scale-factor-1.5.png
	tests/python_tests/images/support/marker-text-line-scale-factor-1.png
	tests/python_tests/images/support/marker-text-line-scale-factor-10.png
	tests/python_tests/images/support/marker-text-line-scale-factor-100.png
	tests/python_tests/images/support/marker-text-line-scale-factor-2.png
	tests/python_tests/images/support/marker-text-line-scale-factor-5.png
	tests/visual_tests/images/lines-5-200-200-1.0-agg-reference.png
	tests/visual_tests/images/lines-5-200-200-2.0-agg-reference.png
	tests/visual_tests/images/lines-5-400-400-1.0-agg-reference.png
	tests/visual_tests/images/lines-5-400-400-2.0-agg-reference.png
	tests/visual_tests/images/lines-5-600-600-1.0-agg-reference.png
	tests/visual_tests/images/lines-5-600-600-2.0-agg-reference.png
	tests/visual_tests/images/lines-5-800-800-1.0-agg-reference.png
	tests/visual_tests/images/lines-5-800-800-2.0-agg-reference.png
	tests/visual_tests/images/lines-6-200-200-2.0-agg-reference.png
	tests/visual_tests/images/lines-6-400-400-2.0-agg-reference.png
	tests/visual_tests/images/lines-6-600-600-2.0-agg-reference.png
	tests/visual_tests/images/lines-6-800-800-2.0-agg-reference.png
	tests/visual_tests/test.py
2014-04-24 21:44:28 -07:00
Dane Springmeyer
acb83a8796 fix compile with clang: 'addition of default argument on redeclaration makes this constructor a default constructor' 2014-04-24 21:13:35 -07:00
Dane Springmeyer
67357568a5 move line rendering tests to visual tests 2014-04-24 21:00:00 -07:00
Dane Springmeyer
cc855ac7e2 update expected visual tests - 39737c5f1d accidentaly overwrote some using 2.3.x code 2014-04-24 19:16:00 -07:00
Dane Springmeyer
39737c5f1d Merge branch '2.3.x' of github.com:mapnik/mapnik
Conflicts:
	.travis.yml
	CHANGELOG.md
	bindings/python/build.py
	include/mapnik/feature_style_processor_context.hpp
	include/mapnik/feature_style_processor_impl.hpp
	include/mapnik/json/feature_collection_grammar.hpp
	include/mapnik/json/feature_collection_parser.hpp
	include/mapnik/json/feature_generator_grammar.hpp
	include/mapnik/json/feature_parser.hpp
	include/mapnik/json/geojson_generator.hpp
	include/mapnik/json/geometry_generator_grammar.hpp
	include/mapnik/json/geometry_parser.hpp
	plugins/input/gdal/gdal_featureset.cpp
	plugins/input/geojson/geojson_datasource.cpp
	plugins/input/occi/occi_featureset.cpp
	plugins/input/osm/osm_featureset.cpp
	plugins/input/postgis/build.py
	plugins/input/postgis/connection.hpp
	src/agg/agg_renderer.cpp
	src/build.py
	src/cairo_context.cpp
	src/datasource_cache.cpp
	src/grid/process_line_symbolizer.cpp
	src/grid/process_polygon_pattern_symbolizer.cpp
	src/grid/process_polygon_symbolizer.cpp
	src/grid/process_text_symbolizer.cpp
	src/json/feature_grammar.cpp
	tests/cpp_tests/fontset_runtime_test.cpp
	tests/visual_tests/images/collision-600-400-1.0-agg-reference.png
	tests/visual_tests/images/image-filters-multi-blur-512-512-1.0-agg-reference.png
	tests/visual_tests/images/image-filters-multi-blur-512-512-2.0-agg-reference.png
	tests/visual_tests/images/image-filters-multi-blur-inflate-512-512-1.0-agg-reference.png
	tests/visual_tests/images/image-filters-multi-blur-inflate-512-512-2.0-agg-reference.png
	tests/visual_tests/images/lines-1-400-400-2.0-agg-reference.png
	tests/visual_tests/images/lines-1-600-600-1.0-agg-reference.png
	tests/visual_tests/images/lines-1-600-600-2.0-agg-reference.png
	tests/visual_tests/images/lines-2-200-200-1.0-agg-reference.png
	tests/visual_tests/images/lines-2-400-400-1.0-cairo-reference.png
	tests/visual_tests/images/lines-2-400-400-2.0-agg-reference.png
	tests/visual_tests/images/lines-2-600-600-2.0-agg-reference.png
	tests/visual_tests/images/lines-2-800-800-2.0-agg-reference.png
	tests/visual_tests/images/lines-3-400-400-2.0-agg-reference.png
	tests/visual_tests/images/lines-3-600-600-1.0-agg-reference.png
	tests/visual_tests/images/lines-3-600-600-2.0-agg-reference.png
	tests/visual_tests/images/lines-5-200-200-1.0-agg-reference.png
	tests/visual_tests/images/lines-5-200-200-2.0-agg-reference.png
	tests/visual_tests/images/lines-5-400-400-1.0-agg-reference.png
	tests/visual_tests/images/lines-5-400-400-2.0-agg-reference.png
	tests/visual_tests/images/lines-5-600-600-1.0-agg-reference.png
	tests/visual_tests/images/lines-5-600-600-2.0-agg-reference.png
	tests/visual_tests/images/lines-5-800-800-1.0-agg-reference.png
	tests/visual_tests/images/lines-5-800-800-2.0-agg-reference.png
	tests/visual_tests/images/lines-6-200-200-1.0-agg-reference.png
	tests/visual_tests/images/lines-6-200-200-2.0-agg-reference.png
	tests/visual_tests/images/lines-6-400-400-1.0-agg-reference.png
	tests/visual_tests/images/lines-6-600-600-1.0-agg-reference.png
	tests/visual_tests/images/lines-6-600-600-2.0-agg-reference.png
	tests/visual_tests/images/lines-6-800-800-1.0-agg-reference.png
	tests/visual_tests/images/lines-6-800-800-2.0-agg-reference.png
	tests/visual_tests/images/lines-shield-600-600-2.0-agg-reference.png
	tests/visual_tests/images/lines-shield-600-600-2.0-cairo-reference.png
	tests/visual_tests/images/shield-on-polygon-600-400-1.0-agg-reference.png
	tests/visual_tests/images/shield-on-polygon-600-400-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-1-490-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-1-495-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-1-495-100-2.0-cairo-reference.png
	tests/visual_tests/images/shieldsymbolizer-1-497-100-1.0-cairo-reference.png
	tests/visual_tests/images/shieldsymbolizer-1-497-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-1-497-100-2.0-cairo-reference.png
	tests/visual_tests/images/shieldsymbolizer-1-498-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-1-499-100-1.0-cairo-reference.png
	tests/visual_tests/images/shieldsymbolizer-1-499-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-1-499-100-2.0-cairo-reference.png
	tests/visual_tests/images/shieldsymbolizer-1-500-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-1-501-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-1-502-100-1.0-cairo-reference.png
	tests/visual_tests/images/shieldsymbolizer-1-502-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-1-505-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-1-505-100-2.0-cairo-reference.png
	tests/visual_tests/images/shieldsymbolizer-1-510-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-3-490-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-3-495-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-3-497-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-3-498-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-3-499-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-3-500-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-3-501-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-3-502-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-3-505-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-3-510-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-4-490-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-4-495-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-4-497-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-4-498-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-4-499-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-4-500-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-4-501-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-4-502-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-4-505-100-2.0-agg-reference.png
	tests/visual_tests/images/shieldsymbolizer-4-510-100-2.0-agg-reference.png
	tests/visual_tests/test.py
2014-04-24 14:50:55 -07:00
Dane Springmeyer
1e53351467 only compile cpp code if cairo/grid/svg renderers are enabled 2014-04-24 12:54:18 -07:00
Dane Springmeyer
a93252e569 add newlines to avoid pedantic warnings 2014-04-24 12:53:28 -07:00
Dane Springmeyer
34771d20dd add newlines to avoid pedantic warnings 2014-04-24 12:53:08 -07:00
Dane Springmeyer
e8ee02877d fix OGR plugin error reporting 2014-04-22 15:31:19 -07:00
Dane Springmeyer
02d4e7fd06 postgis geometry type detection - fall through to detecting type on individual geometries if the geometry_columns only reports 'geometry' - refs mapbox/tilemill/#2099 2014-04-22 15:31:06 -07:00
Dane Springmeyer
c4dbcf93bc fix version in code comment 2014-04-15 17:26:02 -04:00
Dane Springmeyer
fef45cb22e add #44 to changelog 2014-04-09 19:41:02 -04:00
Dane Springmeyer
83c0db36cb add support for rendering (vs skipping) 3D and 4D postgis geometries like POINTZM, LINESTRINGZM, and POLYGONZM - closes #44 2014-04-09 19:40:14 -04:00
Dane Springmeyer
d577b0814b remove uneeded asserts in png_io 2014-04-09 19:34:13 -04:00
Dane Springmeyer
ecbba52bc0 add code comment about curl [skip ci] 2014-04-09 09:44:43 -04:00
Dane Springmeyer
1dd481f8f7 fallback if pkg-config fails for libcurl or libpq 2014-04-09 09:40:40 -04:00
Dane Springmeyer
015bb8d61f travis: fix syntax error 2014-04-09 09:22:38 -04:00
Dane Springmeyer
0e8fa50215 update a few expected tests due to differences I presume are related to freetype version 2014-04-09 00:42:06 -04:00
Dane Springmeyer
fa745d9e76 update more expected tests - refs #2207 2014-04-09 00:32:45 -04:00
Dane Springmeyer
cf784f5e29 restore agg polygon clipper 2014-04-09 00:28:18 -04:00
Dane Springmeyer
ca0f3da780 update expected test image - refs #2207 2014-04-08 23:15:49 -04:00
Dane Springmeyer
f1dd07fd64 fix static linking of the osm plugin against libcurl 2014-04-08 23:15:33 -04:00
Dane Springmeyer
7351879e6f Merge pull request #2193 from strk/2.3.x-no-terminate-pgis-dtor
Do not throw in postgis_datasource destruction if backend is down
2014-04-04 18:20:59 -07:00
Dane Springmeyer
19349f951f Merge pull request #2194 from strk/master-no-terminate-pgis-dtor
Do not throw in postgis_datasource destruction if backend is down
2014-04-04 18:20:28 -07:00
Dane Springmeyer
55ba8d38ae Merge pull request #2182 from strk/2.3.x-all-async
Have all queries use the async interface
2014-04-03 23:59:11 -07:00
Dane Springmeyer
103e874f25 fix #2202 2014-04-03 17:15:57 -07:00
Dane Springmeyer
659772168b add (currently buggy) visual test images for #2202 2014-04-03 17:12:18 -07:00
Dane Springmeyer
a5ee9cbcb9 add testcase for #2202 2014-04-03 16:57:11 -07:00
Dane Springmeyer
e94876ebe4 Merge pull request #2160 from MapQuest/expr-v2-group-symbolizer
Group Symbolizer
2014-04-03 11:52:21 -07:00
Dane Springmeyer
ce1ff9902e better linking for postgis.input using pkg-config 2014-04-02 13:26:33 -07:00
Dane Springmeyer
2c8cf76808 update a few expected tests 2014-04-01 19:41:57 -07:00
Dane Springmeyer
af64692dcc visual test threshold of 2 on OS X 2014-04-01 18:15:31 -07:00
Dane Springmeyer
818e87dce4 update tests 2014-04-01 17:34:24 -07:00
Dane Springmeyer
5fd04e72ef add #2196 change to changelog 2014-04-01 17:09:18 -07:00
Dane Springmeyer
e15e64a5a9 update test images after bc1c723 - refs #2196 2014-03-31 21:26:42 -07:00
Dane Springmeyer
bc1c7234c3 drop vertex_dist_epsilon to 1e-5 (could likely even go lower) - refs #2196, #2186 2014-03-31 21:22:05 -07:00
Dane Springmeyer
947f7a4b33 use COMPUTE_THRESHOLD=0 on os x, update expected test images 2014-03-31 21:15:35 -07:00
Sandro Santilli
32680434fe Do not throw in postgis_datasource destruction if backend is down
... and persist_connections is true!
Closes #2191
2014-03-26 15:39:53 +01:00
Sandro Santilli
9d04d9fef9 Do not throw in postgis_datasource destruction if backend is down
... and persist_connections is true!
Closes #2191
2014-03-26 15:35:55 +01:00
Dane Springmeyer
e618a65498 fix #2185 2014-03-20 16:02:47 -07:00
Dane Springmeyer
68aaec5ac7 fix #2185 2014-03-20 16:02:08 -07:00
Dane Springmeyer
080b8e174c fixup c++ style in offset_converter 2014-03-18 17:31:15 -07:00
Dane Springmeyer
7847c0a7b9 travis: start testing clang 2014-03-18 15:00:24 -07:00
Dane Springmeyer
83ad5f5a25 fix a few g++-4.8 warnings on linux 2014-03-18 14:52:41 -07:00
Dane Springmeyer
804c90d46e fix c++11/clang-3.4/linux compile issue - closes #2022 2014-03-18 14:17:25 -07:00
Dane Springmeyer
1baeac34c7 use make_unique 2014-03-18 14:10:02 -07:00
Dane Springmeyer
2e6de5cc97 remove unused variables 2014-03-18 14:09:44 -07:00
Dane Springmeyer
f59dc36a19 attempt to workaround boost 1.49 bug when building in debug - refs #2085 2014-03-12 15:44:23 -07:00
Dane Springmeyer
42218b4bae try debug build - refs #2181 2014-03-12 15:02:00 -07:00
Dane Springmeyer
6c4ea66509 postgis: use max float for no-op bbox token - closes #2158 2014-03-12 13:31:45 -07:00
Dane Springmeyer
551718df59 postgis: use max float for no-op bbox token - closes #2158 2014-03-12 13:31:14 -07:00
Dane Springmeyer
c9e3248cec more auto_ptr usage to avoid bare geometry pointers 2014-03-12 13:11:51 -07:00
Sandro Santilli
bf3500d757 Have all queries use the async interface 2014-03-11 11:10:41 +01:00
Dane Springmeyer
cb3db66b82 std::make_unique 2014-03-10 21:34:48 -07:00
Dane Springmeyer
66654683a2 work in progress: fix some expressions tests disable others 2014-03-10 13:30:49 -07:00
Dane Springmeyer
7d5e0f1f91 one step closer to expression support for line cap/join 2014-03-10 13:00:47 -07:00
Dane Springmeyer
91eda81699 pass string by const& 2014-03-10 13:00:14 -07:00
Dane Springmeyer
811e93cdc4 update visual tests against freetype 2.5.3 2014-03-10 11:38:42 -07:00
Dane Springmeyer
24aaa0a6de post merge cleanups 2014-03-10 10:47:43 -07:00
Dane Springmeyer
bdd230a888 fix style copy ctor 2014-03-10 10:47:27 -07:00
Dane Springmeyer
6433d9482e Merge branch 'master' of github.com:mapnik/mapnik into expr-v2
Conflicts:
	include/mapnik/symbolizer.hpp
	src/agg/agg_renderer.cpp
	src/agg/process_line_pattern_symbolizer.cpp
	src/agg/process_line_symbolizer.cpp
	src/agg/process_polygon_pattern_symbolizer.cpp
	src/agg/process_polygon_symbolizer.cpp
	src/cairo_renderer.cpp
	src/feature_type_style.cpp
	src/grid/process_line_pattern_symbolizer.cpp
	src/grid/process_line_symbolizer.cpp
	src/grid/process_markers_symbolizer.cpp
	src/grid/process_polygon_pattern_symbolizer.cpp
	src/grid/process_polygon_symbolizer.cpp
2014-03-10 00:05:56 -07:00
Dane Springmeyer
dc8a13c44e rename a few variables to avoid likely clashes 2014-03-09 21:29:52 -07:00
Sandro Santilli
ca9b0fccab Do not attempt to PQclear a null PQresult* 2014-03-09 21:07:34 -07:00
Dane Springmeyer
b1e9aa2140 Merge pull request #2176 from strk/2.3.x-segfault-on-execute
Do not attempt to PQclear a null PQresult*
2014-03-09 21:04:48 -07:00
Sandro Santilli
749118cdee Make sure status() returns a message also on bad connection
Closes #2173.
2014-03-09 21:03:44 -07:00
Dane Springmeyer
11f9b44177 Merge pull request #2177 from strk/2.3.x-handle-bad-connection
Make sure status() returns a message also on bad connection
2014-03-09 21:02:05 -07:00
Dane Springmeyer
d58def6cdb silence debug print 2014-03-08 19:54:43 -08:00
Oliver Tonnhofer
5dedae4320 testcase for #2170 2014-03-08 19:54:05 -08:00
Oliver Tonnhofer
2c38670443 prevent double-free in mapnik::projection
A double-free can happen when init_proj4 is called outside of the
constructor (for projections with defer_proj_init=true) and when that
call fails. In this case proj_ctx_ is not set to NULL and then freed
again in the destructor. Set to null to avoid second pj_ctx_free call.

See #2170
2014-03-08 19:51:42 -08:00
Oliver Tonnhofer
fc8eb981fe prevent double-free in mapnik::projection
A double-free can happen when init_proj4 is called outside of the
constructor (for projections with defer_proj_init=true) and when that
call fails. In this case proj_ctx_ is not set to NULL and then freed
again in the destructor. Set to null to avoid second pj_ctx_free call.

See #2170
2014-03-08 19:50:34 -08:00
Sandro Santilli
d36c39d9be Make sure status() returns a message also on bad connection
Closes #2173.
2014-03-06 10:18:21 +01:00
Sandro Santilli
9a1996620e Do not attempt to PQclear a null PQresult* 2014-03-06 10:04:10 +01:00
Dane Springmeyer
871b17f5d9 fix postgis plugin linking when statically linking on linux - refs mapnik/mapnik-packaging#123 2014-02-27 14:40:14 -08:00
Dane Springmeyer
0fbcc12678 fix static linking of gdal/ogr plugins on linux - refs mapnik/mapnik-packaging#123 2014-02-27 14:40:09 -08:00
Dane Springmeyer
f2021971f0 fix postgis plugin linking when statically linking on linux - refs mapnik/mapnik-packaging#123 2014-02-27 14:23:57 -08:00
Dane Springmeyer
6f14228e30 fix static linking of gdal/ogr plugins on linux - refs mapnik/mapnik-packaging#123 2014-02-27 14:02:24 -08:00
Dane Springmeyer
21555b51c2 avoid double application of scale_factor - refs #1926 2014-02-27 13:28:25 -08:00
Dane Springmeyer
0d122c9878 update more tests after e49f63730e - refs #1926 2014-02-27 13:28:17 -08:00
Dane Springmeyer
3dd05bd171 support scale_factor in geometry-transform translate and scale - refs #1926 2014-02-27 13:28:03 -08:00
Dane Springmeyer
b1cfe548b0 avoid double application of scale_factor - refs #1926 2014-02-27 13:20:58 -08:00
Dane Springmeyer
f7a0dadf33 update more tests after e49f63730e - refs #1926 2014-02-27 13:08:45 -08:00
Dane Springmeyer
e49f63730e support scale_factor in geometry-transform translate and scale - refs #1926 2014-02-27 11:55:58 -08:00
Dane Springmeyer
fead2e2584 fixes after merge 2014-02-27 11:17:50 -08:00
Dane Springmeyer
277ae93d2c make inflated image for blurring opt-in via 'image-filters-inflate' option - refs #2165
Conflicts:
	src/agg/agg_renderer.cpp
2014-02-27 11:17:09 -08:00
Dane Springmeyer
aec32f88f7 Merge pull request #2167 from mapnik/issue_2165
make inflated image for blurring opt-in
2014-02-27 10:42:43 -08:00
Dane Springmeyer
4e957c9cac make inflated image for blurring opt-in via 'image-filters-inflate' option - refs #2165 2014-02-27 10:11:17 -08:00
Jordan Hollinger
533820c63f Merge branch 'expr-v2' of github.com:mapnik/mapnik into expr-v2-group-symbolizer
Conflicts:
	src/text/placement_finder.cpp
	tests/visual_tests/test.py
2014-02-25 14:21:51 -05:00
artemp
19c2b76e10 remove unused text_symbolizer.hpp/cpp 2014-02-25 14:25:23 +00:00
Jordan Hollinger
08ea56996a Add shield symbolizer support in group symbolizer processing.
Update some test cases to use ShieldSymbolizer instead of point and text.
2014-02-25 08:53:35 -05:00
artemp
ecc5acbdb9 attempt to handle multi-polygons in shape.input 2014-02-24 15:20:06 +00:00
artemp
7adb29bdd0 restore agg polygon clipper 2014-02-24 15:19:29 +00:00
Dane Springmeyer
14c02e76a7 Merge pull request #2138 from MapQuest/jmh-text-layouts
Multiple text layouts in text symbolizer
2014-02-18 17:59:56 -08:00
Dane Springmeyer
e9099076b9 Merge pull request #2155 from plepe/expr-v2-tests
expr-v2: Create tests for symbolizers, using expressions for parameters
2014-02-18 17:53:47 -08:00
Jordan Hollinger
07dc6e37a2 Merge branch 'expr-v2' of github.com:mapnik/mapnik into expr-v2-group-symbolizer
Conflicts:
	include/mapnik/attribute_collector.hpp
2014-02-18 18:22:01 -05:00
Matt Amos
a25b480593 Python interface for group symbolizer.
Boost::Python interface, and added a test to check that it works.
Looks like it fails at the moment due to other changes - a lot of
the python symbolizer tests show the same thing.
2014-02-18 16:38:58 -05:00
Jordan Hollinger
bbd2cfd40f Grid renderer implementation for group symbolizer.
This uses common process_group_symbolizer for most of the work.
Add reference grids for visual tests.
2014-02-18 16:37:41 -05:00
Matt Amos
f81d5abe1f "Implement" group symbolizer for SVG renderer.
Note that the "implementation" for SVG renderer is the same as
for other symbolizers there - i.e: empty.
2014-02-18 15:54:32 -05:00
Matt Amos
7e25a220a8 Implement debug symbolizer for Cairo. Update tests for debug symbolizer.
Debug symbolizer is useful, and used in a bunch of tests. This
adds debug symbolizer support for Cairo to make it closer to the
capabilities of AGG.

Adding debug symbolizer for Cairo meant that red boxes appeared in
many of the visual test outputs. This commit replaces them with
the output, after visual inspection. They should now be closer to
the output of the AGG test cases.
2014-02-18 15:53:55 -05:00
Matt Amos
44e69e9b05 Cairo renderer implementation of group symbolizer.
This uses the renderer_common header to do most of the heavy
lifting, but otherwise is very similar to the AGG renderer
implementation.

Add cairo ref images for group symbolizer tests.
2014-02-18 15:45:11 -05:00
Matt Amos
f8097748a4 Added more tests for group symbolizer.
The first test shows how an obstacle under the group being displayed
will cause the whole group to not display. Above is an replica of
the same layout using non-grouped symbolizers, which shows that
only the parts which intersect the obstacle will not be drawn.

The second is a line placement test, which just tests placement
of groups on a line with variable spacing.

The third is a test of repeat key in group symbolizer.
The test shows two items with different repeat keys ("foo" and "bar")
and rows of other group symbolizers sensitive to either one. The
reference images show that the "bar"-sensitive rows are displaced
by the "bar" item, but not the "foo" item.
2014-02-18 15:06:40 -05:00
Jordan Hollinger
3d1c30db1e Extracted a lot of code from agg render process_group_symbolizer.
Move a lot of processing into a common process_group_symbolizer function.
Also, extract column collection out of process_group_symbolizer function.
This will reduce duplication needed for other renderers.
2014-02-18 15:06:40 -05:00
Matt Amos
efc29649ab Added test for group symbolizer, fixed segfault.
Segfault was due to `glyph_position` structs keeping a pointer to
`glyph_info` objects which went out of scope at a different time.
The (rather ugly) fix for the moment is to copy that information
into the thunk object.
2014-02-18 14:06:05 -05:00
Jordan Hollinger
76329028d2 Find placements and render in process_group_symbolizer.
Create a group_symbolizer_helper for group placments, and extract some code from
text_symbolizer_helper into a base class to share with group_symbolizer_helper.
Also, move tolerance_iterator into its own header file. Use helper in
process_group_symbolizer to find placement positions.
2014-02-18 14:01:04 -05:00
Matt Amos
1ccdc5b76d Added code to render frozen thunks.
This renders the saved information from previous calls to the
bounding box extraction code, offset by some amount which should
be determined from running the `placement_finder`. Note that this
doesn't implement that bit, just the rendering.
2014-02-18 11:11:07 -05:00
Matt Amos
b85e7d0764 Added method to extract bounding boxes for symbolizers.
This is done by creating a fake 'virtual' environment at a fake
point and running the symbolizer render code. The actual render
is saved in a thunk for after the group layout has been done.
2014-02-18 11:11:06 -05:00
Jordan Hollinger
fbc2a0d1e3 Framework for group symbolizer.
This includes XML parsing of group symbolizer and related objects and
process_group_symbolizer method in the AGG renderer. This also includes
code to collect group symbolizer indexed columns, create sub features,
and match them to group rules.
2014-02-18 11:07:52 -05:00
Dane Springmeyer
b0278d4285 fix #2156 2014-02-11 09:20:11 -08:00
Dane Springmeyer
b799395f6a remove unused code 2014-02-10 21:39:56 -08:00
Dane Springmeyer
913bcb44b3 c++11 2014-02-10 21:36:59 -08:00
Dane Springmeyer
c13448f75e collect attributes from all properties - closes #2153 2014-02-10 19:41:17 -08:00
Dane Springmeyer
1c30683f23 fix round tripping of max-char-angle-delta value 2014-02-10 19:37:40 -08:00
Stephan Bösch-Plepelits
96e5129c9a Create tests for point-symbolizer, using expressions for parameters
- there are two versions:
  - point-symbolizer-expressions: file
  - point-symbolizer-expressions-all: additionally test
    allow-overlap, opacity, transform, ignore-placement, comp-op
    which are not supported right now
2014-02-11 04:27:36 +01:00
Stephan Bösch-Plepelits
3882707123 Create tests for polygon-symbolizer, using expressions for parameters
- there are two versions:
  - polygon-symbolizer-expressions: fill, fill-opacity, gamma
  - polygon-symbolizer-expressions-all: additionally test
    comp-op which is not supported right now
2014-02-11 04:26:30 +01:00
Stephan Bösch-Plepelits
676e1c7bfc Added grid-reference.json files missing in 79fde58c0e 2014-02-11 03:49:53 +01:00
Jordan Hollinger
e4afefa514 Update text-multi-layout visual tests to demonstrate placement list with layout nodes and layout/format node nesting. Add new images for line-multi-layout tests. 2014-02-10 20:01:35 -05:00
artemp
5b286da889 c++ : style 2014-02-10 21:56:20 +00:00
Stephan Bösch-Plepelits
79fde58c0e Create tests for line-symbolizer, using expressions for parameters
- there are two versions:
  - line-symbolizer-expressions: stroke, stroke-width, stroke-opacity, offset
  - line-symbolizer-expressions-all: additionally test
    stroke-dasharray, stroke-linecap, stroke-linejoin, comp-op
    which are not supported right now
2014-02-10 20:02:08 +01:00
Dane Springmeyer
0a26485d28 add simple, c++ version of nik2img 2014-02-10 10:46:48 -08:00
Dane Springmeyer
7b75a24111 Merge pull request #2154 from mapnik/expr-v2-vt-conv-feature
Expr v2 vt conv feature
2014-02-10 10:44:19 -08:00
Jordan Hollinger
489168d529 Use make_shared to create shared_ptr. 2014-02-10 11:48:33 -05:00
Jordan Hollinger
e0125afdae Update test cases. 2014-02-10 09:03:50 -05:00
Jordan Hollinger
d8eda4898e Merge branch 'expr-v2' of github.com:mapnik/mapnik into jmh-text-layouts
Conflicts:
	tests/visual_tests/test.py
2014-02-10 07:38:25 -05:00
Dane Springmeyer
bcde6ae631 Merge branch 'master' of github.com:mapnik/mapnik into expr-v2 2014-02-09 13:27:24 -08:00
Dane Springmeyer
d99daff007 iwyu 2014-02-09 13:25:00 -08:00
Dane Springmeyer
9d6346aa98 fix compile - refs #2148 2014-02-09 11:30:26 -08:00
Dane Springmeyer
89f72f02e8 pass feature to vertex_converters - refs #2148/#2140 2014-02-08 22:10:14 -08:00
Dane Springmeyer
c275d5512d consistently use mapnik value types 2014-02-07 22:41:50 -08:00
Dane Springmeyer
fa762ce971 now that we only support boost >= 1.47 we can remove older phoenix support 2014-02-07 22:36:33 -08:00
Jordan Hollinger
658d7e8888 Replace tabs with spaces. Remove unused method prototype. 2014-02-07 18:11:54 -05:00
Dane Springmeyer
d082732797 Merge pull request #2136 from MapQuest/mla-expr-v2-multi-line-text-alignment
Multi-line text alignment
2014-02-07 11:05:08 -08:00
Dane Springmeyer
f037eb99c2 silence debug print 2014-02-06 18:42:20 -08:00
Dane Springmeyer
3d90715883 only return true if plugins are actually newly registered 2014-02-06 18:24:56 -08:00
Dane Springmeyer
69de7f0a10 only return true if plugins are actually newly registered 2014-02-06 18:24:35 -08:00
Dane Springmeyer
88613fc2ec check filesystem before trying to open plugin + only report unique directories searched - closes #2131
Conflicts:
	src/datasource_cache.cpp
2014-02-06 17:08:38 -08:00
Dane Springmeyer
dcb87dd935 check filesystem before trying to open plugin + only report unique directories searched - closes #2131 2014-02-06 17:05:46 -08:00
Dane Springmeyer
f6b74ff819 fix #2141 2014-02-05 12:32:21 -08:00
Dane Springmeyer
645f98fa61 fix #2141 2014-02-05 12:31:55 -08:00
Dane Springmeyer
538af2515d fix rendering of multiple styles with OGR plugin - refs #2048 and mapbox/tilemill#2202 2014-01-31 19:13:24 -08:00
Dane Springmeyer
b3e6ea48b0 fix rendering of multiple styles with OGR plugin - refs #2048 and mapbox/tilemill#2202 2014-01-31 19:12:31 -08:00
Jordan Hollinger
586bb3b91a Tests for multiple text layout placements. 2014-01-30 07:10:18 -05:00
Jordan Hollinger
d39db43e96 Add python binding for Layout node in format tree. 2014-01-30 06:33:29 -05:00
Jordan Hollinger
6aa25090c0 Parse and support placement of multiple text layouts within a single text symbolizer. 2014-01-30 06:31:47 -05:00
Jordan Hollinger
269b038147 Extract text layout related properties (e.g. displacement, alignments) into seperate object from other placement related text symbolizer properties. 2014-01-30 06:01:57 -05:00
Dane Springmeyer
79a82cd8ff add std::string and std::valarray to array allocation benchmark 2014-01-29 13:03:35 -08:00
Dane Springmeyer
c86cf6e5f9 remove uneeded header 2014-01-29 10:42:28 -08:00
artemp
5416bd6c3a impl move ctor 2014-01-29 18:08:21 +00:00
artemp
4a2c5d84b7 make ImageData explicitly movable 2014-01-29 14:39:56 +00:00
artemp
5a1888a3b9 mapnik::color operator= 2014-01-29 09:56:44 +00:00
Dane Springmeyer
fb0dca7b54 array allocation test 2014-01-28 19:47:23 -08:00
Dane Springmeyer
f286363ad0 more consistent memset/memcpy usage 2014-01-28 15:05:10 -08:00
Matt Amos
0ad3441b68 Update tests affected by alignment change.
These are mostly text affected because it is multi-line. The
"lines-5" test case text is improved - it lines up now. The
"line-offset" test case is not multi-line, but the differences
appear to be minimal.
2014-01-28 20:42:15 +00:00
Matt Amos
944f34b3df Fix unaligned multi-line labels.
This forces offset lines to be aligned to the closest point to
the anchor point on the original line, meaning that they are
aligned where the offset line and original run parallel, or nearly
so.
2014-01-28 20:33:42 +00:00
Dane Springmeyer
cd39a02d0c unhide the scons command run by make 2014-01-28 12:04:24 -08:00
Dane Springmeyer
87e14afe6c unhide the scons command run by make 2014-01-28 12:03:48 -08:00
Matt Amos
17626d5501 Added visual test for multi-line label alignment.
Calculation of label alignment in multi-line labels seems to be
off. This test reproduces it by laying out a series of multi-line
labels along an S-shaped curve. In all these cases, the vertical
bar character should, to within a few pixels, line up. The
orientation at sharper corners is still a little off, but likely
due to discontinuities.
2014-01-28 19:10:04 +00:00
artemp
6ccaf8beb2 1. return by ref from operator=
2. provide operator= overload
2014-01-28 16:50:41 +00:00
artemp
9b08d1ba00 unify assignment op's 2014-01-28 16:49:52 +00:00
artemp
c6b96d2f36 remove vertex_type (unused) 2014-01-28 16:19:36 +00:00
artemp
1d8d5964d4 operator= overload 2014-01-28 16:18:47 +00:00
artemp
1aa6cafea1 remove noexcept - we can't guarantee noexcept in std::swap(a,b)
and

```c++
    static_assert( noexcept ( std::swap(*this,rhs)), "throwing swap");
```

would fail at compile time
2014-01-28 14:21:58 +00:00
artemp
322b378971 operator= using std::swap § 2014-01-28 10:57:26 +00:00
artemp
6f81c88f9a mapnik::Map - implement assignment-op in terms of swap 2014-01-28 09:58:47 +00:00
Dane Springmeyer
a602518a10 remove c++11 feature that should not be used in 2.3.x branch 2014-01-27 16:35:59 -08:00
Dane Springmeyer
5083f3a30e more expected image test updates 2014-01-27 16:28:34 -08:00
Dane Springmeyer
6722ea0394 fixup more image comparison tests and expected results 2014-01-27 14:24:22 -08:00
Dane Springmeyer
beb65664f7 fixup a variety of image comparison tests and expected results 2014-01-27 14:21:07 -08:00
Dane Springmeyer
a98de6a348 Merge branch 'master' of github.com:mapnik/mapnik into expr-v2
Conflicts:
	include/mapnik/expression_grammar_impl.hpp
	src/expression.cpp
2014-01-27 13:56:36 -08:00
Dane Springmeyer
2b120b78ad add gitignore in benchmark folder 2014-01-27 13:23:18 -08:00
Dane Springmeyer
24805bc500 update expected test image 2014-01-27 13:20:42 -08:00
Dane Springmeyer
84166882d9 minimum boost version is 1.47 - remove obsolete code handling older versions 2014-01-27 13:19:21 -08:00
Dane Springmeyer
1c16b3797d update expected tests after #2117 2014-01-27 13:18:42 -08:00
Dane Springmeyer
18dbf34b72 remove env clone and instead just push DHAVE_LIBXML2 into main CPPDEFINES 2014-01-27 12:25:51 -08:00
Dane Springmeyer
777e067770 remove workaround for boost less than 1.46 since 1.47 is now the min needed - refs #1082 2014-01-27 12:24:20 -08:00
Dane Springmeyer
587a1c1bff remove compile workaround for old OS X gcc since we only support c++11/clang++ now at Mapnik 3.x - refs #1835 2014-01-27 12:23:33 -08:00
Dane Springmeyer
dec15c257b geometry envelope: calculate size once 2014-01-27 12:19:49 -08:00
Dane Springmeyer
43f9aa36ac Merge pull request #2134 from mapnik/no-predefined-terminals
Use BOOST_SPIRIT_NO_PREDEFINED_TERMINALS
2014-01-27 12:08:41 -08:00
Dane Springmeyer
c5aad93428 fix topojson compile and centralize confix workaround 2014-01-26 16:19:27 -08:00
Dane Springmeyer
d82d9d382f fix compile with BOOST_SPIRIT_NO_PREDEFINED_TERMINALS 2014-01-26 16:06:32 -08:00
Dane Springmeyer
63ea37b4c2 further no terminal port 2014-01-26 14:49:03 -08:00
Dane Springmeyer
cd24a7b877 Merge branch 'master' of github.com:mapnik/mapnik into expr-v2
Conflicts:
	tests/cpp_tests/svg_renderer_tests/path_element_test.cpp
2014-01-26 14:12:03 -08:00
Dane Springmeyer
87e0ae8124 adapt build to use BOOST_SPIRIT_NO_PREDEFINED_TERMINALS 2014-01-26 14:00:58 -08:00
Dane Springmeyer
7b58b26df1 catch another addLayer -> add_layer case 2014-01-26 13:51:16 -08:00
Dane Springmeyer
0fc7b8bc01 include <array> header for std::array 2014-01-26 13:45:29 -08:00
Dane Springmeyer
29e7b19007 boost::array -> std::array 2014-01-26 13:44:30 -08:00
Dane Springmeyer
8181aa9dec addLayer -> add_layer (change also coming in expr-v2 branch) 2014-01-26 13:41:30 -08:00
Dane Springmeyer
9944ca65ee fix -pthread issue on linux - closes #2132 2014-01-23 13:07:14 -08:00
Dane Springmeyer
f8ea04f85f fix -pthread issue on linux - closes #2132 2014-01-23 13:06:07 -08:00
Dane Springmeyer
afb287633b update expected test images after fix from #2117 2014-01-23 11:38:09 -08:00
Dane Springmeyer
1155a6e33d better library sort 2014-01-23 00:42:41 -08:00
Dane Springmeyer
cd4c645032 boost threads are no longer needed 2014-01-23 00:42:05 -08:00
Dane Springmeyer
499d485151 another try to fix linking order on linux 2014-01-23 00:13:39 -08:00
Dane Springmeyer
17434992d1 update a few expected visual tests 2014-01-22 22:58:41 -08:00
Dane Springmeyer
83bde5fef2 use premultiplied renderer for points/shields - closes #2117 2014-01-22 22:44:33 -08:00
Dane Springmeyer
7bcbcb0c4f use premultiplied renderer for points/shields - closes #2117 2014-01-22 22:44:04 -08:00
Dane Springmeyer
4731baab93 use premultiplied renderer for points/shields - closes #2117 2014-01-22 22:43:34 -08:00
Dane Springmeyer
b3ca4fb15f fix cairo road-casings-non-grouped-rendering test by matching agg clipping behavior 2014-01-22 22:24:47 -08:00
Dane Springmeyer
7520c15e86 Merge branch 'master' of github.com:mapnik/mapnik into expr-v2 2014-01-22 20:48:07 -08:00
Dane Springmeyer
047373772d update a few expected test images 2014-01-22 20:46:18 -08:00
Dane Springmeyer
328df74c13 correct include for std::min/max 2014-01-22 17:02:28 -08:00
Dane Springmeyer
3bd9e1b283 correct include for std::min/max 2014-01-22 17:01:38 -08:00
Dane Springmeyer
97d737fa7b scons: fix variable name 2014-01-22 00:10:28 -08:00
Dane Springmeyer
4742aea92b scons: fix variable name 2014-01-22 00:10:11 -08:00
Dane Springmeyer
7ad2e5b43d finish support for disabling soname on linux 2014-01-21 21:35:10 -08:00
Dane Springmeyer
4fda93bf3e finish support for disabling soname on linux 2014-01-21 21:34:43 -08:00
Dane Springmeyer
fd6474b65e improve configure doc for FULL_LIB_PATH and ENABLE_SONAME 2014-01-21 21:15:57 -08:00
Dane Springmeyer
4e1423f8ce improve configure doc for FULL_LIB_PATH and ENABLE_SONAME 2014-01-21 21:15:28 -08:00
Dane Springmeyer
edd0f24997 add ENABLE_SONAME option + embed rpath/loader_path by default - closes #1225 2014-01-21 21:12:55 -08:00
Dane Springmeyer
7a2607a73f Merge branch 'expr-v2' of github.com:mapnik/mapnik into expr-v2 2014-01-21 21:02:22 -08:00
Dane Springmeyer
99bf263afd Merge branch 'master' of github.com:mapnik/mapnik into expr-v2 2014-01-21 21:01:48 -08:00
Dane Springmeyer
0e38731152 add ENABLE_SONAME option + embed rpath/loader_path by default - closes #1225 2014-01-20 20:16:08 -08:00
Dane Springmeyer
b50b534ab9 fix boost_regex icu detection on linux when statically linking 2014-01-20 17:47:23 -08:00
Dane Springmeyer
855a7149cb fix linux linking order in python bindings
Conflicts:
	bindings/python/build.py
	src/build.py
2014-01-20 17:47:08 -08:00
Dane Springmeyer
5153678876 fix linking order in svg c++ tests
Conflicts:
	tests/cpp_tests/svg_renderer_tests/build.py
2014-01-20 17:45:06 -08:00
Dane Springmeyer
cdaa31aa5e Revert "branch 2.3.x from master at v2.2.0-242-ge85cdda"
This reverts commit 9e66317af1.
2014-01-20 14:39:28 -08:00
Dane Springmeyer
fede08d4da fix boost_regex icu detection on linux when statically linking 2014-01-20 14:19:41 -08:00
Dane Springmeyer
2a826e7fc8 fix linux linking order in python bindings 2014-01-20 11:15:10 -08:00
Dane Springmeyer
75d5d9fd3c fix linking order in svg c++ tests 2014-01-20 11:07:18 -08:00
Dane Springmeyer
257fa3be54 fix jpeg reading regression after #1805 - closes #2123 (patch from @clundgren) 2014-01-20 12:53:35 +00:00
Dane Springmeyer
a9953fb385 fix relative paths in mapnik-config for fonts/plugins 2014-01-19 16:31:17 -08:00
Dane Springmeyer
e12dcd8b29 Merge branch '2.3.x' of github.com:mapnik/mapnik into 2.3.x 2014-01-19 16:27:24 -08:00
Dane Springmeyer
1894697bbe fix relative paths in mapnik-config for fonts/plugins 2014-01-19 16:27:02 -08:00
Dane Springmeyer
50f978777d remove uneeded include 2014-01-19 16:26:38 -08:00
Dane Springmeyer
6c12904eda fix jpeg reading regression after #1805 - closes #2123 (patch from @clundgren) 2014-01-18 20:40:00 -08:00
Dane Springmeyer
cff13c0ff6 fix jpeg reading regression after #1805 - closes #2123 (patch from @clundgren) 2014-01-18 20:31:47 -08:00
Dane Springmeyer
98f923b9b6 Merge branch 'master' of github.com:mapnik/mapnik into expr-v2
Conflicts:
	tests/visual_tests/test.py
2014-01-17 20:04:30 -08:00
Dane Springmeyer
49aadae244 Merge branch 'master' of github.com:mapnik/mapnik into expr-v2
Conflicts:
	tests/visual_tests/test.py
2014-01-17 20:04:09 -08:00
Dane Springmeyer
66d8885828 enable further test 2014-01-17 20:03:30 -08:00
Dane Springmeyer
2b08987903 Merge branch 'master' into expr-v2 2014-01-17 19:59:05 -08:00
Dane Springmeyer
8e30ae8160 one more test for #2023 2014-01-17 19:55:43 -08:00
Dane Springmeyer
2a953034f5 one more test for #2023 2014-01-17 19:55:13 -08:00
Dane Springmeyer
9a312958ef tests for #2023 2014-01-17 19:46:47 -08:00
Dane Springmeyer
77da5d919c further gdal nodata handling improvements - refs #2023
Conflicts:
	plugins/input/gdal/gdal_featureset.cpp
2014-01-17 19:46:35 -08:00
Dane Springmeyer
abfd4e530d tests for #2023 2014-01-17 19:41:17 -08:00
Dane Springmeyer
8faf5511f1 further gdal nodata handling improvements - refs #2023 2014-01-17 19:13:53 -08:00
artemp
3628b5f237 halo-transform initial impl 2014-01-17 11:47:18 +00:00
Dane Springmeyer
833cfb9827 Revert "branch 2.3.x from master at v2.2.0-242-ge85cdda"
This reverts commit 9e66317af1.
2014-01-09 12:39:35 -08:00
Dane Springmeyer
cefa9b4139 Merge pull request #2118 from MapQuest/mla-expr-v2-svg-premultiply
Added test for markers compared with points.
2014-01-08 08:57:00 -08:00
artemp
d9f289e4f2 Merge branch 'MapQuest-mla-expr-v2-renderer-common' into expr-v2 2014-01-07 16:05:56 +00:00
Matt Amos
fcbc727f63 scale_factor_ now in common_. 2014-01-07 16:00:11 +00:00
artemp
df838f2c92 Merge branch 'MapQuest-mla-expr-v2-renderer-common' into expr-v2 2014-01-07 15:55:17 +00:00
artemp
2884bd0443 fix : use 'template' keyword to treat 'set' as a dependent template name error (clang) 2014-01-07 15:52:28 +00:00
Matt Amos
8467d20854 Fixed compile error due to typo in svg_renderer.cpp 2014-01-07 15:38:02 +00:00
Matt Amos
eacdff2f7d Added test for markers compared with points.
Both are rendering the same SVG marker, at the same size. The
output should (and does, for Cairo & Grid renderers) look like
identical rows of spots. But the AGG one does not.

This is an attempt to create a test case for issue #2117.
2014-01-02 18:51:01 +00:00
Dane Springmeyer
ee7ca60442 add woff support to changelog 2013-12-20 17:28:49 -05:00
Dane Springmeyer
55ca9f73ed add woff support to changelog 2013-12-20 17:28:37 -05:00
Dane Springmeyer
453c29c09f accept woff (web font) format - closes #2113 2013-12-20 17:19:49 -05:00
Dane Springmeyer
448d093f77 accept woff (web font) format - closes #2113 2013-12-20 17:15:41 -05:00
Matt Amos
6479785648 Merge remote-tracking branch 'upstream/expr-v2' into mla-expr-v2-renderer-common 2013-12-19 14:09:09 +00:00
Dane Springmeyer
ab4bdfb6f9 Merge branch 'master' of github.com:mapnik/mapnik 2013-12-18 12:22:57 -05:00
Dane Springmeyer
e52b4ebf9a harfbuzz_shaper: just call hb_shape not hb_shape_full 2013-12-18 12:22:40 -05:00
Dane Springmeyer
75b1761805 mapnik-config build: fix relative path to libmapnik 2013-12-18 09:08:38 -05:00
Dane Springmeyer
e7e60cb541 Revert "don't set -stdlib in CXXGLAGS"
This reverts commit 62c06eabcc.
2013-12-13 06:23:03 -08:00
Dane Springmeyer
c02a1c5f04 avoid signed comparison warning in symbolizer test 2013-12-13 06:22:53 -08:00
Dane Springmeyer
104aadcfd6 Merge branch 'expr-v2' of github.com:mapnik/mapnik into expr-v2 2013-12-11 14:33:32 -08:00
artemp
5dae2999b1 symbolizers: set_property helper 2013-12-11 17:27:52 -05:00
artemp
f21152a6a9 register target type for symbolizer properties 2013-12-11 17:27:52 -05:00
artemp
d5a0537471 convert json value into symbolizer_base::value_type 2013-12-11 17:27:52 -05:00
artemp
7cf452da77 generic ``to_integral`` helper function (convert strongly typed enumeration values to underlying type) 2013-12-11 17:27:52 -05:00
Dane Springmeyer
9550e98a62 Merge branch 'master' of github.com:mapnik/mapnik into expr-v2 2013-12-11 07:28:35 -08:00
Dane Springmeyer
b492437505 avoid dereferencing pointer more than once 2013-12-11 07:27:51 -08:00
Dane Springmeyer
6a0e593d87 fix svg_renderer 2013-12-11 07:26:32 -08:00
Dane Springmeyer
d3836bc71a c++11 2013-12-11 07:25:23 -08:00
artemp
b7dda95d84 move symbolizer to json into core
symbolizer json grammar (needs more work)
2013-12-10 15:51:07 -05:00
Matt Amos
5e13658cf9 Merge remote-tracking branch 'upstream/expr-v2' into mla-expr-v2-renderer-common 2013-12-10 11:47:36 +00:00
artemp
329224d272 revive stroke linecap/linejoin 2013-12-09 18:46:02 -05:00
artemp
5393a0a9fe c++11 : use ``constexpr name2int` switch instead of if/else 2013-12-09 16:15:24 -05:00
Matt Amos
ceaea9a948 Factored out common implementation of polygon symbolizer. 2013-12-09 20:42:00 +00:00
artemp
8e6e6d8c1e c++11 style for loop 2013-12-09 15:09:37 -05:00
artemp
6126286555 add equality comparator `` .def(self == self) // __eq__`` 2013-12-09 14:52:47 -05:00
artemp
7bae4b806c add __hash__ to all symbolizers 2013-12-09 14:52:47 -05:00
Dane Springmeyer
eca1c6e46b Merge branch 'master' of github.com:mapnik/mapnik into expr-v2
Conflicts:
	src/load_map.cpp
2013-12-09 11:40:55 -08:00
Matt Amos
dd9584bdd6 Factored out markers symbolizer logic.
It's not ideal - there's still a bunch of "dispatch" objects from
which the common elements could be factored for greater
readability.
2013-12-09 18:50:00 +00:00
artemp
6a3f60954a add extract method to access underlying type from mapnik.Symbolizer 2013-12-09 13:43:42 -05:00
artemp
11080bf903 NumericWrapper helper class to pass correct numeric type
value_bool, value_integer, value_double to symbolizer property
(there must be a better way ;)
2013-12-09 12:37:42 -05:00
Dane Springmeyer
3376a2e1a0 avoid duplicate call to start_layer_processing
Conflicts:
	include/mapnik/feature_style_processor_impl.hpp
2013-12-07 15:11:26 -08:00
Dane Springmeyer
bead269923 avoid duplicate call to start_layer_processing 2013-12-07 15:09:35 -08:00
Matt Amos
f01953e8f7 Factored out common implementation of raster symbolizer. 2013-12-06 18:09:24 +00:00
Matt Amos
da5574d247 Factored out common implementation of point symbolizer. 2013-12-06 17:30:06 +00:00
Matt Amos
05982c4caf Factored out common code for building symbolizer.
There's a lot of code common between symbolizers which do things
like layout, setup, etc... So it seems sensible to extract the
common operations & loops into a single place which is
independent of the actual renderer.

I've started doing this with C++11 lambdas, although that might
not be the best implementation long term. Should be easy enough
to change, though.
2013-12-06 16:33:26 +00:00
artemp
9392e0f21e use mapnik::value_xxx types 2013-12-06 14:36:45 +00:00
Matt Amos
a9627f835b Factored common renderer code from SVG renderer. 2013-12-06 14:14:14 +00:00
artemp
fb63d51b37 add quoting for relevant types 2013-12-06 13:11:24 +00:00
Matt Amos
4f871d1fc7 Factored out common fields from grid renderer. 2013-12-05 19:34:32 +00:00
Matt Amos
ee018dc589 Factor common fields out of cairo renderer.
This involved making the freetype engine stack allocated and
accessible via a `shared_ptr` because `FT_Face` elements stored
in it are referenced from cairo structures which persist beyond
the lifetime of the `cairo_renderer` object.

Hopefully this can be resolved in a future commit.
2013-12-05 18:39:09 +00:00
artemp
12dbc035cc enumeration_wrapper to python converter (work-in-progress) 2013-12-05 16:31:30 +00:00
artemp
8a0c3692f6 python bindings : output property value 2013-12-05 16:30:19 +00:00
artemp
7245a6f5bd symbolizer property value to string 2013-12-05 16:28:44 +00:00
artemp
7169e14d90 use constexpr to allow combining type traits 2013-12-05 16:26:42 +00:00
artemp
ca7dfb3428 store meta by const ref 2013-12-05 16:25:56 +00:00
Matt Amos
a76e441174 Factored out common renderer fields.
The idea here is that much of the code in the renderers and the
various `process_*` rendering methods is shared, but this sharing
is obfuscated by the lack of sharing of renderer fields and
methods.

This is the first step in trying to factor out commonalities in
order to simplify the implementation of the renderers and make
them easier to understand and modify.
2013-12-05 16:21:55 +00:00
artemp
1d453426da __str__ : initial naive stub implementation 2013-12-05 11:32:21 +00:00
artemp
0708e6a07b python : revive mapnik.Symbolizers (required by mapnik.Rule.symbols) 2013-12-05 10:18:25 +00:00
artemp
12bbf55c81 two step parameter parsing and various syntactic sugar tweaks 2013-12-04 16:11:11 +00:00
artemp
9945822cc7 make apply() static and disable copy ctor/assignment 2013-12-04 15:14:53 +00:00
artemp
7eb84ad1ab more meaningful error message 2013-12-04 15:09:45 +00:00
artemp
37fea12091 load_map : allow optional expressions in symbolizer properties (work-in-progress) 2013-12-04 11:47:36 +00:00
artemp
442ffbe911 expression grammar : allow '-' in @attribute
e.g ```@water-fill```
note: this might clash with subtraction ops (fixme)
2013-12-04 11:44:18 +00:00
artemp
1c490f5312 global attributes evaluator 2013-12-04 11:43:16 +00:00
Dane Springmeyer
ad431baef2 travis: reduce email noise post policy change: http://about.travis-ci.org/blog/2013-11-19-upcoming-email-notification-policy-change/ 2013-12-03 09:01:16 -08:00
Dane Springmeyer
f123b84fd8 travis: target latest postgres 2013-12-03 08:46:35 -08:00
Dane Springmeyer
3212dbe44e add testcase for #2090 2013-12-03 08:20:48 -08:00
artemp
f83b272a98 fix boost include path 2013-12-03 09:10:51 +00:00
artemp
72378c4c62 symbolizer hash initial impl 2013-12-03 09:10:15 +00:00
Dane Springmeyer
cb27237e71 visual tests: fix rendering of khmer, malayalam, and bengali tests 2013-12-02 22:47:04 -08:00
Dane Springmeyer
a46d409898 visual tests: re-enable and update malayalam, bengali, and khmer renderings 2013-12-02 22:35:11 -08:00
Dane Springmeyer
d13c889d30 fix #2090 2013-12-02 21:51:54 -08:00
Dane Springmeyer
c7879755f4 tests: re-enable strict map loading tests 2013-12-02 21:51:24 -08:00
Dane Springmeyer
a0d9977e5e fix #2090 2013-12-02 21:47:25 -08:00
artemp
3d7cd37760 symbolizer : operator== impl 2013-12-02 16:49:23 +00:00
Artem Pavlenko
a5b18964af Merge pull request #2099 from MapQuest/mla-expr-v2-grid
Update grid renderer for `expr-v2` branch
2013-12-02 08:48:24 -08:00
Matt Amos
d64b86dcdf Updated grid renderer for expr-v2 branch.
All the grid visual tests pass.

One small issue is that in the grid line pattern symbolizer it
constructs a 'fake' line symbolizer to re-use code (as the grid
renderer cares nothing for patterns), but doesn't pass the
offset parameter to it. The tests currently require this
behaviour, but they should probably be changed as it seems
incorrect.
2013-12-02 13:49:53 +00:00
artemp
c57d88edb1 c++11 : style 2013-12-02 12:10:47 +00:00
artemp
b22eaa28a7 format : fix copy note 2013-12-02 11:00:42 +00:00
artemp
6705f01a8f expressions grammar : fix global attribute rule 2013-12-02 10:47:54 +00:00
artemp
7267874cdd use mapnik::auto_cpu_timer 2013-12-02 10:14:11 +00:00
artemp
eebc638d28 c++11 : add chrono based auto timer 2013-12-02 10:13:51 +00:00
artemp
f454a45092 c++11 : use std::chrono 2013-12-02 09:52:08 +00:00
Dane Springmeyer
a6d75ab9d0 fix wkt_multi_generator typedef - previously accidentally matched mapnik::geometry_container - bug spotted by @mojodna - refs #2098 2013-12-02 09:00:16 +00:00
Dane Springmeyer
523cb96e22 fix wkt_multi_generator typedef - previously accidentally matched mapnik::geometry_container - bug spotted by @mojodna - refs #2098 2013-11-30 16:55:25 -08:00
Dane Springmeyer
199b550e98 fix wkt_multi_generator typedef - previously accidentally matched mapnik::geometry_container - bug spotted by @mojodna - refs #2098 2013-11-30 16:53:39 -08:00
artemp
c98903b7a6 make Map equality comparable (work-in-progress) 2013-11-29 17:00:40 +00:00
artemp
c8466ae654 use static_assert 2013-11-29 17:00:40 +00:00
Artem Pavlenko
36bacf3d91 Merge pull request #2097 from MapQuest/mla-expr-v2-cairo
Cairo support in expr-v2 branch
2013-11-29 08:58:03 -08:00
Matt Amos
ca3d66236c Taking out unnecessary member variable added in 1a22a19a. 2013-11-29 16:37:20 +00:00
Matt Amos
1a22a19a95 Update Cairo renderer so that it compiles. 2013-11-29 16:23:44 +00:00
artemp
85dfd045ec reduce verbosity :D 2013-11-29 14:38:44 +00:00
artemp
06592cedc3 re-use evaluator object 2013-11-29 14:10:58 +00:00
artemp
a1c2bd0d86 pass filter_type by r-value 2013-11-28 15:13:22 +00:00
artemp
62c06eabcc don't set -stdlib in CXXGLAGS 2013-11-28 15:11:31 +00:00
artemp
9e686b519f fix path 2013-11-28 15:10:59 +00:00
Dane Springmeyer
e9ca9c8790 symbolizer-expressions replayed against latest master 2013-11-27 22:50:15 -08:00
artemp
eb3da7d32d c++11 : use nullptr instead of NULL 2013-11-27 15:54:16 +00:00
Dane Springmeyer
3e69c337d2 tests: prefer testing png encoded bytes 2013-11-22 16:41:46 -08:00
Dane Springmeyer
529095d739 Actually convert the python tests - finishes #1460 2013-11-22 16:41:27 -08:00
Dane Springmeyer
adc7ae587d add has_svg_renderer status to python bindings 2013-11-22 15:50:48 -08:00
Dane Springmeyer
dffd0a6e9e add has_svg_renderer status to python bindings 2013-11-22 15:49:39 -08:00
Dane Springmeyer
9a184d73a3 travis: abandon clang++ builds since travis appears unable to use upgraded clang (unlike stock precise) 2013-11-22 15:39:54 -08:00
Dane Springmeyer
9e192c920d tests: update expected cairo outputs after #2087 2013-11-22 21:56:19 +00:00
Dane Springmeyer
e7b32d0899 travis: yes to apt 2013-11-22 13:47:50 -08:00
Dane Springmeyer
46de22da2c use bash in all shell scripts 2013-11-22 13:46:05 -08:00
Dane Springmeyer
cb39896a1f travis: fix typo 2013-11-22 13:42:42 -08:00
Dane Springmeyer
6c63b56fe4 travis: upgrade llvm/clang++ to support c++11 2013-11-22 13:38:08 -08:00
Dane Springmeyer
1eceb18f1e Merge pull request #2088 from plepe/patch-1
INSTALL.md: Add harfbuzz dependency
2013-11-22 13:05:50 -08:00
Dane Springmeyer
1a99020e94 travis: fix typo in variable name 2013-11-22 13:04:17 -08:00
Dane Springmeyer
ff92370c37 travis: further partition c++ from python dependent tests 2013-11-22 12:35:14 -08:00
Dane Springmeyer
49dfa7486f travis: parallize tests: http://about.travis-ci.org/blog/2012-11-28-speeding-up-your-tests-by-parallelizing-them/ 2013-11-22 12:07:58 -08:00
Dane Springmeyer
c3d31993b8 fix return code for python run tests 2013-11-22 12:07:07 -08:00
Dane Springmeyer
38a059298b add localize.sh script that tests can source to run locally 2013-11-22 12:01:32 -08:00
Dane Springmeyer
66347f78e6 rework tests: always run locally 2013-11-22 12:01:02 -08:00
Stephan Bösch-Plepelits
07c3714045 INSTALL.md: Add harfbuzz dependency 2013-11-22 15:35:24 +01:00
Dane Springmeyer
37eaae3a51 travis: build harfbuzz on the fly 2013-11-22 00:52:49 -08:00
Dane Springmeyer
1b71a91668 update expected test grids post #2087 2013-11-22 00:47:47 -08:00
Dane Springmeyer
20a99999dd update expected test images post #2087 2013-11-22 00:47:43 -08:00
Dane Springmeyer
f0a2189de0 Merge pull request #2087 from mapnik/harfbuzz-merge
Improved support for international text
2013-11-22 00:35:30 -08:00
Dane Springmeyer
64d5153aea Improved support for international text
- Implementation by @herm for GSOC 2012 (http://mapnik.org/news/2012/10/06/gsoc2012-status9/)
 - C++11 port, improvements, optimizations by @artemp
 - Testing and integration with master by @springmeyer
 - Thank you to all the support from @behdad along the way
 - Thanks for help testing @toton6868, @stephankn, @nirvn, @mfrasca, @simonsonc and many others

Refs: #2073,#2070,#2038,#2037,#1953,#1820,#1819,#1714,#1634,#1547,#1532,#1319,#1208,#1154,#1146
2013-11-22 00:06:32 -08:00
Dane Springmeyer
59a1eb1382 travis: pull gdal 2013-11-22 00:00:47 -08:00
Dane Springmeyer
821c1aae74 travis: build verbose 2013-11-21 23:54:56 -08:00
Dane Springmeyer
622f95ec28 text rendering benchmark 2013-11-21 22:47:55 -08:00
Dane Springmeyer
e5bb5ed8aa backport geojson parsing/generation fixes from master to 2.3.x - refs #2083 2013-11-21 14:11:47 -08:00
Dane Springmeyer
7b9ca29f60 remove unused code 2013-11-21 13:29:04 -08:00
Dane Springmeyer
e4460150d3 merge with branch 2.3.x 2013-11-21 13:23:27 -08:00
Dane Springmeyer
1c56f0dc19 Merge branch '2.3.x' of github.com:mapnik/mapnik 2013-11-21 13:09:52 -08:00
Dane Springmeyer
cab6d239f2 apply 5eb406c7df to non PHOENIX_V3 code 2013-11-21 13:09:18 -08:00
Dane Springmeyer
5c15ba9e86 add tests for geojson empty/null geoms - #2083 2013-11-21 12:09:55 -08:00
artemp
9d7d024cf4 geojson parser : add phoenix v2 not_empty implementation 2013-11-21 10:10:43 +00:00
artemp
2b8b71fc98 geojson generator : catch empty geometries early
```json
{"type":"Feature","id":1,"geometry":null,"properties":{}}
```
2013-11-21 10:10:43 +00:00
artemp
4aa3023a9d cleanup commented out code 2013-11-21 10:10:43 +00:00
artemp
f50e626661 Revert "geojson parser : support 'null' as valid coordinates property (empty geometry)"
Per GeoJSON spec :

```
A GeoJSON geometry object of any type other than "GeometryCollection" must have a member with the name "coordinates". The value of the coordinates member is always an array. The structure for the elements in this array is determined by the type of geometry.
```

This reverts commit f9ed2ce4e2d623c14df247db0025a549be29d75c.
2013-11-21 10:10:43 +00:00
Dane Springmeyer
15373f8e48 iwyu 2013-11-20 17:46:58 -08:00
artemp
132ace14ab geojson parser : support 'null' as valid coordinates property (empty geometry) 2013-11-20 16:04:33 +00:00
artemp
6e4007b8c0 geojson generator : catch empty geomeries 2013-11-20 16:00:11 +00:00
artemp
5eb406c7df geojson parser : only close path if we have at least 3 vertices 2013-11-20 16:00:11 +00:00
Dane Springmeyer
37341a1282 fix hit_test for lines + add tests - refs #2041 2013-11-19 20:01:34 -08:00
Dane Springmeyer
a6a4448e3d benchmarks: correct shebang 2013-11-19 13:21:00 -08:00
Dane Springmeyer
df3ad9e0f9 travis: run benchmarks 2013-11-19 12:33:44 -08:00
Dane Springmeyer
3ce92d71fe benchmark: fix formatting 2013-11-19 12:33:30 -08:00
Dane Springmeyer
4397cfe279 make benchmark run against local libmapnik 2013-11-19 12:33:14 -08:00
Dane Springmeyer
7cfb1e417a revised benchmarking system 2013-11-19 12:23:37 -08:00
Dane Springmeyer
9688562df3 python render_with_detector: respect scale_factor and offsets - refs #2075 2013-11-17 20:10:20 -08:00
Dane Springmeyer
c480d9d878 break out benchmark suite into individual cpp 2013-11-14 23:11:21 -08:00
Dane Springmeyer
03fdf7e596 Merge branch '2.3.x' of github.com:mapnik/mapnik
Conflicts:
	src/deepcopy.cpp
	src/expression.cpp
	src/rule.cpp
2013-11-13 20:00:13 -08:00
Dane Springmeyer
46f19ff185 benchmarks: more reasonable threaded double to string results 2013-11-13 19:42:25 -08:00
Dane Springmeyer
5de5ffb764 remove unused and broken deepcopy support to be replaced in #2081 - refs #1390 and #946 2013-11-13 19:26:17 -08:00
Dane Springmeyer
4ae6c0ac61 fix typo 2013-11-13 18:47:38 -08:00
Dane Springmeyer
d10eb830a2 silence warnings in load_map/save_map tests for now 2013-11-13 18:45:30 -08:00
Dane Springmeyer
2564c00420 expression parser - avoid extra level of indirection 2013-11-13 18:44:58 -08:00
Dane Springmeyer
dc3fad51a3 add test for render_with_detector + fix scale rendering tests - refs #2075 2013-11-13 10:45:23 -08:00
Dane Springmeyer
6844863a89 Abort pending postgis connections when exception occurs
- patch from @abonnasseau
  - closes #2042
  - refs #2069
2013-11-12 18:38:39 -08:00
Dane Springmeyer
410c65eb37 consistenly use std::memcpy and std::memset 2013-11-09 23:02:24 -08:00
Dane Springmeyer
2cc3d82a87 iwyu 2013-11-08 19:13:51 -08:00
Dane Springmeyer
81869a5532 iwyu 2013-11-08 19:11:06 -08:00
Dane Springmeyer
73faa94306 tests: smaller font sizes and ensure labels are on top 2013-11-08 18:41:00 -08:00
Dane Springmeyer
53e95bb506 Merge pull request #2074 from mapnik/text-refactor
Organize text code in subdirectory
2013-11-08 17:31:52 -08:00
Dane Springmeyer
cb614af83e iwyu 2013-11-07 20:24:10 -08:00
Dane Springmeyer
c7a6265869 organize text code in subdirectory 2013-11-07 20:09:22 -08:00
Dane Springmeyer
aff0c09f33 Merge branch '2.3.x' of github.com:mapnik/mapnik 2013-11-07 20:06:17 -08:00
Dane Springmeyer
9c82c0c957 enable deprecated features in clipper 6.x - refs https://github.com/mapbox/mapnik-vector-tile/issues/30 2013-11-07 20:04:37 -08:00
Dane Springmeyer
5393978dd4 Merge branch '2.3.x' of github.com:mapnik/mapnik 2013-11-07 18:16:10 -08:00
Dane Springmeyer
0b39a7eb12 ogr plugin: remove unused code 2013-11-07 14:43:12 -08:00
Dane Springmeyer
08fa9fd8ec Merge branch '2.3.x' of github.com:mapnik/mapnik
Conflicts:
	bindings/python/mapnik_building_symbolizer.cpp
	bindings/python/mapnik_debug_symbolizer.cpp
	bindings/python/mapnik_line_pattern_symbolizer.cpp
	bindings/python/mapnik_line_symbolizer.cpp
	bindings/python/mapnik_markers_symbolizer.cpp
	bindings/python/mapnik_point_symbolizer.cpp
	bindings/python/mapnik_polygon_symbolizer.cpp
	bindings/python/mapnik_python.cpp
	bindings/python/mapnik_raster_symbolizer.cpp
	bindings/python/mapnik_shield_symbolizer.cpp
	bindings/python/mapnik_symbolizer.cpp
2013-11-07 09:21:05 -08:00
Dane Springmeyer
08cfc5d0f3 travis: test all branches 2013-11-07 09:05:49 -08:00
Dane Springmeyer
f49654b160 png_reader: quote filenames in error output 2013-11-06 16:26:42 -08:00
Dane Springmeyer
6c8a8007e4 best practice: lways define NOMINMAX when including windows.h 2013-11-06 15:34:53 -08:00
Dane Springmeyer
f66fe78c03 png_reader ensure we throw early if a file_source cannot be opened 2013-11-06 15:34:26 -08:00
Dane Springmeyer
49829bf2f6 fix #1846 in 2.3.x branch for unix (msvc still a mystery) 2013-11-06 13:43:10 -08:00
Dane Springmeyer
84d9900862 upgrade clipper from 5.1.5->6.0.0 2013-11-06 13:37:30 -08:00
Dane Springmeyer
2e8c383730 travis: start testing on all branches again 2013-11-06 11:56:47 -08:00
Dane Springmeyer
d0619bc402 update copyright year for scons build files 2013-11-05 16:54:13 -08:00
Dane Springmeyer
9ba060e499 update changelog afer #2065 2013-11-05 16:43:08 -08:00
Dane Springmeyer
0250538149 add support for geometry-transform in pattern symbolizers - closes #2065 2013-11-05 16:40:09 -08:00
Dane Springmeyer
2db7d7c390 use std namespace for math functions 2013-11-05 15:53:07 -08:00
Dane Springmeyer
fe5b3713ba python bindings: reduce compile times by consolidating code in fewer cpp files 2013-11-05 15:11:23 -08:00
Dane Springmeyer
b08908b5f4 tests: no need to reference khmer font directory for bug2037 2013-11-04 21:06:32 -08:00
Dane Springmeyer
ca25d6797a Merge branch '2.3.x' of github.com:mapnik/mapnik 2013-11-04 09:40:58 -08:00
Dane Springmeyer
4fb6f25dcd scons: back off using -Wshadow since this triggers too much spurious noise with g++-4.7 and clang++/libc++ 2013-11-04 09:39:24 -08:00
Dane Springmeyer
412f90a3ee Fix -Wshadow warning 2013-11-04 09:38:04 -08:00
artemp
afd58da6e2 geojson - feature_collection_parser
(allow single feature and geometry input)
2013-11-04 12:39:10 +00:00
Dane Springmeyer
9428f7f018 csv plugin: fix syntax after merge 2013-11-03 23:17:40 -08:00
Dane Springmeyer
f998b2bda6 Merge branch '2.3.x' of github.com:mapnik/mapnik
Conflicts:
	deps/agg/build.py
	deps/clipper/build.py
	include/mapnik/feature_style_processor_impl.hpp
	plugins/input/csv/csv_datasource.cpp
2013-11-03 23:10:21 -08:00
Dane Springmeyer
26f362db9a scons: do not (yet) default to using -Wconversion -Wno-sign-conversion 2013-11-03 23:07:03 -08:00
Dane Springmeyer
2d268d3a95 features_with_context: no need for default arg 2013-11-03 23:07:03 -08:00
Dane Springmeyer
f1c381e2c6 feature_style_processor: remove unused arg 2013-11-03 23:07:03 -08:00
Dane Springmeyer
a5f8ba5c6c fix -Wsign-conversion warnings 2013-11-03 23:07:03 -08:00
Dane Springmeyer
d9bc3dbb81 fix -Wsign-conversion warnings 2013-11-03 23:07:02 -08:00
Dane Springmeyer
eb1c976bc9 fix -Wsign-conversion warnings 2013-11-03 23:07:02 -08:00
Dane Springmeyer
ae0a209295 fix -Wsign-conversion warnings 2013-11-03 23:07:02 -08:00
Dane Springmeyer
a659332284 fix -Wsign-conversion warnings 2013-11-03 23:07:02 -08:00
Dane Springmeyer
052548d636 fix signed/unsigned usage 2013-11-03 23:07:02 -08:00
Dane Springmeyer
0f8c931530 scons: suncc support is not maintained, remove it 2013-11-03 23:07:02 -08:00
Dane Springmeyer
6ffd0e9bc2 map size calculations: be explicit about types 2013-11-03 23:07:02 -08:00
Dane Springmeyer
1cd7a9228c Merge branch '2.3.x' of https://github.com/mapnik/mapnik into 2.3.x 2013-11-03 15:26:50 -08:00
Dane Springmeyer
a656a7af25 tests: fix clipping test on windows by stripping newlines 2013-11-03 15:23:01 -08:00
Dane Springmeyer
dd5848aff0 fix linking on windows - accidentally broken in 8b5323f101 (restores fix from 03d8b6d9d7) 2013-11-03 15:22:28 -08:00
Dane Springmeyer
d4befc2706 update unifont from 5.1.20080907 to 6.3.20131020 - closes #2061 2013-11-01 11:34:26 -07:00
Dane Springmeyer
c1da56a6a0 scons: specialize default search path for icu on OS X since homebrew is so common now and icu is 'key-only' 2013-10-31 21:14:24 -07:00
Dane Springmeyer
a17006bdd3 scons: avoid pollution of global compiler flags from python plugin - closes #2060 2013-10-31 13:37:13 -07:00
Dane Springmeyer
8c9c277196 travis: use ubuntugis-unstable ppa for more recent gdal and proj4 - refs #2059 2013-10-31 12:33:32 -07:00
Dane Springmeyer
6513be924d travis: also install gdal-dev so the gdal and ogr plugins are built and tests are run 2013-10-31 11:43:13 -07:00
Dane Springmeyer
6bbd8210f8 add more test files - amends 9886d84 - refs #2052 2013-10-30 12:00:57 -07:00
Dane Springmeyer
9886d844fe Add a testcase to capture change in src_over compositing - refs #2052 and #1452 2013-10-30 11:59:57 -07:00
Dane Springmeyer
7612ff7b20 csv plugin: support user defined extent 2013-10-30 11:57:03 -07:00
artemp
febf712343 Revert "+ std::unordered_map to store properties"
This reverts commit d909c6dede.
2013-10-29 14:17:45 +00:00
artemp
3837c68762 use non-zero filling rule when rasterising lines 2013-10-29 12:26:33 +00:00
artemp
fe1c88f4a5 topojson : allow individual geometries not just geometry collections 2013-10-29 10:55:13 +00:00
Dane Springmeyer
1f4160f0f0 topojson: built up knowledge of attributes and geometry type + tests 2013-10-29 00:37:41 -07:00
Dane Springmeyer
44fe776bf5 geojson plugin: simplify code 2013-10-29 00:34:42 -07:00
Dane Springmeyer
5d7012f32f iwyu 2013-10-28 18:46:58 -07:00
Dane Springmeyer
b21b59b835 shape.input: conditionally include boost interprocess 2013-10-28 18:31:20 -07:00
Dane Springmeyer
0d58a8aee4 merge with 2.3.x 2013-10-28 14:45:52 -07:00
Dane Springmeyer
a5926e70b2 tests: lessen strictness of cairo comparison tests so that files created on ubuntu saucy/os x pass on ubuntu precise - refs #1868 2013-10-28 14:18:44 -07:00
Dane Springmeyer
535dc0da3f add #2031 fix to changelog 2013-10-28 14:08:33 -07:00
Dane Springmeyer
7a153c44cb tests: stop testing cairo postscript output since it is not important 2013-10-28 13:57:34 -07:00
Dane Springmeyer
0978157e92 tests: looser tolerance for comparing cairo output sizes 2013-10-28 13:56:48 -07:00
Dane Springmeyer
4b55a20cc1 Merge branch '2.3.x' of github.com:mapnik/mapnik into 2.3.x 2013-10-28 20:40:01 +00:00
Dane Springmeyer
7d9392544d xadd more cairo test files, replace existing via ubuntu saucy 2013-10-28 20:39:47 +00:00
Dane Springmeyer
fa6969a561 travis: start testing cairo+pycairo+sqlite+postgres 2013-10-28 13:19:33 -07:00
Dane Springmeyer
86dfa0778a fix cairo reference counting and add more cairo context tests - closes #2031 2013-10-28 12:46:44 -07:00
artemp
c7a989ae83 first attempt to re-use generic JSON rules in geojson/topojson parsers 2013-10-28 15:57:51 +00:00
artemp
2eaf6a1ead use even/odd polygon filling rule ref https://github.com/mapbox/tilemill/issues/2110 2013-10-28 15:57:35 +00:00
Dane Springmeyer
986f47e959 remove demo/test files which were moved to tests/python_tests in c84ddc825e - refs #1460 2013-10-25 19:01:09 -07:00
Dane Springmeyer
3037fe9ef7 readme touchups 2013-10-25 17:17:00 -07:00
Dane Springmeyer
9755296091 Merge branch '2.3.x' of github.com:mapnik/mapnik 2013-10-24 00:00:53 -07:00
Dane Springmeyer
adabe3022d add harfbuzz branch testcases 2013-10-23 23:59:14 -07:00
Dane Springmeyer
dcbbcdd8a9 make label-position-tolerance a double, as it should have been all along 2013-10-23 23:48:24 -07:00
Dane Springmeyer
882ee3cb32 Merge branch '2.3.x' of github.com:mapnik/mapnik 2013-10-23 21:12:54 -07:00
Dane Springmeyer
2ef7f13d53 fix indent 2013-10-23 21:12:36 -07:00
Dane Springmeyer
730f8e36e2 remove dead code 2013-10-23 18:24:35 -07:00
Dane Springmeyer
f14854912c backport ecf8c20938 from master 2013-10-23 18:24:04 -07:00
Dane Springmeyer
ecf8c20938 completely fix (across various g++ versions) clipping regression - closes #2049 2013-10-23 18:09:22 -07:00
Vross
771964a770 datasource_cache: display correctly the error message 2013-10-23 17:44:27 -07:00
Dane Springmeyer
cb04fc0b34 apply bbox clipping fix to shield symbolizer as applied to text in 96fff72837 - refs #2049 2013-10-23 17:41:24 -07:00
Dane Springmeyer
bc2ee11d9a fix text related test failures on ubuntu precise/g++-4.7 - refs #2049 2013-10-23 17:41:15 -07:00
Dane Springmeyer
78f7de16b8 apply bbox clipping fix to shield symbolizer as applied to text in 96fff72837 - refs #2049 2013-10-23 17:39:46 -07:00
Dane Springmeyer
96fff72837 fix text related test failures on ubuntu precise/g++-4.7 - refs #2049 2013-10-24 00:33:26 +00:00
Dane Springmeyer
cbc58e0068 also set -fPIC for clipper 2013-10-23 16:25:56 -07:00
Dane Springmeyer
8c5b40a559 travis: restrict to only one job to avoid memory blowout 2013-10-23 16:14:09 -07:00
Dane Springmeyer
427e1c03b7 polygon clipper: ensure we return from function 2013-10-23 16:10:06 -07:00
Dane Springmeyer
045c544a4f g++ needs -fPIC for static archives 2013-10-23 16:00:39 -07:00
Dane Springmeyer
a248f880d6 include <mutex>: fixes compile on ubuntu precise/g++4.7/libstdc++ 2013-10-23 15:43:54 -07:00
Dane Springmeyer
efb687eb0b Merge branch 'master' of github.com:mapnik/mapnik 2013-10-23 15:42:39 -07:00
Dane Springmeyer
5a2954dab7 attempt to fix boost python with c++11 and boost 1.49 - refs #2022 2013-10-23 15:42:01 -07:00
Dane Springmeyer
bb3e38ebb3 add missing expected test images 2013-10-23 14:03:53 -07:00
artemp
24ce0f4b91 remove unused member variable 2013-10-23 17:44:04 +01:00
artemp
2f93188786 apply 116706fd1c fix - ref #2048 2013-10-23 15:26:43 +01:00
artemp
116706fd1c remove index_array from datasource and implement move semantics in featureset
fixes #2048 for topojson.input
2013-10-23 15:01:29 +01:00
Dane Springmeyer
8272b0b3db remove dead code 2013-10-22 21:13:02 -07:00
Dane Springmeyer
710d558218 scons: simplify linkflags/ldflags setting / attempt to fix #2025 2013-10-22 16:35:46 -04:00
Dane Springmeyer
afd23586f3 c++11 compile fixes 2013-10-22 16:05:44 -04:00
artemp
043f52d0a6 style : format 2013-10-22 17:15:27 +01:00
artemp
a1daefe467 fix index 2013-10-22 16:51:55 +01:00
Artem Pavlenko
7b2765c990 Merge pull request #2046 from vross/master
datasource_cache: display correctly the error message
2013-10-22 08:24:35 -07:00
Vross
43735a65d4 datasource_cache: display correctly the error message 2013-10-21 19:26:40 +02:00
artemp
e1fc9aed82 c++11
fix mapnik::noncopyable

Conflicts:
	include/mapnik/noncopyable.hpp
2013-10-21 16:46:41 +01:00
artemp
7adee4ab36 c++11 : remove boost::make_shared includes 2013-10-17 15:09:56 +01:00
Dane Springmeyer
e01b39729f respect args passed to apply_to_layer which repairs broken mapnik::request usage (#1737) after 7495d2f381 2013-10-16 09:42:57 +01:00
Dane Springmeyer
c881fee7f0 respect args passed to apply_to_layer which repairs broken mapnik::request usage (#1737) after 7495d2f381 2013-10-15 18:12:07 -04:00
artemp
d6c56e737f == c++11
+ remove legacy 'register' keyword usage from last century
2013-10-15 16:29:24 +01:00
Dane Springmeyer
2e0d905589 add configure test for c++11 support 2013-10-14 19:03:01 -04:00
Dane Springmeyer
fc0ca0d847 merge with remote 2.3.x 2013-10-14 17:51:17 -04:00
Dane Springmeyer
1aad73b2ad iwyu 2013-10-14 17:47:51 -04:00
Dane Springmeyer
5e86e8680d Merge pull request #2040 from mojodna/fix-debug-build
Fix debug build in 2.3.x
2013-10-14 14:44:49 -07:00
Seth Fitzsimmons
1304a6a1b8 Fix reference to non-existent 'colors'
Allows builds with DEBUG=true to succeed.
2013-10-14 14:40:19 -07:00
artemp
10f9371088 + fix typo 2013-10-14 13:06:20 +01:00
Hermann Kraus
765dda465c Only call function if it is actually built. 2013-10-14 02:34:28 +02:00
Hermann Kraus
cf7aa83bd8 Only call function if it is actually built. 2013-10-14 02:24:36 +02:00
artemp
be56a61dea + input plugins: don't link to boost_thread
(python bindings still need boost_thread via thread_specific_ptr usage)
2013-10-11 15:17:32 +01:00
artemp
7f9578c830 + cleaup 2013-10-11 14:19:41 +01:00
artemp
e231117504 == c++11
+ remove remaining boost::thread usage
+ don't link to boost_thread
2013-10-11 14:18:35 +01:00
artemp
582ca02f44 remove unused boost.thread includes 2013-10-11 13:39:39 +01:00
artemp
0e40b3c87d == c++11
use std::thread (removes boost.thread dependency)
2013-10-11 13:20:46 +01:00
artemp
3edfc69c81 == c++11
use std::tuple with std::get<>
2013-10-11 12:36:04 +01:00
artemp
c5763f07d6 == topojson
+ experimental simplification of arcs (boost::geometry::simplify - DP?)
2013-10-11 12:34:15 +01:00
artemp
6fe204ce2a + log clipper errors/warnings 2013-10-11 10:18:05 +01:00
artemp
a71f0b8a93 + fix typo 2013-10-10 13:59:21 +01:00
artemp
07a6fee1ed == polygon clipper
+ don't build boost::geometry structures when :

 * input bounding box is contained by clipping box (return original verticies)
 * input box is outside of clipping box ( return SEG_END)
2013-10-10 13:44:32 +01:00
artemp
7f035f9226 + remove unused vertex tags 2013-10-10 13:43:59 +01:00
artemp
0193b67775 cpp_tests : revive parameters tests 2013-10-09 15:52:53 +01:00
artemp
89586fbdf1 + only extract expected types from mapnik::parameters
aka mapnik::value_xxx types
2013-10-09 15:32:47 +01:00
artemp
be127927cb + add operator>> 2013-10-09 15:32:00 +01:00
artemp
01bf5e775e == topojson
+ allow multiple geometry collections
+ support id parsing
2013-10-07 17:44:22 +01:00
artemp
d909c6dede + std::unordered_map to store properties 2013-10-07 17:43:38 +01:00
artemp
0febcd76ba + pipe-style range adaptors for readability 2013-10-07 11:23:45 +01:00
artemp
b0edff4d11 + skip repeated verticies 2013-10-07 11:14:50 +01:00
artemp
352b8994fc + optimize polygon generation (pre-alloc std::vector) 2013-10-07 10:52:19 +01:00
Dane Springmeyer
1e024984e7 correct signed/unsigned comparison in image filter visitor 2013-10-05 17:37:23 -07:00
Dane Springmeyer
ddf2226b6f merge with branch 2.3.x 2013-10-05 15:37:29 -07:00
Dane Springmeyer
5672ad9285 tests: wrap all web tests in try catch to avoid failures with older versions 2013-10-04 14:07:38 -07:00
Dane Springmeyer
2b1a725f15 handle conditional compile of webp options not available before webp-v0.1.99 2013-10-04 13:34:07 -07:00
Dane Springmeyer
d9f6df3987 Add wiki page link 2013-10-04 13:33:33 -07:00
Dane Springmeyer
cd27e521d4 update webp defaults to use WebPConfigInit 2013-10-04 12:59:47 -07:00
Dane Springmeyer
55974c3105 Add ticket reference for png format default change 2013-10-04 12:41:46 -07:00
artemp
e3f18717d3 == topojson ==
support multi geometries
2013-10-04 15:40:06 +01:00
Dane Springmeyer
0c1fcd7098 expose all remaining webp encoding options except for 'show_compression' - refs #1964 2013-10-04 01:03:20 -07:00
Dane Springmeyer
732fefb9e1 webp: use WebPConfig instead of custom options struct 2013-10-04 00:24:30 -07:00
Dane Springmeyer
be7d0a55c2 webp: cleanup option handling 2013-10-03 23:59:10 -07:00
Dane Springmeyer
0fb718a4fd default to hextree encoding for 'png' format + png options cleanup 2013-10-03 23:40:19 -07:00
Dane Springmeyer
d17f897671 tests: be more explicit about png encoding comparison formats 2013-10-03 23:37:19 -07:00
Dane Springmeyer
805be3daa5 tests: add visual test using multiple blurs 2013-10-03 17:52:52 -07:00
Dane Springmeyer
0224ce3019 add support for seamless blurring - closes #1478 2013-10-03 16:37:09 -07:00
Dane Springmeyer
e276d8fe35 enable new test 2013-10-03 16:32:38 -07:00
Dane Springmeyer
de45801a37 Add visual test of multiple chained image filters 2013-10-03 16:32:15 -07:00
Dane Springmeyer
8e9028e931 use std::fabs not fabs 2013-10-03 13:28:42 -07:00
Dane Springmeyer
5f092c7130 ctrans: add getter for offsets 2013-10-03 12:06:52 -07:00
Dane Springmeyer
879aec064a ensure we do not query layers with no active styles 2013-10-03 11:25:05 -07:00
artemp
56a14368bf cleanup usage 2013-10-03 17:16:21 +01:00
artemp
56174edaa8 == topjson ==
+ extract and transcode property values
2013-10-03 17:12:33 +01:00
artemp
11fabe0fcb == topojson ==
+ use boost::variant<> for storing properties
+ parse properties as top level key/value pairs
2013-10-03 15:40:36 +01:00
artemp
ac8ececf1c == topojson ==
+ use boost::variant<> for storing properties
+ parse properties as top level key/value pairs
2013-10-03 15:32:07 +01:00
Dane Springmeyer
5b3e89df94 fix compile after merge with 2.3.x 2013-10-02 19:37:07 -07:00
Dane Springmeyer
9c8f7cc90d merge with 2.3.x branch 2013-10-02 18:25:24 -07:00
Dane Springmeyer
f9e630bbd3 Merge remote-tracking branch 'origin/2.3.x' 2013-10-02 18:23:09 -07:00
Dane Springmeyer
83fde93411 add note about #2000 to changelog 2013-10-02 17:20:20 -07:00
Dane Springmeyer
fdf9288ba7 add xml needed for f91ae9f51c 2013-10-02 17:16:58 -07:00
Dane Springmeyer
371d79774a avoid integer overflows in agg by using clamping in agg:iround with agg::rasterizer_sl_clip_int_sat - closes #2000 2013-10-02 17:08:22 -07:00
Dane Springmeyer
f847a67ee9 fix span_image_resample_rgba 2013-10-02 16:55:11 -07:00
Dane Springmeyer
f91ae9f51c benchmark: add new rendering test harness and use to compare clipping impact on speeds at high and low zoom 2013-10-02 16:09:32 -07:00
Dane Springmeyer
0624ec31dc benchmark: add conv_clip_polygon + very basic validation for clipping tests 2013-10-02 15:14:52 -07:00
Dane Springmeyer
9aa596401a rename the agg int overflow test so it actually runs under nose 2013-10-02 09:41:05 -07:00
artemp
48e65feb62 == topojson ==
+ polygon generator
2013-10-02 15:14:27 +01:00
artemp
77d0ecc459 c++11
remove BOOST_FOREACH
2013-10-02 09:42:03 +01:00
Dane Springmeyer
9d8be8ea21 fix one clear case of unsigned overflow in comp_op_rgba_minus - refs #1679 2013-10-01 22:03:15 -07:00
Dane Springmeyer
a25826fb13 tests: use black background in test 2013-10-01 21:35:27 -07:00
Dane Springmeyer
ac961feb64 expose mapnik.Color.packed to get unsigned rgba value 2013-10-01 21:30:49 -07:00
Dane Springmeyer
8722def984 fix unsigned integer overflow warnings in agg - refs #1679 2013-10-01 21:30:19 -07:00
Dane Springmeyer
d84443b4f3 fix unsigned integer overflow when passing args to composite_bitmap 2013-10-01 21:29:22 -07:00
Dane Springmeyer
81f14b8d36 Add currently failing test for #2000 2013-10-01 21:21:55 -07:00
Dane Springmeyer
61dde4b093 fix several -Wsign-compare warnings 2013-10-01 11:48:27 -07:00
Dane Springmeyer
37a203cf83 Merge branch 'master' of github.com:mapnik/mapnik 2013-10-01 11:48:12 -07:00
Dane Springmeyer
3dba53e333 fix several -Wsign-compare warnings 2013-10-01 11:47:47 -07:00
artemp
81159bc006 oops -> don't copy topology object 2013-10-01 19:18:05 +01:00
Dane Springmeyer
32d053abf6 only build pgsql2sqlite if pg_config is available 2013-10-01 10:15:41 -07:00
Dane Springmeyer
2e630c5c14 only build pgsql2sqlite if pg_config is available 2013-10-01 10:13:54 -07:00
Dane Springmeyer
e9ad589e13 Add boost version header 2013-10-01 09:35:36 -07:00
Dane Springmeyer
433e711a0e Merge branch 'master' of github.com:mapnik/mapnik 2013-10-01 09:26:43 -07:00
Dane Springmeyer
d5bacc39e2 installing g++-4.7 breaks clang, so disable for now 2013-10-01 09:26:14 -07:00
artemp
bfcf356b84 topojson
+ populate r-tree index
2013-10-01 17:22:41 +01:00
artemp
20a0f55e7d topojson
+ bounding box visitor
2013-10-01 17:16:16 +01:00
artemp
4bf15a04ef topojson
+ make transform optional to match TopoJSON spec
2013-10-01 17:16:16 +01:00
Dane Springmeyer
087cc9e2ae travis: start building python bindings again 2013-10-01 08:41:39 -07:00
artemp
c0461280be + add get_pointer impl for std::shared_ptr<T>
when building agaist boost version < 1.53
2013-10-01 15:08:46 +01:00
artemp
a3c329a6f8 == Boost.Python std::shared_ptr ==
+ ensure mapnik::memory_datasource is wrapped in std::shared_ptr in Python bindings
+ register implicit conversion from std::shared_ptr<memory_datasource> to std::shared_pre<datasource>

ref #2020
2013-10-01 14:48:54 +01:00
artemp
ecc2b39865 mapnik::memory_datasource - qualify virtual methods for brevity 2013-10-01 14:48:54 +01:00
Dane Springmeyer
c34c8a568f merge with branch 2.3.x 2013-09-30 13:33:28 -07:00
artemp
ae3f682564 add missin copyright notice 2013-09-30 13:32:30 -07:00
Dane Springmeyer
8ebd804360 remove tabs 2013-09-30 13:30:16 -07:00
Dane Springmeyer
a6ad3e6627 + avoid copying feature_ptr during r-tree initialisation + avoid taking reference to temporary 2013-09-30 13:23:38 -07:00
artemp
fddec700ad TopoJSON input plugin
skeleton implementation
2013-09-30 14:14:58 +01:00
artemp
ff93a8117b add missin copyright notice 2013-09-30 13:32:24 +01:00
artemp
b3948e4a9c + avoid copying feature_ptr during r-tree initialisation 2013-09-30 11:36:04 +01:00
artemp
d116ca062f + cleanup 2013-09-30 11:35:42 +01:00
artemp
c860ed4d99 == TopoJSON parser ==
https://github.com/mbostock/topojson/wiki
2013-09-30 11:16:58 +01:00
artemp
2b50c105c3 + style 2013-09-30 08:56:58 +01:00
Dane Springmeyer
2d1249ef98 gah, completely disable image comparions for webp since versions differ too widely 2013-09-27 17:01:58 -07:00
Dane Springmeyer
619f7ec406 catch one more case of webp needing test workaround for old systems 2013-09-27 16:39:15 -07:00
Dane Springmeyer
06dc054208 skip webp tests that cannot run because expected test images cannot be opened - avoids 'WebPGetInfo failed' error 2013-09-27 16:34:41 -07:00
Dane Springmeyer
ca6d6df446 fix code formatting 2013-09-27 16:15:16 -07:00
Dane Springmeyer
82e1b37281 allow single color colorize-alpha 2013-09-27 16:11:23 -07:00
Dane Springmeyer
70976695d8 fixed test images after f4c3620d67 2013-09-27 15:29:53 -07:00
Dane Springmeyer
f4c3620d67 protect against invalid memory access if agg gradient lookup fails to build 2013-09-27 15:24:33 -07:00
Dane Springmeyer
423a8007ba another colorize-alpha test - this one likely exposing a bug - refs #1371 2013-09-27 15:14:58 -07:00
Dane Springmeyer
2287b0a7b9 move colorize-alpha to visual test suite - refs #1371 2013-09-27 14:49:24 -07:00
Dane Springmeyer
ccd17a3bf3 add link to SVG gradient stops in colorize-alpha notes 2013-09-27 14:44:25 -07:00
Dane Springmeyer
b787f4d672 fix image-filter serialization for scale-hsla and colorize-alpha 2013-09-27 14:06:07 -07:00
Dane Springmeyer
43a52e19ea add missing colorize-alpha changelog entry - refs #1371 2013-09-27 13:59:08 -07:00
Dane Springmeyer
7a4bf4e3b0 remove debug prints 2013-09-27 12:20:57 -07:00
Dane Springmeyer
90dd6b9d61 optimize case where image_view is used but is not a subset - refs #2024 2013-09-27 12:17:31 -07:00
Dane Springmeyer
44807673a3 optimize webp pixel copy by moving row chunks rather than pixels - refs #2024 2013-09-27 11:54:12 -07:00
Dane Springmeyer
a2f24e72bd iwyu 2013-09-27 11:52:40 -07:00
Dane Springmeyer
3175d29d27 travis: run tests 2013-09-26 20:31:26 -07:00
Dane Springmeyer
7d1496ee0e build 2.3.x branch on travis 2013-09-26 20:08:22 -07:00
Dane Springmeyer
2010f5f1d9 Merge branch '2.3.x' of github.com:mapnik/mapnik 2013-09-26 20:08:01 -07:00
Dane Springmeyer
0ca2edb206 fix #2024 (TODO - avoid image copy for lossy encoding of views) 2013-09-26 20:07:04 -07:00
Dane Springmeyer
3531276864 fix one part of #2024 2013-09-26 19:29:05 -07:00
Dane Springmeyer
68ff3ceead add color-to-alpha image-filter - closes #2023 2013-09-26 16:14:40 -07:00
Dane Springmeyer
806aa9d8a2 travis: attempt to use g++-47 2013-09-26 13:21:06 -07:00
Dane Springmeyer
093aab011b travis: set LD_LIBRARY_PATH before running c++ tests 2013-09-26 12:49:39 -07:00
Dane Springmeyer
5019bcb6c9 travis: remove trailing false 2013-09-26 12:48:09 -07:00
Dane Springmeyer
535c580829 std::trunc is not available with g++-4.8 on android (and also likely not msvc) 2013-09-26 12:47:07 -07:00
Dane Springmeyer
8dcf5aa622 Avoid setting -stdlib=libc++ if cross compiling - refs mapnik/mapnik-support#96 2013-09-26 10:26:53 -07:00
Dane Springmeyer
4494591502 built c++ tests and review config.log when configure fails 2013-09-25 21:44:47 -07:00
Dane Springmeyer
f0bebe5b10 iwyu 2013-09-25 21:35:25 -07:00
Dane Springmeyer
dc55b994ce skip python bindings for now, but run c++ tests 2013-09-25 21:32:04 -07:00
Dane Springmeyer
0f4ba4dfd5 sync with 2.3.x branch 2013-09-25 20:04:31 -07:00
Dane Springmeyer
843fdc0871 stub in colorize-alpha filter output to avoid crash - refs #2021 2013-09-25 15:33:10 -07:00
Dane Springmeyer
226e5b2d7a no need to set 'value' attribute on rasters except for point query 2013-09-25 15:24:08 -07:00
Dane Springmeyer
feaddaeed0 fix raster colorizer via python 2013-09-25 15:22:57 -07:00
Dane Springmeyer
8e047aa98e raster_colorizer: avoid color copy by return unsigned from get_color 2013-09-25 14:58:32 -07:00
Dane Springmeyer
7aeff3fb59 followup nodata refactor - refs #2023 2013-09-25 14:38:07 -07:00
Dane Springmeyer
df3a455e19 refactor nodata related code dropping support for user-overide nodata where it does not make sense - refs #2023 2013-09-25 14:37:21 -07:00
Dane Springmeyer
09544849b9 move colorizer tests to visual suite 2013-09-25 14:08:47 -07:00
Dane Springmeyer
8d79008e9e move over other colortable test to visual tests 2013-09-25 14:02:52 -07:00
Dane Springmeyer
0ffb9ef308 Merge branch '2.3.x' of github.com:mapnik/mapnik 2013-09-25 13:14:01 -07:00
Dane Springmeyer
cb80fb8226 move/expand gdal nodata tests to visual suite - refs #2023 2013-09-25 13:13:18 -07:00
Dane Springmeyer
41e68820c5 python: test loading and saving visual test xml files as well 2013-09-25 13:08:10 -07:00
Dane Springmeyer
8678410f9d Merge pull request #2013 from mapnik/c++11-revised
C++11
2013-09-24 23:30:22 -07:00
Dane Springmeyer
ec53cd9a02 automatically set c++11 flags 2013-09-24 23:22:06 -07:00
Dane Springmeyer
9e66317af1 branch 2.3.x from master at v2.2.0-242-ge85cdda 2013-09-24 23:21:37 -07:00
Dane Springmeyer
681f8853d3 pull in changes from master 2013-09-24 22:57:01 -07:00
Dane Springmeyer
0b5d70f926 polygon_clipper: detect invalid winding order when in debug mode 2013-09-24 21:18:52 -07:00
Dane Springmeyer
e85cddaaf5 iwyu 2013-09-24 21:13:52 -07:00
Dane Springmeyer
67b2651527 remove unused clipper converter 2013-09-24 21:03:38 -07:00
Dane Springmeyer
6f4ea674d7 add PostGIS async to CHANGELOG 2013-09-24 17:19:29 -07:00
Dane Springmeyer
d6864b8983 Merge pull request #2010 from mapnik/Mappy-master-async-postgis
Mappy master async postgis
2013-09-24 17:18:44 -07:00
Dane Springmeyer
2c46300f61 remove dead code (colorize-alpha is now officially an image-filter) 2013-09-24 17:18:14 -07:00
Dane Springmeyer
8ca8b2c64e fix winding order, allowing boost::polygon clipper to return exterior/interior rings correctly 2013-09-24 15:24:18 -07:00
Dane Springmeyer
6e4c911bb6 fix bug in polygon_clipper coincident vertice detection 2013-09-24 14:06:16 -07:00
artemp
f76b020e5e + remove redundant identity matrix and pass 0 to FT_Set_Transform 2013-09-24 14:44:47 +01:00
Dane Springmeyer
5e1f1c2b79 avoid unneccesary projection copy 2013-09-23 19:45:10 -07:00
Dane Springmeyer
e8b00ab8a9 minor c++ style fixes 2013-09-23 17:37:46 -07:00
Dane Springmeyer
01344baffb maintain default of max_size=10 and improve error output in the case max_size < max_async_connections 2013-09-23 17:32:42 -07:00
Dane Springmeyer
ad979a85a9 integrate async test into main postgis tests 2013-09-23 15:12:42 -07:00
Dane Springmeyer
dc1d568501 code cleanup, consistent debug output 2013-09-23 14:57:23 -07:00
Dane Springmeyer
5c020cf28f cleanup postgis async test 2013-09-23 14:52:46 -07:00
Dane Springmeyer
75d88f3370 Merge branch 'master' of github.com:mapnik/mapnik into Mappy-master-async-postgis 2013-09-23 14:31:55 -07:00
Dane Springmeyer
da4e6540d6 test: test to_geojson output to prevent regressions like #2019 2013-09-23 12:20:40 -07:00
Dane Springmeyer
81650e59c1 fix to_geojson polygon output after bug introduced in merge 76f111cc97 - closes #2019 2013-09-23 12:16:39 -07:00
Dane Springmeyer
63f97fa4aa lessen header interdependence between placement_finder.hpp and symbolizer_helpers.hpp 2013-09-23 11:42:47 -07:00
Dane Springmeyer
153c7cce60 fix compile of pgsql2sqlite 2013-09-23 11:37:16 -07:00
artemp
10196f35b4 Merge branch 'c++11' into c++11-revised
Conflicts:
	bindings/python/python_grid_utils.cpp
	include/mapnik/font_engine_freetype.hpp
	include/mapnik/value.hpp
	src/agg/process_building_symbolizer.cpp
	src/cairo_renderer.cpp
	src/grid/process_building_symbolizer.cpp
2013-09-23 08:53:36 +01:00
Dane Springmeyer
780d6a459d Merge branch 'master' of github.com:mapnik/mapnik into Mappy-master-async-postgis 2013-09-22 22:08:23 -07:00
Dane Springmeyer
a1bf65210d Merge branch 'master' of github.com:mapnik/mapnik 2013-09-22 22:07:55 -07:00
Dane Springmeyer
85fc82c03b fix #2018 2013-09-22 22:07:35 -07:00
Dane Springmeyer
8282ff28cb fix #2018 2013-09-22 22:06:34 -07:00
Dane Springmeyer
bd2a122b19 fix sign compare warning 2013-09-22 22:03:27 -07:00
Dane Springmeyer
8f99e35252 udpdate changelog after #1995 2013-09-20 13:51:05 -07:00
Dane Springmeyer
f05b727bf5 fix dst-over alpha handling - closes #1995 - refs #1452 and 5e84ce0 2013-09-20 13:37:34 -07:00
Dane Springmeyer
da226a48cf add test data for #1995 2013-09-20 13:35:54 -07:00
Dane Springmeyer
4713ddf8d6 reduced testcase for #1995 - refs #1452 and #1369 2013-09-20 13:31:11 -07:00
artemp
e2f5e35616 + opps, 'auto' is c++11 2013-09-20 17:19:23 +01:00
artemp
0eada70845 + use const std::unique_ptr< []> instead of boost::scoped_array 2013-09-20 15:01:58 +01:00
artemp
09ce29489e use const std::unique_ptr<> instead of boost::scoped_ptr<> 2013-09-20 14:22:58 +01:00
artemp
62af2e6765 + replace <boost/shared_ptr.hpp> with <memory> 2013-09-20 14:13:23 +01:00
artemp
b315eb2167 + use std::shared_ptr and std::make_shared 2013-09-20 14:01:27 +01:00
artemp
6e6cff4613 remove has_nothrow_copy
as it was triggering requirement for move ctor in UnicodeString
which is not _yet_ available
2013-09-20 14:01:27 +01:00
Dane Springmeyer
b0436a3ad1 scons: unbreak memory mapped access for shapefiles by fixing the setting of SHAPE_MEMORY_MAPPED_FILE 2013-09-19 20:51:49 -07:00
Dane Springmeyer
0619477238 optimize rule::active which is called in loop in feature_style_processor_impl 2013-09-19 20:24:59 -07:00
Dane Springmeyer
5d12a345ae start using c++11 features: auto/for/unique_ptr/variadic args - refs #1972 2013-09-19 20:19:01 -07:00
Dane Springmeyer
9df4deac73 consistent use of agg::rgba8_pre to construct premultiplied colors - refs #2011 2013-09-19 19:41:46 -07:00
Dane Springmeyer
5b78b6b2dc fix #2011 2013-09-19 19:19:11 -07:00
Dane Springmeyer
d054d47884 Add new test images - refs #2011 2013-09-19 19:16:46 -07:00
Dane Springmeyer
2ccbdb101c add testcase for building fill-opacity premultiplied alpha bug - refs #2011 2013-09-19 19:15:32 -07:00
Dane Springmeyer
576271d5ca merge 2013-09-19 18:40:48 -07:00
Dane Springmeyer
9bd3dd0e21 fix viewer compile 2013-09-19 18:39:44 -07:00
Dane Springmeyer
f00e85b46f QtWidgets is not available in latest release 2013-09-19 18:31:03 -07:00
Dane Springmeyer
d216aa9771 fix compile of styles_model.cpp/mapnik::to_expression_string() by ensuring compile defines are present 2013-09-19 18:30:28 -07:00
Dane Springmeyer
5c534c1ac6 make rule_cache noncopyable 2013-09-19 18:01:51 -07:00
artemp
a8d49b8112 + use mapnik::polygon_clipper by default 2013-09-19 09:12:50 +01:00
Dane Springmeyer
25ee36f74e merge 2013-09-18 20:41:20 -07:00
Dane Springmeyer
2ebd3e9bf8 iwyu 2013-09-18 20:40:30 -07:00
Dane Springmeyer
f2152c1d27 travis: start building plugins and use default optimization 2013-09-18 20:38:46 -07:00
Dane Springmeyer
1b3e07ef23 c++ style 2013-09-18 20:35:14 -07:00
Dane Springmeyer
daafcdae51 Merge branch 'master' of github.com:mapnik/mapnik into c++11 2013-09-18 20:32:09 -07:00
Dane Springmeyer
df352efc8f use std::size_t in wkb parser 2013-09-18 20:31:59 -07:00
Dane Springmeyer
35a42b49e6 cast to int 2013-09-18 20:29:59 -07:00
Dane Springmeyer
8b5323f101 drop suncc support from singleton class 2013-09-18 20:29:46 -07:00
Dane Springmeyer
9aff3c596b better type handling/casts 2013-09-18 20:29:26 -07:00
Dane Springmeyer
c77e9fed5c c++ style 2013-09-18 20:29:01 -07:00
Dane Springmeyer
5c77edcc5e remove uneeded usage of std::move 2013-09-18 20:24:51 -07:00
Dane Springmeyer
121e5b59b0 mapnik::value: avoid extra copy of value_unicode_string + define copy and assignment 2013-09-18 20:14:50 -07:00
Dane Springmeyer
958ecbea87 Merge branch 'master' of github.com:mapnik/mapnik into c++11 2013-09-18 19:56:04 -07:00
Dane Springmeyer
f058a481b7 minor whitespace fixes 2013-09-18 19:55:02 -07:00
Dane Springmeyer
69cdca27a2 merge with master 2013-09-18 19:54:49 -07:00
Dane Springmeyer
111bdccebc various post-merge fixes 2013-09-18 19:51:14 -07:00
Dane Springmeyer
5cd2152866 fix failing halo rendering visual tests 2013-09-18 19:50:30 -07:00
Dane Springmeyer
ee2378a6d2 port minor fixes around type handling from c++11 branch 2013-09-18 19:50:04 -07:00
Dane Springmeyer
b2d1363011 remove expression optimizer for now since it is currently unused - refs #1002 2013-09-18 19:19:41 -07:00
Dane Springmeyer
fc2280ffcf merge with master 2013-09-18 19:13:13 -07:00
Dane Springmeyer
6496a44465 drop boost::interprocess::bufferstream and optimized wkb output 2013-09-18 19:12:14 -07:00
Dane Springmeyer
d3d750ebf7 merge with master 2013-09-18 19:06:11 -07:00
Dane Springmeyer
30c8ca5f66 minor formatting to sync cleaner with master 2013-09-18 19:04:44 -07:00
Dane Springmeyer
9770985ead port box2d cleanups from c++11 branch to master 2013-09-18 19:04:20 -07:00
Dane Springmeyer
9811a946f5 Fix whitespace 2013-09-18 18:50:12 -07:00
Dane Springmeyer
d79ecf882f merge with master 2013-09-18 18:49:32 -07:00
Dane Springmeyer
7a6ab9b0ed sync a few files with master 2013-09-18 18:47:44 -07:00
Dane Springmeyer
7070856f9c fix clipping test and drop rule cache tests 2013-09-18 18:47:28 -07:00
Dane Springmeyer
d2f50a0158 no need to define BOOST_SPIRIT_USE_PHOENIX_V3 in each header, it is now set in SConstruct 2013-09-18 18:27:04 -07:00
Dane Springmeyer
722aa4ae14 python: add support for __geo_interface__ - closes #2009 2013-09-18 16:08:34 -07:00
Dane Springmeyer
ebf9dd39d4 be explicit about inlining feature.hpp methods 2013-09-18 14:59:06 -07:00
Dane Springmeyer
519fd16535 fix webp images tests 2013-09-18 14:58:47 -07:00
Dane Springmeyer
9f5b7f3fb0 improve the c++ and python demo apps to conditionally output image formats 2013-09-18 14:32:43 -07:00
Dane Springmeyer
12395eb1cd merge 2013-09-18 14:07:24 -07:00
Dane Springmeyer
d4d5b617d2 re-enable miniz 2013-09-18 14:06:46 -07:00
Dane Springmeyer
33766e9370 merge with master 2013-09-18 13:56:23 -07:00
Dane Springmeyer
580ad4fb07 viewer: leverage mapnik-config --cxx for QMAKE_CXX and QMAKE_LINK 2013-09-18 12:32:08 -07:00
artemp
4143d52c16 + more realistic clipping benchmark 2013-09-17 11:59:38 +01:00
artemp
c6a093f55a + fix bench : iterate over clipped path 2013-09-16 15:02:58 +01:00
artemp
ec0bdb21ad Merge branch 'geometry-types' into c++11 2013-09-16 14:18:22 +01:00
artemp
95026329ce + fix err message typo 2013-09-16 10:40:48 +01:00
artemp
ac8a0f01eb c++ style : std::map 2013-09-16 10:39:52 +01:00
artemp
23b1948c6e + minor tweaks 2013-09-16 10:03:54 +01:00
Dane Springmeyer
2ecef415cd update changelog 2013-09-15 23:24:01 -07:00
Dane Springmeyer
6bfbb53eac optimized WKTReader for parsing WKT into geometry paths 2013-09-15 23:23:43 -07:00
Dane Springmeyer
3c69c42a3b update changelog after 1dd1275 2013-09-15 23:18:33 -07:00
Dane Springmeyer
1dd12755c6 optimize expression evaluation of text by avoiding extra copy 2013-09-15 23:18:11 -07:00
Dane Springmeyer
d3ab601e30 integrate various minor c++ style and cast fixes into master from c++11 branch 2013-09-15 23:08:04 -07:00
Dane Springmeyer
b6040ac324 correct return type from std::string::substr 2013-09-15 21:12:12 -07:00
David Marteau
7495d2f381 [mappy] Parallel feature requests supports - PostGIS async requests 2013-09-11 14:04:10 +02:00
artemp
b690015d63 Merge branch 'master' into c++11 2013-09-09 12:32:47 +01:00
Dane Springmeyer
f3b864541c Merge branch 'master' of github.com:mapnik/mapnik 2013-09-05 12:41:06 -07:00
Dane Springmeyer
0719d320e0 add mention of background-image-opacity and background-image-comp-op to changelog - refs #1966 2013-09-05 12:40:41 -07:00
Dane Springmeyer
c5dd5487a5 Merge pull request #1966 from mapnik/background-image-comp-op
Map background-image-comp-op and background-image-opacity
2013-09-05 12:25:47 -07:00
Dane Springmeyer
f60e1f01c1 more 2.3.x changelog updates 2013-09-05 12:19:17 -07:00
Dane Springmeyer
d6e4882939 more changelog additions 2013-09-05 12:11:16 -07:00
Dane Springmeyer
7392beb491 further develop 2.3.0 changelog 2013-09-05 11:29:12 -07:00
artemp
d4b9a48cb1 + geometry::types Exterior/Interior polygon loops 2013-09-03 12:15:31 +01:00
artemp
4ea16b596e Merge branch 'master' into c++11 2013-09-02 09:50:59 +01:00
Dane Springmeyer
099936eab6 Merge pull request #1997 from kapouer/patch-1
Additional optional dependency on librasterlite
2013-09-01 22:03:23 -07:00
Dane Springmeyer
02f2fbdf8b always link libdl on linux - needed on some systems after #1804 - closes #1998 2013-09-01 22:02:52 -07:00
artemp
4a2f59d9d1 + replace auto_ptr with unique_ptr 2013-08-30 09:49:44 +01:00
artemp
4f4e2b001e Merge branch 'master' into c++11
Conflicts:
	SConstruct
	benchmark/run.cpp
	bindings/python/mapnik_datasource.cpp
	bindings/python/mapnik_feature.cpp
	bindings/python/python_optional.hpp
	include/mapnik/css_color_grammar.hpp
	include/mapnik/expression_grammar.hpp
	include/mapnik/feature.hpp
	include/mapnik/feature_style_processor_impl.hpp
	include/mapnik/image_filter_types.hpp
	include/mapnik/image_util.hpp
	include/mapnik/json/geometry_generator_grammar.hpp
	include/mapnik/json/geometry_grammar.hpp
	include/mapnik/processed_text.hpp
	include/mapnik/tiff_io.hpp
	include/mapnik/util/geometry_svg_generator.hpp
	include/mapnik/util/geometry_wkt_generator.hpp
	include/mapnik/utils.hpp
	include/mapnik/webp_io.hpp
	include/mapnik/wkt/wkt_grammar.hpp
	plugins/input/shape/shape_datasource.cpp
	plugins/input/shape/shapefile.hpp
	src/expression_grammar.cpp
	src/expression_string.cpp
	src/image_util.cpp
	src/json/feature_collection_parser.cpp
	src/json/feature_parser.cpp
	src/miniz.c
	src/symbolizer_helpers.cpp
	src/tiff_reader.cpp
	src/webp_reader.cpp
	tests/cpp_tests/geometry_converters_test.cpp
	tests/cpp_tests/image_io_test.cpp
	tests/cpp_tests/map_request_test.cpp
	tests/python_tests/image_test.py
	tests/visual_tests/test.py
2013-08-30 09:46:09 +01:00
Jérémy Lal
73dede9954 Additional optional dependency on librasterlite 2013-08-29 16:52:39 +02:00
Dane Springmeyer
5e322dbff2 Merge pull request #1991 from PetrDlouhy/master
Offset enabled for LinePatternSymbolizer + tests
2013-08-27 15:13:15 -07:00
Dane Springmeyer
4bae8792a6 tests: fix png and web encoding tests to run only if support is available 2013-08-23 15:18:24 -07:00
Dane Springmeyer
6af6d66739 python: fix reporting of tiff and webp image support 2013-08-23 15:18:00 -07:00
Dane Springmeyer
d407cfa456 cpp tests: fix test to respect DEFINES 2013-08-23 15:07:45 -07:00
Dane Springmeyer
5c157eae59 respect the CXX and CC environment variables 2013-08-22 20:37:30 -07:00
Dane Springmeyer
c83a5489c0 test both clang and gcc on travis 2013-08-22 20:30:36 -07:00
Petr Dlouhý
1e9ee87fce add LinePatternSymbolizer offset python binding 2013-08-22 12:56:04 +02:00
Petr Dlouhý
edf170c428 LinePatternSymbolizer visual test 2013-08-22 12:55:56 +02:00
Petr Dlouhý
69185339a5 offset enabled for LinePatternSymbolizer 2013-08-22 10:35:44 +02:00
Dane Springmeyer
72c019f1c3 wrap section of gdal plugin only needed for debug output 2013-08-19 22:30:23 -04:00
Dane Springmeyer
42d3bb11af webp: WebPConfig.lossless, WebPPicture.use_argb, and WebPPictureImportRGBX all became available in libwebp v0.1.99 or ABI v1 - refs #1986 2013-08-15 15:15:07 -04:00
Dane Springmeyer
1a8287da06 Add support for webp:alpha=false to create rgb images without alpha + other webp encoding cleanups - closes #1986 2013-08-15 14:47:28 -04:00
Dane Springmeyer
e4a1a5d9be touchup copyright docs 2013-08-14 22:09:17 -04:00
Dane Springmeyer
5667343ad9 use U_NAMESPACE_QUALIFIER to most cleanly support when icu is built with -DU_USING_ICU_NAMESPACE=0 - refs #1985 2013-08-14 21:56:40 -04:00
Dane Springmeyer
a13fe7da06 fix 'the table of contents is empty' error when cross compiling for android by respecting RANLIB and AR settings from environment 2013-08-13 20:02:14 -04:00
Dane Springmeyer
750b4e144b gracefully handle when icu is built without BreakIterator support: -DUCONFIG_NO_BREAK_ITERATION=1 2013-08-13 19:32:20 -04:00
Dane Springmeyer
b6df3848c4 use icu:: namespace 2013-08-13 19:20:13 -04:00
Dane Springmeyer
e0026f3df2 use icu:: namespace and start isolating icu impl by consistenly using mapnik::value_unicode_string 2013-08-13 18:52:04 -04:00
Dane Springmeyer
80cc235ff9 pass by const ref 2013-08-13 18:35:18 -04:00
Dane Springmeyer
4eef244e73 move SHAPE_MEMORY_MAPPED_FILE to be a global define 2013-08-13 14:48:04 -04:00
Dane Springmeyer
cf6e08aa52 disable (by default) use of shared memory in ogr plugin 2013-08-13 14:26:48 -04:00
Dane Springmeyer
134cbc3eec forward declare mapped_region in mapped_memory_cache.hpp and other shared memory fixups 2013-08-13 14:13:56 -04:00
Dane Springmeyer
d2000b465b Merge branch 'master' of github.com:mapnik/mapnik 2013-08-13 12:19:19 -04:00
Dane Springmeyer
28ed9a2cfd only include mapped_memory_cache.hpp if truly building shapefile plugin with -DSHAPE_MEMORY_MAPPED_FILE 2013-08-13 12:19:01 -04:00
Dane Springmeyer
3a2a8dbfde scons: support passing multiple paths to PATH_REMOVE option - useful to strip - after the fact - paths that might come from pkg-config calls to cairo - closes #1980 2013-08-09 11:31:17 -04:00
Dane Springmeyer
29abb9a7c0 remove unused typedefs - exposed by saucy g++ warnings 2013-08-07 20:59:28 -04:00
Dane Springmeyer
60b2cef365 remove unused typedef 2013-08-07 20:49:28 -04:00
Dane Springmeyer
e32c225307 fix handling of F and O type dbf fields and sync handling for attribute_descriptors - refs #1614 and closes #1976 2013-08-07 18:58:01 -04:00
Dane Springmeyer
4fb2e271f6 Revert "as discussed with @artemp - there should be no need or benefit to trying to handle F type in dbf since it is a foxpro extension that shapefiles do not commonly use"
This reverts commit 53acae94be.
2013-08-07 18:42:16 -04:00
Dane Springmeyer
78b4980352 finish exposing mapnik.Feature.from_geojson 2013-07-30 15:45:46 -04:00
Dane Springmeyer
13343eb5be workaround c++11 compile error due to ambiguous std::vector::insert usage - closes #1973 2013-07-30 15:14:47 -04:00
Dane Springmeyer
dd5bb6c643 Merge branch 'master' of github.com:mapnik/mapnik 2013-07-30 14:31:43 -04:00
Dane Springmeyer
2ea353bce0 test_python.py was still broken - actually fix it - refs #1513 2013-07-30 14:31:29 -04:00
Dane Springmeyer
79d1e6e5c0 add note about miniz porting and #1967 2013-07-30 12:32:32 -04:00
Dane Springmeyer
19a7e9ad19 make note about need for -Wno-c++11-narrowing - closes #1970 2013-07-30 12:18:48 -04:00
Dane Springmeyer
844baa8c5b scons: when linking statically on linux always link -ldl 2013-07-30 02:51:07 -04:00
Dane Springmeyer
e641c78a59 scons: fix configure check for sqlite_rtree on linux when sqlite3 is statically linked 2013-07-30 06:35:52 +00:00
Dane Springmeyer
187ab3fe73 make gdal lib check more robust 2013-07-29 20:32:03 -04:00
Dane Springmeyer
64efd5fdf2 boost gil narrowing only impacts clang++ it appears and not g++ 4.6.3 with -std=c++0x (TODO: checkout newer g++ with -std=c++11 2013-07-28 15:50:42 -04:00
Dane Springmeyer
4ee91a4a25 fix narrowing issue in miniz - closes #1967 2013-07-28 15:49:11 -04:00
Dane Springmeyer
889546ab05 fix up type casting 2013-07-28 15:45:36 -04:00
Dane Springmeyer
bbfd111900 fix PHOENIX_V3 compile of svg generator 2013-07-28 12:54:31 -04:00
Dane Springmeyer
76f111cc97 support optionally compiling with -std=c++11 on OSX / clang / apple libc++ / boost 1.53 - refs #1683 2013-07-27 01:57:24 -04:00
Dane Springmeyer
4eda02592e fix debug.cpp error output (now compiles against libc++) 2013-07-26 19:33:35 -04:00
Dane Springmeyer
fd14edcd56 fix compile of expression grammer with clang++/libc++/c++11 2013-07-26 19:33:35 -04:00
Dane Springmeyer
5b5053d2a9 prepare for c++11: stop forcing -ansi 2013-07-26 19:33:34 -04:00
Dane Springmeyer
a4c79fc6fe fix handling of the defines of optional deps when cross-compiling 2013-07-26 15:50:35 -04:00
Dane Springmeyer
fad9af5263 add support for applying custom comp_op and opacity when blending map background image into background color at render time - refs mapnik/mapnik-support#8 2013-07-25 01:00:38 -04:00
Dane Springmeyer
0ac9c7f4c9 re-write scale-hsla filter to work in doubles, allowing proper clamping at the right time - refs #1954 2013-07-24 21:13:46 -04:00
Dane Springmeyer
88d42c48a9 enhance scale-hsla validation - refs #1954 2013-07-24 20:25:07 -04:00
Dane Springmeyer
ec950bd983 handle duplicate hsl hue_to_rgb code 2013-07-24 19:26:26 -04:00
Dane Springmeyer
eaeccc3c3a enforce valid hsla values - refs #1954 2013-07-24 14:24:33 -04:00
artemp
7c63b666f9 cast toff_t to std::streamoff
remove 'C' style comments!!
2013-07-24 11:44:19 -04:00
Dane Springmeyer
4f01eb05b1 scons: correctly propagate DEFINES across builds 2013-07-23 20:03:00 -04:00
Dane Springmeyer
32464c5a4b Add expected test images 2013-07-23 20:02:37 -04:00
Dane Springmeyer
e24b894868 add regression test for #1952 2013-07-23 20:00:42 -04:00
Dane Springmeyer
88b24144b6 ensure libmapnik DEFINES are propagated to the python bindings 2013-07-23 19:58:13 -04:00
Dane Springmeyer
ef4dfeb747 make it possible to disable compilation of grid_renderer - closes #1962 2013-07-23 19:37:25 -04:00
Dane Springmeyer
5ad2ebb30e iwyu 2013-07-23 18:59:05 -04:00
Dane Springmeyer
cfc977e6cd deal with various -Wunused-parameter warnings that are not important 2013-07-23 18:46:54 -04:00
Dane Springmeyer
827a9d147a code cleanup 2013-07-23 18:46:40 -04:00
Dane Springmeyer
7a6117b18d remove dead code and iwyu 2013-07-23 18:46:19 -04:00
Dane Springmeyer
c49d94fdf7 iwyu 2013-07-23 18:45:25 -04:00
Dane Springmeyer
84842f59c7 use pixfmt pre for the sake of clarity 2013-07-23 18:44:39 -04:00
Dane Springmeyer
f682fcc6d1 deal with various -Wunused-parameter warnings that are not importatn 2013-07-23 18:44:16 -04:00
Dane Springmeyer
72bfa282fa iwyu 2013-07-23 18:43:19 -04:00
Dane Springmeyer
0ac4ec0dd9 iwyu 2013-07-23 18:42:53 -04:00
Dane Springmeyer
fd7164bd3c use pixfmt pre for the sake of clarity 2013-07-23 18:42:47 -04:00
Dane Springmeyer
6269b42ffc iwyu 2013-07-23 18:41:59 -04:00
Dane Springmeyer
365572322c tests: disable the negative image test since this makes it hard to run the tests against older mapnik versions that do not have the fix 2013-07-23 18:38:57 -04:00
Dane Springmeyer
93d36ff1e3 avoid -Wunused-parameter warning 2013-07-23 16:10:16 -04:00
Dane Springmeyer
c5b7cd0e3e remove dead code 2013-07-23 16:10:00 -04:00
Dane Springmeyer
31931b89cb git rid of a few fixme 2013-07-23 16:00:16 -04:00
Dane Springmeyer
3bd2e6501f fix a batch of unused variable warnings (leaving several with are true bugs/missing features) 2013-07-23 15:51:22 -04:00
Dane Springmeyer
d1667c125c return human readable cairo error 2013-07-22 16:21:18 -04:00
Dane Springmeyer
4d3ab5e3aa agg_renderer: remove uneeded define of AGG_RENDERING_BUFFER row_ptr_cache<int8u> since it is already hardcoded in agg_renderer_buffer.h and agg_config.h 2013-07-22 14:49:10 -04:00
Dane Springmeyer
236c8221af miniz: remove MINIZ_NO_STDIO as it is uneeded since it is covered by catchall MINIZ_NO_ARCHIVE_APIS 2013-07-22 14:29:46 -04:00
Dane Springmeyer
5c13504cc0 remove unreachable break 2013-07-22 14:17:59 -04:00
Dane Springmeyer
1c6f449ba8 comment unused typedefs 2013-07-22 14:17:43 -04:00
Dane Springmeyer
3beba890f8 make scale_factor accessible off renderers - no need to store as member of feature_style_processor 2013-07-22 13:25:04 -04:00
Dane Springmeyer
b6739efa6a clean up render_style code to avoid excessive function calls for marking a renderer as painted 2013-07-19 19:43:30 -04:00
Dane Springmeyer
a4efd6b73e simplify render_style further after 6bbbe155fe 2013-07-19 19:33:11 -04:00
Dane Springmeyer
032e33cc9f remove filter_factor as option to gdal datasource, clean up pass down from query object - closes #1488 - refs #625 2013-07-19 19:22:45 -04:00
Dane Springmeyer
a6a16304cc regression test for gdal filter-factor 2013-07-19 18:56:50 -04:00
Dane Springmeyer
9b9e42ce5d use featureset_buffer for simplier render time feature cache from @mappy 2013-07-19 18:32:47 -04:00
Dane Springmeyer
4f2e1993bf tests: add a pseudo-tiled test for preventing regression of #1477 2013-07-19 16:07:12 -04:00
Dane Springmeyer
3864fada72 pass string by const ref 2013-07-19 15:46:01 -04:00
Dane Springmeyer
6bbbe155fe remove RENDERING_STATS compile time option - refs #1956 2013-07-19 15:09:59 -04:00
Dane Springmeyer
512f06fa44 scons: only compile optional cpp files that really can be built 2013-07-19 12:49:44 -04:00
Dane Springmeyer
12a0f62761 add webp to travis - refs #1955 2013-07-19 12:23:29 -04:00
Dane Springmeyer
54d8fc81dd scons: ensure optional imaging libaries are build if requested when cross compiling 2013-07-19 12:15:24 -04:00
Dane Springmeyer
7796ea65d6 scons: fix the build in the case that one of the optional imaging libraries is not found 2013-07-19 12:13:17 -04:00
Dane Springmeyer
f999615cec ensure agg rendering buffer uses proper dimensions since these may become more dynamic in the near future - refs #1478 2013-07-19 01:29:01 -04:00
Dane Springmeyer
1653229ffd update changelog after #1955 2013-07-19 01:20:57 -04:00
Dane Springmeyer
a141c5c27d webp encoding/decoding support - refs #1955 2013-07-19 01:09:17 -04:00
Dane Springmeyer
db39528231 disable failing test of #1913 for now 2013-07-19 00:39:22 -04:00
Dane Springmeyer
0872061993 renable hsla filter as 'scale-hsla' - refs #1954 2013-07-19 00:37:51 -04:00
Dane Springmeyer
23c5b0f2f7 add test data as followup to 87a2787a40 - refs #916 2013-07-19 00:28:20 -04:00
Dane Springmeyer
a834d2941a fix initialization of hue and sat in rgb2hsl + fix rounding in hsl2rgb to be stable on 32 bit systems (no change on 64 bit) - refs #1954 2013-07-19 00:22:52 -04:00
Dane Springmeyer
87a2787a40 add visual tests for group-by feature - refs #916 2013-07-18 18:35:14 -04:00
Dane Springmeyer
aedc3512c2 rollback to copying bbox member of filter_in_box - previous change led to odd node-mapnik shapefile query failure 2013-07-17 18:47:07 -04:00
Dane Springmeyer
04c1808703 avoid a few uneeded copies 2013-07-17 18:47:07 -04:00
Dane Springmeyer
9bf6abd988 add missing attribute collector for markers symbolizer path expression - closes #1952 2013-07-16 20:00:51 -04:00
artemp
cbfe228790 + improve c++ style
+ formatting
2013-07-16 11:16:52 +01:00
Dane Springmeyer
43723d3f81 scons: link zlib last 2013-07-15 00:19:03 -04:00
Dane Springmeyer
09aad15eb2 display png error when we cannot read a png 2013-07-14 16:32:32 -04:00
Dane Springmeyer
0b58eea131 scons: link bindings to rt on linux 2013-07-14 16:32:16 -04:00
Dane Springmeyer
2533e8137f fix syntax 2013-07-14 15:28:22 -04:00
Dane Springmeyer
0fa2d4aca7 fix syntax 2013-07-14 15:27:58 -04:00
Dane Springmeyer
75f3eaed67 scons: more linux static linking fixes 2013-07-14 15:26:24 -04:00
Dane Springmeyer
0f8ecc2ed3 scons: static linking on linux needs -dl for executables 2013-07-14 15:17:32 -04:00
Dane Springmeyer
75ca01889c scons: only hardcode static linking libs on os x 2013-07-14 15:17:00 -04:00
Dane Springmeyer
fd3977d60c scons: no need to link iconv if building with cairo 2013-07-14 14:43:13 -04:00
Dane Springmeyer
e02a4ebd9d shapeindex: if statically linking then bring in mapnik dep libs 2013-07-14 13:01:26 -04:00
Dane Springmeyer
39eee919e5 link mapnik first (needed static linking on linux) 2013-07-14 13:00:53 -04:00
Dane Springmeyer
26af45c40c Add a few expected images 2013-07-12 20:31:32 -04:00
Dane Springmeyer
ef537ac0f3 Accept a few changes to visual test xml via harfbuzz branch - refs #1950 2013-07-12 20:30:56 -04:00
Dane Springmeyer
fbf7789135 Merge pull request #1948 from tomhughes/python
Avoid rounding errors comparing envelopes
2013-07-11 11:31:41 -07:00
Tom Hughes
6f0e4daf52 Avoid rounding errors comparing envelopes 2013-07-11 18:32:54 +01:00
Dane Springmeyer
9be53df112 Merge pull request #1945 from tomhughes/python
Fix numeric truncation issues in python bindings
2013-07-10 16:47:29 -07:00
Dane Springmeyer
45d4ef3092 Merge pull request #1946 from tomhughes/osm
Stop the osm input plugin truncating ID values on 32 bit platforms
2013-07-10 16:46:27 -07:00
Tom Hughes
4a6231389d Stop the osm input plugin truncating ID values on 32 bit platforms 2013-07-11 00:39:52 +01:00
Tom Hughes
793104204a Numeric return results are now long rather than int 2013-07-10 22:36:38 +01:00
Tom Hughes
e3525ab54f Drop bogus assertion
Comparing to sys.maxint makes little sense as all it is doing is
testing the size of python's integers. The following assertion tests
that we are getting the correct return value anyway.
2013-07-10 22:36:19 +01:00
Tom Hughes
a93832cbff Avoid truncating 64 bit return values on 32 bit platforms 2013-07-10 22:36:11 +01:00
Dane Springmeyer
86bc7d6c11 fix svg parser to ignore empty groups - closes #1944 2013-07-10 17:25:34 -04:00
Dane Springmeyer
022dd43834 add testcase for #1944 2013-07-10 17:23:17 -04:00
Dane Springmeyer
bcf1454884 optimize svg rendering by moving bbox calc only needed by gradient rendering into gradient code 2013-07-10 16:44:20 -04:00
Dane Springmeyer
63a06a9aab fix handling of opacity when rendering svg with cairo - closes #1943 2013-07-10 16:19:28 -04:00
Dane Springmeyer
4bc28d547b handle lacking return value handling caught by coverity 2013-07-04 14:31:46 -04:00
Dane Springmeyer
f31e04ec6c cpp_tests: no need for dynamic_cast 2013-07-04 14:27:33 -04:00
Dane Springmeyer
068f759fb5 fix height clamping in image_view and grid_view - closes #1940 2013-07-04 13:56:58 -04:00
Dane Springmeyer
3792c1f319 sqlite: add more debug output 2013-07-03 10:54:42 -04:00
Dane Springmeyer
3e4f4a096e silence warnings 2013-07-02 16:48:16 -04:00
Dane Springmeyer
c011524b67 add mapnik.Image.premultiplied() to query status of pixel premultiplication 2013-07-02 16:01:23 -04:00
Dane Springmeyer
80d9171bd1 fix #1933 by ensuring that only tests for valid plugins are run 2013-07-01 10:00:43 -04:00
Dane Springmeyer
a68500d4fd Merge pull request #1932 from ajashton/geom-translate-test
Add test for translating geometries
2013-06-28 14:39:38 -07:00
AJ Ashton
6814834892 Add test for translating geometries 2013-06-28 17:22:31 -04:00
Dane Springmeyer
90c9a39a66 remove debugging line 2013-06-28 15:54:04 -04:00
Dane Springmeyer
3ae432ac96 fix behavior of marker-ignore-placement on lines - closes #1931 2013-06-28 15:53:08 -04:00
Dane Springmeyer
36814bcb2e add expected (currently failing) test for #1931 2013-06-28 15:03:55 -04:00
Dane Springmeyer
25dabd6f24 support scale_denominator override in save_to_cairo_file - closes #1930 2013-06-27 20:07:25 -04:00
Dane Springmeyer
ba4d06a530 protect against negative image dimensions - closes #1927 2013-06-26 16:46:36 -04:00
Dane Springmeyer
fd428cf11b svg_renderer: group layers in inkscape capatible way - refs #1917 2013-06-24 20:29:57 -07:00
Dane Springmeyer
4c4a63aa9c svg_renderer: only process line/polygon symbolizers as <path> for now 2013-06-24 20:28:02 -07:00
Dane Springmeyer
d1f1104ebe svg_renderer: start paying attention to scale_factor, collision, and fonts 2013-06-24 20:26:30 -07:00
Dane Springmeyer
18ab68f03f iwyu 2013-06-21 12:00:48 -07:00
artemp
ed163817ab + fix typo in grammar 2013-06-21 19:37:56 +01:00
Dane Springmeyer
ecf0ce2d2d catch boost::filesystem::directory_iterator::construct error and print warning rather than throwing exception - closes #1919 - refs mapbox/tilemill#1992 2013-06-21 11:18:42 -07:00
artemp
9b2703f557 + to_string based on spirit::karma for completeness. 2013-06-21 14:47:38 +01:00
artemp
66185a2262 spirit::karma based to_hex_string generator 2013-06-21 11:33:26 +01:00
Dane Springmeyer
e3c5ae9cf4 svg_renderer: use precision of 4, accept map request/scale_factor, and fix output of multipart geometries 2013-06-20 21:27:42 -07:00
Dane Springmeyer
b1a50d1000 iwyu 2013-06-18 14:26:58 -07:00
Dane Springmeyer
c9a7bd6da5 Merge pull request #1914 from glennon/patch-1
Update README.md
2013-06-17 09:16:50 -07:00
artemp
1de0a7eec1 + fix compilation (temp) 2013-06-17 10:48:15 +01:00
artemp
386f6a5b24 + use auto 2013-06-17 10:47:53 +01:00
Alan Glennon
858301eeb5 Update README.md
Added closing parenthesis on the first sentence of the License section.
2013-06-16 02:17:35 -06:00
Dane Springmeyer
b40128706c scons: default to building csv/geojson plugins unless boost is known to be too old (fixes HOST behavior) 2013-06-14 11:41:52 -07:00
Dane Springmeyer
2505001af1 scons: fixes for bypassing configure checks when HOST is provided (iOS build) 2013-06-14 11:40:45 -07:00
Dane Springmeyer
98d21de168 add currently failing test for #1913 2013-06-13 20:20:03 -07:00
Dane Springmeyer
df6e9685d6 add visual test to ensure that #1501 does not regress 2013-06-13 20:09:24 -07:00
Dane Springmeyer
18fc10cf7d remove trailing command to realy unbreak github rendering 2013-06-13 13:43:39 -07:00
Dane Springmeyer
7f5d162bd3 remove the json comments to unbreak github rendering 2013-06-13 13:40:09 -07:00
Dane Springmeyer
ef15c45e65 json->geojson 2013-06-13 13:34:34 -07:00
Dane Springmeyer
02cd44a142 remove old metawriter testing code 2013-06-13 13:34:12 -07:00
Dane Springmeyer
01a6eb5633 remove uneeded test file 2013-06-13 13:32:20 -07:00
Dane Springmeyer
ea077f2bb6 Merge pull request #1904 from genodeftest/patch-1
Added missing dependency to pg_config to INSTALL.md
2013-06-07 08:46:27 -07:00
Christian Stadelmann
d18171fb93 Added missing dependency to pg_config to INSTALL.md
According to the configure script mapnik has an optional dependency to pg_config provided by PostgreSQL. This dependency should be mentioned in INSTALL.md
2013-06-07 18:38:30 +03:00
Dane Springmeyer
fbeeb54558 fix compile with python 3.x 2013-06-06 13:11:34 -07:00
Dane Springmeyer
60b4f42891 sqlite: return char* not void * 2013-06-06 13:11:18 -07:00
Dane Springmeyer
215c9e9123 iwyu 2013-06-06 13:10:56 -07:00
Dane Springmeyer
64947f8540 now working on mapnik v3.0.0-pre 2013-06-03 18:56:56 -07:00
Dane Springmeyer
049b7b2fe4 update CHANGELOG for mapnik v2.2.0 release 2013-06-03 18:28:47 -07:00
Dane Springmeyer
9231205573 setting up for mapnik v2.2.0 release 2013-06-03 18:26:28 -07:00
Dane Springmeyer
ff14a8e350 revert f4d2fbac4 - refs #1177 2013-06-03 17:21:27 -07:00
Dane Springmeyer
c6da53af9a fix spelling of error message in png reader - refs #1871 2013-06-03 15:38:30 -07:00
Dane Springmeyer
9ddb1e4c8b comment test that will fail with old gdal because it is not critical functionality to warn about 2013-06-03 15:19:33 -07:00
Dane Springmeyer
b33b6a4add comment test for now - refs #783 2013-06-03 15:13:12 -07:00
Dane Springmeyer
78dc1a4199 cleanup TODO usage in python tests 2013-06-03 15:02:43 -07:00
Dane Springmeyer
28bdb881f0 remove non-useful test as paths-from-xml will soon be removed - refs #1893 2013-06-03 14:58:56 -07:00
Dane Springmeyer
cd220886b2 various sqlite plugin test fixes - closes #1889 2013-06-03 14:15:27 -07:00
Dane Springmeyer
9d15a2c87d show exceptions at end of run for tests that could not be run 2013-06-03 14:00:51 -07:00
Dane Springmeyer
a21f883c5c fix linking of gdal/ogr plugins when linking to statically built gdal 2013-06-03 13:43:49 -07:00
Dane Springmeyer
5cb6bbe01c fix python linking when using static libraries for deps or statically building libmapnik 2013-06-03 13:17:45 -07:00
Dane Springmeyer
9768052d97 only test if reader works (to avoid failures for unsupported formats) 2013-06-03 12:36:54 -07:00
Dane Springmeyer
87850281d0 Merge branch 'master' of github.com:mapnik/mapnik 2013-06-03 12:22:54 -07:00
Dane Springmeyer
c00a4e6971 scons: assume boost headers are found unless explicitly not 2013-06-03 12:22:29 -07:00
artemp
f4d2fbac43 + #1177 via @springmeyer
(TODO: check if loading the whole font file is required for registering)
2013-06-03 09:15:37 +01:00
Dane Springmeyer
19ce56b051 one more special case handling of utf8 in ogr plugin - refs #1177 2013-06-02 21:09:21 -07:00
Dane Springmeyer
3b2bdba7b0 iwyu 2013-06-02 20:19:33 -07:00
Dane Springmeyer
8c04925fce cleanup after 0365d3e081 2013-06-02 20:13:24 -07:00
Dane Springmeyer
205fe7eaf8 iwyu 2013-06-02 20:04:51 -07:00
Dane Springmeyer
0365d3e081 start centralizing filesystem operations in mapnik::util::fs - refs #1177 2013-06-02 19:28:24 -07:00
Dane Springmeyer
4f9b0ffba6 scons: no need to check for boost python if boost headers are not found 2013-06-02 19:25:43 -07:00
Dane Springmeyer
540d275cd0 also check for boost development headers 2013-06-02 19:24:11 -07:00
Dane Springmeyer
2457f5f7f4 ensure we only modify logger test for specific tests that should be silenced 2013-06-02 18:40:06 -07:00
Dane Springmeyer
ff88efc1fd proper c++ cast 2013-06-02 17:34:44 -07:00
Dane Springmeyer
e1c299decf remove whitespace 2013-06-02 17:34:36 -07:00
Dane Springmeyer
661aa4c87a fix Makefile demo target path 2013-06-02 16:40:03 -07:00
Dane Springmeyer
786b8c71c0 update changelog with base path support for load_xml 2013-06-02 16:25:39 -07:00
Dane Springmeyer
1036eb1c99 support base_path adjustment when reading from xml file as well as from a string 2013-06-02 16:24:21 -07:00
Dane Springmeyer
e51c59aacc fix #1886 - TODO - refactor base_path logic since it is confusingly written 2013-06-02 16:06:32 -07:00
Dane Springmeyer
ef1b99532b scons: fix boost_regex and sqlite_rtree config checks and be resilient to plugins that cannot be built due to the boost version 2013-06-02 14:56:21 -07:00
Dane Springmeyer
c5f01be4e2 only build cpp test if >= boost 1.47 2013-06-02 14:54:27 -07:00
Dane Springmeyer
949a356b29 minor build output improvements 2013-06-02 14:15:02 -07:00
Dane Springmeyer
983cc3c0ec fix postgis tests after null/empty string change - refs #1859 2013-06-02 13:44:58 -07:00
Dane Springmeyer
8ff0c48c64 tests: only show relevant traceback info 2013-06-02 13:41:14 -07:00
Dane Springmeyer
09fac756a9 convert postgis test to run all tests from command line 2013-06-02 13:37:29 -07:00
Dane Springmeyer
7c8dbacdb6 fix compile against boost 1.47 - closes #1885 2013-06-02 13:32:15 -07:00
Dane Springmeyer
dcc4981b13 mapnik-config: report which plugins are statically compiled by providing defines 2013-06-02 13:30:46 -07:00
Dane Springmeyer
fa15b5feaa add python wrappers for CSV and GeoJSON plugins - closes #1882 2013-06-02 12:12:39 -07:00
Dane Springmeyer
0e273486c6 support base parameter in geojson plugin and throw if file cannot be opened 2013-06-02 12:12:03 -07:00
Dane Springmeyer
56b1e7cd64 fix cxxflags append in ogr input build 2013-06-02 11:51:09 -07:00
Dane Springmeyer
856ec4fd24 fix typos in 2.2 changelog notes 2013-05-31 15:53:17 -07:00
Dane Springmeyer
592d73a3f3 poor man's solution to #1868 2013-05-31 14:03:53 -07:00
Dane Springmeyer
513ab16557 add tests for #1806 2013-05-31 13:52:24 -07:00
Dane Springmeyer
4f961a04ab ticketize 2013-05-31 13:49:32 -07:00
Dane Springmeyer
fdd9afd394 Merge pull request #1880 from mapnik/null-empty-string-not-equality
Make [attr] != '' match nulls: Followup to #1642, closes #1859
2013-05-31 13:29:15 -07:00
Dane Springmeyer
88ca6fca5d Followup to #1642, closes #1859
This change adds back the ability to throw out both empty strings
and null values with the not equals statement like `[attr] != ''`

Note: this does not mean null == '' because the needed compatibility
fix only addresses the "not equals` operator to retain the historical
usage of not matching nulls.
2013-05-31 13:23:59 -07:00
Dane Springmeyer
1da3bee032 implement == and != operators on the value_null struct - no functional change, but helpful to consolidate logic for comparisions 2013-05-31 12:24:59 -07:00
Dane Springmeyer
6826920c53 add tests for #1872 2013-05-31 12:11:30 -07:00
Dane Springmeyer
f63196849d Merge pull request #1879 from mapnik/value_bool
Value bool
2013-05-31 12:07:58 -07:00
Dane Springmeyer
6831f87be8 re-enable all filter tests when run from command line 2013-05-31 11:57:45 -07:00
artemp
4a60bc7be5 + add value_bool support in not_equals 2013-05-31 18:51:11 +01:00
artemp
c8630696d4 + add explicit value_bool/value_integer/value_double equality comparison 2013-05-31 18:48:13 +01:00
Dane Springmeyer
791863bf9f Merge pull request #1878 from mapnik/mapped-memory-keepalive
shape.input: keep shared ptr to mapped region
2013-05-31 09:07:31 -07:00
Dane Springmeyer
370609feed shape.input: when reading from mapped memory cache keep a mapped_region_ptr member to ensure the memory stays alive - refs #1877 2013-05-30 14:32:20 -07:00
Dane Springmeyer
af8b5d8e40 fix signed/unsigned comparison warning 2013-05-30 09:19:18 -07:00
Dane Springmeyer
481fb3d380 no need to explicitly link to cairo on osx in python bindings if using dynamic lookup 2013-05-30 09:19:05 -07:00
Dane Springmeyer
bf7e353304 python.input: workaround broken box2d python->c++ conversion on osx/clang - closes #1876 2013-05-30 09:18:25 -07:00
Dane Springmeyer
eba62d3c56 be more explicit about ctor kwargs for python datasource tests 2013-05-30 09:16:03 -07:00
Dane Springmeyer
600fed2bf5 note that over 500 new tests have been added in Mapnik 2.2 2013-05-29 16:43:33 -07:00
Dane Springmeyer
d1e1c3f1c1 2.2.0 changelog summary touchups 2013-05-29 15:26:18 -07:00
Dane Springmeyer
b0f15bf5de avoid muffling proj_init at render time and instead catch at load_map - closes #646 2013-05-29 15:16:44 -07:00
Dane Springmeyer
97fe52ac04 use a truly invalid expression for the broken text symbolizer test 2013-05-29 15:09:55 -07:00
Dane Springmeyer
7da0028ed9 load map assertions were not working, fix them 2013-05-29 14:11:28 -07:00
Dane Springmeyer
fa362113b3 remove uneeded datasource template usage 2013-05-29 14:11:03 -07:00
Dane Springmeyer
080f500af3 more tests for #1859, and make note of bug #1873 2013-05-29 13:27:47 -07:00
Dane Springmeyer
1b9c4a63af more null/empty string filter tests - refs #1859 2013-05-29 10:35:02 -07:00
Dane Springmeyer
74fd456653 make the mapnik-config test slightly more cross platform 2013-05-25 19:54:53 -07:00
Dane Springmeyer
51d1542428 Merge branch 'master' of https://github.com/mapnik/mapnik 2013-05-25 18:11:47 -07:00
Dane Springmeyer
a41c2205d5 more cpp test cleanup 2013-05-25 18:16:18 -07:00
Dane Springmeyer
d34661f7d7 expose vpgen_clip_polyline so cpp tests will work on windows 2013-05-25 18:13:39 -07:00
Dane Springmeyer
738c2e5566 set working dir of map_request.cpp 2013-05-25 18:04:49 -07:00
Dane Springmeyer
3ff290ac07 enable passing working directory to cpp tests that hit the filesystem and expect files to be relative to the mapnik source folder 2013-05-25 17:56:10 -07:00
Dane Springmeyer
5184ef3e42 fix conversions tests on windows 2013-05-25 17:19:54 -07:00
Dane Springmeyer
6844226156 remove an uninteresting cpp test 2013-05-25 17:09:35 -07:00
Dane Springmeyer
37a1c07051 remove uneeded dependence of cpp tests on sqlite 2013-05-25 17:07:08 -07:00
Dane Springmeyer
4bd63ce7a0 iwyu and fix compile on linux 2013-05-25 16:04:40 -07:00
Dane Springmeyer
8f84146948 run in quiet mode 2013-05-24 17:22:28 -07:00
Dane Springmeyer
1211211f98 quiet mode for c++ tests 2013-05-24 17:21:55 -07:00
Dane Springmeyer
b86303202e remove a few seemingly valid pngs that no longer fail with libpng > 1.6 - closes #1854 2013-05-24 16:47:18 -07:00
Dane Springmeyer
04496dfaed Merge branch 'master' of github.com:mapnik/mapnik 2013-05-24 16:45:54 -07:00
Dane Springmeyer
7302b3b654 fix #1865 2013-05-24 16:45:02 -07:00
Dane Springmeyer
db7e5919d2 Fix example of building vs files with gyp on windows 2013-05-24 14:29:11 -06:00
Dane Springmeyer
73d53008de Merge branch 'master' of https://github.com/mapnik/mapnik 2013-05-24 13:27:10 -07:00
Dane Springmeyer
d1d688bb8a fix typo 2013-05-24 13:26:52 -07:00
Dane Springmeyer
69f5f8ba65 Merge branch 'master' of github.com:mapnik/mapnik 2013-05-24 12:47:14 -07:00
Dane Springmeyer
2291c8b698 disable hidden visibility for plugins and hidden inlines for the library by default for 2.2 release - can re-enable after more testing - refs #1863 2013-05-24 12:46:51 -07:00
artemp
d0671098d1 OGR.input
+ set tolerance tol=0.001 in features_at_point test
  older versions of GDAL are not handling empty bounding boxes
  correctly e.g SetSpatialFilterRect(x0,y0,x0,y0)
  tested on ubuntu-12.04/64-bit g++-4.6.3 gdal-1.7.3
2013-05-24 09:32:48 +01:00
Dane Springmeyer
8cbb8aa1c0 Merge branch 'master' of github.com:mapnik/mapnik 2013-05-23 18:18:33 -07:00
Dane Springmeyer
fe6d860fa4 remove mapnik-config.bat (for windows only) which is now versioned in mapnik-packaging repo: 173186c77b 2013-05-23 16:06:07 -07:00
Dane Springmeyer
4057c2c822 ensure that the input plugin directory exists even if we don't put any plugins in it 2013-05-23 15:40:05 -07:00
Dane Springmeyer
62434041e3 clean up hello.input if stale 2013-05-23 15:36:43 -07:00
Dane Springmeyer
05f010a43b ensure that when statically linking plugins we remove previously built ones that are stale 2013-05-23 15:20:17 -07:00
Dane Springmeyer
47e62804be rundemo.gyp now working on windows 2013-05-23 00:46:55 -07:00
Dane Springmeyer
bd6ca681b6 Merge branch 'master' of github.com:mapnik/mapnik 2013-05-23 00:15:37 -07:00
Dane Springmeyer
9ede00abf8 rundemo standalone build fixes 2013-05-23 00:15:18 -07:00
Dane Springmeyer
d5bf5e86c6 fix plugins and fonts path in mapnik-config.bat 2013-05-22 23:46:57 -07:00
Dane Springmeyer
9107046508 avoid including cairo-ft in header 2013-05-22 23:23:22 -07:00
Dane Springmeyer
5239bef595 add details for how to build rundemo.cpp standalone on windows with gyp 2013-05-22 23:23:11 -07:00
Dane Springmeyer
019873a9d2 further fixes to mapnik-config.bat 2013-05-22 22:27:38 -07:00
Dane Springmeyer
a20adb86be add agg includes directory 2013-05-22 22:12:09 -07:00
Dane Springmeyer
fa7e4e2494 excape path separators to be more gyp friendly 2013-05-22 22:07:00 -07:00
Dane Springmeyer
36123141ff fix windows build 2013-05-22 22:06:36 -07:00
Dane Springmeyer
00035b92d7 add static version of mapnik-config.bat for windows 2013-05-22 21:40:14 -07:00
Dane Springmeyer
6155d90dd1 better clearing of non requested or non buildable plugins 2013-05-22 17:54:32 -07:00
Dane Springmeyer
427308d654 postgis test: fix for postgis < 2.x 2013-05-22 17:20:17 -07:00
Dane Springmeyer
5083a24f89 postgis test: ensure threaded test fails early 2013-05-22 17:03:08 -07:00
Dane Springmeyer
5aecb3c5f7 disable building osm plugin by default now that it is no longer needed for visual tests - refs #1822 2013-05-22 16:19:10 -07:00
Dane Springmeyer
dfec39224b renable cairo visual tests if cairo is installed 2013-05-22 15:42:28 -07:00
Dane Springmeyer
4ba061f506 higher threshold for difference between cairo visual tests 2013-05-22 15:10:19 -07:00
Dane Springmeyer
1c296aa4d4 fix #1860 - refs #1826 2013-05-22 14:31:19 -07:00
Dane Springmeyer
888535f8cc Merge branch 'master' of https://github.com/mapnik/mapnik 2013-05-22 14:11:40 -07:00
Dane Springmeyer
584aad0c88 fix windows linking to clipper - needed by node-mapnik is_solid check 2013-05-22 14:11:28 -07:00
Dane Springmeyer
031139f6fe disable building of python plugin by default - works around #1838 2013-05-22 13:48:56 -07:00
Dane Springmeyer
9f4bde3078 fix unsigned/signed comparision warning 2013-05-22 13:16:12 -07:00
Dane Springmeyer
31ae5e632b rollback accidentally commited change in 126d1b73d6 - not quite yet 2013-05-22 10:22:25 -07:00
Dane Springmeyer
46b3bfb547 fix test behavior with postgis < 2.x 2013-05-22 09:22:47 -07:00
Dane Springmeyer
23878cf03e fix #1858 2013-05-22 09:21:56 -07:00
Dane Springmeyer
95d5b73d86 fix reading inline csv data and reading from an xml string when building with ptree/rapidxml - closes #1857 and closes #1856 2013-05-22 09:13:33 -07:00
Artem Pavlenko
40d262b2dd Update CHANGELOG.md 2013-05-22 18:03:40 +02:00
Artem Pavlenko
9b6e65e223 Update CHANGELOG.md 2013-05-22 18:00:22 +02:00
artemp
653e9e73b4 + implement features_at_point in term of existing features(query) 2013-05-22 16:40:26 +01:00
artemp
a3eaebd5e1 feature_at_point
+ use 'tol' where possible
2013-05-22 16:40:26 +01:00
Dane Springmeyer
126d1b73d6 reflect debug symbolizer in python 2013-05-22 06:49:38 -07:00
artemp
0060e4e773 + add missing scons-local-2.3.0 2013-05-22 10:28:13 +01:00
Dane Springmeyer
a6ef710f74 Add file I should have added in 8634a04938 2013-05-21 21:01:07 -07:00
Dane Springmeyer
e02ba2a4eb upgrade bundled scons to 2.3.0 release 2013-05-21 20:51:17 -07:00
Dane Springmeyer
1e6e587d60 support running tests without any plugins built 2013-05-21 20:27:00 -07:00
Dane Springmeyer
ce34be6aab fix #1853 2013-05-21 20:18:37 -07:00
Dane Springmeyer
8634a04938 add support for drawing all geometry verticies with debug symbolizer mode=vertex and expose in python - closes #1848 2013-05-21 19:21:35 -07:00
Dane Springmeyer
fa2d2a73e0 more 2.2 changelog updates including summary - refs #1850 2013-05-21 17:41:18 -07:00
Dane Springmeyer
06ef86a768 more 2.2 changelog updates 2013-05-21 17:02:33 -07:00
Dane Springmeyer
e895802289 more changelog updates for 2.2 2013-05-21 16:44:32 -07:00
Dane Springmeyer
8d9e6e07cf ensure xml2 is present - punts on and closes #913 2013-05-21 16:22:04 -07:00
Dane Springmeyer
70a216c20d build out changelog for 2.2.0 - refs #1850 2013-05-21 15:14:09 -07:00
Dane Springmeyer
21fa4d2aed tests: ensure rgb image is truly different that argb - refs #1559 2013-05-21 14:59:35 -07:00
Dane Springmeyer
bd3ba15638 improve reporting in mapnik-config of new options at 2.0.0 2013-05-21 14:09:49 -07:00
Dane Springmeyer
337410fc98 remove tabs 2013-05-21 12:56:35 -07:00
Dane Springmeyer
8478fdc217 fix boolean check to be easier to read 2013-05-21 12:55:08 -07:00
Dane Springmeyer
49933d7d0f remove tab 2013-05-21 12:54:48 -07:00
Dane Springmeyer
20076e593f support for handling unicode paths on windows in sqlite, csv, and geojson plugins - refs #1177 2013-05-21 12:51:31 -07:00
artem@windows
154c93017a * add support for unicode (utf16) paths on windows 2013-05-21 09:42:55 -07:00
Dane Springmeyer
9001f59502 overwrite expected cairo output 2013-05-21 08:46:07 -07:00
Dane Springmeyer
a2266f4feb overwrite all trivially failing cairo visual tests from os 10.8 (cairo 1.12.4 / freetype 2.4.11) 2013-05-21 08:46:07 -07:00
Dane Springmeyer
018bdc4f6d fix interplay of point symbolizer/cairo/scale_factor 2013-05-21 08:46:07 -07:00
Dane Springmeyer
b2fc3d7d57 update expected grid outputs 2013-05-21 08:46:07 -07:00
Dane Springmeyer
1d77a3c3c4 finish removal of osm plugin from visual tests 2013-05-21 08:46:06 -07:00
Dane Springmeyer
f06b465cf9 further convert visual tests to use csv plugin over osm 2013-05-21 08:46:06 -07:00
Dane Springmeyer
be31f7ea18 Start moving visual test usage from osm to csv plugin 2013-05-21 08:46:06 -07:00
Dane Springmeyer
866320be14 line clipping drops points so filter osm data to ensure only lines are being used in test 2013-05-21 08:46:05 -07:00
Dane Springmeyer
dee252eb88 ignore grids in html error output 2013-05-21 08:46:05 -07:00
artem@windows
871ac5b4bb * add support for unicode (utf16) paths on windows 2013-05-21 09:48:12 +01:00
Dane Springmeyer
24e9dd7b6c make visual test failure comparison work with relative image paths 2013-05-20 15:07:20 -07:00
artem@windows
35a8582043 put implementatio into .cpp to avoid exposing <windows.h> 2013-05-20 13:43:31 -07:00
Dane Springmeyer
665b0ef555 raise cairo visual test diff above 0 2013-05-20 13:02:17 -07:00
Dane Springmeyer
c1e94120f9 add more expected test files 2013-05-20 12:50:26 -07:00
Dane Springmeyer
c901f8b46e tests for 1849 2013-05-20 12:50:26 -07:00
Dane Springmeyer
84a15f9090 iwyu 2013-05-20 12:50:26 -07:00
Dane Springmeyer
29578410c2 fix marker bbox calculation - closes #1849 2013-05-20 12:50:26 -07:00
Dane Springmeyer
735363c47d Revert "scons: use VariantDir to avoid 'Two environments with different actions' error when building both cpp_tests and with PLUGIN_LINKING=static"
This reverts commit 2393453765.
2013-05-20 11:08:40 -07:00
artem@windows
15e059a9ac put implementatio into .cpp to avoid exposing <windows.h>
Conflicts:
	include/mapnik/utils.hpp
2013-05-20 14:54:06 +01:00
artemp
fa99757154 + add accidentally removed config.hpp 2013-05-20 14:00:03 +01:00
artemp
6e4169d2b9 + utf8 to/from utf16 implementation
Conflicts:
	include/mapnik/utils.hpp
2013-05-20 14:00:03 +01:00
artemp
7a119a5b9e + mapnik_datasource parameters : handle unicode objects - convert to internal UTF8 representation 2013-05-20 14:00:02 +01:00
Dane Springmeyer
ae2e33de34 msvc on windows breaks with singleton declared but gcc needs default visibility to avoid double singleton registration across dlls when using -fvisiblity=hidden
Conflicts:
	include/mapnik/utils.hpp
2013-05-20 14:00:02 +01:00
artemp
f2132fa7bb + use tol in feature_at_point 2013-05-20 14:00:02 +01:00
artemp
9348fffa8d + filter_at_point - cache inflated bbox 2013-05-20 14:00:02 +01:00
artemp
e57f5f9547 cherry picking.. 2013-05-20 14:00:02 +01:00
artemp
6412b43d6c + utf8 to/from utf16 implementation 2013-05-20 12:05:22 +01:00
artemp
4c05d3a617 + mapnik_datasource parameters : handle unicode objects - convert to internal UTF8 representation 2013-05-20 11:48:13 +01:00
Dane Springmeyer
2e89e17687 first pass on an html report to view failures 2013-05-17 16:46:42 -07:00
Dane Springmeyer
ab27707a91 scons: reduce noisy, non-critical configure output 2013-05-17 16:38:14 -07:00
artem@windows
293d4829a8 MAPNIK_DECL feature_parser 2013-05-17 16:20:01 -07:00
Dane Springmeyer
6af84da0ef update out of date cairo reference images - refs #1781 2013-05-17 15:34:33 -07:00
Dane Springmeyer
03d8b6d9d7 msvc on windows breaks with singleton declared but gcc needs default visibility to avoid double singleton registration across dlls when using -fvisiblity=hidden 2013-05-17 13:16:36 -07:00
Dane Springmeyer
2393453765 scons: use VariantDir to avoid 'Two environments with different actions' error when building both cpp_tests and with PLUGIN_LINKING=static 2013-05-17 09:23:10 -07:00
Dane Springmeyer
ef5e8f7fff fix linking of python bindings when building against libmapnik.a 2013-05-17 08:38:09 -07:00
artemp
551e9e427e + use tol in feature_at_point 2013-05-17 16:24:32 +01:00
artemp
57d5da9004 + fix sqlite.input build 2013-05-17 16:23:36 +01:00
artemp
5be9640742 + filter_at_point - cache inflated bbox 2013-05-17 16:22:04 +01:00
artemp
9686999a2c fix sqlite build 2013-05-17 13:13:18 +01:00
artemp
392561c5d9 add to/from specialisation for boost::optional<bool> 2013-05-17 11:16:11 +01:00
Dane Springmeyer
cd2dd66636 add more box2d multiplication tests 2013-05-16 14:24:25 -07:00
Dane Springmeyer
f665bcb11e xadd expected cairo outputs for lines-shield test (via ubuntu precise) 2013-05-16 20:25:16 +00:00
Ubuntu
86b62b52a0 Merge branch 'master' of https://github.com/mapnik/mapnik 2013-05-16 20:18:11 +00:00
Dane Springmeyer
71870a47b5 renable lines-shield test and always generate missing reference images - closes #1696 2013-05-16 13:17:48 -07:00
Ubuntu
644b7d9765 Merge branch 'master' of https://github.com/mapnik/mapnik 2013-05-16 20:05:51 +00:00
Dane Springmeyer
b6a937e93d iwyu 2013-05-16 12:47:36 -07:00
artemp
d5c9fea7b6 + remove redundant work-around 2013-05-16 20:32:19 +01:00
Ubuntu
3b82e359d1 Merge branch 'master' of https://github.com/mapnik/mapnik 2013-05-16 19:31:24 +00:00
Dane Springmeyer
c84ddc825e convert old tests into proper python tests - closes #1460 2013-05-16 12:23:19 -07:00
Dane Springmeyer
a992ab4985 add missing file from 3fbf4df67d 2013-05-16 12:03:30 -07:00
Dane Springmeyer
5a6ea9ee6f finish to rename of mapnik::Feature -> mapnik::feature_impl 2013-05-16 11:55:58 -07:00
Dane Springmeyer
3fbf4df67d add support for statically linking datasource input plugins - closes #1810 and #1821 - refs #249 2013-05-16 11:55:58 -07:00
Dane Springmeyer
c34f86e08f finish cleanup after geos plugin removal - refs #1809 2013-05-16 11:55:58 -07:00
artemp
37cc3de4aa + use mapnik::noncopyable 2013-05-16 19:41:59 +01:00
artemp
a3900131fd + add python_optional<float> specialization 2013-05-16 19:41:59 +01:00
artemp
8ed9606046 * c++ style comments, pls!
* formatting
2013-05-16 19:41:59 +01:00
Ubuntu
198c47f065 Merge branch 'master' of https://github.com/mapnik/mapnik 2013-05-16 17:18:56 +00:00
Dane Springmeyer
1c03b9fefa update expected grid test 2013-05-16 10:17:26 -07:00
Dane Springmeyer
3436c324e8 only run cairo visual rendering tests if cairo backend is available 2013-05-16 10:16:51 -07:00
Ubuntu
3ec6048974 Merge branch 'master' of https://github.com/mapnik/mapnik 2013-05-16 17:04:07 +00:00
Dane Springmeyer
c53bf9fff1 remove debug output 2013-05-16 10:03:08 -07:00
Ubuntu
ed1a39224d Merge branch 'master' of https://github.com/mapnik/mapnik 2013-05-16 16:59:40 +00:00
Dane Springmeyer
04d119fc92 further improve cairo freetype support checking - refs #1842 2013-05-16 09:59:21 -07:00
Ubuntu
b3bab3e5f7 Merge branch 'master' of https://github.com/mapnik/mapnik 2013-05-16 15:32:51 +00:00
Dane Springmeyer
5ff69781c8 scons: disable cairo support at configure time unless cairo reports freetype support - closes #1842 2013-05-16 08:29:31 -07:00
artemp
eaef041c85 + move to QT 5.x (requirement!) 2013-05-16 16:29:00 +01:00
artemp
4775428dc0 + move to QT 5.x (requirement!) 2013-05-16 16:28:08 +01:00
Dane Springmeyer
c127757cd6 remove uneeded exception translator for mapnik::config_error - works around #1847 2013-05-16 07:40:54 -07:00
Dane Springmeyer
879225abfb rollback MAPNIK_DECL on exceptions - which breaks linking of python bindings on msvc - refs #1826 2013-05-15 18:47:46 -07:00
Ubuntu
db0c5670f9 Merge branch 'master' of https://github.com/mapnik/mapnik 2013-05-16 01:38:33 +00:00
Dane Springmeyer
9c66d0ec1d move expresion_grammar impl to impl header 2013-05-15 18:24:49 -07:00
Dane Springmeyer
bedcde02cb rename css_color_grammar_def.hpp -> css_color_grammar_impl.hpp to be consistent with other headers 2013-05-15 18:23:46 -07:00
Dane Springmeyer
14d6c3b80b remove expression_grammar from public api 2013-05-15 18:22:28 -07:00
Dane Springmeyer
729f39abd1 disable compiling the c++ benchmark by default 2013-05-15 18:19:49 -07:00
Hermann Kraus
d416d17ae9 Reenable Cairo and grid tests. 2013-05-15 15:15:02 +01:00
artemp
499f8aefc5 + fix accidental typo :) 2013-05-15 15:13:19 +01:00
artemp
682b85b27d + fix accidental typo :) 2013-05-15 15:12:28 +01:00
artemp
c698079f5e + log Null geometry case ( via @TomH ) 2013-05-15 15:09:53 +01:00
artemp
99dcc76860 + log Null geometry case ( via @TomH ) 2013-05-15 15:07:17 +01:00
artemp
06e4105310 + check if geometry record (WKB) is not Null before attempting to parse 2013-05-15 14:39:24 +01:00
artemp
4dd1189ac8 + check if geometry record (WKB) is not Null before attempting to parse 2013-05-15 14:38:54 +01:00
artemp
86aeee1ea1 + remove an empty line at the begining 2013-05-15 14:31:57 +01:00
Hermann Kraus
38b95a12e7 Reenable Cairo and grid tests. 2013-05-15 11:31:32 +03:00
Dane Springmeyer
9682af53da fix compile in master after 8d5b983cb6 since master still uses phoenix v2 2013-05-14 10:31:13 -07:00
artemp
8d5b983cb6 Geometry/Feature parsers -truncate 'where' message in on_error handler (currently 16 chars max) 2013-05-14 15:02:05 +01:00
artemp
0e5013fb03 + add feature_parser implementation 2013-05-14 14:55:08 +01:00
artemp
26302e19af + add from_geojson static method
TODO: better handling of feature.id() and transcoder
2013-05-14 14:53:52 +01:00
artemp
417ac21529 + cleaup old comment 2013-05-14 14:53:27 +01:00
artemp
4948fd8992 + add feature_parser.cpp 2013-05-14 14:52:58 +01:00
artemp
5d0c36fb65 Geometry/Feature parsers -truncate 'where' message in on_error handler (currently 16 chars max) 2013-05-14 14:51:28 +01:00
artemp
1e1e2d1e79 + prefer ``const& `` style (mapnik c++ style) 2013-05-14 12:31:05 +01:00
artemp
d83935a8e0 * restore operator%= support - explicit pnoenix::construct<mapnik::expr_node> on rhs
* move fwd decl into main mapnik namespace
* c++ style formatting
2013-05-14 12:28:13 +01:00
artemp
abc5d39dbd + comment out as msvc++ doesn't support 'noexcept' 2013-05-14 12:06:55 +01:00
Ubuntu
6eb9519d7a Merge branch 'master' of https://github.com/mapnik/mapnik 2013-05-13 18:54:25 +00:00
Ubuntu
c7ceef1983 Merge branch 'master' of https://github.com/mapnik/mapnik 2013-05-13 17:37:47 +00:00
artemp
245e71d735 TIFF I/O
+ use generic std::istream
+ add open from char const* and size factory method
2013-05-13 10:26:28 +01:00
artemp
dbcffe6179 + better naming 2013-05-13 10:26:04 +01:00
artemp
677a0a68c6 TIFF I/O
+ use c++ casts
+ better naming
2013-05-13 10:25:09 +01:00
Ubuntu
dae5ed8ae0 Merge branch 'master' of https://github.com/mapnik/mapnik 2013-05-10 21:37:06 +00:00
artemp
d1ac50019d + fix writing to std::stringstream
* if seeking pass the end  - grow buffer (stringstream!)
* seekp beyond current buffer size doesn't set failbit (clang/libcxx)
2013-05-10 20:13:00 +00:00
artemp
e9733d8a9b + fix writing to std::stringstream
* if seeking pass the end  - grow buffer (stringstream!)
* seekp beyond current buffer size doesn't set failbit (clang/libcxx)
2013-05-10 16:50:28 +01:00
artemp
3223836874 + potential boost::variant optimization 2013-05-10 16:45:54 +01:00
Dane Springmeyer
8897b2b852 reduce libary size by passing -fvisibility-inlines-hidden - closes #1832 - refs #1826 2013-05-09 22:58:51 +01:00
artemp
dd0c4701c5 + hold actual values in expressions tree (experimental)
(result gets converted to mapnik::value)
2013-05-09 15:31:31 +01:00
Dane Springmeyer
dc2ab8506f Add test for image.fromstring - refs #1805 2013-05-09 15:09:25 +01:00
artemp
0fb7898e5e + format 2013-05-09 13:46:51 +01:00
artemp
6bfb92811e + make default ctor nothrow 2013-05-09 13:46:09 +01:00
artemp
656c9e724f + re-arrange expression 2013-05-08 17:21:34 +01:00
artemp
75aa6e94d8 + expression_optimizer (experimental)
at the moment very basic ops are supported e.g

```
expr = 1+1+1 ---> expr = 3
expr = 1+1+[ATTR] ---> 2+[ATTR]

expr = [ATTR] + 1 + 1  ---> ([ATTR] + 1) + 1  ### stays unchaged
expr = [ATTR] + 1/3.14159 + 1 ---> ([ATTR] + 0.31831) + 1
```
2013-05-08 16:54:25 +01:00
artemp
4138a70a52 mapnik::value
to_expression_string - add missing specialization
for mapnik::value_integer and remove usage of std::stringstream
2013-05-08 16:51:28 +01:00
artemp
b086e2d20c + small optimization - pass and return const ref 2013-05-07 16:12:57 +01:00
artemp
4915bf138e mapnik::value + add move ctor
mapnik::feature + pass attributes by r-value.
2013-05-07 12:04:06 +01:00
artemp
42d8dfa322 + add move ctor and 'canonical' assignment operator 2013-05-06 15:54:17 +01:00
artemp
31a506f3cb + use more consise c++11 syntax 2013-05-06 15:52:04 +01:00
artem@windows
b29fe11e35 + fix font_set::size return type 2013-05-03 16:43:25 -07:00
artemp
1635834f60 + remove inline qualifier 2013-05-03 16:38:55 +01:00
artemp
f70e39c1e6 + make comma separator optional (preserve space delimitted syntax) 2013-05-03 16:06:51 +01:00
artemp
6490245218 + remove more cruft 2013-05-03 14:21:34 +01:00
artemp
b6d24c6b35 remove cruft 2013-05-03 11:44:43 +01:00
artemp
1847ce581d box2d
+ re-implement from_string avoiding tokenizer (~10x faster)
2013-05-03 11:41:43 +01:00
artem@windows
29f9273d3e + msvc : fix warnings (TODO: work-in-progress) 2013-05-02 14:07:06 -07:00
artem@windows
ffc7a088a4 use std::move
msvc : temp fix https://svn.boost.org/trac/boost/ticket/2839
2013-05-02 12:03:16 -07:00
artem@windows
f611892915 remove redundant header 2013-05-02 12:02:13 -07:00
artemp
43968b6c50 + c++ style : formatting 2013-04-30 18:47:17 +01:00
artemp
a8376d2a4b + fix method signature 2013-04-30 18:46:34 +01:00
artem@windows
9a64415a03 use std::size_t to avoid conversion warnings 2013-04-30 10:06:47 -07:00
artem@windows
16c0b578bc c++11
+ use std::size_t
+ re-implement envelope() method in terms of c++11
2013-04-30 09:51:08 -07:00
artem@windows
231e4ab907 output supported image formats in rundemo c++ 2013-04-30 09:50:26 -07:00
artemp
95e3c87f05 + revert to using boost::math::trunc
+ and mapnik::noncopyable

vc++ (*) doesn't support std::trunc and deleting methods in class/struct definition

* - vc++ 2012 November CTP
2013-04-30 09:32:22 +01:00
artem@windows
abd42357d6 + add <cmath> header to keep cl.exe happy 2013-04-30 08:55:51 +01:00
artemp
58927b404c c++11
+ replace BOOST_FOREACH with for( : )
+ remove boost/foreach.hpp
+ fix benchmarks (17,18)
2013-04-24 16:40:35 +01:00
artemp
49fe99ac4f + make rule_cache movable
+ use rule_cache move semantics in feature processor
2013-04-24 10:08:10 +01:00
artemp
03d08799e0 + add missing .cpp file 2013-04-23 18:18:03 +01:00
artemp
f897a54445 + reflect wkt_parser in python
```python

import mapnik
reader = mapnik.WKTReader()
geometry = reader.read("Point(123 123)")

```
2013-04-23 15:10:06 +01:00
artemp
80c5452130 + fix phoenix functions to compile on ubuntu 12.04/c++11
+ cleanups
2013-04-23 14:00:08 +01:00
artemp
2b9ce83226 + fix typo 2013-04-23 12:29:43 +01:00
artemp
e38ce37ed3 * use move semantics
* use light weight wkb_stream wrapper to avoid locale/formatting locking
2013-04-22 15:24:47 +01:00
artemp
ea28abf203 Merge branch 'master' into image-readers-c++11
Conflicts:
	bindings/python/mapnik_image.cpp
	include/mapnik/factory.hpp
	include/mapnik/image_reader.hpp
	src/image_reader.cpp
	src/jpeg_reader.cpp
	src/png_reader.cpp
2013-04-22 12:24:09 +01:00
artemp
800ee1f0dd + c++ style 2013-04-22 09:56:48 +01:00
Dane Springmeyer
401ca20b32 Merge branch 'master' of github.com:mapnik/mapnik into image-readers-c++11 2013-04-19 11:18:07 -07:00
artemp
d215c09762 + json-generator : don't output coordinates from SEG_CLOSE command 2013-04-19 14:21:12 +01:00
artemp
ae9b518618 + fix coords precision 2013-04-19 14:13:18 +01:00
artemp
c1b25607db + fix compiling miniz codec in c++11 mode
FIXME: we should compile legacy "C" code with special flags..
2013-04-19 13:49:16 +01:00
artemp
8908a4bd1b + re-enable svg generator 2013-04-19 12:11:18 +01:00
artemp
b1ea547fa9 + fix grammar to work with phoenix v3 and c++11 2013-04-19 12:10:34 +01:00
artemp
d8fcf26560 + use std::move in tests 2013-04-19 12:00:58 +01:00
artemp
3a2b1dc027 + move preprocessor directive to the top 2013-04-19 12:00:25 +01:00
artemp
11bc9a0311 + re-enable geojson generator 2013-04-19 11:59:58 +01:00
artemp
8bb6bb1d68 + fix grammar to work with phoenix v3/c++11 2013-04-19 11:59:16 +01:00
artemp
c73e48fa58 + use std::unique_ptr instead of std::auto_ptr (deprecated!) 2013-04-19 09:50:50 +01:00
artemp
7cd8c63656 + remove "-ansi" compile flags to avoid clashung with -std=c++11 2013-04-19 09:42:24 +01:00
artemp
a41c83fbce + png_io: disble miniz for now 2013-04-19 09:41:42 +01:00
artemp
da16de55de + fix : output file_name 2013-04-19 09:37:41 +01:00
artemp
21b93272c0 + use nullptr 2013-04-18 16:07:12 +01:00
artemp
22a1df8388 Merge branch 'master' into image-readers-c++11
Conflicts:
	include/mapnik/factory.hpp
2013-04-18 09:48:31 +01:00
artemp
bd3423a822 + output webp
quality=100 -> demo.webp
quality=80  -> demo-med.webp
qiality=50  -> demo-low.webp

TODO: support other webp writing options
2013-04-17 14:52:01 +01:00
artemp
77e71d726b + add webp support 2013-04-17 14:51:20 +01:00
artemp
da6c630db9 + add webp writing support 2013-04-17 14:50:35 +01:00
artemp
868d60d765 + add getBytes() method ( needed by webp i/o) 2013-04-17 14:46:11 +01:00
artemp
cc5788e9c4 Merge branch 'master' into image-readers-c++11 2013-04-17 10:17:03 +01:00
artemp
c5170290f8 + image_reader : consistent error handling - throw image_reader_exception rather than returning 0 pointer. 2013-04-16 17:30:17 +01:00
artemp
b9e66c82de + update image_io test to support WEBP 2013-04-16 11:36:23 +01:00
artemp
9020e6f439 type_from_filename : add webp support 2013-04-16 10:56:10 +01:00
artemp
1b90879d12 webp_reader : implement reading from file 2013-04-16 10:48:21 +01:00
artemp
b8637a900e + fix crop width/height calc 2013-04-15 18:04:27 +01:00
artemp
77a8a6c8ee + fixes and improved error handling 2013-04-15 17:54:10 +01:00
artemp
1eb2ec5ce7 + cleanup include directives 2013-04-15 14:01:33 +01:00
artemp
e59bf22fbd WEBP image reader
+ add initial support
2013-04-15 14:00:41 +01:00
artemp
9584b3634f + no iostreams lib dependency version 2013-04-12 16:10:09 +01:00
artemp
28ea89fe1c + remove const& qualifier 2013-04-12 16:03:08 +01:00
artemp
438bfad732 + factory : variadic templates based implementation ( requires c++11)
+ image_reader : stream based reading interface (boost::iostreams)
+ register additional png and jpeg readers with following sigs :

  ```
  std::auto_ptr<mapnik::image_reader> reader(mapnik::get_image_reader(buffer,size));
  // buffer - char const*
  // size - size_t
  ```
+ initial type_from_bytes implementation (TODO: add more types)
+ python : mapnik.Image.fromstring(str) mapnik.Image.frombuffer(buf)
2013-04-12 12:46:40 +01:00
4266 changed files with 613819 additions and 243835 deletions

94
.clang-format Normal file
View file

@ -0,0 +1,94 @@
Language: Cpp
AccessModifierOffset: -2
AlignAfterOpenBracket: Align
AlignArrayOfStructures: None
AlignConsecutiveAssignments: None
AlignConsecutiveDeclarations: None
AlignConsecutiveMacros: Consecutive
AlignEscapedNewlines: Right
AlignOperands: Align
AlignTrailingComments: true
AllowAllArgumentsOnNextLine: false
AllowAllParametersOfDeclarationOnNextLine: false
AllowShortBlocksOnASingleLine: Empty
AllowShortCaseLabelsOnASingleLine: false
AllowShortEnumsOnASingleLine: true
AllowShortFunctionsOnASingleLine: Inline
AllowShortIfStatementsOnASingleLine: Never
AllowShortLambdasOnASingleLine: Inline
# AlwaysBreakAfterReturnType:
AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakTemplateDeclarations: Yes
BinPackArguments: false
BitFieldColonSpacing: After
BreakBeforeBraces: Custom
BraceWrapping:
AfterCaseLabel: false
AfterClass: true
AfterControlStatement: Always
AfterEnum: false # see AllowShortEnumsOnASingleLine
AfterFunction: true # see AllowShortFunctionsOnASingleLine
AfterNamespace: false
AfterStruct: true
AfterExternBlock: false
BeforeCatch: true
BeforeElse: true
BeforeLambdaBody: false
BeforeWhile: false
SplitEmptyFunction: false
SplitEmptyRecord: false
SplitEmptyNamespace: false
BreakBeforeBinaryOperators: None
BreakBeforeConceptDeclarations: false
BreakBeforeTernaryOperators: true
BreakConstructorInitializers: BeforeComma
BreakInheritanceList: AfterComma
BreakStringLiterals: true
ColumnLimit: 120
CompactNamespaces: false
ContinuationIndentWidth: 2
Cpp11BracedListStyle: true
DeriveLineEnding: true
EmptyLineAfterAccessModifier: Leave
EmptyLineBeforeAccessModifier: LogicalBlock
FixNamespaceComments: true
IncludeBlocks: Preserve
IndentCaseBlocks: false
IndentCaseLabels: true
IndentExternBlock: NoIndent
IndentPPDirectives: None
IndentRequires: true
IndentWidth: 4
IndentWrappedFunctionNames: true
KeepEmptyLinesAtTheStartOfBlocks: false
LambdaBodyIndentation: Signature
MaxEmptyLinesToKeep: 1
NamespaceIndentation: None
# PackConstructorInitializers: CurrentLine # only clang-format > 14
PointerAlignment: Left
#QualifierAlignment: Left # only clang-format > 14
ReferenceAlignment: Left
ReflowComments: true
SortIncludes: Never
SpaceAfterLogicalNot: false
SpaceAfterTemplateKeyword: false
SpaceBeforeInheritanceColon: true
Standard: c++14
BinPackParameters: false
BreakBeforeInheritanceComma: false
IncludeCategories:
# Headers in <> without extension.
- Regex: '<([A-Za-z0-9\Q/-_\E])+>'
Priority: 1
# Headers in <> from specific external libraries.
- Regex: '<(boost)\/'
Priority: 2
# Headers in <> from specific external libraries.
- Regex: '<(mapnik)\/'
Priority: 3
# Headers in <> with extension.
- Regex: '<([A-Za-z0-9.\Q/-_\E])+>'
Priority: 4
# Headers in "" with extension.
- Regex: '"([A-Za-z0-9.\Q/-_\E])+"'
Priority: 5

2
.gitattributes vendored Normal file
View file

@ -0,0 +1,2 @@
*.svg text eol=lf
scons/** linguist-vendored

85
.github/actions/run_tests/action.yml vendored Normal file
View file

@ -0,0 +1,85 @@
name: Run tests with coverage
description: Runs all mapnik tests with coverage
inputs:
cmake-preset:
description: The used CMake preset
required: true
runs:
using: composite
steps:
- name: Set PROJ_LIB
shell: bash
run: |
cmake --preset ${{ inputs.cmake-preset }} -N -L | grep -o "PROJ_LIB=.*" >> ${GITHUB_ENV}
- name: Set TEST_WRAPPER (Windows)
if: runner.os == 'Windows'
shell: bash
run: |-
echo "TEST_WRAPPER=OpenCppCoverage \
--cover_children \
--export_type binary \
--modules '*.input' \
--modules '*libmapnik*' \
--modules 'mapnik*.exe' \
--quiet \
--sources '${{ github.workspace }}' \
--" >> ${GITHUB_ENV}
- name: Test
shell: bash
env:
UPDATE: 1
run: |
${TEST_WRAPPER:-} ctest --preset ${{ inputs.cmake-preset }}
- name: Test visuals
continue-on-error: true
working-directory: build/out
shell: bash
run: |
${TEST_WRAPPER:-} ./mapnik-test-visual -j ${CTEST_PARALLEL_LEVEL} --output-dir visual-test-result
- name: Pack visual test results
working-directory: build/out
shell: bash
run: |
tar -vzcf visual-test-results.tar.gz visual-test-result
- name: Upload visual test results
uses: actions/upload-artifact@v4
with:
name: ${{ inputs.cmake-preset }}-visual-tests-${{ github.sha }}
path: build/out/visual-test-results.tar.gz
- name: Run Benchmarks (Linux & macOS)
working-directory: build/out
if: runner.os != 'Windows'
shell: bash
run: |
./run_benchmarks
- name: Collect coverage (Linux & macOS)
working-directory: build
if: runner.os != 'Windows'
shell: bash
run: |
if [ "${RUNNER_OS}" == "macOS" ]; then
LCOV_EXTRA_OPTIONS="--ignore-errors count,gcov,inconsistent,range,unused --keep-going"
fi
lcov ${LCOV_EXTRA_OPTIONS:-} --directory . --capture --output-file coverage.info
lcov ${LCOV_EXTRA_OPTIONS:-} --remove coverage.info '/usr/*' '*/vcpkg_installed/*' '/.cache/*' '*/test/*' --output-file coverage.info
lcov ${LCOV_EXTRA_OPTIONS:-} --list coverage.info
- name: Upload coverage to Codecov (Linux & macOS)
if: runner.os != 'Windows'
uses: codecov/codecov-action@v4
with:
files: build/coverage.info
- name: Upload coverage to Codecov (Windows)
if: runner.os == 'Windows'
uses: codecov/codecov-action@v4
with:
files: ctest.cov,build/out/mapnik-test-visual.cov

136
.github/workflows/build_and_test.yml vendored Normal file
View file

@ -0,0 +1,136 @@
name: Build and Test
on:
push:
branches:
- "*"
pull_request:
branches-ignore:
- "no-ci-*"
env:
VCPKG_BINARY_SOURCES: clear;x-gha,readwrite
VCPKG_RELEASE: 2024.06.15
jobs:
checkSource:
name: Check Source Code
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.10"
- uses: pre-commit/action@v3.0.1
buildAndTest:
name: >-
Build & Test
(${{ matrix.os }})
(C++ ${{ matrix.cxx-standard }})
${{ startsWith(matrix.os, 'macos-') && (matrix.os == 'macos-14' && '(ARM64)' || '(AMD64)') || '' }}
needs: checkSource
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- macos-14
- ubuntu-22.04
- windows-2022
cxx-standard:
- 17
steps:
- name: Checkout Mapnik
uses: actions/checkout@v4
with:
submodules: recursive
- name: Checkout vcpkg
uses: actions/checkout@v4
with:
path: vcpkg
ref: ${{ env.VCPKG_RELEASE }}
repository: microsoft/vcpkg
- name: Export GitHub Actions cache environment variables
uses: actions/github-script@v7
with:
script: |
core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || '');
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');
- name: Install required system packages
shell: bash
run: |
if [ "${RUNNER_OS}" == "Linux" ]; then
sudo apt-get update
sudo apt-get -y install \
autoconf \
autoconf-archive \
automake \
gperf \
lcov \
libxxf86vm-dev \
ninja-build \
postgresql-client
elif [ "${RUNNER_OS}" == "macOS" ]; then
brew install \
autoconf \
autoconf-archive \
automake \
lcov \
libtool \
ninja \
vcpkg
elif [ "${RUNNER_OS}" == "Windows" ]; then
choco install \
ninja \
OpenCppCoverage
echo "C:\Program Files\OpenCppCoverage" >> ${GITHUB_PATH}
fi
- name: Enable Developer Command Prompt (Windows)
uses: ilammy/msvc-dev-cmd@v1
if: runner.os == 'Windows'
- name: Set CMAKE_BUILD_PARALLEL_LEVEL, CTEST_PARALLEL_LEVEL & PRESET
shell: bash
run: |
PRESET=$(echo "${RUNNER_OS}" | perl -ne "print lc")-ci
if [ "${RUNNER_OS}" == "Linux" ]; then
echo "CMAKE_BUILD_PARALLEL_LEVEL=$(nproc)" >> ${GITHUB_ENV}
echo "CTEST_PARALLEL_LEVEL=$(nproc)" >> ${GITHUB_ENV}
elif [ "${RUNNER_OS}" == "macOS" ]; then
echo "CMAKE_BUILD_PARALLEL_LEVEL=$(sysctl -n hw.logicalcpu)" >> ${GITHUB_ENV}
echo "CTEST_PARALLEL_LEVEL=$(sysctl -n hw.logicalcpu)" >> ${GITHUB_ENV}
PRESET=${PRESET}-${{ matrix.os == 'macos-14' && 'arm64' || 'x64' }}
elif [ "${RUNNER_OS}" == "Windows" ]; then
echo "CMAKE_BUILD_PARALLEL_LEVEL=$(pwsh -Command '(Get-CimInstance -ClassName Win32_ComputerSystem).NumberOfLogicalProcessors')" >> ${GITHUB_ENV}
echo "CTEST_PARALLEL_LEVEL=$(pwsh -Command '(Get-CimInstance -ClassName Win32_ComputerSystem).NumberOfLogicalProcessors')" >> ${GITHUB_ENV}
fi
echo "PRESET=${PRESET}" >> ${GITHUB_ENV}
- name: Configure CMake
shell: bash
run: |
cmake \
-DBUILD_SHARED_LIBS:BOOL=ON \
-DCMAKE_CXX_STANDARD:STRING=${{ matrix.cxx-standard }} \
-DUSE_MEMORY_MAPPED_FILE:BOOL=ON \
-LA \
--preset ${PRESET}
- name: Build
shell: bash
run: |
cmake \
--build \
--preset ${PRESET}
- name: Run Tests
uses: ./.github/actions/run_tests
with:
cmake-preset: ${{ env.PRESET }}

55
.github/workflows/release_linux.yml vendored Normal file
View file

@ -0,0 +1,55 @@
name: Release Linux
on:
push:
branches:
- "*"
pull_request:
branches-ignore:
- "no-ci-*"
env:
PRESET: linux-ci-release
jobs:
build:
runs-on: "ubuntu-22.04"
steps:
- name: checkout mapnik
uses: actions/checkout@v4
with:
submodules: "recursive"
- name: "Install required system packages"
shell: bash
run: |
sudo apt update
sudo apt install -y ninja-build\
libicu-dev \
libfreetype6-dev \
libharfbuzz-dev \
libxml2-dev \
libjpeg-dev \
libtiff-dev \
libwebp-dev \
libcairo2-dev \
libproj-dev \
libgdal-dev \
libboost-filesystem-dev \
libboost-program-options-dev \
libboost-regex-dev
- name: Configure CMake
run: cmake -LA --preset ${{ env.PRESET }}
- name: Build
run: cmake --build --preset ${{ env.PRESET }}
- name: Package
run: cmake --build --preset ${{ env.PRESET }} --target package
- name: Upload mapnik debian package
uses: actions/upload-artifact@v4
with:
name: ${{ env.PRESET }}-deb
path: build/mapnik-*.deb

31
.gitignore vendored
View file

@ -1,11 +1,19 @@
.DS_Store
.vscode
.cache
*.gcov
*.gcda
*.gcno
*~
*.o
*.pyc
*.os
*.so
*.so.*
*.a
*.swp
*.dylib
mapnik-gyp
plugins/input/*.input
plugins/input/templates/*.input
demo/c++/rundemo
@ -13,6 +21,9 @@ bindings/python/mapnik/paths.py
config.cache
config.log
config.py
mapnik-settings.env
mason_packages/
.mason/
.sconf_temp/
.sconsign.dblite
demo/viewer/viewer.ini
@ -20,21 +31,14 @@ tests/cpp_tests/font_registration_test
tests/python_tests/raster_colorizer_test.png
tests/python_tests/raster_colorizer_test_save.xml
utils/mapnik-config/mapnik-config
utils/mapnik-config/mapnik2.pc
utils/shapeindex/shapeindex
utils/mapnik-index/mapnik-index
utils/ogrindex/ogrindex
utils/pgsql2sqlite/pgsql2sqlite
utils/svg2png/svg2png
utils/mapnik-render/mapnik-render
demo/python/demo*
demo/python/map.xml
tests/cpp_tests/svg_renderer_tests/background_color_test
tests/cpp_tests/svg_renderer_tests/combined_test
tests/cpp_tests/svg_renderer_tests/compilation_test
tests/cpp_tests/svg_renderer_tests/file_output_test
tests/cpp_tests/svg_renderer_tests/file_output_test_case.svg
tests/cpp_tests/svg_renderer_tests/path_element_test
tests/cpp_tests/svg_renderer_tests/path_element_test_case_1.svg
tests/cpp_tests/svg_renderer_tests/root_element_test
tests/data/sqlite/*index
demo/c++/cairo-demo.pdf
demo/c++/cairo-demo.png
@ -51,4 +55,11 @@ demo/viewer/release/
demo/viewer/ui_about.h
demo/viewer/ui_info.h
demo/viewer/ui_layer_info.h
tests/cpp_tests/*-bin
test/standalone/*-bin
test/unit/run
test/visual/run
# cmake
build
.vs
CMakeUserPresets.json

23
.gitmodules vendored Normal file
View file

@ -0,0 +1,23 @@
[submodule "test/data"]
path = test/data
url = https://github.com/mapnik/test-data.git
branch = master
[submodule "test/data-visual"]
path = test/data-visual
url = https://github.com/mapnik/test-data-visual.git
branch = master
[submodule "deps/mapbox/variant"]
path = deps/mapbox/variant
url = https://github.com/mapbox/variant.git
branch = master
[submodule "deps/mapbox/geometry"]
path = deps/mapbox/geometry
url = https://github.com/mapbox/geometry.hpp.git
branch = master
[submodule "deps/mapbox/protozero"]
path = deps/mapbox/protozero
url = https://github.com/mapbox/protozero.git
branch = master
[submodule "deps/mapbox/polylabel"]
path = deps/mapbox/polylabel
url = https://github.com/mapbox/polylabel.git

16
.pre-commit-config.yaml Normal file
View file

@ -0,0 +1,16 @@
# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.6.0
hooks:
- id: trailing-whitespace
files: ^.*\.cmake|CMakeLists\.txt$
- id: end-of-file-fixer
files: ^.*\.cmake|CMakeLists\.txt$
- repo: https://github.com/pre-commit/mirrors-clang-format
rev: v18.1.3
hooks:
- id: clang-format
types_or: [c++, c]

View file

@ -1,21 +0,0 @@
language: cpp
compiler: clang
before_install:
- echo 'yes' | sudo add-apt-repository ppa:mapnik/boost
- sudo apt-get update -qq
- sudo apt-get install -qq libboost-dev libboost-filesystem-dev libboost-program-options-dev libboost-python-dev libboost-regex-dev libboost-system-dev libboost-thread-dev python-nose libicu-dev libpng-dev libjpeg-dev libtiff-dev libz-dev libfreetype6-dev libxml2-dev libproj-dev
script:
- ./configure DEMO=False BINDINGS='python' CPP_TESTS=False CAIRO=False INPUT_PLUGINS='' OPTIMIZATION=1 FAST=True && JOBS=2 make
branches:
only:
- master
notifications:
irc:
channels:
- "irc.freenode.org#mapnik"
use_notice: true

View file

@ -6,39 +6,55 @@ Mapnik is written by Artem Pavlenko with contributions from:
* AJ Ashton
* Matt Amos
* Lucio Asnaghi
* Alexandre Bonnasseau
* Justin Bronn
* Joel Brown
* Christopher Brown
* Jon Burgess
* Stephan Bösch-Plepelits
* Manel Clos
* Toby Collet
* Robert Coup
* Berteun Damman
* Craig de Stigter
* Petr Dlouhy
* Jiri Drbalek
* Jean-Francois Doyon
* David Eastcott
* Seth Fitzsimmons
* Sean Gillies
* Krzysztof Godlewski
* Beau Gunderson
* John Hague
* Dominic Hargreaves
* Axel Haustant
* Aubrey Holland
* Jordan Hollinger
* Tom Hughes
* Konstantin Käfer
* Mak Kolybabi
* Peter Körner
* Hermann Kraus
* Stella Laurenzo
* XinGang Li
* lightmare
* David Leaver
* Carlos López
* Dennis Luxen
* Tom MacWright
* Sara Metz
* Michal Migurski
* Andrii Mishkovskyi
* Ben Moores
* Mike Morris
* Dražen Odobašić
* Cameron Patrick
* Clint Pells
* Igor Podolskiy
* Reid Priedhorsky
* Brian Quinion
* Even Rouault
* Marcin Rudowski
* Sandro Santilli
* Christopher Schmidt
* Andreas Schneider
* Vincent Schut
@ -49,9 +65,13 @@ Mapnik is written by Artem Pavlenko with contributions from:
* Vince Spader
* Philipp Spitzer
* Dane Springmeyer
* Craig de Stigter
* Dave Stubbs
* River Tarnell
* Cezary Tarnowski
* Blake Thompson
* Oliver Tonnhofer
* Jochen Topf
* Alberto Valverde
* Martijn van Oosterhout
* Andreas Volz
@ -60,3 +80,4 @@ Mapnik is written by Artem Pavlenko with contributions from:
* Rich Wareham
* Nick Whitelegg
* Leslie Wu
* Roman Galacz

File diff suppressed because it is too large Load diff

34
CITATION.cff Normal file
View file

@ -0,0 +1,34 @@
# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!
cff-version: 1.2.0
title: mapnik
message: >-
If you use this software, please cite it using the
metadata from this file.
type: software
authors:
- given-names: Artem
family-names: Pavlenko
identifiers:
- type: url
value: 'https://github.com/mapnik/mapnik'
description: GitHub Repository
- type: swh
value: >-
swh:1:dir:3f5758e17e9d54016ca694268da68cf6856fab58
description: Software Archive
repository-code: 'https://github.com/mapnik/mapnik'
url: 'https://mapnik.org/'
abstract: >-
Mapnik is an open source toolkit for developing
mapping applications. At the core is a C++ shared
library providing algorithms and patterns for
spatial data access and visualization.
keywords:
- mapping
- gis
- cartography
- beautiful-maps
- rendering
license: LGPL-2.1

472
CMakeLists.txt Normal file
View file

@ -0,0 +1,472 @@
cmake_minimum_required(VERSION 3.15)
# 3.15 is required since the Boost::XXXX targets was first added. https://cmake.org/cmake/help/latest/module/FindBoost.html#imported-targets
# 3.14 is required since SQLite3 Module was first added. https://cmake.org/cmake/help/latest/module/FindSQLite3.html#findsqlite3
include(cmake/GetVersion.cmake)
get_mapnik_version()
project(mapnik
VERSION ${MAPNIK_MAJOR_VERSION}.${MAPNIK_MINOR_VERSION}.${MAPNIK_PATCH_VERSION}
HOMEPAGE_URL "https://mapnik.org/"
DESCRIPTION "Mapnik is an open source toolkit for developing mapping applications"
LANGUAGES CXX
)
message(STATUS "mapnik version: ${PROJECT_VERSION}")
# https://cliutils.gitlab.io/modern-cmake/chapters/features/ides.html
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
set(CMAKE_FIND_PACKAGE_TARGETS_GLOBAL ON) # with newer cmake versions put all find_package in global scope
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
include(FeatureSummary)
include(MapnikOption)
include(MapnikMinimumVersions)
include(MapnikFindPackage)
include(MapnikInstall)
include(CTest)
add_feature_info(BUILD_TESTING BUILD_TESTING "Adds tests")
mapnik_option(INSTALL_DEPENDENCIES "if ON, all dependencies (eg. required dlls) will be copied into CMAKE_INSTALL_PREFIX/MAPNIK_BIN_DIR." ON)
mapnik_option(BUILD_SHARED_LIBS "build mapnik dynamic(ON) or static(OFF)" ON)
mapnik_option(BUILD_SHARED_PLUGINS "build dynamic plugins" ${BUILD_SHARED_LIBS}) # use BUILD_SHARED_LIBS as default option
mapnik_option(BUILD_SHARED_CRT "(only windows with msvc) use msvc shared crt" ON)
if(WIN32 AND BUILD_SHARED_PLUGINS AND NOT BUILD_SHARED_LIBS)
message(FATAL_ERROR "static libmapnik and dynamic plugins won't work correctly")
endif()
mapnik_option(USE_EXTERNAL_MAPBOX_GEOMETRY "Use a external mapnik/geometry.hpp. If off, use the submodule" OFF)
mapnik_option(USE_EXTERNAL_MAPBOX_POLYLABEL "Use a external mapnik/polylabel. If off, use the submodule" OFF)
mapnik_option(USE_EXTERNAL_MAPBOX_PROTOZERO "Use a external mapnik/protozero. If off, use the submodule" OFF)
mapnik_option(USE_EXTERNAL_MAPBOX_VARIANT "Use a external mapnik/variant. If off, use the submodule" OFF)
mapnik_option(USE_JPEG "adds jpeg support" ON)
mapnik_option(USE_PNG "adds png support" ON)
mapnik_option(USE_TIFF "adds tiff support" ON)
mapnik_option(USE_WEBP "adds webp support" ON)
mapnik_option(USE_LIBXML2 "adds libxml2 support" ON)
mapnik_option(USE_CAIRO "adds the cairo renderer" ON)
mapnik_option(USE_PROJ "adds proj support" ON)
mapnik_option(USE_GRID_RENDERER "adds grid renderer" ON)
mapnik_option(USE_SVG_RENDERER "adds svg renderer" ON)
mapnik_option(USE_BIGINT "uses 64 bit instead of 32" ON)
mapnik_option(USE_BOOST_FILESYSTEM "use boost::filesytem even if `std::filesystem` is available (since c++17)" OFF)
mapnik_option(USE_MEMORY_MAPPED_FILE "uses file cache" ON)
mapnik_option(USE_MULTITHREADED "enables the multithreaded features (threadsafe)" ON)
mapnik_option(USE_NO_ATEXIT "disable atexit" OFF)
mapnik_option(USE_NO_DLCLOSE "disable dlclose" OFF)
mapnik_option(USE_DEBUG_OUTPUT "enables some debug messages for development" OFF)
mapnik_option(USE_LOG "enables logging output. See log severity level." OFF)
# 0 = debug
# 1 = warn
# 2 = error
# 3 = none
set(USE_LOG_SEVERITY "1" CACHE STRING "sets the logging severity (only applies when USE_LOG is ON")
mapnik_option(USE_STATS "Enable statistics reporting" OFF)
mapnik_option(DISABLE_MAPNIK_AUTOSETUP "disables the autosetup. Need to call mapnik::setup() then" OFF)
mapnik_option(USE_PLUGIN_INPUT_CSV "adds plugin input csv" ON)
mapnik_option(USE_PLUGIN_INPUT_GDAL "adds plugin input gdal" ON)
mapnik_option(USE_PLUGIN_INPUT_GEOBUF "adds plugin input geobuf" ON)
mapnik_option(USE_PLUGIN_INPUT_GEOJSON "adds plugin input geojson" ON)
mapnik_option(USE_PLUGIN_INPUT_OGR "adds plugin input ogr" ON)
mapnik_option(USE_PLUGIN_INPUT_PGRASTER "adds plugin input pgraster" ON)
mapnik_option(USE_PLUGIN_INPUT_POSTGIS "adds plugin input postgis" ON)
mapnik_option(USE_PLUGIN_INPUT_RASTER "adds plugin input raster" ON)
mapnik_option(USE_PLUGIN_INPUT_SHAPE "adds plugin input shape" ON)
mapnik_option(USE_PLUGIN_INPUT_SQLITE "adds plugin input sqlite" ON)
mapnik_option(USE_PLUGIN_INPUT_TOPOJSON "adds plugin input topojson" ON)
mapnik_option(BUILD_DEMO_VIEWER "builds the demo viewer" ON)
mapnik_option(BUILD_DEMO_CPP "builds the demo c++ application" ON)
mapnik_option(BUILD_BENCHMARK "builds benchmark project" ON)
mapnik_option(BUILD_UTILITY_GEOMETRY_TO_WKB "builds the utility program geometry_to_wkb" ON)
mapnik_option(BUILD_UTILITY_MAPNIK_INDEX "builds the utility program mapnik_index" ON)
mapnik_option(BUILD_UTILITY_MAPNIK_RENDER "builds the utility program mapnik_render" ON)
mapnik_option(BUILD_UTILITY_OGRINDEX "builds the utility program ogrindex" OFF)
mapnik_option(BUILD_UTILITY_PGSQL2SQLITE "builds the utility program pgsql2sqlite" ON)
mapnik_option(BUILD_UTILITY_SHAPEINDEX "builds the utility program shapeindex" ON)
mapnik_option(BUILD_UTILITY_SVG2PNG "builds the utility program svg2png" ON)
mapnik_option(USE_BOOST_REGEX_ICU_WORKAROUND "if you don't use your system libraries and get double linked icu libraries set this to ON" OFF)
mapnik_option(USE_GLIBC_WORKAROUND "see https://github.com/mapnik/mapnik/pull/3792 if you building with libstdc++-4.9" OFF)
feature_summary(WHAT ENABLED_FEATURES DISABLED_FEATURES)
feature_summary(FILENAME "${CMAKE_CURRENT_BINARY_DIR}/features.log" WHAT ENABLED_FEATURES DISABLED_FEATURES)
include(GNUInstallDirs)
# See for more details: https://cmake.org/cmake/help/latest/manual/cmake-buildsystem.7.html
set(MAPNIK_BIN_DIR ${CMAKE_INSTALL_BINDIR} CACHE STRING "Install directory for binaries")
set(MAPNIK_LIB_DIR ${CMAKE_INSTALL_LIBDIR} CACHE STRING "Install directory for libraries")
set(MAPNIK_ARCHIVE_DIR ${CMAKE_INSTALL_LIBDIR} CACHE STRING "Install directory for archives")
set(MAPNIK_INCLUDE_DIR ${CMAKE_INSTALL_INCLUDEDIR} CACHE STRING "Install directory for the headers")
set(MAPNIK_CMAKE_DIR ${MAPNIK_LIB_DIR}/cmake/mapnik CACHE STRING "Install directory of the cmake targets")
set(MAPNIK_PKGCONF_DIR ${MAPNIK_LIB_DIR}/pkgconfig CACHE STRING "Install directory for the .pc files for pkg-config")
set(MAPNIK_OUTPUT_DIR "${CMAKE_BINARY_DIR}/out")
if(WIN32)
set(DEFAULT_PLUGINS_INSTALL_DIR ${MAPNIK_BIN_DIR}/mapnik/input)
else()
set(DEFAULT_PLUGINS_INSTALL_DIR ${MAPNIK_LIB_DIR}/mapnik/input)
endif()
set(PLUGINS_INSTALL_DIR ${DEFAULT_PLUGINS_INSTALL_DIR} CACHE STRING "installs the plugins in the specified directory")
message(STATUS "Installing plugins to ${PLUGINS_INSTALL_DIR}")
set(FONTS_INSTALL_DIR ${MAPNIK_LIB_DIR}/mapnik/fonts CACHE STRING "installs the fonts in the specified directory")
message(STATUS "Installing fonts to ${FONTS_INSTALL_DIR}")
set(MAPNIK_COMPILE_DEFS "")
set(MAPNIK_OPTIONAL_LIBS "")
set(MAPNIK_OPTIONAL_LIBS_INCLUDE "")
#############################
#############################
# Begin project configuration
#############################
#############################
set(CMAKE_CXX_STANDARD 17 CACHE STRING "Sets the c++ standard. c++17 is minimum.")
set(CMAKE_CXX_STANDARD_REQUIRED ON) # require the specified CMAKE_CXX_STANDARD
set(CMAKE_CXX_EXTENSIONS OFF CACHE STRING "Enables the compiler specific extensions.") # Fallsback to -std=c++<ver> if off
message(STATUS "Using c++${CMAKE_CXX_STANDARD}")
message(STATUS "Using c++ extensions: ${CXX_EXTENSIONS}")
# add debug postfix to the libraries
set(CMAKE_DEBUG_POSTFIX "d" CACHE STRING "sets the debug library postfix on mapnik, wkt and json")
message(STATUS "postfix for debug libraries: ${CMAKE_DEBUG_POSTFIX}")
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>$<$<BOOL:${BUILD_SHARED_CRT}>:DLL>")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${MAPNIK_OUTPUT_DIR}")
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${MAPNIK_OUTPUT_DIR}")
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${MAPNIK_OUTPUT_DIR}/lib")
# needs to be before the first call of find_boost.
if(CMAKE_CXX_STANDARD VERSION_LESS 17)
list(APPEND MAPNIK_COMPILE_DEFS BOOST_SPIRIT_X3_HIDE_CXX17_WARNING)
endif()
if(USE_MULTITHREADED)
set(Boost_USE_MULTITHREADED ON)
list(APPEND MAPNIK_COMPILE_DEFS MAPNIK_THREADSAFE)
else()
set(Boost_USE_MULTITHREADED OFF)
endif()
mapnik_find_package(PkgConfig REQUIRED)
mapnik_find_threads()
mapnik_find_package(ICU REQUIRED COMPONENTS uc i18n data)
mapnik_find_package(Boost ${BOOST_MIN_VERSION} REQUIRED COMPONENTS regex)
if(CMAKE_CXX_STANDARD VERSION_LESS 17)
set(USE_BOOST_FILESYSTEM ON CACHE BOOL "Use boost::filesystem" FORCE)
endif()
if(USE_BOOST_FILESYSTEM)
mapnik_find_package(Boost ${BOOST_MIN_VERSION} REQUIRED COMPONENTS filesystem system)
endif()
list(APPEND MAPNIK_COMPILE_DEFS BOOST_REGEX_HAS_ICU)
if(USE_BOOST_REGEX_ICU_WORKAROUND)
message(STATUS "using boost regex workaround")
set_property(TARGET Boost::regex PROPERTY INTERFACE_LINK_LIBRARIES)
endif()
include(CheckBoostRegexIcu)
check_boost_regex()
if(BOOST_REGEX_HAS_ICU)
message(STATUS "boost regex has icu support")
list(APPEND MAPNIK_COMPILE_DEFS BOOST_REGEX_HAS_ICU)
endif()
mapnik_find_package(Freetype REQUIRED)
# try to find harfbuzz with the native configuration and fallback to our "own" FindHarfBuzz
mapnik_find_package(harfbuzz CONFIG QUIET)
if(harfbuzz_FOUND)
message(STATUS "Found harfbuzz native cmake")
list(APPEND MAPNIK_OPTIONAL_LIBS harfbuzz::harfbuzz)
else()
# Use pkg-config when harfbuzz is not found.
# It might be possible that in future version harfbuzz could only be found via pkg-config.
# harfbuzz related discussion: https://github.com/harfbuzz/harfbuzz/issues/2653
message(STATUS "harfbuzz not found via cmake. Searching via pkg-config...")
mapnik_pkg_check_modules(harfbuzz REQUIRED IMPORTED_TARGET harfbuzz>=${HARFBUZZ_MIN_VERSION})
list(APPEND MAPNIK_OPTIONAL_LIBS PkgConfig::harfbuzz)
endif()
if(USE_EXTERNAL_MAPBOX_GEOMETRY)
# this is used to provide a way to specify include dirs with CACHE VARIABLES
if(NOT MAPBOX_GEOMETRY_INCLUDE_DIRS)
message(STATUS "Searching for the include dir of mapbox/geometry.hpp")
find_path(MAPBOX_GEOMETRY_INCLUDE_DIRS "mapbox/geometry.hpp" REQUIRED)
endif()
else()
set(MAPBOX_GEOMETRY_INCLUDE_DIRS
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/deps/mapbox/geometry/include>
$<INSTALL_INTERFACE:include>
)
endif()
if(NOT MAPBOX_GEOMETRY_INCLUDE_DIRS)
message(FATAL_ERROR "Set -DMAPBOX_GEOMETRY_INCLUDE_DIRS to the mapbox/geometry.hpp include dir")
endif()
if(USE_EXTERNAL_MAPBOX_POLYLABEL)
if(NOT MAPBOX_POLYLABEL_INCLUDE_DIRS)
message(STATUS "Searching for the include dir of mapbox/polylabel")
find_path(MAPBOX_POLYLABEL_INCLUDE_DIRS "mapbox/polylabel.hpp")
endif()
else()
set(MAPBOX_POLYLABEL_INCLUDE_DIRS
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/deps/mapbox/polylabel/include>
$<INSTALL_INTERFACE:include>
)
endif()
if(NOT MAPBOX_POLYLABEL_INCLUDE_DIRS)
message(FATAL_ERROR "Set MAPBOX_POLYLABEL_INCLUDE_DIRS to the mapbox/geometry include dir")
endif()
if(USE_EXTERNAL_MAPBOX_PROTOZERO)
if(NOT MAPBOX_PROTOZERO_INCLUDE_DIRS)
message(STATUS "Searching for the include dir of mapbox/protozero")
find_path(MAPBOX_PROTOZERO_INCLUDE_DIRS "protozero/pbf_message.hpp")
endif()
else()
set(MAPBOX_PROTOZERO_INCLUDE_DIRS
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/deps/mapbox/protozero/include>
$<INSTALL_INTERFACE:include>
)
endif()
if(NOT MAPBOX_PROTOZERO_INCLUDE_DIRS)
message(FATAL_ERROR "Set MAPBOX_PROTOZERO_INCLUDE_DIRS to the mapbox/protozero include dir")
endif()
if(USE_EXTERNAL_MAPBOX_VARIANT)
if(NOT MAPBOX_VARIANT_INCLUDE_DIRS)
message(STATUS "Searching for the include dir of mapbox/variant")
find_path(MAPBOX_VARIANT_INCLUDE_DIRS "mapbox/variant.hpp")
endif()
else()
set(MAPBOX_VARIANT_INCLUDE_DIRS
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/deps/mapbox/variant/include>
$<INSTALL_INTERFACE:include>
)
endif()
if(NOT MAPBOX_VARIANT_INCLUDE_DIRS)
message(FATAL_ERROR "Set MAPBOX_VARIANT_INCLUDE_DIRS to the mapbox/variant include dir")
endif()
# (used by MapnikInstall.cmake. properties are needed since "set(...)" will be out of scope
set_property(GLOBAL PROPERTY TARGETS "")
set_property(GLOBAL PROPERTY PLUGINS "")
set_property(GLOBAL PROPERTY MAPNIK_UTILITIES "")
if(USE_GLIBC_WORKAROUND)
list(APPEND MAPNIK_COMPILE_DEFS MAPNIK_ENABLE_GLIBC_WORKAROUND)
endif()
if(USE_BIGINT)
list(APPEND MAPNIK_COMPILE_DEFS BIGINT)
endif()
if(USE_BOOST_FILESYSTEM)
list(APPEND MAPNIK_COMPILE_DEFS USE_BOOST_FILESYSTEM)
list(APPEND MAPNIK_OPTIONAL_LIBS Boost::filesystem)
endif()
if(USE_MEMORY_MAPPED_FILE)
list(APPEND MAPNIK_COMPILE_DEFS MAPNIK_MEMORY_MAPPED_FILE)
endif()
if(USE_NO_ATEXIT)
list(APPEND MAPNIK_COMPILE_DEFS MAPNIK_NO_ATEXIT)
endif()
if(USE_NO_DLCLOSE)
list(APPEND MAPNIK_COMPILE_DEFS MAPNIK_NO_DLCLOSE)
endif()
if(USE_DEBUG_OUTPUT)
list(APPEND MAPNIK_COMPILE_DEFS MAPNIK_DEBUG)
endif()
if(USE_LOG)
list(APPEND MAPNIK_COMPILE_DEFS MAPNIK_LOG MAPNIK_DEFAULT_LOG_SEVERITY=${USE_LOG_SEVERITY})
endif()
if(USE_STATS)
list(APPEND MAPNIK_COMPILE_DEFS MAPNIK_STATS)
endif()
if(USE_LIBXML2)
mapnik_find_package(LibXml2 REQUIRED)
list(APPEND MAPNIK_COMPILE_DEFS HAVE_LIBXML2)
list(APPEND MAPNIK_OPTIONAL_LIBS LibXml2::LibXml2)
endif()
if(USE_PNG)
mapnik_find_package(PNG REQUIRED)
list(APPEND MAPNIK_COMPILE_DEFS HAVE_PNG)
list(APPEND MAPNIK_OPTIONAL_LIBS PNG::PNG)
endif()
if(USE_JPEG)
mapnik_find_package(JPEG REQUIRED)
list(APPEND MAPNIK_COMPILE_DEFS HAVE_JPEG)
list(APPEND MAPNIK_OPTIONAL_LIBS JPEG::JPEG)
endif()
if(USE_TIFF)
mapnik_find_package(TIFF REQUIRED)
list(APPEND MAPNIK_COMPILE_DEFS HAVE_TIFF)
list(APPEND MAPNIK_OPTIONAL_LIBS TIFF::TIFF)
endif()
if(USE_WEBP)
mapnik_pkg_check_modules(WebP REQUIRED IMPORTED_TARGET libwebp)
list(APPEND MAPNIK_COMPILE_DEFS HAVE_WEBP)
list(APPEND MAPNIK_OPTIONAL_LIBS PkgConfig::WebP)
endif()
if(USE_CAIRO)
mapnik_pkg_check_modules(Cairo REQUIRED IMPORTED_TARGET cairo)
list(APPEND MAPNIK_COMPILE_DEFS HAVE_CAIRO)
list(APPEND MAPNIK_OPTIONAL_LIBS PkgConfig::Cairo)
endif()
if(USE_PROJ)
#https://proj.org/development/cmake.html
mapnik_find_package(PROJ QUIET)
# currently the cmake files are not installed, when installing proj via apt-get. So search via pkg-config
if(NOT PROJ_FOUND)
message(STATUS "PROJ not found via FindPROJ. Searching via pkg-config...")
mapnik_pkg_check_modules(PROJ REQUIRED IMPORTED_TARGET proj>=${PROJ_MIN_VERSION})
string(REGEX MATCH "([0-9]+)\.([0-9]+)\.([0-9]+)" _dummy "${PROJ_VERSION}")
set(PROJ_VERSION_MAJOR "${CMAKE_MATCH_1}")
set(PROJ_VERSION_MINOR "${CMAKE_MATCH_2}")
set(PROJ_VERSION_PATCH "${CMAKE_MATCH_3}")
list(APPEND MAPNIK_OPTIONAL_LIBS PkgConfig::PROJ)
else()
if(PROJ_VERSION VERSION_LESS PROJ_MIN_VERSION)
message(FATAL_ERROR "Proj needs to be at least version ${PROJ_MIN_VERSION}")
endif()
list(APPEND MAPNIK_OPTIONAL_LIBS ${PROJ_LIBRARIES})
list(APPEND MAPNIK_OPTIONAL_LIBS_INCLUDE $<BUILD_INTERFACE:${PROJ_INCLUDE_DIRS}>)
endif()
math(EXPR MAPNIK_PROJ_VERSION "${PROJ_VERSION_MAJOR}*10000 + ${PROJ_VERSION_MINOR}*100 + ${PROJ_VERSION_PATCH}" OUTPUT_FORMAT DECIMAL)
message(STATUS "Using mapnik PROJ version: ${MAPNIK_PROJ_VERSION}")
list(APPEND MAPNIK_COMPILE_DEFS MAPNIK_USE_PROJ MAPNIK_PROJ_VERSION=${MAPNIK_PROJ_VERSION})
endif()
if(USE_GRID_RENDERER)
list(APPEND MAPNIK_COMPILE_DEFS GRID_RENDERER)
endif()
if(USE_SVG_RENDERER)
list(APPEND MAPNIK_COMPILE_DEFS SVG_RENDERER)
endif()
if(NOT WIN32)
message(STATUS "Compiling with -DMAPNIK_HAS_DLCFN")
list(APPEND MAPNIK_COMPILE_DEFS MAPNIK_HAS_DLCFN)
list(APPEND MAPNIK_OPTIONAL_LIBS ${CMAKE_DL_LIBS})
endif()
if(NOT BUILD_SHARED_PLUGINS)
list(APPEND MAPNIK_COMPILE_DEFS MAPNIK_STATIC_PLUGINS)
endif()
# when building static, this have to be public so that all depending libs know about
if(NOT BUILD_SHARED_LIBS)
list(APPEND MAPNIK_COMPILE_DEFS MAPNIK_STATIC_DEFINE)
endif()
if(DISABLE_MAPNIK_AUTOSETUP)
list(APPEND MAPNIK_COMPILE_DEFS MAPNIK_DISABLE_AUTOSETUP)
endif()
# force utf-8 source code processing
# see https://docs.microsoft.com/de-de/cpp/build/reference/utf-8-set-source-and-executable-character-sets-to-utf-8?view=msvc-170
add_compile_options(
"$<$<CXX_COMPILER_ID:MSVC>:/utf-8>"
"$<$<CXX_COMPILER_ID:MSVC>:/EHsc>"
)
add_library(core INTERFACE)
add_library(mapnik::core ALIAS core)
target_include_directories(core INTERFACE
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
$<BUILD_INTERFACE:${MAPBOX_GEOMETRY_INCLUDE_DIRS}>
$<BUILD_INTERFACE:${MAPBOX_POLYLABEL_INCLUDE_DIRS}>
$<BUILD_INTERFACE:${MAPBOX_VARIANT_INCLUDE_DIRS}>
$<BUILD_INTERFACE:${MAPBOX_PROTOZERO_INCLUDE_DIRS}>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/deps>
$<INSTALL_INTERFACE:include>
${MAPNIK_OPTIONAL_LIBS_INCLUDE}
)
target_link_libraries(core INTERFACE
Threads::Threads
ICU::uc
ICU::data
ICU::i18n
Boost::headers
Boost::regex
Freetype::Freetype
${MAPNIK_OPTIONAL_LIBS}
)
target_compile_definitions(core INTERFACE ${MAPNIK_COMPILE_DEFS})
mapnik_install(core)
###
# forward declaring libraries to consume them when building static plugins (circle deps between mapnik <-> plugin_target)
add_library(mapnik "")
add_library(mapnik::mapnik ALIAS mapnik)
add_library(wkt STATIC "")
add_library(mapnik::wkt ALIAS wkt)
add_library(json STATIC "")
add_library(mapnik::json ALIAS json)
# end forward declaration
###
add_subdirectory(deps)
add_subdirectory(plugins)
add_subdirectory(src)
add_subdirectory(utils)
add_subdirectory(demo)
if(BUILD_BENCHMARK)
add_subdirectory(benchmark)
endif()
if(BUILD_TESTING)
add_subdirectory(test)
endif()
file(COPY fonts DESTINATION "${MAPNIK_OUTPUT_DIR}")
feature_summary(FILENAME "${CMAKE_CURRENT_BINARY_DIR}/packages.log" WHAT PACKAGES_FOUND PACKAGES_NOT_FOUND INCLUDE_QUIET_PACKAGES)
# start package mapnik
include(MapnikExport)
include(MapnikExportPkgConfig)
install(DIRECTORY include/mapnik/ DESTINATION "${MAPNIK_INCLUDE_DIR}/mapnik")
install(DIRECTORY deps/agg/include/ DESTINATION "${MAPNIK_INCLUDE_DIR}/mapnik/agg")
install(DIRECTORY deps/mapnik DESTINATION "${MAPNIK_INCLUDE_DIR}")
file(GLOB TTF_FONT_FILES "fonts/*/*/*.ttf")
install(FILES ${TTF_FONT_FILES} DESTINATION "${FONTS_INSTALL_DIR}")
if(NOT USE_EXTERNAL_MAPBOX_GEOMETRY)
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/deps/mapbox/geometry/include/" DESTINATION "${MAPNIK_INCLUDE_DIR}")
endif()
if(NOT USE_EXTERNAL_MAPBOX_POLYLABEL)
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/deps/mapbox/polylabel/include/" DESTINATION "${MAPNIK_INCLUDE_DIR}")
endif()
if(NOT USE_EXTERNAL_MAPBOX_PROTOZERO)
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/deps/mapbox/protozero/include/" DESTINATION "${MAPNIK_INCLUDE_DIR}")
endif()
if(NOT USE_EXTERNAL_MAPBOX_VARIANT)
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/deps/mapbox/variant/include/" DESTINATION "${MAPNIK_INCLUDE_DIR}")
endif()
mapnik_install_targets()
include(pack)

350
CMakePresets.json Normal file
View file

@ -0,0 +1,350 @@
{
"version": 6,
"cmakeMinimumRequired": {
"major": 3,
"minor": 25,
"patch": 0
},
"configurePresets": [
{
"name": "use-ninja",
"hidden": true,
"generator": "Ninja",
"cacheVariables": {
"CMAKE_EXPORT_COMPILE_COMMANDS": "ON"
}
},
{
"name": "default-build-dir",
"hidden": true,
"binaryDir": "${sourceDir}/build"
},
{
"name": "debug-build",
"hidden": true,
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"USE_DEBUG_OUTPUT": "ON",
"USE_LOG": "ON",
"USE_LOG_SEVERITY": "0"
}
},
{
"name": "release-with-debug-build",
"hidden": true,
"cacheVariables": {
"CMAKE_BUILD_TYPE": "RelWithDebInfo",
"USE_DEBUG_OUTPUT": "OFF",
"USE_LOG": "OFF"
}
},
{
"name": "release-build",
"hidden": true,
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"USE_DEBUG_OUTPUT": "OFF",
"USE_LOG": "OFF"
}
},
{
"name": "use-clang",
"hidden": true,
"inherits": [
"default-build-dir",
"use-ninja"
],
"cacheVariables": {
"CMAKE_C_COMPILER": "clang",
"CMAKE_CXX_COMPILER": "clang++",
"CMAKE_CXX_FLAGS": "-stdlib=libc++",
"CMAKE_EXE_LINKER_FLAGS": "-stdlib=libc++",
"CMAKE_SHARED_LINKER_FLAGS": "-stdlib=libc++"
}
},
{
"name": "use-gcc",
"hidden": true,
"inherits": [
"default-build-dir",
"use-ninja"
],
"cacheVariables": {
"CMAKE_C_COMPILER": "gcc",
"CMAKE_CXX_COMPILER": "g++"
}
},
{
"name": "use-msvc-cl",
"hidden": true,
"inherits": [
"default-build-dir",
"use-ninja"
],
"cacheVariables": {
"CMAKE_C_COMPILER": "cl",
"CMAKE_CXX_COMPILER": "cl"
}
},
{
"name": "use-msvc-clang-cl",
"hidden": true,
"inherits": [
"default-build-dir",
"use-ninja"
],
"cacheVariables": {
"CMAKE_C_COMPILER": "clang-cl",
"CMAKE_CXX_COMPILER": "clang-cl"
}
},
{
"name": "linux-clang-debug",
"displayName": "Linux clang debug",
"inherits": [
"use-clang",
"debug-build"
]
},
{
"name": "linux-clang-release",
"displayName": "Linux clang release",
"inherits": [
"use-clang",
"release-build"
]
},
{
"name": "linux-gcc-debug",
"displayName": "Linux gcc debug",
"inherits": [
"use-gcc",
"debug-build"
]
},
{
"name": "linux-gcc-release",
"displayName": "Linux gcc release",
"inherits": [
"use-gcc",
"release-build"
]
},
{
"name": "windows-arch-x64",
"hidden": true,
"architecture": {
"value": "x64",
"strategy": "external"
},
"toolset": {
"value": "host=x64",
"strategy": "external"
}
},
{
"name": "windows-default",
"displayName": "Windows x64 Debug",
"hidden": true,
"inherits": [
"use-msvc-cl",
"windows-arch-x64"
],
"vendor": {
"microsoft.com/VisualStudioSettings/CMake/1.0": {
"hostOS": [
"Windows"
]
}
}
},
{
"name": "windows-debug",
"displayName": "Windows x64 Debug",
"inherits": [
"windows-default",
"debug-build"
]
},
{
"name": "windows-release",
"displayName": "Windows x64 Release",
"inherits": [
"windows-default",
"release-build"
]
},
{
"name": "ci-options",
"hidden": true,
"cacheVariables": {
"BUILD_TESTING": "ON",
"BUILD_DEMO_VIEWER": "OFF",
"DISABLE_MAPNIK_AUTOSETUP": "ON"
},
"toolchainFile": "vcpkg/scripts/buildsystems/vcpkg.cmake"
},
{
"name": "windows-ci",
"description": "used by the ci pipeline",
"inherits": [
"windows-release",
"ci-options"
],
"cacheVariables": {
"INSTALL_DEPENDENCIES": "ON",
"ADDITIONAL_LIBARIES_PATHS": "${sourceDir}/build/vcpkg_installed/x64-windows/bin"
},
"environment": {
"PROJ_LIB": "${sourceDir}/build/vcpkg_installed/x64-windows/share/proj"
}
},
{
"name": "linux-ci",
"description": "used by the ci pipeline",
"inherits": [
"release-with-debug-build",
"use-gcc",
"ci-options"
],
"cacheVariables": {
"CMAKE_CXX_FLAGS": "--coverage"
},
"environment": {
"PROJ_LIB": "${sourceDir}/build/vcpkg_installed/x64-linux/share/proj"
}
},
{
"name": "linux-ci-release",
"description": "used by the ci pipeline for releasing",
"inherits": [
"release-build",
"linux-gcc-release"
],
"cacheVariables": {
"BUILD_TESTING": "OFF",
"BUILD_DEMO_VIEWER": "OFF",
"USE_MEMORY_MAPPED_FILE": "ON"
}
},
{
"name": "macos-ci-arm64",
"description": "used by the ci pipeline",
"inherits": [
"use-ninja",
"release-with-debug-build",
"default-build-dir",
"ci-options"
],
"cacheVariables": {
"CMAKE_CXX_FLAGS": "-fprofile-arcs -ftest-coverage"
},
"environment": {
"PROJ_LIB": "${sourceDir}/build/vcpkg_installed/arm64-osx/share/proj"
}
},
{
"name": "macos-ci-x64",
"description": "used by the ci pipeline",
"inherits": [
"use-ninja",
"release-with-debug-build",
"default-build-dir",
"ci-options"
],
"cacheVariables": {
"CMAKE_CXX_FLAGS": "-fprofile-arcs -ftest-coverage"
},
"environment": {
"PROJ_LIB": "${sourceDir}/build/vcpkg_installed/x64-osx/share/proj"
}
}
],
"buildPresets": [
{
"name": "windows-debug",
"configurePreset": "windows-debug"
},
{
"name": "windows-release",
"configurePreset": "windows-release"
},
{
"name": "linux-clang-debug",
"configurePreset": "linux-clang-debug"
},
{
"name": "linux-clang-release",
"configurePreset": "linux-clang-release"
},
{
"name": "linux-gcc-debug",
"configurePreset": "linux-gcc-debug"
},
{
"name": "linux-gcc-release",
"configurePreset": "linux-gcc-release"
},
{
"name": "windows-ci",
"configurePreset": "windows-ci"
},
{
"name": "linux-ci",
"configurePreset": "linux-ci"
},
{
"name": "linux-ci-release",
"configurePreset": "linux-ci-release"
},
{
"name": "macos-ci-arm64",
"configurePreset": "macos-ci-arm64"
},
{
"name": "macos-ci-x64",
"configurePreset": "macos-ci-x64"
}
],
"testPresets": [
{
"name": "test-default",
"hidden": true,
"output": {
"outputOnFailure": true
},
"execution": {
"noTestsAction": "error",
"stopOnFailure": false
}
},
{
"name": "windows-ci",
"configurePreset": "windows-ci",
"inherits": [
"test-default"
]
},
{
"name": "linux-ci",
"configurePreset": "linux-ci",
"inherits": [
"test-default"
]
},
{
"name": "macos-ci-arm64",
"configurePreset": "macos-ci-arm64",
"inherits": [
"test-default"
]
},
{
"name": "macos-ci-x64",
"configurePreset": "macos-ci-x64",
"inherits": [
"test-default"
]
}
]
}

22
CODE_OF_CONDUCT.md Normal file
View file

@ -0,0 +1,22 @@
# Contributor Code of Conduct
As contributors and maintainers of this project, and in the interest of fostering an open and welcoming community, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities.
We are committed to making participation in this project a harassment-free experience for everyone, regardless of level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, religion, or nationality.
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery
* Personal attacks
* Trolling or insulting/derogatory comments
* Public or private harassment
* Publishing other's private information, such as physical or electronic addresses, without explicit permission
* Other unethical or unprofessional conduct.
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct. By adopting this Code of Conduct, project maintainers commit themselves to fairly and consistently applying these principles to every aspect of managing this project. Project maintainers who do not follow or enforce the Code of Conduct may be permanently removed from the project team.
This code of conduct applies both within project spaces and in public spaces when an individual is representing the project or its community.
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by opening an issue or contacting one or more of the project maintainers.
This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org), version 1.2.0, available at [http://contributor-covenant.org/version/1/2/0/](http://contributor-covenant.org/version/1/2/0/)

View file

@ -1,25 +1,64 @@
# Mapnik Installation
Mapnik is cross platform and runs on Linux, Mac OSX, Solaris, *BSD, and Windows.
Mapnik runs on Linux, OS X, Windows, and BSD systems.
## Package managers
### vcpkg
To install mapnik with vcpkg type `vcpkg install mapnik`. It will install a minimal version of mapnik and all the needed dependencies.
To install more features, type `vcpkg search mapnik` to see all available features.
## Source build
First clone mapnik from github and initialize submodules
```bash
git clone https://github.com/mapnik/mapnik.git
cd mapnik
git submodule update --init
```
To configure and build Mapnik do:
./configure
make
```bash
./configure
make
```
To trigger parallel compilation you can pass a JOBS value to make:
```bash
JOBS=4 make
```
Mapnik needs > 2 GB of RAM to build. If you use parallel compilation it needs more.
If you are on a system with less memory make sure you only build with one JOB:
```bash
JOBS=1 make
```
To use a Python interpreter that is not named `python` for your build, do
something like the following instead:
```bash
$ PYTHON=python3 ./configure
$ make PYTHON=python3
```
NOTE: the above will not work on windows, rather see https://github.com/mapnik/mapnik/wiki/WindowsInstallation
Then to run the tests locally (without needing to install):
make test-local
make test
Install like:
sudo make install
make install
If you need to uninstall do:
sudo make uninstall
make uninstall
For more details see the `Building` Section below.
@ -32,47 +71,43 @@ For troubleshooting help see https://github.com/mapnik/mapnik/wiki/InstallationT
Build system dependencies are:
* C++ compiler (like g++ or clang++)
* >= 2 GB RAM
* Python 2.4-2.7
* Scons (a copy is bundled)
* C++ compiler supporting `-std=c++17` (like >= g++ 9 or >= clang++ 5)
* \>= 2 GB RAM (> 5 GB for g++)
* Python 3
* Scons (a copy is bundled) or CMake >= 3.15 see [docs/cmake-usage.md](./docs/cmake-usage.md)
Mapnik Core depends on:
* Boost
- >= 1.47 is required.
- \>= 1.73 is required
- These libraries are used:
- filesystem
- system
- thread (if mapnik threadsafe support is required, default on)
- regex (optionally built with icu regex support)
- program_options (optionally for mapnik command line programs)
* libicuuc >= 4.0 (ideally >= 4.2) - International Components for Unicode
* libpng >= 1.2.x - PNG graphics
* libjpeg - JPEG graphics
* libtiff - TIFF graphics
* libz - Zlib compression
* libfreetype - Freetype2 for font support (Install requires freetype-config)
* libxml2 - XML parsing (Install requires xml2-config)
* libproj - PROJ.4 projection library
* libharfbuzz - an OpenType text shaping engine (>=0.9.34 needed for CSS font-feature-settings support)
Mapnik Python bindings depend on:
Mapnik Core optionally depends on:
* Python 2.5-2.7 or >= 3.2
* Boost python
* libpng >= 1.2.x - PNG graphics (Default enabled, if found)
* libjpeg - JPEG graphics (Default enabled, if found)
* libtiff - TIFF graphics (Default enabled, if found)
* libwebp - WEBP graphics (Default enabled, if found)
* libproj >= 7.2.0 - PROJ projection library (Default enabled, if found)
Note: Python3k is supported, see: https://github.com/mapnik/mapnik/wiki/Python3k
Additional optional dependencies:
Optional dependencies:
* Cairo - Graphics library for output formats like PDF, PS, and SVG
* Cairo >= 1.6.0 - Graphics library for output formats like PDF, PS, and SVG
- pkg-config - Required for building with cairo support
- pycairo - Python bindings for cairo
* libpq - PostgreSQL libraries (For PostGIS plugin support)
* libgdal - GDAL/OGR input (For gdal and ogr plugin support)
* PostgreSQL (for PostGIS plugin support)
- libpq - PostreSQL libraries
- pg_config - PostgreSQL installation capabilities
* libgdal - GDAL/OGR input (For gdal and ogr plugin support) (>= GDAL 2.0.2 for thread safety - https://github.com/mapnik/mapnik/issues/3339)
* libsqlite3 - SQLite input (needs RTree support builtin) (sqlite plugin support)
* libocci - Oracle input plugin support
* libcurl - OSM input plugin support
Instructions for installing many of these dependencies on
various platforms can be found at the Mapnik Wiki:
@ -133,17 +168,13 @@ For more details on usage see:
You can run the Mapnik tests locally (without installing) like:
make test-local # see the Makefile for how this works
make test
Or you can install and test like:
## Python Bindings
make install && make test
Many of the tests are written in python and you can run them individually like:
make install
python tests/python_tests/shapefile_test.py
Python bindings are not included by default. You'll need to add those separately.
* Build from source: https://github.com/mapnik/python-mapnik
## Learning Mapnik
@ -160,7 +191,7 @@ If you need help or want to participate starting points include:
### Cartographers
TileMill, which uses Mapnik internally, offers great step by step tutorials for
learning advanced map styling: http://mapbox.com/tilemill/docs/crashcourse/introduction/
learning advanced map styling: https://tilemill-project.github.io/tilemill/docs/crashcourse/introduction/
### Programmers
@ -168,6 +199,6 @@ Mapnik is great for building your own mapping applications. Visit
https://github.com/mapnik/mapnik/wiki/LearningMapnik for basic
tutorials on how to programmatically use Mapnik.
### Contributers
### Contributors
Read docs/contributing.markdown for resources for getting involved with Mapnik development.
Read [docs/contributing.md](docs/contributing.md) for resources for getting involved with Mapnik development.

112
Makefile
View file

@ -1,43 +1,68 @@
UNAME := $(shell uname)
LINK_FIX=LD_LIBRARY_PATH
ifeq ($(UNAME), Darwin)
LINK_FIX=DYLD_LIBRARY_PATH
else
endif
OS:=$(shell uname -s)
OS := $(shell uname -s)
ifeq ($(JOBS),)
JOBS:=1
ifeq ($(OS),Linux)
JOBS:=$(shell grep -c ^processor /proc/cpuinfo)
endif
ifeq ($(OS),Darwin)
JOBS:=$(shell sysctl -n hw.ncpu)
endif
endif
ifeq ($(HEAVY_JOBS),)
HEAVY_JOBS:=1
endif
all: mapnik
install:
@python scons/scons.py -j$(JOBS) --config=cache --implicit-cache --max-drift=1 install
$(PYTHON) scons/scons.py -j$(JOBS) --config=cache --implicit-cache --max-drift=1 install
mapnik:
@python scons/scons.py -j$(JOBS) --config=cache --implicit-cache --max-drift=1
release:
./scripts/publish_release.sh
test-release:
./scripts/test_release.sh
src/json/libmapnik-json.a:
# we first build memory intensive files with -j$(HEAVY_JOBS)
$(PYTHON) scons/scons.py -j$(HEAVY_JOBS) \
--config=cache --implicit-cache --max-drift=1 \
src/renderer_common/render_group_symbolizer.os \
src/renderer_common/render_markers_symbolizer.os \
src/renderer_common/render_thunk_extractor.os \
src/json/libmapnik-json.a \
src/wkt/libmapnik-wkt.a \
src/css/css_grammar_x3.os \
src/css/css_color_grammar_x3.os \
src/expression_grammar_x3.os \
src/transform_expression_grammar_x3.os \
src/image_filter_grammar_x3.os \
src/marker_helpers.os \
src/svg/svg_transform_parser.os \
src/agg/process_line_symbolizer.os \
plugins/input/geojson/geojson_datasource.os \
src/svg/svg_path_parser.os \
src/svg/svg_parser.os \
src/svg/svg_points_parser.os \
src/svg/svg_transform_parser.os \
mapnik: src/json/libmapnik-json.a
# then install the rest with -j$(JOBS)
$(PYTHON) scons/scons.py -j$(JOBS) --config=cache --implicit-cache --max-drift=1
clean:
@python scons/scons.py -j$(JOBS) -c --config=cache --implicit-cache --max-drift=1
@$(PYTHON) scons/scons.py -j$(JOBS) -c --config=cache --implicit-cache --max-drift=1
@if test -e ".sconsign.dblite"; then rm ".sconsign.dblite"; fi
@if test -e "config.log"; then rm "config.log"; fi
@if test -e "config.log"; then rm "config.log"; fi
@if test -e "config.cache"; then rm "config.cache"; fi
@if test -e ".sconf_temp/"; then rm -r ".sconf_temp/"; fi
@find ./ -name "*.pyc" -exec rm {} \;
@find ./ -name "*.os" -exec rm {} \;
@find ./src/ -name "*.dylib" -exec rm {} \;
@find ./src/ -name "*.so" -exec rm {} \;
@find ./ -name "*.o" -exec rm {} \;
@find ./ -name "*.pyc" -exec rm {} \;
@if test -e "bindings/python/mapnik/paths.py"; then rm "bindings/python/mapnik/paths.py"; fi
@find ./src/ -name "*.a" -exec rm {} \;
@find ./ -name "*.gcda" -exec rm {} \;
@find ./ -name "*.gcno" -exec rm {} \;
distclean:
@if test -e "config.cache"; then rm "config.cache"; fi
if test -e "config.py"; then mv "config.py" "config.py.backup"; fi
reset: distclean
@ -46,40 +71,35 @@ rebuild:
make uninstall && make clean && time make && make install
uninstall:
@python scons/scons.py -j$(JOBS) --config=cache --implicit-cache --max-drift=1 uninstall
@$(PYTHON) scons/scons.py -j$(JOBS) --config=cache --implicit-cache --max-drift=1 uninstall
test:
@ ./run_tests
test/data-visual:
./scripts/ensure_test_data.sh
test-local:
@echo "*** Boostrapping local test environment..."
@export ${LINK_FIX}=`pwd`/src:${${LINK_FIX}} && \
export PATH=`pwd`/utils/mapnik-config/:${PATH} && \
export PYTHONPATH=`pwd`/bindings/python/:${PYTHONPATH} && \
export MAPNIK_FONT_DIRECTORY=`pwd`/fonts/dejavu-fonts-ttf-2.33/ttf/ && \
export MAPNIK_INPUT_PLUGINS_DIRECTORY=`pwd`/plugins/input/ && \
make test
test/data:
./scripts/ensure_test_data.sh
test: ./test/data test/data-visual
@./test/run
check: test
bench:
@export ${LINK_FIX}=`pwd`/src:${${LINK_FIX}} && \
./benchmark/run
check: test-local
demo:
@echo "*** Running rundemo.cpp…"
cd demo/c++; ./rundemo `mapnik-config --prefix`/lib/mapnik
pep8:
# https://gist.github.com/1903033
# gsed on osx
@pep8 -r --select=W293 -q --filename=*.py `pwd`/tests/ | xargs gsed -i 's/^[ \r\t]*$//'
@pep8 -r --select=W391 -q --filename=*.py `pwd`/tests/ | xargs gsed -i -e :a -e '/^\n*$/{$d;N;ba' -e '}'
cd demo/c++; ./rundemo `mapnik-config --prefix`
# note: pass --gen-suppressions=yes to create new suppression entries
grind:
@for FILE in tests/cpp_tests/*-bin; do \
valgrind --leak-check=full --log-fd=1 $${FILE} | grep definitely; \
@source localize.sh && \
valgrind --suppressions=./test/unit/valgrind.supp --leak-check=full --log-fd=1 ./test/visual/run | grep definitely;
@source localize.sh && \
for FILE in test/standalone/*-bin; do \
valgrind --suppressions=./test/unit/valgrind.supp --leak-check=full --log-fd=1 $${FILE} | grep definitely; \
done
@source localize.sh && \
valgrind --suppressions=./test/unit/valgrind.supp --leak-check=full --log-fd=1 ./test/unit/run | grep definitely;
render:
@for FILE in tests/data/good_maps/*xml; do \

View file

@ -8,23 +8,23 @@ _/ _/ _/_/_/ _/_/_/ _/ _/ _/ _/ _/
_/
```
[![Build Status](https://secure.travis-ci.org/mapnik/mapnik.png)](http://travis-ci.org/mapnik/mapnik)
[![TravisCI](https://api.travis-ci.com/mapnik/mapnik.svg?branch=master)](http://travis-ci.com/mapnik/mapnik)
[![codecov](https://codecov.io/gh/mapnik/mapnik/branch/master/graph/badge.svg)](https://codecov.io/gh/mapnik/mapnik)
# What is Mapnik?
Mapnik is an open source toolkit and API for developing mapping applications. At the core is a C++ shared library providing algorithms and patterns for spatial data access and visualization. High-level bindings for Java, JavaScript, Python, and Ruby facilitate rapid application development in a variety of environments.
# Overview
Mapnik is an open source toolkit for developing mapping applications. At the core is a C++ shared library providing algorithms and patterns for spatial data access and visualization.
Mapnik is basically a collection of geographic objects like maps, layers, datasources, features, and geometries. The library doesn't rely on any OS specific "windowing systems" and it can be deployed to any server environment. It is intended to play fair in a multi-threaded environment and is aimed primarily, but not exclusively, at web-based development.
For further information see [http://mapnik.org](http://mapnik.org) and also our [wiki documentation](https://github.com/mapnik/mapnik/wiki) here on GitHub.
For further information see [http://mapnik.org](http://mapnik.org) and also our [wiki documentation](https://github.com/mapnik/mapnik/wiki).
# Installation
See [INSTALL.md](https://github.com/mapnik/mapnik/blob/master/INSTALL.md) for installation instructions.
See [INSTALL.md](INSTALL.md) for installation instructions and the [Install](https://github.com/mapnik/mapnik/wiki/Mapnik-Installation) page on the wiki for guides.
# Code of Conduct
Please note that this project is released with a [Contributor Code of Conduct](https://github.com/mapnik/mapnik/blob/master/CODE_OF_CONDUCT.md). By participating in this project you agree to abide by its terms.
# License
Mapnik software is free and is released under LGPL ([GNU Lesser General Public License](http://www.gnu.org/licenses/lgpl.html_). Please see [COPYING](https://github.com/mapnik/mapnik/blob/master/COPYING) for more information.
Mapnik software is free and is released under the LGPL v2.1 ([GNU Lesser General Public License, version 2.1](https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html)). Please see [COPYING](https://github.com/mapnik/mapnik/blob/master/COPYING) for more information.

1752
SConstruct

File diff suppressed because it is too large Load diff

6
benchmark/.gitignore vendored Normal file
View file

@ -0,0 +1,6 @@
multicolor-hextree-actual.png
multicolor-hextree-actual.png
polygon_clipping_boost_actual.png
polygon_clipping_clipper_actual.png
polygon_clipping_agg_actual.png
out

52
benchmark/CMakeLists.txt Normal file
View file

@ -0,0 +1,52 @@
project(mapnik-benchmark)
set(BENCHMARK_SRCS
src/normalize_angle.cpp
src/test_array_allocation.cpp
src/test_expression_parse.cpp
src/test_face_ptr_creation.cpp
src/test_font_registration.cpp
src/test_getline.cpp
src/test_marker_cache.cpp
src/test_noop_rendering.cpp
src/test_numeric_cast_vs_static_cast.cpp
src/test_offset_converter.cpp
src/test_png_encoding1.cpp
src/test_png_encoding2.cpp
src/test_polygon_clipping_rendering.cpp
src/test_polygon_clipping.cpp
src/test_proj_transform1.cpp
src/test_quad_tree.cpp
src/test_rendering_shared_map.cpp
src/test_rendering.cpp
src/test_to_bool.cpp
src/test_to_double.cpp
src/test_to_int.cpp
src/test_to_string1.cpp
src/test_to_string2.cpp
src/test_utf_encoding.cpp
)
function(mapnik_create_benchmark)
get_filename_component(BENCHNAME ${ARGV0} NAME_WE)
set(TARGET_NAME "mapnik-benchmark-${BENCHNAME}")
add_executable(${TARGET_NAME} ${ARGV0})
target_include_directories(${TARGET_NAME} PRIVATE include)
target_link_libraries(${TARGET_NAME} PRIVATE
mapnik::agg
mapnik::mapnik
ICU::data ICU::i18n ICU::uc # needed for the static build (TODO: why isn't this correctly propagated from mapnik::mapnik?)
)
set_target_properties(${TARGET_NAME} PROPERTIES
OUTPUT_NAME "${BENCHNAME}"
)
endfunction()
foreach(benchmark ${BENCHMARK_SRCS})
mapnik_create_benchmark(${benchmark})
endforeach()
file(COPY data DESTINATION "${MAPNIK_OUTPUT_DIR}/benchmark")
file(COPY run_benchmarks
DESTINATION "${MAPNIK_OUTPUT_DIR}"
FILE_PERMISSIONS OWNER_READ OWNER_EXECUTE OWNER_WRITE GROUP_WRITE GROUP_READ GROUP_EXECUTE WORLD_READ
)

View file

@ -1,49 +0,0 @@
#include <mapnik/geometry.hpp>
#include <mapnik/wkt/wkt_factory.hpp>
#define BOOST_CHRONO_HEADER_ONLY
#include <boost/chrono/process_cpu_clocks.hpp>
#include <boost/chrono.hpp>
#include <boost/thread/thread.hpp>
using namespace boost::chrono;
using namespace mapnik;
void threaded_benchmark(void test(),std::string const& name, unsigned threads) {
using namespace boost::chrono;
typedef process_cpu_clock clock_type;
process_real_cpu_clock::time_point start = process_real_cpu_clock::now();
boost::thread_group threads;
for (unsigned i=0;i<threads;++i)
{
threads.create_thread(test);
}
threads.join_all();
clock_type::duration elapsed = process_real_cpu_clock::now() - start;
std::clog << boost::chrono::duration_cast<milliseconds>(elapsed)
<< " (" << boost::chrono::duration_cast<seconds>(elapsed) << ")"
<< " <-- " << name << "\n";
}
void test_wkt_creation()
{
boost::ptr_vector<mapnik::geometry_type> paths;
mapnik::wkt_parser parse_wkt;
std::string value("GEOMETRYCOLLECTION(MULTIPOLYGON (((40 40, 20 45, 45 30, 40 40)),((20 35, 45 20, 30 5, 10 10, 10 30, 20 35),(30 20, 20 25, 20 15, 30 20))),POINT(2 3),LINESTRING(2 3,3 4),MULTIPOLYGON (((40 40, 20 45, 45 30, 40 40)),((20 35, 45 20, 30 5, 10 10, 10 30, 20 35),(30 20, 20 25, 20 15, 30 20))),MULTIPOLYGON (((40 40, 20 45, 45 30, 40 40)),((20 35, 45 20, 30 5, 10 10, 10 30, 20 35),(30 20, 20 25, 20 15, 30 20))),MULTIPOLYGON (((40 40, 20 45, 45 30, 40 40)),((20 35, 45 20, 30 5, 10 10, 10 30, 20 35),(30 20, 20 25, 20 15, 30 20))))");
if (!parse_wkt.parse(value, paths)) std::clog << "failed to parse\n";
int iterations = 10000;
typedef process_cpu_clock clock_type;
process_real_cpu_clock::time_point start = process_real_cpu_clock::now();
for (int i=0;i<iterations;++i) {
parse_wkt.parse(value, paths);
}
clock_type::duration elapsed = process_real_cpu_clock::now() - start;
std::clog << "elapsed: " << boost::chrono::duration_cast<milliseconds>(elapsed) << "\n";
}
int main( int, char*[] )
{
return 0;
}

View file

@ -6,21 +6,32 @@ Import ('env')
test_env = env.Clone()
test_env['LIBS'] = copy(env['LIBMAPNIK_LIBS'])
test_env.AppendUnique(LIBS='mapnik')
#test_env.AppendUnique(LIBS='sqlite3')
test_env['LIBS'] = [env['MAPNIK_NAME']]
test_env.AppendUnique(LIBS=copy(env['LIBMAPNIK_LIBS']))
test_env.AppendUnique(LIBS='mapnik-wkt')
test_env.AppendUnique(LIBS='sqlite3')
if env['PLATFORM'] == 'Linux':
test_env.AppendUnique(LIBS='dl')
test_env.AppendUnique(LIBS='rt')
test_env.AppendUnique(CXXFLAGS='-g')
linkflags = copy(env['CUSTOM_LDFLAGS'])
linkflags
test_env['CXXFLAGS'] = copy(test_env['LIBMAPNIK_CXXFLAGS'])
test_env.Append(CPPDEFINES = env['LIBMAPNIK_DEFINES'])
if test_env['HAS_CAIRO']:
test_env.PrependUnique(CPPPATH=test_env['CAIRO_CPPPATHS'])
test_env.Append(CPPDEFINES = '-DHAVE_CAIRO')
test_env.PrependUnique(CPPPATH='include', delete_existing=True)
test_env['LINKFLAGS'] = copy(test_env['LIBMAPNIK_LINKFLAGS'])
if env['PLATFORM'] == 'Darwin':
linkflags += ' -F/ -framework CoreFoundation'
test_env.Append(LINKFLAGS='-F/ -framework CoreFoundation')
for cpp_test in glob.glob('run*.cpp'):
name = cpp_test.replace('.cpp','')
source_files = [cpp_test]
test_env_local = test_env.Clone()
test_program = test_env_local.Program(name, source=source_files, LINKFLAGS=linkflags)
Depends(test_program, env.subst('../src/%s' % env['MAPNIK_LIB_NAME']))
# build locally if installing
test_env_local = test_env.Clone()
benchmarks = glob.glob("src/*.cpp")
for src in benchmarks:
name, ext = os.path.splitext(os.path.basename(src))
out = os.path.join("out", name)
test_program = test_env_local.Program(out, source=[src])
if 'install' in COMMAND_LINE_TARGETS:
env.Alias('install',test_program)
#Depends(test_program, env.subst('../src/%s' % env['MAPNIK_LIB_NAME']))

View file

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE Map[]>
<Map
srs="epsg:4326"
background-color="#dfd8c9">
<Style name="style">
<Rule>
<RasterSymbolizer />
</Rule>
</Style>
<Layer name="layer"
srs="epsg:4326">
<StyleName>style</StyleName>
<Datasource>
<Parameter name="file">./valid.geotiff.tif</Parameter>
<Parameter name="type">gdal</Parameter>
</Datasource>
</Layer>
</Map>

View file

@ -1 +1 @@
MULTIPOLYGON (((30 20, 10 40, 45 40, 30 20)),((15 5, 40 10, 10 20, 5 10, 15 5)))
POLYGON ((155 203, 233 454, 315 340, 421 446, 463 324, 559 466, 665 253, 528 178, 394 229, 329 138, 212 134, 183 228, 200 264, 155 203),(313 190, 440 256, 470 248, 510 305, 533 237, 613 263, 553 397, 455 262, 405 378, 343 287, 249 334, 229 191, 313 190))

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

View file

@ -0,0 +1,14 @@
<Map srs="+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over" background-color="steelblue">
<Style name="style">
<Rule>
<PolygonSymbolizer clip="true"/>
</Rule>
</Style>
<Layer name="world" srs="+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over">
<StyleName>style</StyleName>
<Datasource>
<Parameter name="file">../../test/data/shp/world_merc.shp</Parameter>
<Parameter name="type">shape</Parameter>
</Datasource>
</Layer>
</Map>

View file

@ -0,0 +1,14 @@
<Map srs="+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over" background-color="steelblue">
<Style name="style">
<Rule>
<PolygonSymbolizer clip="false"/>
</Rule>
</Style>
<Layer name="world" srs="+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over">
<StyleName>style</StyleName>
<Datasource>
<Parameter name="file">../../test/data/shp/world_merc.shp</Parameter>
<Parameter name="type">shape</Parameter>
</Datasource>
</Layer>
</Map>

View file

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE Map[]>
<Map
srs="epsg:4326"
background-color="#dfd8c9">
<Style name="style">
<Rule>
<RasterSymbolizer />
</Rule>
</Style>
<Layer name="layer"
srs="epsg:4326">
<StyleName>style</StyleName>
<Datasource>
<Parameter name="file">./valid.geotiff.tif</Parameter>
<Parameter name="type">raster</Parameter>
</Datasource>
</Layer>
</Map>

853
benchmark/data/roads.csv Normal file
View file

@ -0,0 +1,853 @@
WKT,fid,type,tunnel,bridge,oneway,class,z_order,z
"LINESTRING (1478464.087426564656198 6892271.151913832873106,1478475.106973737478256 6892349.655597596429288)",312,service,1,0,1,minorroads,-10,-1
"LINESTRING (1478267.685692099155858 6891978.835526627488434,1478231.305324257584289 6891833.51674110814929,1478229.896389777539298 6891821.759523851796985,1478231.40796187100932 6891811.979739548638463,1478234.552405048860237 6891804.43797043338418,1478240.58003204013221 6891797.938565328717232,1478264.75585483526811 6891788.741302938200533,1478317.1663514142856 6891772.262900795787573,1478340.17583771632053 6891781.920006790198386,1478348.685428757686168 6891803.794161200523376,1478402.16895490931347 6892023.780644913204014,1478450.679222259437665 6892216.85436431504786,1478464.087426564656198 6892271.151913832873106,1478454.672758408589289 6892353.104810423217714)",313,service,1,0,1,minorroads,-10,-1
"LINESTRING (1478426.895288528874516 6891709.308051269501448,1478411.676929988665506 6891698.869274341501296,1478398.007466310635209 6891695.573628057725728,1478379.514034900348634 6891705.552542590536177,1478372.413378342054784 6891719.700855853967369,1478378.730256776325405 6891746.357388046570122,1478416.519559100735933 6891913.901618065312505,1478440.583413592772558 6892016.652565392665565,1478431.719256255310029 6892045.870066974312067,1478463.555577126098797 6892169.547425043769181,1478450.679222259437665 6892216.85436431504786)",315,service,1,0,1,minorroads,-10,-1
"LINESTRING (1478079.075085395481437 6891736.240464904345572,1478104.715826825471595 6891790.366151860915124,1478111.42459432175383 6891812.884139166213572,1478111.919120994396508 6891834.559102791361511,1478109.614440086763352 6891846.147721174173057)",334,service,1,0,0,minorroads,-10,-1
"LINESTRING (1478454.672758408589289 6892353.104810423217714,1478458.218421341385692 6892374.581942255608737,1478466.532067854423076 6892390.463712620548904,1478477.467638794099912 6892401.945822895504534,1478492.303438970819116 6892407.924498297274113)",352,service,1,0,0,minorroads,-10,-1
"LINESTRING (1478295.649775819852948 6892148.408088837750256,1478302.451850236626342 6892175.740540593862534,1478344.449294621357694 6892185.352142740041018,1478371.359010152285919 6892210.707205789163709,1478358.342694909079 6892292.506188929080963)",371,footway,1,0,0,minorroads,-10,-1
"LINESTRING (1478404.315014054765925 6892179.250996824353933,1478397.699553476180881 6892180.93724271748215,1478392.530350143555552 6892182.255580662749708,1478371.359010152285919 6892210.707205789163709,1478418.786917239660397 6892247.360282902605832)",372,footway,1,0,0,minorroads,-10,-1
"LINESTRING (1478380.437773400917649 6892134.381656404584646,1478402.747457809513435 6892127.958631582558155)",386,footway,1,0,0,minorroads,-10,-1
"LINESTRING (1478402.16895490931347 6892023.780644913204014,1478431.719256255310029 6892045.870066974312067)",387,service,1,0,1,minorroads,-10,-1
"LINESTRING (1478302.451850236626342 6892175.740540593862534,1478279.339726323960349 6892178.407874005846679)",388,footway,1,0,0,minorroads,-10,-1
"LINESTRING (1478440.583413592772558 6892016.652565392665565,1478459.888615197036415 6892053.703318660147488,1478482.851448043249547 6892145.54148262552917,1478463.555577126098797 6892169.547425043769181)",390,service,1,0,1,minorroads,-10,-1
"LINESTRING (1478402.16895490931347 6892023.780644913204014,1478391.01877805008553 6892079.79377365577966,1478402.747457809513435 6892127.958631582558155,1478416.584873942658305 6892184.692973483353853,1478450.679222259437665 6892216.85436431504786)",391,service,1,0,1,minorroads,-10,-1
"LINESTRING (1478392.530350143555552 6892182.255580662749708,1478380.437773400917649 6892134.381656404584646,1478354.479788446333259 6892046.069347251206636)",392,footway,1,0,0,minorroads,-10,-1
"LINESTRING (1478352.147115462692454 6891731.442595199681818,1478363.101347791031003 6891774.746155516244471,1478421.539471358293667 6892018.967274392023683,1478431.719256255310029 6892045.870066974312067)",393,service,1,0,1,minorroads,-10,-1
"LINESTRING (1478289.006323162466288 6891573.850262156687677,1478287.961285665631294 6891604.6449805945158,1478304.653893533628434 6891631.25514588970691)",397,service,1,0,1,minorroads,-10,-1
"LINESTRING (1478316.746470273472369 6891546.32058884575963,1478314.525765596190467 6891576.70133616309613)",400,service,1,0,1,minorroads,-10,-1
"LINESTRING (1478352.874909435166046 6891537.000988053157926,1478335.267893759533763 6891583.292532620951533,1478318.957844263641164 6891610.699705163016915,1478266.771284291520715 6891649.189465964213014)",402,path,1,0,1,minorroads,-10,-1
"LINESTRING (1478304.653893533628434 6891544.619147759862244,1478289.006323162466288 6891573.850262156687677)",403,service,1,0,1,minorroads,-10,-1
"LINESTRING (1478304.653893533628434 6891631.25514588970691,1478325.004132634960115 6891655.259552592411637,1478338.570958702359349 6891679.785201796330512,1478352.147115462692454 6891731.442595199681818)",404,service,1,0,1,minorroads,-10,-1
"LINESTRING (1478189.345202641561627 6892164.39671871624887,1478191.565907321637496 6892107.493896978907287)",417,footway,1,0,0,minorroads,-10,-1
"LINESTRING (1477341.726486198138446 6891879.672032723203301,1477366.966007873183116 6891868.589220155961812)",487,service,1,0,0,minorroads,-10,-1
"LINESTRING (1477280.535808509448543 6891906.926925845444202,1477314.966061739251018 6891890.785518474876881,1477341.726486198138446 6891879.672032723203301)",488,service,1,0,0,minorroads,-10,-1
"LINESTRING (1477246.96397894108668 6891938.244107788428664,1477280.535808509448543 6891906.926925845444202)",489,service,1,0,0,minorroads,-10,-1
"LINESTRING (1477089.116663535358384 6890956.187384136021137,1477095.414880589582026 6891011.595310922712088)",498,footway,1,0,0,minorroads,-10,-1
"LINESTRING (1477776.443423286313191 6890246.309983272105455,1477868.845265486976132 6890131.995495325885713)",499,footway,1,0,0,minorroads,-10,-1
"LINESTRING (1477507.896778806811199 6891126.826628868468106,1477488.684884120011702 6891123.347287161275744,1477444.914608268765733 6891146.583800435997546,1477413.610136836534366 6891170.065622186288238,1477406.453496126458049 6891175.721502039581537)",571,service,1,0,0,minorroads,-10,-1
"LINESTRING (1477741.089431561529636 6891515.342154928483069,1477664.167207277147099 6891575.812291472218931,1477687.456614337861538 6891609.488759884610772)",584,service,1,0,0,minorroads,-10,-1
"LINESTRING (1477226.557755685178563 6892508.796153583563864,1477223.683902570279315 6892523.712388763204217)",605,footway,1,0,0,minorroads,-10,-1
"LINESTRING (1478367.953307596268132 6891647.825229956768453,1478351.279361113905907 6891651.197499162517488,1478335.519822442205623 6891655.826707382686436,1478312.034470850601792 6891667.031854874454439,1478293.233126608654857 6891676.167663832195103,1478279.554332237923518 6891684.153840911574662)",40,motorway_link,1,0,1,motorways,-7,0
"LINESTRING (1478264.074714324669912 6891662.709210627712309,1478309.907073091017082 6891635.777043334208429,1478332.132781271822751 6891620.126690473407507,1478345.130435132188722 6891607.143511951901019,1478354.162544921739027 6891591.585185151547194,1478362.989379487698898 6891563.457646118476987)",321,unclassified,1,0,1,minorroads,-7,0
"LINESTRING (1477870.207546508172527 6890978.105273565277457,1477871.81242551933974 6890936.997784550301731)",115,secondary,1,0,0,mainroads,-5,0
"LINESTRING (1477698.952026794664562 6891185.101994454860687,1477704.662410258548334 6891180.672316116280854,1477801.412354895845056 6891105.552087247371674)",143,secondary,1,0,0,mainroads,-5,0
"LINESTRING (1479215.254780515097082 6891069.072816937230527,1479243.134888005442917 6891128.374706505797803,1479276.548095814418048 6891179.446108014322817)",694,light_rail,1,0,0,railways,-3,0
"LINESTRING (1477683.612369260750711 6890631.518402252346277,1477781.108769256155938 6890678.065286220051348)",734,light_rail,1,0,0,railways,-3,0
"LINESTRING (1477349.396314963698387 6890405.439559964463115,1477377.099139308556914 6890438.206881085410714,1477405.483104167273268 6890465.763412615284324)",756,light_rail,1,0,0,railways,-3,0
"LINESTRING (1477401.172324493527412 6890470.315307054668665,1477373.534814990125597 6890442.390931232832372,1477344.973566989181563 6890408.949243260547519)",763,light_rail,1,0,0,railways,-3,0
"LINESTRING (1477714.347668485715985 6890670.003475363366306,1477654.761869808426127 6890641.77187445666641)",765,light_rail,1,0,0,railways,-3,0
"LINESTRING (1479016.87493935925886 6890040.272282585501671,1478980.289296296890825 6890061.804538452997804,1478944.888651107437909 6890084.838752162642777,1478893.905750391772017 6890130.064469543285668,1478869.048787088599056 6890161.77319775428623,1478842.530960619682446 6890196.347961265593767,1478810.134798231767491 6890258.739233900792897,1478777.253439866937697 6890329.912772791460156)",19,motorway,1,0,1,motorways,-1,0
"LINESTRING (1478758.974614370847121 6890316.165379947982728,1478791.501406445167959 6890245.313804953359067,1478827.919097055448219 6890179.964776864275336,1478850.14480523345992 6890142.815378563478589,1478874.553895328659564 6890110.171865802258253,1478923.16680029197596 6890062.616788381710649,1478958.455477175069973 6890037.95814321283251,1478997.037888313643634 6890015.629031332209706)",21,motorway,1,0,1,motorways,-1,0
"LINESTRING (1479020.635208208812401 6892437.128092028200626,1479011.145894512534142 6892381.664349486120045,1479006.648501003393903 6892345.654512577690184,1479018.862376742530614 6892314.12112672906369,1479040.462928561726585 6892294.161799130029976,1479017.65871748351492 6892284.044186560437083)",180,footway,0,0,0,minorroads,0,0
"LINESTRING (1479020.635208208812401 6892437.128092028200626,1479068.343036052072421 6892505.88342846557498,1479114.138072055066004 6892537.938793009147048,1479148.503010437591001 6892548.945877370424569,1479190.491124129621312 6892566.407007291913033,1479238.338912354782224 6892590.107600770890713,1479258.381238624453545 6892602.448493731208146,1479338.130662565119565 6892645.69542468432337,1479404.201292129000649 6892683.055686702951789,1479430.168607773724943 6892698.094889210537076,1479544.040372106945142 6892763.203769372776151)",181,footway,0,0,0,minorroads,0,0
"LINESTRING (1479045.072290376992896 6892170.589830297976732,1479020.971113116247579 6892174.437533211894333,1479002.925554922781885 6892173.946989312767982,1478997.952296121278778 6892171.632235683500767,1478992.381873039528728 6892169.087540414184332,1478988.360344814369455 6892166.251585789956152,1478981.390317942481488 6892158.372236031107605,1478979.636147862067446 6892149.9870221093297,1478980.55055566970259 6892139.19509603176266,1478990.749001952353865 6892115.465173177421093,1479012.517506226664409 6892082.706344389356673,1479051.342515352414921 6892039.569746791385114,1479037.383800225798041 6892032.27303178049624,1479034.351325348485261 6892030.126940387301147)",182,footway,0,0,0,minorroads,0,0
"LINESTRING (1478942.052120761480182 6892225.622887848876417,1478944.244833362754434 6892195.132381286472082,1478953.267612462397665 6892164.350730281323195,1478960.172324489569291 6892134.611597723327577,1478974.215015846770257 6892108.95018723513931,1478994.714546022936702 6892084.208618130534887,1479019.207612342899665 6892056.370611586607993,1479031.37483462318778 6892040.750098372809589,1479037.383800225798041 6892032.27303178049624)",183,footway,0,0,0,minorroads,0,0
"LINESTRING (1479511.261651349952444 6891082.208400661125779,1479481.459421321051195 6891103.084366684779525,1479360.328378667356446 6891034.478972747921944,1479352.322644991567358 6891022.952833535149693,1479317.873730378691107 6890999.440786958672106,1479303.915015249047428 6890990.106492877937853,1479242.089850508607924 6890937.610870090313256,1479204.841728321043774 6890955.758223262615502)",184,service,0,0,0,minorroads,0,0
"LINESTRING (1479453.616636599646881 6890482.744903990067542,1479446.292043434455991 6890501.872114131227136)",186,footway,0,0,0,minorroads,0,0
"LINESTRING (1478987.24999247584492 6890117.681394563056529,1478974.429621760733426 6890121.788649991154671,1478968.140735402470455 6890127.643025163561106,1478961.749211427755654 6890132.608519486151636,1478951.065569168189541 6890141.650631228461862)",187,path,0,0,0,minorroads,0,0
"LINESTRING (1478973.720489174127579 6890696.33466696832329,1478974.793518746970221 6890708.27415887080133,1478934.484929603524506 6890755.082042676396668,1478897.694011319894344 6890797.568019906058908)",189,service,0,0,0,minorroads,0,0
"LINESTRING (1479085.427532981848344 6890674.279605968855321,1479067.307329247938469 6890686.387658378109336,1478977.630049095954746 6890791.621195725165308)",190,footway,0,0,0,minorroads,0,0
"LINESTRING (1478977.630049095954746 6890791.621195725165308,1478928.056082863127813 6890850.737115069292486,1478879.415185823803768 6890912.75028891582042,1478830.093148273881525 6890892.73313207551837,1478828.898819707566872 6890880.302901268936694)",191,footway,0,0,0,minorroads,0,0
"LINESTRING (1478934.484929603524506 6890755.082042676396668,1478977.630049095954746 6890791.621195725165308)",192,footway,0,0,0,minorroads,0,0
"LINESTRING (1478842.60560615430586 6890756.859950644895434,1478850.378072533290833 6890746.820906506851315,1478913.714809364406392 6890737.854747919365764,1478934.484929603524506 6890755.082042676396668)",193,footway,0,0,0,minorroads,0,0
"LINESTRING (1479375.994610418565571 6891635.010619860142469,1479355.719016854884103 6891632.650036015547812,1479354.972561499569565 6891634.887992111966014,1479352.901147891534492 6891636.420839112251997,1479350.960363967344165 6891637.417189817875624,1479346.481631841277704 6891681.977185339666903)",194,footway,0,0,0,minorroads,0,0
"LINESTRING (1479310.493153058923781 6891678.712203078903258,1479316.203536522807553 6891629.262446126900613,1479319.264003475895151 6891603.648633949458599)",195,footway,0,0,0,minorroads,0,0
"LINESTRING (1479383.543140193447471 6891577.667022745124996,1479380.146768330130726 6891605.043519286438823)",196,footway,0,0,0,minorroads,0,0
"LINESTRING (1479596.926733975531533 6891723.011840671300888,1479608.944665183546022 6891709.660609316080809)",198,pedestrian,0,0,0,minorroads,0,0
"LINESTRING (1479434.777969588991255 6891585.561131720431149,1479482.392490514554083 6891545.140309852547944)",199,pedestrian,0,0,0,minorroads,0,0
"LINESTRING (1478963.578027048613876 6890644.591964773833752,1478967.31030381959863 6890667.658501483500004)",205,service,0,0,0,minorroads,0,0
"LINESTRING (1479401.150155866052955 6890069.130116234533489,1479393.65761024877429 6890062.678090267814696,1479327.960208358010277 6889996.932087614201009)",207,footway,0,0,0,minorroads,0,0
"LINESTRING (1478944.664714500773698 6890030.004252052865922,1478958.623429630184546 6890021.192146747373044,1478992.307227504905313 6890002.081405482254922,1479026.690827270271257 6889979.154706041328609,1479038.44749910547398 6889972.901981176808476,1479054.701564449816942 6889964.273841869086027,1479095.672632720787078 6889942.527293800376356,1479155.734296685084701 6889930.205808525905013,1479283.12623362406157 6889933.470080768689513)",209,footway,0,0,0,minorroads,0,0
"LINESTRING (1478877.884952347259969 6890822.336283389478922,1478872.855709397001192 6890815.577114805579185,1478875.6642476671841 6890806.963398001156747,1478885.032262367196381 6890797.506712420843542,1478891.367802187101915 6890795.698141722939909,1478897.694011319894344 6890797.568019906058908,1478901.986129605211318 6890803.192983939312398,1478902.536640429403633 6890810.013449692167342,1478892.618114905199036 6890821.953110418282449,1478886.105291939806193 6890826.198667988181114,1478877.884952347259969 6890822.336283389478922)",210,footway,0,0,0,minorroads,0,0
"LINESTRING (1478892.618114905199036 6890821.953110418282449,1478928.056082863127813 6890850.737115069292486)",211,footway,0,0,0,minorroads,0,0
"LINESTRING (1479085.175604299176484 6891455.347645132802427,1479072.933736484264955 6891457.646864391863346,1479028.836886418517679 6891467.809421390295029,1478969.717622337630019 6891487.352836342528462,1478948.182385357562453 6891496.258518047630787,1478911.130207701120526 6891514.514429982751608,1478900.287943673552945 6891515.526093818247318,1478903.68431553686969 6891509.823990211822093,1478916.467363483039662 6891497.224194971844554,1478942.947867186041549 6891484.103261307813227,1478965.024284297600389 6891474.477169387042522,1478945.691090611740947 6891413.149424462579191,1478898.029916227562353 6891434.746669919230044,1478844.462413848377764 6891469.14297055080533,1478793.47951313527301 6891520.001941416412592,1478771.944276155205444 6891540.035988440737128,1478758.237489708466455 6891558.935789356008172,1478748.08569689001888 6891566.799223258160055,1478780.789772106800228 6891606.361762794665992)",212,footway,0,0,0,minorroads,0,0
"LINESTRING (1478965.024284297600389 6891474.477169387042522,1479027.586573694832623 6891454.795832606963813,1479057.939314550952986 6891448.388678853400052,1479088.058788104215637 6891445.828884401358664)",213,footway,0,0,0,minorroads,0,0
"LINESTRING (1478945.691090611740947 6891413.149424462579191,1479018.255881766555831 6891391.138380916789174,1479047.694214809220284 6891380.316817537881434)",214,footway,0,0,0,minorroads,0,0
"LINESTRING (1478991.019592018099502 6890132.409286628477275,1479002.59898070525378 6890131.244540799409151,1479038.382184260990471 6890132.45526344049722,1479064.209539529168978 6890130.202399942092597)",217,footway,0,0,0,minorroads,0,0
"LINESTRING (1479317.873730378691107 6890999.440786958672106,1479295.08818068052642 6891012.499620502814651,1479265.976421855157241 6891029.635539894923568,1479237.909700526855886 6891045.959146456792951)",219,service,0,0,0,minorroads,0,0
"LINESTRING (1479265.976421855157241 6891029.635539894923568,1479332.858821619069204 6891062.006893378682435,1479344.43821030925028 6891037.498456098139286,1479352.322644991567358 6891022.952833535149693)",220,service,0,0,0,minorroads,0,0
"LINESTRING (1479295.08818068052642 6891012.499620502814651,1479344.43821030925028 6891037.498456098139286)",221,service,0,0,0,minorroads,0,0
"LINESTRING (1479352.742526129353791 6891350.626569028012455,1479161.827238515252247 6891268.591924785636365)",222,footway,0,0,0,minorroads,0,0
"LINESTRING (1479401.896611221367493 6891423.296597149223089,1479090.344807628775015 6891287.537070981226861)",223,footway,0,0,0,minorroads,0,0
"LINESTRING (1479465.690551959211007 6891463.594181259162724,1479453.709943517111242 6891455.914785820990801,1479425.409954888978973 6891447.760226246900856,1479401.896611221367493 6891423.296597149223089,1479373.596622593235224 6891386.126125248149037,1479360.179087595082819 6891365.494671508669853,1479352.742526129353791 6891350.626569028012455,1479336.908341917209327 6891318.483971345238388,1479321.559353690594435 6891301.699976419098675,1479307.162096040323377 6891284.670771724544466,1479300.210730554070324 6891269.067085674032569,1479294.696291621308774 6891260.682799293659627,1479263.55977264419198 6891258.99674641340971,1479232.815142731880769 6891257.326021636836231,1479201.156105006346479 6891259.012074161320925,1479161.827238515252247 6891268.591924785636365,1479090.344807628775015 6891287.537070981226861)",224,footway,0,0,0,minorroads,0,0
"LINESTRING (1479037.383800225798041 6892032.27303178049624,1479057.752700712764636 6891999.744479458779097,1479091.725750033278018 6891954.630875697359443,1479132.724810380022973 6891911.878190251998603,1479161.743262287694961 6891876.376312308013439,1479180.040749166859314 6891847.818568326532841,1479192.609191199066117 6891807.42708539031446,1479193.822181151015684 6891798.107181905768812,1479196.416113504674286 6891778.103149225004017,1479199.467249767621979 6891738.493778496980667,1479205.933419276727363 6891698.869274341501296,1479220.787880830932409 6891680.980829110369086,1479229.549400552175939 6891674.880065969191492,1479240.596939800772816 6891673.745753734372556,1479255.068842985900119 6891677.547233199700713,1479267.637285018106923 6891689.365553838200867,1479275.447074165800586 6891698.256130744703114)",225,footway,0,0,0,minorroads,0,0
"LINESTRING (1479229.549400552175939 6891674.880065969191492,1479216.271825936157256 6891656.777074966579676,1479171.10194629477337 6891595.187356659211218)",226,footway,0,0,0,minorroads,0,0
"LINESTRING (1479051.342515352414921 6892039.569746791385114,1479074.529284805525094 6892052.660928558558226)",227,footway,0,0,0,minorroads,0,0
"LINESTRING (1479558.661566364113241 6892730.994200934655964,1479535.32550584175624 6892695.871967596933246,1479509.208899124991149 6892661.945660936646163,1479484.967761487932876 6892632.250678585842252,1479458.813832005020231 6892615.448610161431134,1479373.167410765308887 6892570.024945888668299,1479300.957185906590894 6892532.435256485827267,1479252.782823463901877 6892527.974175323732197,1479204.001966048264876 6892521.336213783361018,1479171.325882901670411 6892514.928209916688502,1479142.64333590422757 6892504.442396434023976,1479120.930815778905526 6892491.151187589392066,1479098.593139297328889 6892472.555796183645725,1479066.934101571794599 6892412.370182883925736,1479042.375720410142094 6892360.26384799182415,1479040.780172086087987 6892331.70438495837152,1479040.462928561726585 6892294.161799130029976,1479080.986123618902639 6892292.26091337017715,1479193.756866306532174 6892289.164310114458203,1479216.402455622563139 6892282.403908143751323,1479220.871857058489695 6892272.516255625523627,1479224.174922001315281 6892272.577574365772307,1479229.232157027581707 6892272.286310367286205,1479219.024380057584494 6892224.105258090421557,1479209.292468371335417 6892223.185482617467642,1479204.58046894823201 6892214.079711130820215,1479197.18123024282977 6892205.249881953001022,1479179.490238342434168 6892197.692414339631796,1479135.346734812250361 6892196.512039718218148,1479051.137240131385624 6892183.788532035425305,1479045.072290376992896 6892170.589830297976732,1479049.149802750907838 6892124.877421021461487,1479058.424510530428961 6892087.581070398911834,1479071.254211938474327 6892057.964856051839888,1479074.529284805525094 6892052.660928558558226,1479095.532672341447324 6892018.691348779946566,1479112.467878199182451 6891998.625450547784567,1479173.910484564956278 6891937.309035980142653,1479213.509941124590114 6891907.87732311245054,1479228.280426451237872 6891875.471905553713441,1479240.065090362215415 6891839.295718602836132,1479248.854602162260562 6891812.393617324531078,1479261.460366960382089 6891762.237917317077518,1479267.515986024634913 6891728.959353854879737,1479271.630821167491376 6891712.113187463954091,1479275.447074165800586 6891698.256130744703114,1479285.748158059082925 6891687.204225420951843,1479299.772188033210114 6891680.474986762739718,1479310.493153058923781 6891678.712203078903258,1479332.560239477548748 6891680.720243656076491,1479334.09980364702642 6891680.858200660906732)",228,footway,0,0,0,minorroads,0,0
"LINESTRING (1479414.754304702393711 6890467.663866545073688,1479442.774372574873269 6890432.367605943232775,1479416.368514406494796 6890410.742400817573071)",229,footway,0,0,0,minorroads,0,0
"LINESTRING (1479416.368514406494796 6890410.742400817573071,1479439.378000711556524 6890381.009754501283169)",230,steps,0,0,0,minorroads,0,0
"LINESTRING (1479051.137240131385624 6892183.788532035425305,1479170.150215718429536 6892218.908528059720993)",231,footway,0,0,0,minorroads,0,0
"LINESTRING (1479506.027133178431541 6892443.306083716452122,1479501.464424824807793 6892426.182480680756271,1479502.845367229077965 6892406.974041910842061,1479509.358190197264776 6892389.145340526476502,1479520.33108390844427 6892376.789445140399039,1479537.816800587577745 6892362.747284359298646,1479546.046470873057842 6892354.515155650675297,1479550.012014943640679 6892345.179288049228489,1479549.91870802314952 6892327.672649290412664,1479550.151975322980434 6892285.929740659892559,1479551.467602882767096 6892272.914827428758144)",232,footway,0,0,0,minorroads,0,0
"LINESTRING (1478902.919198798481375 6890060.471222716383636,1478914.64787855790928 6890058.708794203586876,1478926.861754297045991 6890049.774053867906332,1478938.058584614889696 6890042.172635945491493,1478948.424983350094408 6890035.276194448582828)",233,path,0,0,0,minorroads,0,0
"LINESTRING (1479491.368616155348718 6890886.081193597055972,1479515.021920202299953 6890883.996716304682195,1479588.379820165457204 6890877.528709341771901,1479587.465412357822061 6890868.70034805405885,1479683.07701257779263 6890859.764707515016198)",234,service,0,0,0,minorroads,0,0
"LINESTRING (1479098.593139297328889 6892472.555796183645725,1479020.635208208812401 6892437.128092028200626,1478995.227734078653157 6892424.526843289844692,1478961.786534196697176 6892387.259762216359377,1478945.541799542261288 6892336.609921579249203,1478949.302068391814828 6892240.109368146397173)",237,footway,0,0,0,minorroads,0,0
"LINESTRING (1479433.219744036672637 6891903.615865284577012,1479430.597819601651281 6891902.512178732082248,1479418.225322103127837 6891896.365260567516088,1479414.045172115787864 6891896.319273664616048,1479410.387540879659355 6891897.668222876265645,1479407.756285757524893 6891900.350793006829917,1479391.679503558436409 6891935.208957064896822,1479391.408913492690772 6891939.347799245268106,1479394.180128997191787 6891944.268425508402288,1479406.673925491981208 6891951.089859411120415,1479410.060966662364081 6891952.4388178139925)",238,footway,0,0,0,minorroads,0,0
"LINESTRING (1479406.673925491981208 6891951.089859411120415,1479430.597819601651281 6891902.512178732082248)",239,footway,0,0,0,minorroads,0,0
"LINESTRING (1479452.32900111284107 6891899.875594805926085,1479453.635297982487828 6891897.116379988379776)",240,steps,0,0,0,minorroads,0,0
"LINESTRING (1479410.060966662364081 6891952.4388178139925,1479414.446391870733351 6891954.676862930878997)",241,steps,0,0,0,minorroads,0,0
"LINESTRING (1479419.643587276339531 6891968.243108676746488,1479421.313781131990254 6891964.763402775861323)",242,steps,0,0,0,minorroads,0,0
"LINESTRING (1479437.483870248775929 6891905.623962035402656,1479433.219744036672637 6891903.615865284577012)",243,steps,0,0,0,minorroads,0,0
"LINESTRING (1479414.446391870733351 6891954.676862930878997,1479424.038343177642673 6891959.060980518348515)",244,footway,0,0,0,minorroads,0,0
"LINESTRING (1479447.374403697205707 6891910.237987771630287,1479437.483870248775929 6891905.623962035402656)",245,footway,0,0,0,minorroads,0,0
"LINESTRING (1479421.313781131990254 6891964.763402775861323,1479424.038343177642673 6891959.060980518348515,1479447.374403697205707 6891910.237987771630287,1479452.32900111284107 6891899.875594805926085)",246,footway,0,0,0,minorroads,0,0
"LINESTRING (1479450.229595429031178 6891990.2404032535851,1479444.976415869081393 6891987.649777974933386,1479416.667096548015252 6891974.466727374121547,1479419.643587276339531 6891968.243108676746488)",247,footway,0,0,0,minorroads,0,0
"LINESTRING (1479453.635297982487828 6891897.116379988379776,1479455.45478290761821 6891893.330125654116273,1479482.747056807857007 6891906.22179246135056,1479488.485432347515598 6891908.93502342607826)",248,footway,0,0,0,minorroads,0,0
"LINESTRING (1479571.146032168995589 6890409.056526175700128,1479584.125024646287784 6890393.883670332841575)",249,footway,0,0,0,minorroads,0,0
"LINESTRING (1479124.859037083573639 6890282.417699187062681,1479141.76625086273998 6890264.731641499325633,1479190.089904377469793 6890264.731641499325633,1479210.813371154945344 6890280.333378406241536,1479221.870241096476093 6890288.900553298182786)",250,service,0,0,0,minorroads,0,0
"LINESTRING (1478931.471116109518334 6891338.793418453074992,1478931.601745795924217 6891332.723570773378015)",251,footway,0,0,0,minorroads,0,0
"LINESTRING (1479038.970017851097509 6891272.239934901706874,1479061.484977483516559 6891259.410595729015768)",253,footway,0,0,0,minorroads,0,0
"LINESTRING (1479300.518643385730684 6891457.738833180628717,1479254.406363858142868 6891450.381333781406283,1479213.62190942815505 6891446.33471198566258,1479156.919294558465481 6891446.212087113410234,1479127.704898122698069 6891446.917180147953331,1479088.058788104215637 6891445.828884401358664,1479094.702240758575499 6891400.411828546784818,1479047.694214809220284 6891380.316817537881434,1478962.775587541749701 6891344.388105345889926,1478953.202297617914155 6891347.637623907066882)",254,footway,0,0,0,minorroads,0,0
"LINESTRING (1479263.55977264419198 6891258.99674641340971,1479214.013798487139866 6891247.240369359962642,1479177.754729644861072 6891220.830734963528812,1479149.939936996437609 6891199.249391805380583,1479148.055137223796919 6891171.123225434683263,1479200.400318960892037 6891168.364260731264949,1479207.734242819016799 6891139.14994818624109,1478898.141884530894458 6890996.773844690993428,1478872.053269889904186 6891032.103237913921475,1478847.513550108298659 6891072.260914628393948,1478835.010422920808196 6891095.865138819441199,1478857.982586456928402 6891105.383485198020935,1478904.402778816176578 6891101.950135124847293,1478961.124055066145957 6891130.857762338593602,1478959.257916682166979 6891138.521519755013287,1478997.224502151831985 6891155.550414878875017,1479010.977942057419568 6891164.624332321807742,1479041.769225431373343 6891166.509623884223402,1479062.08214176655747 6891176.656485269777477,1479078.64411994535476 6891173.376380642876029,1479096.782985062338412 6891175.09307074919343,1479103.650374323595315 6891176.487881724722683,1479123.655377824557945 6891171.812966760247946,1479148.055137223796919 6891171.123225434683263)",255,footway,0,0,0,minorroads,0,0
"LINESTRING (1479349.467453256715089 6892329.95678826700896,1479339.194361444795504 6892336.594591772183776,1479340.202076172921807 6892354.714443584904075,1479352.994454809231684 6892359.236747993156314)",256,service,0,0,0,minorroads,0,0
"LINESTRING (1479593.00784336659126 6892275.26026960555464,1479592.009459325810894 6892313.845190985128284,1479549.91870802314952 6892327.672649290412664)",257,footway,0,0,0,minorroads,0,0
"LINESTRING (1479592.009459325810894 6892313.845190985128284,1479591.281665356131271 6892346.405673980712891,1479550.012014943640679 6892345.179288049228489)",258,footway,0,0,0,minorroads,0,0
"LINESTRING (1479007.749522649217397 6892003.975329895503819,1479015.932539475848898 6891989.627237430773675)",259,steps,0,0,0,minorroads,0,0
"LINESTRING (1478994.0800589711871 6892008.788691441528499,1478986.037002523662522 6892003.868025694973767,1479006.424564396496862 6891979.418033379130065,1479038.531475333031267 6891954.814824637956917,1479057.276835423195735 6891941.953738008625805,1479083.216158994706348 6891928.663459150120616,1479132.724810380022973 6891911.878190251998603,1479185.1912911105901 6891905.991857678629458,1479213.509941124590114 6891907.87732311245054)",261,footway,0,0,0,minorroads,0,0
"LINESTRING (1479344.391556847607717 6891681.793242639862001,1479346.481631841277704 6891681.977185339666903,1479371.403909988934174 6891684.245812286622822)",262,footway,0,0,0,minorroads,0,0
"LINESTRING (1478964.949638760183007 6892198.842130050994456,1478992.540494801709428 6892200.957607388496399,1479023.751659313682467 6892197.355164431966841)",263,steps,0,0,0,minorroads,0,0
"LINESTRING (1479332.560239477548748 6891680.720243656076491,1479337.094955755397677 6891635.807700280100107,1479335.769997502909973 6891634.887992111966014,1479334.062480878317729 6891633.339816934429109,1479333.260041374014691 6891630.994562047533691,1479316.203536522807553 6891629.262446126900613)",264,footway,0,0,0,minorroads,0,0
"LINESTRING (1478922.522982550086454 6892195.055733603425324,1478944.244833362754434 6892195.132381286472082,1478964.949638760183007 6892198.842130050994456)",265,footway,0,0,0,minorroads,0,0
"LINESTRING (1478944.244833362754434 6892195.132381286472082,1478948.518290270585567 6892151.075413181446493,1478957.111857536714524 6892107.018686534836888,1478968.99915905832313 6892072.619656547904015,1478994.415963881416246 6892026.73918299935758)",266,footway,0,0,0,minorroads,0,0
"LINESTRING (1479034.351325348485261 6892030.126940387301147,1479031.645424688700587 6892028.762639727443457,1479025.907049149041995 6892025.604821115732193,1478994.0800589711871 6892008.788691441528499)",267,steps,0,0,0,minorroads,0,0
"LINESTRING (1479023.751659313682467 6892197.355164431966841,1479051.137240131385624 6892183.788532035425305)",269,footway,0,0,0,minorroads,0,0
"LINESTRING (1479015.932539475848898 6891989.627237430773675,1479030.637709960807115 6891967.752577354200184,1479038.531475333031267 6891954.814824637956917)",270,footway,0,0,0,minorroads,0,0
"LINESTRING (1478986.037002523662522 6892003.868025694973767,1478968.961836289614439 6891994.609211077913642)",271,footway,0,0,0,minorroads,0,0
"LINESTRING (1479175.076821058290079 6892272.807519636116922,1479168.890572307631373 6892273.788619532249868)",272,steps,0,0,0,minorroads,0,0
"LINESTRING (1478966.694478150689974 6892266.047131421044469,1478949.302068391814828 6892240.109368146397173)",273,footway,0,0,0,minorroads,0,0
"LINESTRING (1479176.037882324540988 6892219.889621376991272,1479174.98351413779892 6892237.625969672575593)",274,footway,0,0,0,minorroads,0,0
"LINESTRING (1479175.095482441131026 6892253.338843335397542,1479175.076821058290079 6892272.807519636116922)",275,footway,0,0,0,minorroads,0,0
"LINESTRING (1479017.65871748351492 6892284.044186560437083,1478966.694478150689974 6892266.047131421044469)",276,steps,0,0,0,minorroads,0,0
"LINESTRING (1479168.890572307631373 6892273.788619532249868,1479040.462928561726585 6892294.161799130029976)",277,footway,0,0,0,minorroads,0,0
"LINESTRING (1479170.150215718429536 6892218.908528059720993,1479176.037882324540988 6892219.889621376991272)",278,steps,0,0,0,minorroads,0,0
"LINESTRING (1479176.065874400548637 6891773.136638476513326,1479193.822181151015684 6891798.107181905768812)",279,steps,0,0,0,minorroads,0,0
"LINESTRING (1479380.146768330130726 6891605.043519286438823,1479379.689564426196739 6891608.752995756454766)",280,steps,0,0,0,minorroads,0,0
"LINESTRING (1479319.525262851500884 6891600.613609550520778,1479323.005610939580947 6891573.329098201356828)",281,footway,0,0,0,minorroads,0,0
"LINESTRING (1479319.264003475895151 6891603.648633949458599,1479319.525262851500884 6891600.613609550520778)",282,steps,0,0,0,minorroads,0,0
"LINESTRING (1479379.689564426196739 6891608.752995756454766,1479375.994610418565571 6891635.010619860142469,1479371.403909988934174 6891684.245812286622822)",283,footway,0,0,0,minorroads,0,0
"LINESTRING (1479112.365240588784218 6891776.922836208716035,1479157.544450920075178 6891796.972852283157408,1479167.155063610058278 6891794.903467575088143,1479173.182690595509484 6891787.484344554133713,1479176.065874400548637 6891773.136638476513326,1479180.367323384154588 6891714.09057914186269,1479184.668772364966571 6891697.750287312082946,1479189.819314308930188 6891682.835584651678801,1479216.271825936157256 6891656.777074966579676)",284,footway,0,0,0,minorroads,0,0
"LINESTRING (1479098.593139297328889 6892472.555796183645725,1479118.924717012792826 6892513.39519539475441,1479148.503010437591001 6892548.945877370424569,1479229.493416403187439 6892660.412618377245963,1479234.933209798531607 6892661.685043681412935)",286,footway,0,0,0,minorroads,0,0
"LINESTRING (1479070.41444966266863 6892513.732458561658859,1479068.343036052072421 6892505.88342846557498)",287,footway,0,0,0,minorroads,0,0
"LINESTRING (1479074.566607571439818 6892534.336199035868049,1479070.41444966266863 6892513.732458561658859)",288,steps,0,0,0,minorroads,0,0
"LINESTRING (1477868.43471504189074 6891004.698037818074226,1477945.356939326506108 6891019.718773512169719,1478003.72041735611856 6891029.390302868559957,1478039.289015 6891037.053963554091752,1478070.117621140554547 6891046.449621527455747,1478085.634561822284013 6891052.51925307046622,1478099.238710658624768 6891059.35525771882385,1478109.306527255102992 6891066.405851566232741,1478116.089940288802609 6891073.793654355220497,1478123.5731552161742 6891084.292929342016578,1478128.854326849337667 6891095.068111938424408,1478131.298968139104545 6891104.89300652872771,1478132.073415567399934 6891115.208392390981317,1478133.986207413021475 6891124.680779177695513,1478132.25069871544838 6891137.371955673210323,1478130.169954414712265 6891151.105425273999572,1478121.949614822166041 6891169.866363619454205,1478117.396237158449367 6891177.591468608006835,1478104.967755505582318 6891189.056519051082432,1478093.948208335554227 6891197.226143856532872,1478082.126221658429131 6891203.740390969440341,1478067.458373942412436 6891210.99037102330476,1478049.823366191005334 6891215.036874360404909,1478034.912920482223853 6891216.998816108331084,1478020.459678680170327 6891214.347129329107702,1478000.622627634555101 6891210.745128460228443,1477978.45290360529907 6891202.43754112534225,1477942.063205073587596 6891174.296036006882787,1477908.155470594996586 6891145.7101308433339,1477869.451760460156947 6891113.706299720332026,1477831.671788828447461 6891088.967793419025838,1477825.746799453394488 6891083.940398719161749)",291,service,0,0,1,minorroads,0,0
"LINESTRING (1478121.949614822166041 6891169.866363619454205,1478201.437779386993498 6891217.397335584275424)",292,service,0,0,0,minorroads,0,0
"LINESTRING (1477908.155470594996586 6891145.7101308433339,1478070.117621140554547 6891046.449621527455747)",293,service,0,0,0,minorroads,0,0
"LINESTRING (1477942.063205073587596 6891174.296036006882787,1478116.089940288802609 6891073.793654355220497)",294,service,0,0,0,minorroads,0,0
"LINESTRING (1477978.45290360529907 6891202.43754112534225,1478132.073415567399934 6891115.208392390981317)",295,service,0,0,0,minorroads,0,0
"LINESTRING (1478502.968419844750315 6890668.378852861002088,1478491.659621223341674 6890662.079612115398049,1478357.717538550263271 6890547.713233261369169,1478130.104639569995925 6890358.679689854383469,1477868.845265486976132 6890131.995495325885713,1477851.947382397949696 6890112.623956055380404,1477704.587764723692089 6890002.725070449523628,1477682.39004861866124 6889990.909228938631713,1477667.638224675087258 6889991.169759628362954,1477650.339121833909303 6890011.138695799745619,1477637.518751118797809 6890024.67101151868701,1477629.102466995362192 6890037.329800856299698,1477626.90975439385511 6890045.283699262887239,1477621.115394705208018 6890055.337192909792066,1477617.560401076916605 6890072.379119392484426)",297,service,0,0,0,minorroads,0,0
"LINESTRING (1478249.052300312556326 6891837.149678730405867,1478207.735996438423172 6891845.090029121376574)",298,footway,0,0,0,minorroads,0,0
"LINESTRING (1478305.754915182245895 6892111.878097912296653,1478297.767842886503786 6892113.47235338576138,1478285.376684002345428 6892102.711135057732463,1478249.565488368039951 6891961.345014753751457,1478246.71029663621448 6891935.132311857305467,1478251.254343609558418 6891925.459692790172994,1478266.19278139132075 6891904.336327421478927)",299,service,0,0,1,minorroads,0,0
"LINESTRING (1478245.217385928379372 6892482.137093056924641,1478249.798755665076897 6892400.458819705992937,1478255.873036114964634 6892389.436608762480319,1478265.017114208079875 6892376.636146306991577,1478275.60744954738766 6892369.308465602807701,1478290.592540793586522 6892365.292040934786201,1478302.666456150589511 6892364.924124269746244,1478313.993916155071929 6892364.556207627058029,1478330.81715370924212 6892374.796560563147068,1478343.973429331788793 6892389.068690993823111,1478352.007155086379498 6892407.709879103116691,1478350.187670158455148 6892440.240082282572985,1478345.708938032155856 6892489.756148488260806)",300,service,0,0,0,minorroads,0,0
"LINESTRING (1477998.047356663970277 6891324.661103413440287,1478020.413025221321732 6891332.049143535085022,1478049.879350342787802 6891330.792256562970579,1478086.632945860503241 6891324.339218001812696,1478122.32284249830991 6891312.122909786179662,1478158.218014360172674 6891292.917132769711316,1478184.875801208429039 6891269.342985554598272)",301,service,0,0,1,minorroads,0,0
"LINESTRING (1477965.529895279556513 6891284.946672138758004,1477998.047356663970277 6891324.661103413440287,1478031.899106987984851 6891366.506316591985524,1478044.019675809424371 6891373.311932296492159,1478056.233551548561081 6891375.8870316343382,1478074.745644338661805 6891370.552898212336004,1478103.446852721972391 6891365.862542429938912,1478147.40374241117388 6891349.476974621415138,1478163.508516683243215 6891340.49481596890837,1478174.164166870061308 6891331.252093238756061,1478176.888728912686929 6891309.486519484780729,1478184.875801208429039 6891269.342985554598272,1478190.875436118105426 6891248.466587806120515)",302,service,0,0,1,minorroads,0,0
"LINESTRING (1478298.215716100297868 6890783.32936832588166,1478344.18803524854593 6890790.609622975811362,1478360.563399586360902 6890795.406931225210428,1478380.503088242607191 6890801.30777757242322,1478412.759290251415223 6890816.649998326785862,1478421.474156513577327 6890821.386014446616173)",303,service,0,0,0,minorroads,0,0
"LINESTRING (1477950.162245669867843 6891274.998935245908797,1477965.529895279556513 6891284.946672138758004,1478000.743926630821079 6891290.280748765915632,1478023.613452556543052 6891292.687215525656939,1478047.994550570147112 6891291.46099033113569,1478072.963482179446146 6891288.364772556349635,1478095.851669488241896 6891280.823494642972946,1478111.704515080433339 6891274.615740698762238,1478129.106255532009527 6891265.219816066324711,1478142.495798451593146 6891260.667471537366509,1478156.566481890156865 6891257.203399649821222,1478178.49360792664811 6891255.563330735079944,1478190.875436118105426 6891248.466587806120515,1478201.437779386993498 6891217.397335584275424)",304,service,0,0,1,minorroads,0,0
"LINESTRING (1478600.64210298541002 6890542.839440878480673,1478535.252613929333165 6890495.358435696922243,1478534.422182349255309 6890488.415626615285873,1478532.957263714633882 6890483.311976070515811,1478532.593366731191054 6890467.096795568242669,1478530.577937269350514 6890451.785894272848964,1478523.999799459474161 6890439.785478501580656,1478517.244378498755395 6890430.773683805018663,1478478.139448614558205 6890386.052035748027265,1478464.246048329630867 6890364.151086367666721,1478458.572987634688616 6890346.725391098298132,1478458.750270782737061 6890330.817005697637796)",305,footway,0,0,0,minorroads,0,0
"LINESTRING (1478340.343790168641135 6890286.463735183700919,1478368.121260051382706 6890284.593975868076086,1478383.470248277997598 6890287.291333702392876,1478397.167704032035545 6890294.509835544042289,1478446.153836674522609 6890326.924207131378353,1478458.750270782737061 6890330.817005697637796,1478503.892158345319331 6890335.016325954347849,1478531.492345079779625 6890335.338171758688986,1478549.220659751677886 6890332.02775839343667,1478568.049996066605672 6890323.322603833861649,1478581.206271691946313 6890309.513918485492468,1478611.904248145408928 6890269.283422131091356,1478624.873909929767251 6890255.781346369534731,1478640.418842690298334 6890243.183516338467598,1478661.786127212457359 6890232.056982149370015,1478685.187502576736733 6890226.662304446101189,1478711.509384517557919 6890225.466893401928246,1478734.892098498763517 6890232.961204051040113,1478757.192452211398631 6890244.976636931300163,1478770.059476385358721 6890257.712402357719839,1478779.343514857813716 6890266.785306516103446)",306,footway,0,0,0,minorroads,0,0
"LINESTRING (1478306.762629910372198 6890306.402752917259932,1478312.267738147405908 6890297.314478134736419,1478325.470667231595144 6890295.873841928318143,1478340.343790168641135 6890286.463735183700919)",307,steps,0,0,0,minorroads,0,0
"LINESTRING (1478502.221964489435777 6891308.628160036168993,1478503.920150421094149 6891293.882785264402628,1478500.98098246450536 6891258.506258369423449,1478495.905086055397987 6891238.197014091536403,1478490.232025357428938 6891222.68538433779031,1478483.513927168212831 6891211.634132778272033,1478480.528105752775446 6891201.47189961373806,1478468.724780458724126 6891168.793432957492769,1478460.224520107498392 6891146.093319251202047,1478452.750635873060673 6891121.906502928584814,1478444.203722060192376 6891086.377458564005792,1478440.9659719618503 6891055.921927305869758,1478442.906755883479491 6891021.588703794404864,1478448.719776954967529 6890994.842611184343696,1478458.880900469142944 6890968.127261942252517,1478497.388666070066392 6890895.277423369698226,1478576.074391131056473 6890758.086094295606017,1478645.634699478745461 6890649.848983596079051,1478661.468883685301989 6890629.219419246539474,1478670.46367070893757 6890619.165207961574197,1478673.300201055128127 6890616.375779623165727,1478677.396374812116846 6890611.777822931297123)",308,cycleway,0,0,0,minorroads,0,0
"LINESTRING (1478340.343790168641135 6890286.463735183700919,1478296.209617334185168 6890250.693169337697327)",309,footway,0,0,0,minorroads,0,0
"LINESTRING (1478828.898819707566872 6890880.302901268936694,1478825.987643823958933 6890825.386340913362801,1478839.097265987657011 6890775.359412892721593,1478842.60560615430586 6890756.859950644895434)",310,footway,0,0,0,minorroads,0,0
"LINESTRING (1478828.898819707566872 6890880.302901268936694,1478877.884952347259969 6890822.336283389478922)",311,footway,0,0,0,minorroads,0,0
"LINESTRING (1478454.476813877699897 6891793.539206840097904,1478436.776491281576455 6891737.267485307529569,1478426.895288528874516 6891709.308051269501448)",314,service,0,0,1,minorroads,0,0
"LINESTRING (1478656.850191182689741 6891252.574420961551368,1478692.222844290314242 6891238.886761170811951,1478723.359363270457834 6891253.156875086948276)",316,footway,0,0,0,minorroads,0,0
"LINESTRING (1478466.158840178279206 6891481.390173728577793,1478483.747194468043745 6891486.157237827777863,1478497.845869976794347 6891492.978283021599054,1478514.510485763195902 6891508.551747220568359,1478523.122714417753741 6891524.799684935249388,1478528.851759261917323 6891543.914046152494848,1478534.506158574018627 6891569.711608147248626,1478542.959765463601798 6891648.515012176707387)",319,service,0,0,0,minorroads,0,0
"LINESTRING (1478186.172767387935892 6892076.850545356050134,1478159.738917143782601 6891950.645316352136433,1478153.524676317116246 6891922.393888857215643)",324,service,0,0,1,minorroads,0,0
"LINESTRING (1477992.150359361898154 6891880.024598241783679,1478001.098492924124002 6891901.362505401484668,1478010.111941330833361 6891922.884417406283319,1478034.241110664559528 6892064.219202788546681)",325,service,0,0,0,minorroads,0,0
"LINESTRING (1478153.524676317116246 6891922.393888857215643,1478129.796726738568395 6891820.855123235844076)",326,service,0,0,1,minorroads,0,0
"LINESTRING (1478475.106973737478256 6892349.655597596429288,1478483.35530540603213 6892391.046249195933342)",327,service,0,0,1,minorroads,0,0
"LINESTRING (1478523.77586285257712 6892467.619516485370696,1478535.821786136599258 6892493.496693428605795,1478543.360985215753317 6892518.883388736285269,1478545.749642353737727 6892539.471812217496336,1478544.443345481297001 6892557.070893596857786,1478539.078197620576248 6892576.92356213927269)",328,service,0,0,0,minorroads,0,0
"LINESTRING (1478418.469673712505028 6892336.287995646707714,1478428.005640867631882 6892332.746811239980161,1478435.218265729257837 6892330.96855472587049,1478454.252877273596823 6892323.31899023335427,1478520.995316658169031 6892314.458381541073322,1478516.460600377526134 6892285.055947243236005,1478513.745369025040418 6892253.890710676088929,1478514.221234314609319 6892241.45837504696101)",331,service,0,0,0,minorroads,0,0
"LINESTRING (1478129.796726738568395 6891820.855123235844076,1478087.482038826216012 6891839.403020612895489,1478076.089263980044052 6891843.971021738834679,1477992.150359361898154 6891880.024598241783679)",332,service,0,0,1,minorroads,0,0
"LINESTRING (1478010.111941330833361 6891922.884417406283319,1478076.369184735696763 6891897.95947330724448,1478085.34531037369743 6891892.333743230439723,1478092.147384793264791 6891886.891964479349554,1478098.258988006506115 6891878.798283461481333,1478103.689450711710379 6891867.148302355781198,1478106.675272129941732 6891858.380169824697077,1478109.614440086763352 6891846.147721174173057)",333,service,0,0,0,minorroads,0,0
"LINESTRING (1478054.423397313337773 6892200.32909594848752,1478083.927045200718567 6892187.697559367865324,1478108.522749131079763 6892177.21217271219939)",336,service,0,0,0,minorroads,0,0
"LINESTRING (1478515.340917346067727 6892220.410827253945172,1478514.398517462657765 6892233.394996258430183,1478514.221234314609319 6892241.45837504696101)",337,service,0,0,0,minorroads,0,0
"LINESTRING (1478550.844200145918876 6890545.552211744710803,1478554.819074909435585 6890541.383434292860329,1478590.24771217443049 6890558.411064649000764)",339,steps,0,0,0,minorroads,0,0
"LINESTRING (1478292.038798042573035 6890286.525038770399988,1478306.762629910372198 6890306.402752917259932,1478342.517841390101239 6890336.334361232817173,1478380.587064470164478 6890360.65674867015332,1478421.67010104469955 6890401.592703618109226,1478455.680473136715591 6890423.769625853747129,1478497.174060156103224 6890463.020016191527247,1478511.655294034164399 6890478.330938881263137,1478535.252613929333165 6890495.358435696922243)",340,path,0,0,0,minorroads,0,0
"LINESTRING (1478535.252613929333165 6890495.358435696922243,1478532.378760814433917 6890516.49342564959079,1478534.599465494509786 6890529.290926621295512,1478543.332993139745668 6890539.498289315961301,1478550.844200145918876 6890545.552211744710803)",341,path,0,0,0,minorroads,0,0
"LINESTRING (1478529.290301782777533 6892221.10065860580653,1478531.958879676647484 6892233.824225340969861,1478532.938602331560105 6892274.263839844614267,1478537.202728543663397 6892321.908650481142104,1478524.886215194128454 6892336.410634094849229,1478436.459247756982222 6892347.892667171545327,1478423.265649365726858 6892349.165043009445071)",342,footway,0,0,0,minorroads,0,0
"LINESTRING (1478454.252877273596823 6892323.31899023335427,1478448.91572148585692 6892291.325800381600857,1478445.295413015875965 6892261.908121032640338,1478513.745369025040418 6892253.890710676088929)",343,service,0,0,0,minorroads,0,0
"LINESTRING (1478448.91572148585692 6892291.325800381600857,1478516.460600377526134 6892285.055947243236005)",344,service,0,0,0,minorroads,0,0
"LINESTRING (1478344.18803524854593 6890790.609622975811362,1478348.937357440358028 6890749.870935382321477,1478348.666767374845222 6890739.923860553652048,1478342.881738376105204 6890733.302702005021274,1478318.04343645600602 6890728.520757546648383)",345,service,0,0,0,minorroads,0,0
"LINESTRING (1478684.179787848610431 6890636.959331315010786,1478689.386313944123685 6890639.28896967228502,1478714.775126691674814 6890647.488689003512263,1478731.701001853682101 6890650.768579075112939,1478743.644287527073175 6890644.500005290843546)",347,path,0,0,0,minorroads,0,0
"LINESTRING (1478431.579295878997073 6892449.652710394002497,1478423.079035527771339 6892454.803599508479238,1478359.453047247836366 6892490.139400960877538,1478345.708938032155856 6892489.756148488260806)",348,service,0,0,0,minorroads,0,0
"LINESTRING (1478875.6642476671841 6890806.963398001156747,1478839.097265987657011 6890775.359412892721593)",349,footway,0,0,0,minorroads,0,0
"LINESTRING (1478600.660764371277764 6890704.365850842557847,1478605.186149956192821 6890712.81086390838027,1478611.820271917851642 6890722.313430053181946,1478614.516841887496412 6890727.034063856117427,1478654.694801344303414 6890781.137629794888198,1478763.126772282179445 6890832.75859528966248)",350,service,0,0,0,minorroads,0,0
"LINESTRING (1478614.516841887496412 6890727.034063856117427,1478637.041132210055366 6890686.939418164081872,1478692.633394738193601 6890709.071147411130369)",351,footway,0,0,0,minorroads,0,0
"LINESTRING (1478492.303438970819116 6892407.924498297274113,1478509.257306208834052 6892408.369066645391285,1478526.360464518889785 6892406.008255694061518,1478540.33784103137441 6892401.240646092221141,1478552.645023687975481 6892388.946051742881536,1478560.342844535131007 6892378.199794524349272,1478570.681251191534102 6892353.135470101609826)",353,service,0,0,0,minorroads,0,0
"LINESTRING (1478953.202297617914155 6891347.637623907066882,1478931.471116109518334 6891338.793418453074992,1478901.864830611506477 6891359.991937587969005,1478864.206157973501831 6891384.041518303565681,1478830.662320480914786 6891409.348070020787418,1478812.290188067127019 6891426.132289689965546,1478755.130369296530262 6891480.654421320185065,1478703.251722156070173 6891549.692815471440554,1478689.134385264245793 6891571.535681317560375,1478657.522001 6891627.055148504674435,1478637.796918255276978 6891670.128218493424356,1478618.799629485467449 6891717.401561643928289,1478619.667383834253997 6891757.486018202267587,1478668.280288797570392 6891771.649751598015428,1478672.507092240964994 6891756.075777715072036,1478697.168111018836498 6891710.1971107237041,1478713.935364418663085 6891684.552383543923497,1478733.277888791868463 6891659.076351834461093,1478767.045662891119719 6891621.092382272705436,1478780.789772106800228 6891606.361762794665992,1478810.078814079985023 6891579.583067904226482,1478855.052749193273485 6891541.890711458399892,1478900.287943673552945 6891515.526093818247318)",354,footway,0,0,0,minorroads,0,0
"LINESTRING (1478668.280288797570392 6891771.649751598015428,1478660.134594739647582 6891790.028919039294124,1478649.525598014704883 6891813.849854120984674,1478640.558803069638088 6891829.010061269626021,1478646.213202378945425 6891861.185358035378158,1478648.508552593644708 6891887.934333082288504,1478650.589296894380823 6891930.487613770179451,1478650.160085063660517 6891985.994230893440545,1478651.48504331917502 6892023.887949385680258)",355,footway,0,0,0,minorroads,0,0
"LINESTRING (1478782.749217414064333 6891635.179233017377555,1478773.446517555741593 6891671.001945073716342,1478739.286854397272691 6891804.361326470971107,1478712.246509179938585 6891906.574359148740768,1478678.739994450472295 6892037.714908943511546,1478666.423481103731319 6892094.096039024181664)",356,footway,0,0,0,minorroads,0,0
"LINESTRING (1478755.130369296530262 6891480.654421320185065,1478793.47951313527301 6891520.001941416412592)",357,footway,0,0,0,minorroads,0,0
"LINESTRING (1478773.446517555741593 6891671.001945073716342,1478818.709704117616639 6891683.065513053908944)",358,footway,0,0,0,minorroads,0,0
"LINESTRING (1478767.045662891119719 6891621.092382272705436,1478782.749217414064333 6891635.179233017377555)",359,footway,0,0,0,minorroads,0,0
"LINESTRING (1477846.171684092143551 6889939.00248887296766,1478169.946694119600579 6890214.401686768047512,1478195.494128623511642 6890209.911240221001208)",360,footway,0,0,0,minorroads,0,0
"LINESTRING (1478245.217385928379372 6892482.137093056924641,1478237.435588859487325 6892526.349177302792668,1478234.711026813834906 6892557.270186549983919,1478232.518314209766686 6892588.957829094491899,1478340.996938606491312 6892596.776279703713953)",361,service,0,0,0,minorroads,0,0
"LINESTRING (1478345.708938032155856 6892489.756148488260806,1478245.217385928379372 6892482.137093056924641)",362,service,0,0,0,minorroads,0,0
"LINESTRING (1478036.723074720241129 6891729.495856549590826,1478044.626170785399154 6891741.988715119659901)",363,footway,0,0,0,minorroads,0,0
"LINESTRING (1478321.449139009229839 6892126.425690860487521,1478312.127777771092951 6892118.009851474314928,1478305.754915182245895 6892111.878097912296653,1478300.501735622063279 6892101.944667064584792,1478292.346710877027363 6892075.516895382665098,1478267.685692099155858 6891978.835526627488434)",364,service,0,0,1,minorroads,0,0
"LINESTRING (1478253.503040365641937 6891040.058120541274548,1478253.16713545517996 6891093.259474310092628,1478229.616469018859789 6891186.251565363258123,1478201.437779386993498 6891217.397335584275424)",365,track,0,0,0,minorroads,0,0
"LINESTRING (1478663.092424082104117 6890614.521270107477903,1478670.46367070893757 6890619.165207961574197)",366,footway,0,0,0,minorroads,0,0
"LINESTRING (1478362.765442883595824 6892306.640205512754619,1478358.342694909079 6892292.506188929080963)",367,steps,0,0,0,minorroads,0,0
"LINESTRING (1478318.136743376497179 6892116.154995526187122,1478312.127777771092951 6892118.009851474314928,1478290.126006194157526 6892125.138020876795053)",368,footway,0,0,0,minorroads,0,0
"LINESTRING (1478439.062510809162632 6892244.340345094911754,1478418.786917239660397 6892247.360282902605832)",369,steps,0,0,0,minorroads,0,0
"LINESTRING (1478423.918797800550237 6892177.089536693878472,1478404.315014054765925 6892179.250996824353933)",370,steps,0,0,0,minorroads,0,0
"LINESTRING (1477934.290738694835454 6891718.244636114686728,1477948.034847910283133 6891709.921195707283914,1477965.940445724641904 6891696.585314678959548,1477976.76404836634174 6891682.437042098492384,1477981.336087410105392 6891672.028957143425941,1477988.007532143266872 6891667.445725190453231,1477996.741059794323519 6891667.445725190453231,1478005.073367684613913 6891672.85669831186533,1478008.824305844027549 6891681.593971388414502,1478008.824305844027549 6891692.845140528865159,1478014.64665760868229 6891701.582435327582061,1478025.890141385374591 6891713.247505113482475,1478032.132374287815765 6891720.329329716973007,1478036.723074720241129 6891729.495856549590826,1478027.560335241258144 6891739.060939160175622,1478017.147283044410869 6891743.644211953505874,1478005.073367684613913 6891745.315037799067795,1477993.008783017750829 6891739.474813184700906,1477976.353497921489179 6891744.042757529765368,1477985.926787842530757 6891771.95632619317621)",373,footway,0,0,0,minorroads,0,0
"LINESTRING (1478002.040892810327932 6891541.829398297704756,1478017.091298892628402 6891529.934653213247657,1478018.332280920585617 6891528.96897236444056,1478035.687367916340008 6891514.468445266596973,1478046.73490715934895 6891504.82698876876384,1478070.192266677971929 6891511.939286240376532,1478108.914638193091378 6891556.621212807483971)",374,service,0,0,0,minorroads,0,0
"LINESTRING (1478035.687367916340008 6891514.468445266596973,1478084.262950108153746 6891571.137144286185503)",375,service,0,0,0,minorroads,0,0
"LINESTRING (1478215.200549985514954 6891534.686417824588716,1478178.904158371733502 6891520.431132415309548)",377,service,0,0,1,minorroads,0,0
"LINESTRING (1478284.536921729333699 6891783.682813100516796,1478291.20836645970121 6891823.66029835306108)",379,steps,0,0,0,minorroads,0,0
"LINESTRING (1478265.091759745730087 6891789.477083542384207,1478284.536921729333699 6891783.682813100516796)",380,footway,0,0,0,minorroads,0,0
"LINESTRING (1478207.735996438423172 6891845.090029121376574,1478215.228542061522603 6891874.245591463521123)",381,steps,0,0,0,minorroads,0,0
"LINESTRING (1478052.874502453953028 6891606.26979230903089,1478077.890087522100657 6891607.710663352161646,1478084.682831245940179 6891608.109202195890248,1478111.340618094196543 6891607.894604350440204,1478134.574041006155312 6891600.184414274990559,1478181.7500194106251 6891550.612513891421258)",382,footway,0,0,0,minorroads,0,0
"LINESTRING (1478201.437779386993498 6891217.397335584275424,1478240.664008267689496 6891229.552189072594047)",383,service,0,0,0,minorroads,0,0
"LINESTRING (1478641.370573266642168 6892632.0667141424492,1478562.768824436236173 6892499.644068215973675,1478577.007460321532562 6892490.660624356009066,1478665.649033669615164 6892636.067941721528769,1478671.144811219535768 6892649.037451725453138,1478668.858791697770357 6892665.502320799045265)",384,service,0,0,0,minorroads,0,0
"LINESTRING (1478577.50198699417524 6892657.315873299725354,1478578.043167128227651 6892638.551463293842971,1478576.540925727691501 6892624.723470226861537,1478569.626883004792035 6892561.378688556142151,1478562.768824436236173 6892499.644068215973675)",385,service,0,0,0,minorroads,0,0
"LINESTRING (1478354.479788446333259 6892046.069347251206636,1478380.7830090012867 6892040.244233387522399)",389,steps,0,0,0,minorroads,0,0
"LINESTRING (1478279.339726323960349 6892178.407874005846679,1478258.466968471417204 6892184.15644040890038)",394,steps,0,0,0,minorroads,0,0
"LINESTRING (1478330.751838867552578 6891513.839987489394844,1478314.572419055039063 6891526.363167470321059,1478304.653893533628434 6891544.619147759862244)",395,service,0,0,1,minorroads,0,0
"LINESTRING (1478266.771284291520715 6891649.189465964213014,1478247.857971743447706 6891659.628178384155035,1478237.248975021298975 6891675.033351420424879)",396,path,0,0,1,minorroads,0,0
"LINESTRING (1478502.221964489435777 6891308.628160036168993,1478500.943659695796669 6891361.524732173420489,1478492.462060733232647 6891398.051313592121005,1478467.679742961889133 6891433.934281352907419,1478439.631683016428724 6891460.022724987007678,1478405.05213871714659 6891485.467469537630677,1478373.747667287709191 6891508.950281143188477,1478352.874909435166046 6891537.000988053157926)",398,path,0,0,1,minorroads,0,0
"LINESTRING (1478314.572419055039063 6891526.363167470321059,1478287.214830313343555 6891523.757363410666585)",399,service,0,0,1,minorroads,0,0
"LINESTRING (1478034.241110664559528 6892064.219202788546681,1478039.344999152235687 6892078.598087023943663,1478054.283436933998019 6892089.251967732794583,1478158.106046056607738 6892095.843584448099136,1478176.534162622177973 6892091.444062924012542,1478186.172767387935892 6892076.850545356050134)",401,service,0,0,1,minorroads,0,0
"LINESTRING (1478483.047392571577802 6891339.299239296466112,1478488.347225587582216 6891367.196074674837291,1478478.951218814589083 6891390.17271673399955,1478463.807505809003487 6891415.739864616654813,1478443.457266707671806 6891438.701317322440445,1478427.287177590886131 6891453.830160783603787,1478398.585969207808375 6891473.143619342707098,1478366.227129588602111 6891491.920637429691851,1478330.751838867552578 6891513.839987489394844,1478321.794374612625688 6891529.076270229183137,1478316.746470273472369 6891546.32058884575963)",405,service,0,0,1,minorroads,0,0
"LINESTRING (1478057.465202880557626 6892224.90239691734314,1478093.024469834985211 6892209.925397932529449,1478146.34004353149794 6892186.425209088250995)",406,service,0,0,0,minorroads,0,0
"LINESTRING (1478066.245383990462869 6892248.387368608266115,1478102.47646076255478 6892233.011756023392081,1478190.418232214171439 6892193.645416352897882)",407,service,0,0,0,minorroads,0,0
"LINESTRING (1478266.323411077726632 6892206.675530795939267,1478258.466968471417204 6892184.15644040890038)",408,footway,0,0,0,minorroads,0,0
"LINESTRING (1478294.147534419083968 6892193.936677500605583,1478302.395866084843874 6892198.198289232328534,1478342.172605789732188 6892190.916759766638279,1478366.684333492536098 6892186.885094705037773,1478394.974991430528462 6892184.217758473940194,1478408.691108567407355 6892187.253003220073879,1478423.946789876557887 6892198.397573292255402)",409,cycleway,0,0,1,minorroads,0,0
"LINESTRING (1478426.568714311579242 6892198.351584662683308,1478423.918797800550237 6892177.089536693878472)",410,footway,0,0,0,minorroads,0,0
"LINESTRING (1478290.126006194157526 6892125.138020876795053,1478295.649775819852948 6892148.408088837750256)",411,steps,0,0,0,minorroads,0,0
"LINESTRING (1478379.915254652500153 6892302.271228101104498,1478362.765442883595824 6892306.640205512754619)",412,footway,0,0,0,minorroads,0,0
"LINESTRING (1478435.358226108597592 6892223.185482617467642,1478439.258455337258056 6892236.184985723346472,1478439.062510809162632 6892244.340345094911754)",413,footway,0,0,0,minorroads,0,0
"LINESTRING (1478083.927045200718567 6892187.697559367865324,1478093.024469834985211 6892209.925397932529449,1478102.47646076255478 6892233.011756023392081,1478106.442004830343649 6892242.715404408052564,1478115.819350223056972 6892267.411472347564995)",414,service,0,0,0,minorroads,0,0
"LINESTRING (1478258.466968471417204 6892184.15644040890038,1478255.191895604366437 6892172.015472995117307,1478188.91599081363529 6892168.2597481533885,1478009.794697806239128 6892157.437138617038727,1477988.875286494847387 6892163.798869086429477,1478001.574358213692904 6892194.411893087439239,1477860.755555583396927 6892253.814062429592013,1477862.994921646546572 6892261.662846405990422,1477820.493619899032637 6892278.142251771874726,1477774.316025526728481 6892297.166425926610827,1477770.956976432120427 6892291.555746189318597,1477604.488101679133251 6892361.919472146779299)",415,footway,0,0,0,minorroads,0,0
"LINESTRING (1478148.495433366857469 6891955.366671485826373,1478146.871892969822511 6891953.542511217296124)",416,steps,0,0,0,minorroads,0,0
"LINESTRING (1478159.738917143782601 6891950.645316352136433,1478148.495433366857469 6891955.366671485826373)",418,footway,0,0,0,minorroads,0,0
"LINESTRING (1478188.91599081363529 6892168.2597481533885,1478189.345202641561627 6892164.39671871624887)",419,footway,0,0,0,minorroads,0,0
"LINESTRING (1478136.794745683437213 6891958.003273610956967,1478133.109122371301055 6891956.638985191471875)",420,footway,0,0,0,minorroads,0,0
"LINESTRING (1478191.565907321637496 6892107.493896978907287,1478186.172767387935892 6892076.850545356050134)",421,footway,0,0,0,minorroads,0,0
"LINESTRING (1478146.871892969822511 6891953.542511217296124,1478136.794745683437213 6891958.003273610956967)",422,footway,0,0,0,minorroads,0,0
"LINESTRING (1478174.164166870061308 6891331.252093238756061,1478183.056316283298656 6891328.90692647267133,1478203.341240539913997 6891334.992099165916443)",423,footway,0,0,0,minorroads,0,0
"LINESTRING (1478742.832517329836264 6890551.621465139091015,1478732.372811674140394 6890553.414654522202909)",424,footway,0,0,0,minorroads,0,0
"LINESTRING (1478670.46367070893757 6890619.165207961574197,1478689.983478227397427 6890631.901566152460873,1478689.386313944123685 6890639.28896967228502)",425,steps,0,0,0,minorroads,0,0
"LINESTRING (1478744.437396341003478 6890562.901705839671195,1478742.832517329836264 6890551.621465139091015)",426,footway,0,0,0,minorroads,0,0
"LINESTRING (1478711.369424138218164 6890558.916836394928396,1478701.861449058866128 6890559.085426985286176,1478696.636261577485129 6890557.292236343957484)",427,footway,0,0,0,minorroads,0,0
"LINESTRING (1478942.192081137793139 6890130.999331175349653,1478929.446355960331857 6890151.520337683148682,1478917.950943500734866 6890148.838351035490632,1478911.232845311518759 6890147.79620789270848,1478903.646992770954967 6890148.57781523745507,1478894.801496819360182 6890155.535656509920955,1478878.239518640562892 6890175.397721116431057,1478845.694065183168277 6890222.738904757425189,1478818.970963490428403 6890267.812139219604433,1478806.281222464516759 6890296.624811832793057,1478797.323758209589869 6890324.257487938739359,1478792.845026083523408 6890342.311500664800406,1478787.022674316074699 6890377.546061621978879,1478784.932599325431511 6890395.446932943537831,1478779.85670291329734 6890416.060571308247745,1478771.794985085725784 6890435.172296620905399,1478761.046027981443331 6890455.172988045029342,1478735.965128068579361 6890488.553563161753118,1478725.962626316817477 6890506.531313234940171,1478713.720758504699916 6890536.540298494510353,1478704.016838894458488 6890553.276716859079897,1478701.861449058866128 6890559.085426985286176,1478700.424522500019521 6890562.96301154140383,1478697.149449632968754 6890575.208834332413971,1478693.557133241556585 6890582.672818078659475,1478677.396374812116846 6890611.777822931297123)",428,cycleway,0,0,1,minorroads,0,0
"LINESTRING (1478732.372811674140394 6890553.414654522202909,1478711.369424138218164 6890558.916836394928396)",429,steps,0,0,0,minorroads,0,0
"LINESTRING (1478677.396374812116846 6890611.777822931297123,1478687.081633039517328 6890607.195195377804339,1478692.78268580744043 6890602.581917437724769,1478698.707675185520202 6890595.562383316457272,1478713.562136739492416 6890570.764165580272675,1478718.376773776020855 6890564.786856304854155,1478726.401168837677687 6890560.541436778381467,1478737.066149717196822 6890558.610308059491217,1478744.437396341003478 6890562.901705839671195)",430,cycleway,0,0,0,minorroads,0,0
"LINESTRING (1478643.236711653415114 6892266.522351266816258,1478653.985668757697567 6892305.935037068091333)",431,steps,0,0,0,minorroads,0,0
"LINESTRING (1478772.90533742448315 6891164.83891832921654,1478775.947142997290939 6891159.152391017414629)",433,steps,0,0,0,minorroads,0,0
"LINESTRING (1478772.90533742448315 6891164.83891832921654,1478769.872862547170371 6891170.280208340846002)",434,steps,0,0,0,minorroads,0,0
"LINESTRING (1478723.359363270457834 6891253.156875086948276,1478731.085176187567413 6891239.193315446376801)",435,steps,0,0,0,minorroads,0,0
"LINESTRING (1478786.593462488148361 6891171.828294342383742,1478772.90533742448315 6891164.83891832921654)",436,steps,0,0,0,minorroads,0,0
"LINESTRING (1478668.765484777279198 6892171.203009921126068,1478681.837784175062552 6892208.622385010123253)",437,footway,0,0,0,minorroads,0,0
"LINESTRING (1478710.221749030752108 6891380.163537707179785,1478748.841482935240492 6891408.183139178901911,1478750.819589622784406 6891407.692642033100128,1478767.596173715544865 6891418.790147279389203,1478786.602793178288266 6891409.302085905335844,1478804.489729615394026 6891405.224828724749386,1478817.935256686527282 6891406.941568339243531,1478830.662320480914786 6891409.348070020787418)",438,footway,0,0,0,minorroads,0,0
"LINESTRING (1478666.796708779875189 6891437.429085585288703,1478710.221749030752108 6891380.163537707179785,1478724.544361143605784 6891353.262972820550203,1478732.932653188472614 6891356.113968593068421,1478780.79910279950127 6891268.009469541721046)",439,footway,0,0,0,minorroads,0,0
"LINESTRING (1478650.160085063660517 6891985.994230893440545,1478681.333926809718832 6891992.585762946866453,1478677.928224253468215 6892027.842886608093977,1478677.741610415279865 6892034.388465284369886,1478678.739994450472295 6892037.714908943511546)",440,footway,0,0,0,minorroads,0,0
"LINESTRING (1478168.15520126442425 6892347.494091650471091,1478160.606671495363116 6892351.387868744321167)",441,service,0,0,0,minorroads,0,0
"LINESTRING (1478168.15520126442425 6892347.494091650471091,1478229.02863542875275 6892316.635208372958004,1478258.448307088343427 6892304.662668073549867,1478284.107709898613393 6892296.859831305220723,1478311.735888709081337 6892290.911897944286466,1478306.995897207176313 6892268.867791567929089,1478278.453310589306056 6892275.014994577504694,1478250.899777316488326 6892283.385009210556746,1478219.585975191090256 6892296.139333989471197,1478179.24006327916868 6892316.972463291138411,1478168.15520126442425 6892347.494091650471091)",442,service,0,0,-1,minorroads,0,0
"LINESTRING (1478466.102856026496738 6890932.568242912180722,1478535.261944622267038 6890968.449133092537522,1478563.813861930277199 6890983.239892659708858)",443,service,0,0,0,minorroads,0,0
"LINESTRING (1478535.261944622267038 6890968.449133092537522,1478551.870576259680092 6890937.856104321777821)",444,service,0,0,0,minorroads,0,0
"LINESTRING (1478201.335141776595265 6891732.714873464778066,1478206.95221831719391 6891742.801134817302227,1478218.783535687020048 6891781.920006790198386,1478228.459463221486658 6891817.743372742086649,1478231.855835082009435 6891832.934244934469461,1478232.47166075091809 6891843.219907283782959,1478248.548442946979776 6891921.397502834908664,1478245.795888828579336 6891933.921317706815898,1478285.656604760792106 6892105.271138682030141,1478298.74756553885527 6892115.112597333267331)",445,cycleway,0,0,0,minorroads,0,0
"LINESTRING (1478294.147534419083968 6892193.936677500605583,1478283.305270394310355 6892188.264751724898815,1478292.328049491159618 6892184.800280102528632,1478299.932563415030017 6892178.361885491758585,1478303.198305588914081 6892173.471774934791028,1478305.997513171983883 6892166.573504913598299,1478306.128142858389765 6892160.089136488735676,1478302.031969098607078 6892141.893076196312904,1478301.080238522263244 6892130.840560940094292,1478301.957323563983664 6892124.540174165740609,1478298.74756553885527 6892115.112597333267331)",446,cycleway,0,0,0,minorroads,0,0
"LINESTRING (1478201.335141776595265 6891732.714873464778066,1478215.956336030969396 6891726.108225850388408,1478246.253092732280493 6891712.113187463954091)",447,cycleway,0,0,0,minorroads,0,0
"LINESTRING (1478001.098492924124002 6891901.362505401484668,1478060.320394612615928 6891876.636904109269381,1478078.972447784850374 6891865.860673903487623,1478082.060906813945621 6891858.579445453360677,1478079.243037850596011 6891849.841980019584298,1478076.089263980044052 6891843.971021738834679)",448,service,0,0,1,minorroads,0,0
"LINESTRING (1477667.806177130201831 6890740.184415513649583,1477692.989714653696865 6890752.445835038088262,1477718.966360991122201 6890765.105770315043628,1477746.939775401959196 6890778.731316149234772,1477774.325356219662353 6890792.081001562997699,1477799.844798653386533 6890804.495769085362554,1477826.689199339831248 6890817.569612891413271,1477853.21635650168173 6890830.490208609960973,1477870.412821729434654 6890838.874046353623271,1477884.222245789365843 6890845.602580599486828,1477896.118878001114354 6890851.39617495983839,1477908.761965568177402 6890857.557621157728136,1477917.271556612337008 6890861.695908572524786)",450,service,0,0,0,minorroads,0,0
"LINESTRING (1478824.485402423189953 6889940.611638756468892,1478826.332879424327984 6889961.990374932065606,1478873.471535062883049 6890004.119678050279617,1478895.202716574305668 6890003.031577592715621)",451,service,0,0,0,minorroads,0,0
"LINESTRING (1478826.332879424327984 6889961.990374932065606,1478844.583712844643742 6889961.729845183901489,1478857.460067708510906 6889965.62246694136411,1478866.314894350245595 6889971.446077805943787,1478871.148192772408947 6889978.863525116816163,1478873.051653927890584 6889986.694763084873557,1478873.471535062883049 6890004.119678050279617)",452,service,0,0,0,minorroads,0,0
"LINESTRING (1477976.540111759677529 6891214.653682666830719,1477971.902757871197537 6891228.034747345373034)",453,steps,0,0,0,minorroads,0,0
"LINESTRING (1477938.965415351791307 6891251.148941309191287,1477930.74507576203905 6891262.215574943460524)",454,footway,0,0,0,minorroads,0,0
"LINESTRING (1477687.951141010504216 6891192.24466432724148,1477663.122169780312106 6891154.109624875709414)",455,steps,0,0,0,minorroads,0,0
"LINESTRING (1477691.104914883850142 6891132.620425897650421,1477676.838286919984967 6891143.564276114106178,1477663.122169780312106 6891154.109624875709414)",456,footway,0,0,0,minorroads,0,0
"LINESTRING (1477462.521623944398016 6891132.436495768837631,1477442.441974906018004 6891104.218598398379982,1477409.887190758716315 6891028.072153965942562,1477358.950943501666188 6890905.500577809289098,1477348.043364635203034 6890881.83560439478606,1477342.883491998305544 6890867.014377377927303)",457,service,0,0,1,minorroads,0,0
"LINESTRING (1477831.671788828447461 6891088.967793419025838,1477945.356939326506108 6891019.718773512169719)",458,service,0,0,0,minorroads,0,0
"LINESTRING (1477869.451760460156947 6891113.706299720332026,1478003.72041735611856 6891029.390302868559957)",459,service,0,0,0,minorroads,0,0
"LINESTRING (1477845.527866347460076 6891886.3401223346591,1477791.073948236415163 6891868.1293527437374)",460,footway,0,0,0,minorroads,0,0
"LINESTRING (1477453.480183461913839 6891871.563030050136149,1477488.80618311651051 6891880.361834840849042,1477497.931599820964038 6891882.584530951455235)",461,footway,0,0,0,minorroads,0,0
"LINESTRING (1477532.912363875191659 6891765.932137601077557,1477528.760205966420472 6891769.565044686198235,1477518.44979138020426 6891779.850625957362354,1477476.415024229325354 6891823.798257810994983,1477453.480183461913839 6891871.563030050136149,1477446.790077348472551 6891924.126067938283086,1477455.001086245523766 6891954.247648754157126,1477479.27954665129073 6891990.056453500874341,1477520.185300080571324 6892012.866254753433168,1477559.542158647440374 6892023.489389923401177,1477605.402509489562362 6892027.306364,1477641.698901103343815 6892021.588568172417581,1477698.606791194295511 6891999.713821127079427,1477758.453849244629964 6891976.490170946344733,1477766.870133368065581 6891969.990626736544073,1477805.835102870129049 6891944.375728919170797,1477826.847821102011949 6891917.074721806682646,1477845.527866347460076 6891886.3401223346591,1477851.910059632034972 6891830.496958760544658,1477838.539178092731163 6891786.549290280789137,1477791.7177659785375 6891729.219940873794258,1477778.748104193946347 6891722.337380684912205,1477750.625398713862523 6891707.238689129240811,1477722.110804171767086 6891695.68092814553529,1477715.271406986285001 6891692.891126264818013,1477715.271406986285001 6891689.074310968630016)",462,footway,0,0,0,minorroads,0,0
"LINESTRING (1477698.606791194295511 6891999.713821127079427,1477684.106895933393389 6891965.959072479978204)",463,footway,0,0,0,minorroads,0,0
"LINESTRING (1477641.698901103343815 6892021.588568172417581,1477630.651361857540905 6891980.675021766684949)",464,footway,0,0,0,minorroads,0,0
"LINESTRING (1477758.453849244629964 6891976.490170946344733,1477733.382280024467036 6891937.293706933036447)",465,footway,0,0,0,minorroads,0,0
"LINESTRING (1477589.372380752116442 6891940.098922687582672,1477608.183055686764419 6891941.662485988810658,1477621.553937226068228 6891941.61649882979691,1477645.869720400776714 6891935.300931309349835,1477672.452861708588898 6891925.796931291930377,1477690.274483300978318 6891915.112609200179577,1477708.749253325397149 6891903.569878341630101,1477733.260981028201059 6891876.943482707254589,1477740.81884149601683 6891855.620969253592193,1477739.204631788888946 6891837.83947719540447,1477727.531936184270307 6891822.342019217088819,1477711.119249074719846 6891813.175386519171298,1477692.793770122574642 6891811.21329927444458,1477669.625662055332214 6891811.627177014946938,1477646.289601535769179 6891816.425094575621188,1477623.009525167988613 6891825.009235370904207,1477603.237788961268961 6891833.317466095089912,1477582.868888476863503 6891847.971857075579464,1477568.835527812829241 6891862.702919281087816,1477557.713343029376119 6891874.904735265299678,1477552.590793161420152 6891893.192165004089475,1477556.323069932172075 6891914.928661165758967,1477568.508953595301136 6891930.993471848778427,1477589.372380752116442 6891940.098922687582672)",466,footway,0,0,0,minorroads,0,0
"LINESTRING (1477630.651361857540905 6891980.675021766684949,1477621.553937226068228 6891941.61649882979691)",467,footway,0,0,0,minorroads,0,0
"LINESTRING (1477733.382280024467036 6891937.293706933036447,1477725.65646710456349 6891926.732001763768494)",468,footway,0,0,0,minorroads,0,0
"LINESTRING (1477692.793770122574642 6891811.21329927444458,1477692.383219677722082 6891764.399265908636153)",469,footway,0,0,0,minorroads,0,0
"LINESTRING (1477623.009525167988613 6891825.009235370904207,1477605.701091633876786 6891783.682813100516796)",470,footway,0,0,0,minorroads,0,0
"LINESTRING (1477568.835527812829241 6891862.702919281087816,1477532.959017333807424 6891828.534867286682129)",471,footway,0,0,0,minorroads,0,0
"LINESTRING (1477712.416215251665562 6892167.769204625859857,1477622.598974722903222 6892203.119073937647045,1477613.996076758485287 6892205.019938614219427,1477434.361595695605502 6891964.472149926237762,1477394.239620390348136 6891910.743844576179981,1477429.593612115131691 6891873.494474177248776,1477436.890213207341731 6891866.151923180557787,1477441.835479930043221 6891855.605640362016857,1477443.235083720181137 6891845.319962166249752,1477442.451305598951876 6891835.080283679999411,1477436.778244903776795 6891818.847047658637166,1477420.038983579957858 6891781.7513905512169,1477621.376654078019783 6891628.511351731605828,1477646.028342162957415 6891609.810656713321805,1477673.292623987188563 6891591.493214836344123)",472,service,0,0,0,minorroads,0,0
"LINESTRING (1477815.604337325086817 6892123.712386487983167,1477827.603607150260359 6892118.301109884865582,1477942.464424828533083 6892069.323857038281858,1477932.499245842685923 6892029.866343609988689,1477907.651613229420036 6891922.531850008293986,1477868.882588252890855 6891831.89188345707953,1477820.43763574725017 6891737.451429275795817,1477790.495445336448029 6891720.130057509988546,1477761.831559722078964 6891708.204391392879188,1477715.271406986285001 6891689.074310968630016,1477648.389007219579071 6891687.173568284139037,1477635.969856259413064 6891687.173568284139037)",473,service,0,0,0,minorroads,0,0
"LINESTRING (1477679.992060790536925 6892101.331492725759745,1477711.445823292247951 6892094.893164958804846,1477740.706873192451894 6892082.721673713997006,1477770.406465607928112 6892066.840511322021484)",474,footway,0,0,0,minorroads,0,0
"LINESTRING (1477679.992060790536925 6892101.331492725759745,1477656.320095360744745 6892053.243440655060112,1477653.212974948808551 6892047.832211491651833,1477641.698901103343815 6892021.588568172417581)",475,footway,0,0,0,minorroads,0,0
"LINESTRING (1477656.320095360744745 6892053.243440655060112,1477710.120865036733449 6892026.509244767017663,1477767.52328180288896 6891994.900465020909905)",476,footway,0,0,0,minorroads,0,0
"LINESTRING (1477710.120865036733449 6892026.509244767017663,1477698.606791194295511 6891999.713821127079427)",477,footway,0,0,0,minorroads,0,0
"LINESTRING (1477648.389007219579071 6891687.173568284139037,1477621.376654078019783 6891628.511351731605828)",478,service,0,0,0,minorroads,0,0
"LINESTRING (1477932.499245842685923 6892029.866343609988689,1477886.685548456618562 6892048.276759926229715,1477859.551896321587265 6892044.52109289355576,1477838.193942492129281 6892048.522028035484254,1477825.345579701242968 6892061.076699531637132,1477818.552835974609479 6892075.225638516247272,1477816.938626270508394 6892089.72717712726444,1477827.603607150260359 6892118.301109884865582)",479,service,0,0,0,minorroads,0,0
"LINESTRING (1477793.089377692667767 6892048.154125873930752,1477798.221258256351575 6892062.103761437349021,1477809.315450964029878 6892056.815160491503775,1477818.552835974609479 6892075.225638516247272)",480,footway,0,0,0,minorroads,0,0
"LINESTRING (1477653.212974948808551 6892047.832211491651833,1477598.712403376353905 6892069.354515632614493,1477624.567750717513263 6892151.274696073494852,1477622.598974722903222 6892203.119073937647045)",481,footway,0,0,0,minorroads,0,0
"LINESTRING (1477420.038983579957858 6891781.7513905512169,1477396.65626959851943 6891799.042237523943186,1477337.518344137584791 6891842.192873341962695,1477394.239620390348136 6891910.743844576179981)",482,service,0,0,0,minorroads,0,0
"LINESTRING (1476971.260693745920435 6891517.24285698775202,1477003.171660154126585 6891536.188589158467948,1476982.261579535668716 6891598.958142179064453,1476967.575070433784276 6891697.474372724071145,1476966.875268540112302 6891701.980978826992214,1476966.007514191325754 6891708.173734177835286,1476958.244378502713516 6891776.202385487966239,1476938.295359153533354 6891904.612249108031392,1476921.612081981264055 6892006.780568920075893,1476991.209713097894564 6892086.753286531195045,1477034.942666180199012 6892055.404867491684854,1477081.764078291598707 6892021.849164674989879,1477195.953086152207106 6891932.158478451892734,1477145.837939785327762 6891865.492780096828938)",483,service,0,0,0,minorroads,0,0
"LINESTRING (1477366.966007873183116 6891868.589220155961812,1477374.589183179894462 6891866.535145924426615,1477381.72716250969097 6891866.059949724003673,1477387.073648984543979 6891867.378236030228436,1477393.241236352361739 6891869.064416506327689,1477400.024649386061355 6891868.911127359606326,1477405.669718005461618 6891867.424222765490413,1477410.885574793908745 6891865.109557402320206,1477415.000409936532378 6891861.675882850773633,1477418.340797648299485 6891857.813000736758113,1477420.710793400416151 6891853.612884988076985,1477422.185042725177482 6891848.309092325158417,1477422.492955556837842 6891842.898001108318567,1477421.839807122014463 6891837.241651857271791,1477418.331466958159581 6891830.450972235761583,1477407.787785074906424 6891815.995887773111463,1477396.65626959851943 6891799.042237523943186)",484,service,0,0,0,minorroads,0,0
"LINESTRING (1477698.644113963004202 6891577.758992903865874,1477820.43763574725017 6891737.451429275795817)",485,service,0,0,1,minorroads,0,0
"LINESTRING (1477687.456614337861538 6891609.488759884610772,1477698.756082263542339 6891624.587267857044935,1477700.855487952940166 6891631.31645973585546,1477700.70619688089937 6891638.674124730750918,1477699.073325790930539 6891646.231066821143031,1477695.555654934141785 6891652.009909689426422,1477690.4051129873842 6891656.97634560521692,1477684.937327513471246 6891659.873434635810554,1477677.034231450874358 6891661.329643805511296,1477668.60861663450487 6891660.256647552363575,1477661.470637307269499 6891656.961017092689872,1477656.077497370773926 6891652.5923927500844,1477652.401204751804471 6891646.859534942544997,1477649.816603085491806 6891639.394563124515116,1477650.255145606352016 6891626.01281373295933,1477656.189465674338862 6891614.179257809184492,1477665.128268546424806 6891606.315777552314103,1477673.292623987188563 6891591.493214836344123,1477691.888693005079404 6891579.199858834967017,1477698.644113963004202 6891577.758992903865874)",486,service,0,0,0,minorroads,0,0
"LINESTRING (1477181.042640446452424 6891986.515421602874994,1477192.79931227886118 6892009.585808921605349,1477209.538573602680117 6892019.396492030471563,1477223.357328352984041 6892015.226950248703361,1477241.897413221886382 6892003.868025694973767,1477254.251249337336048 6892002.672350356355309,1477481.09903157921508 6892286.972161007113755,1477529.711936542764306 6892276.82389810308814,1477549.437019285047427 6892291.479097588919103,1477584.352468494558707 6892335.368207341991365,1477604.488101679133251 6892361.919472146779299)",490,service,0,0,0,minorroads,0,0
"LINESTRING (1477583.904595280997455 6891294.219997277483344,1477610.217146528884768 6891274.416479538194835,1477654.062067914754152 6891332.033815642818809,1477629.401049136882648 6891352.74182316660881)",491,service,0,0,0,minorroads,0,0
"LINESTRING (1477868.005503211170435 6891418.483586152084172,1477848.45770361693576 6891433.290501792915165,1477828.732620871858671 6891448.066788487136364,1477807.514627421740443 6891462.582523957826197)",492,service,0,0,0,minorroads,0,0
"LINESTRING (1477807.514627421740443 6891462.582523957826197,1477751.623782749054953 6891507.58606893569231,1477629.401049136882648 6891352.74182316660881)",493,service,0,0,0,minorroads,0,0
"LINESTRING (1477629.401049136882648 6891352.74182316660881,1477583.904595280997455 6891294.219997277483344)",494,service,0,0,0,minorroads,0,0
"LINESTRING (1477583.904595280997455 6891294.219997277483344,1477558.161216243170202 6891260.008378100581467)",495,service,0,0,0,minorroads,0,0
"LINESTRING (1477601.101060511544347 6890443.310502992011607,1477582.691605331841856 6890428.290844186209142,1477188.208611846435815 6890073.681786119006574)",496,service,0,0,0,minorroads,0,0
"LINESTRING (1477130.610250554978848 6890845.357349183410406,1477112.210126065183431 6890858.29331654496491)",500,steps,0,0,0,minorroads,0,0
"LINESTRING (1477083.490256302058697 6890932.47628013510257,1477087.66107559367083 6890947.466226569376886,1477089.116663535358384 6890956.187384136021137)",502,footway,0,0,0,minorroads,0,0
"LINESTRING (1477087.66107559367083 6890947.466226569376886,1477145.95923878159374 6890906.512165016494691,1477156.708195885876194 6890900.657222660258412,1477187.527471335837618 6890885.774652787484229,1477210.406327954260632 6890875.919371928088367,1477223.142722439020872 6890877.1455337414518)",503,footway,0,0,0,minorroads,0,0
"LINESTRING (1477406.453496126458049 6891175.721502039581537,1477391.981592941563576 6891187.615723043680191,1477374.197294117882848 6891201.563865466974676,1477022.420877606840804 6891477.159598301164806,1476986.90826411684975 6891504.980270971544087,1476971.260693745920435 6891517.24285698775202,1476941.243857803056017 6891507.294832653366029)",505,service,0,0,0,minorroads,0,0
"LINESTRING (1477358.950943501666188 6890905.500577809289098,1477336.324015568709001 6890915.141315577551723,1477320.424516517668962 6890921.931222087703645,1477285.014540638308972 6890925.701691834256053,1477178.570007083471864 6890971.238683593459427,1477158.975554024800658 6890984.971869397908449,1477098.400702007813379 6891032.118565235286951)",506,service,0,0,0,minorroads,0,0
"LINESTRING (1477095.414880589582026 6891011.595310922712088,1477098.400702007813379 6891032.118565235286951,1477105.977223855676129 6891139.563791322521865)",507,footway,0,0,0,minorroads,0,0
"LINESTRING (1477677.911316492594779 6891115.560924383811653,1477665.996022895211354 6891125.600428977049887,1477664.307167656254023 6891126.872611372731626,1477657.943635757779703 6891131.777412844821811)",508,service,0,0,0,minorroads,0,0
"LINESTRING (1477768.558988607022911 6891022.355068786069751,1477796.73767824168317 6891035.567212809808552,1477831.550489834975451 6891054.557791966944933,1477842.486060780240223 6891060.520138014107943)",509,service,0,0,0,minorroads,0,0
"LINESTRING (1477556.62165207369253 6890751.633515411056578,1477574.769847880583256 6890734.436881551519036,1477588.150060110026971 6890725.838578412309289,1477599.608149800915271 6890720.106381432153285,1477612.997692723292857 6890719.156124571338296,1477625.40751299331896 6890720.106381432153285,1477644.516770066693425 6890726.804162795655429,1477667.806177130201831 6890740.184415513649583)",510,service,0,0,0,minorroads,0,0
"LINESTRING (1477782.620341347064823 6891064.459273951128125,1477796.73767824168317 6891035.567212809808552,1477810.771038905717432 6891005.403092133812606)",511,service,0,0,0,minorroads,0,0
"LINESTRING (1477872.456243261462077 6890928.291974918916821,1477851.564824028639123 6890914.007110533304513)",512,service,0,0,0,minorroads,0,0
"LINESTRING (1477853.21635650168173 6890830.490208609960973,1477820.027085299603641 6890898.649376915767789)",513,service,0,0,0,minorroads,0,0
"LINESTRING (1477799.844798653386533 6890804.495769085362554,1477766.64619676116854 6890872.63939,1477751.77307382132858 6890903.186189386062324)",514,service,0,0,0,minorroads,0,0
"LINESTRING (1477724.163556393934414 6890895.04751749522984,1477741.136085020378232 6890860.209190255962312,1477774.325356219662353 6890792.081001562997699)",515,service,0,0,0,minorroads,0,0
"LINESTRING (1477695.984866762068123 6890883.337653747759759,1477713.750504202675074 6890846.874718683771789,1477746.939775401959196 6890778.731316149234772)",516,service,0,0,0,minorroads,0,0
"LINESTRING (1477668.114089961862192 6890869.497352491132915,1477685.777089789044112 6890833.233730419538915,1477718.966360991122201 6890765.105770315043628)",517,service,0,0,0,minorroads,0,0
"LINESTRING (1477754.656257629161701 6891051.660921058617532,1477768.558988607022911 6891022.355068786069751,1477783.898646140703931 6890993.049323340877891)",518,service,0,0,0,minorroads,0,0
"LINESTRING (1477642.893229672452435 6890855.289227482862771,1477659.791112761478871 6890820.589014776051044,1477692.989714653696865 6890752.445835038088262)",519,service,0,0,0,minorroads,0,0
"LINESTRING (1477623.998578510247171 6890830.107035243883729,1477634.607575237983838 6890808.327491325326264,1477667.806177130201831 6890740.184415513649583)",520,service,0,0,0,minorroads,0,0
"LINESTRING (1477781.379359321901575 6890910.619823455810547,1477793.499928140547127 6890885.713344623334706,1477826.689199339831248 6890817.569612891413271)",521,service,0,0,0,minorroads,0,0
"LINESTRING (1477870.412821729434654 6890838.874046353623271,1477837.214219840010628 6890907.017958667129278)",522,service,0,0,0,minorroads,0,0
"LINESTRING (1477091.775910733500496 6890789.490762358531356,1476942.736768513685092 6890783.32936832588166)",524,footway,0,0,0,minorroads,0,0
"LINESTRING (1477536.616648569935933 6891975.447790859267116,1477569.955210844287649 6891984.997836984694004,1477600.793147677090019 6891986.469434185884893,1477630.651361857540905 6891980.675021766684949,1477684.106895933393389 6891965.959072479978204,1477713.899795272154734 6891950.844594269990921,1477733.382280024467036 6891937.293706933036447,1477770.46244975971058 6891905.470672187395394,1477791.073948236415163 6891868.1293527437374,1477793.630557826953009 6891835.402189544402063,1477787.742891217814758 6891810.416201460175216,1477774.064096846850589 6891789.768330050632358,1477751.353192683542147 6891775.144702635705471,1477724.723397911060601 6891766.315355568192899,1477692.383219677722082 6891764.399265908636153,1477662.301068890141323 6891765.901480161584914,1477631.080573685467243 6891773.381898197345436,1477605.701091633876786 6891783.682813100516796,1477577.802322755102068 6891796.129769561812282,1477555.511299735167995 6891809.818378160707653,1477532.959017333807424 6891828.534867286682129,1477517.423415269004181 6891848.12514582183212,1477505.610759282018989 6891863.929231609217823,1477497.931599820964038 6891882.584530951455235,1477494.936447712592781 6891903.999089813791215,1477496.830578175140545 6891922.010663450695574,1477500.497540106996894 6891936.419951410032809,1477507.775479810545221 6891951.089859411120415,1477523.27375910943374 6891966.464932785369456,1477536.616648569935933 6891975.447790859267116)",535,footway,0,0,0,minorroads,0,0
"LINESTRING (1477161.457518077688292 6890758.668512595817447,1477029.446888633305207 6890709.37768148444593)",538,footway,0,0,0,minorroads,0,0
"LINESTRING (1477131.048793075839058 6890631.24252425506711,1477164.126095974352211 6890700.488198084756732,1477179.391107973642647 6890738.498471793718636)",539,service,0,0,0,minorroads,0,0
"LINESTRING (1477519.588135797530413 6890535.436799609102309,1477529.833235539030284 6890516.294183277525008,1477567.697183395503089 6890475.526233145967126,1477601.101060511544347 6890443.310502992011607,1477654.556594587164 6890383.078775299713016,1477699.67982076969929 6890328.610064546577632,1477708.963859239360318 6890318.096450427547097,1477743.879308448871598 6890287.352637302130461,1477755.803932736394927 6890280.6858737943694,1477780.185030752792954 6890271.551650473847985,1477786.39927157945931 6890262.126246342435479,1477776.443423286313191 6890246.309983272105455,1477725.507176032289863 6890206.493598283268511,1477672.238255794625729 6890175.474349547177553,1477612.512496743584052 6890149.129538116045296,1477598.469805386383086 6890135.673640975728631,1477603.097828581929207 6890120.148812685161829,1477617.560401076916605 6890072.379119392484426,1477630.968605382135138 6890069.988343353383243,1477642.156105010071769 6890079.5361262653023,1478111.629869545809925 6890480.982382909394801)",540,service,0,0,0,minorroads,0,0
"LINESTRING (1477457.678994829300791 6890649.726370869204402,1477478.663720985176042 6890623.471964616328478,1477502.205056728795171 6890571.39254963491112)",542,service,0,0,0,minorroads,0,0
"LINESTRING (1477394.202297621639445 6890700.610811580903828,1477457.678994829300791 6890649.726370869204402)",543,service,0,0,0,minorroads,0,0
"LINESTRING (1477202.689845727290958 6890575.867871635593474,1477215.379586750175804 6890595.455097910948098,1477325.491082236869261 6890699.476636806502938,1477343.788569116033614 6890718.313154872506857,1477379.665079592028633 6890708.013604944571853,1477394.202297621639445 6890700.610811580903828)",544,service,0,0,0,minorroads,0,0
"LINESTRING (1477179.129848600830883 6890751.863417183049023,1477161.457518077688292 6890758.668512595817447,1477091.775910733500496 6890789.490762358531356,1477003.218313615769148 6890845.05080992449075,1476929.076635525561869 6890897.699098956771195,1476846.1361149456352 6890928.598517356440425,1476697.29291725391522 6891011.472692683339119,1476669.580762218683958 6891010.522401385009289,1476642.055221018847078 6890998.321897276677191)",545,footway,0,0,0,minorroads,0,0
"LINESTRING (1477179.391107973642647 6890738.498471793718636,1477173.72737796837464 6890740.307029619812965,1477160.067244980484247 6890746.192508741281927,1477144.335698384558782 6890708.933207083493471,1477164.126095974352211 6890700.488198084756732)",546,service,0,0,0,minorroads,0,0
"LINESTRING (1477825.784122222103179 6891305.424640764482319,1477810.183205312816426 6891318.392004153691232,1477807.579942266456783 6891320.553233419544995,1477805.405891042202711 6891322.361922188661993)",547,service,0,0,0,minorroads,0,0
"LINESTRING (1477434.361595695605502 6891964.472149926237762,1477445.68905570008792 6891957.957286356948316,1477455.001086245523766 6891954.247648754157126,1477500.497540106996894 6891936.419951410032809)",548,footway,0,0,0,minorroads,0,0
"LINESTRING (1477654.071398604661226 6891729.08198303822428,1477655.685608308762312 6891734.416354355402291)",549,footway,0,0,0,minorroads,0,0
"LINESTRING (1477751.353192683542147 6891775.144702635705471,1477778.748104193946347 6891722.337380684912205)",550,footway,0,0,0,minorroads,0,0
"LINESTRING (1477530.710320580750704 6892072.497022124007344,1477532.408506509615108 6892059.927003527060151,1477512.972675218945369 6892026.631878494285047,1477520.185300080571324 6892012.866254753433168,1477536.616648569935933 6891975.447790859267116)",551,footway,0,0,0,minorroads,0,0
"LINESTRING (1477188.460540529107675 6890785.490453751757741,1477179.129848600830883 6890751.863417183049023,1477173.72737796837464 6890740.307029619812965)",555,footway,0,0,0,minorroads,0,0
"LINESTRING (1477233.434475639369339 6890900.503951973281801,1477229.739521637326106 6890892.028087645769119,1477223.142722439020872 6890877.1455337414518,1477221.817764186300337 6890863.182627168484032)",557,footway,0,0,0,minorroads,0,0
"LINESTRING (1477682.39004861866124 6889990.909228938631713,1477660.640205727424473 6889979.016778235323727,1477638.041269867448136 6889962.005700208246708,1477601.502280263695866 6889935.768864835612476,1477037.424630233086646 6889460.654818921349943,1476851.809175638016313 6889334.68986457772553,1476836.674793327925727 6889326.736669098958373,1476816.165932461619377 6889319.151258772239089,1476789.40550800296478 6889310.018127746880054,1476760.433709556935355 6889300.195426267571747,1476743.535826465114951 6889295.567574185319245,1476724.081333788577467 6889290.40338478051126,1476703.572472922271118 6889300.655146818608046)",558,service,0,0,0,minorroads,0,0
"LINESTRING (1477637.518751118797809 6890024.67101151868701,1477572.987685721367598 6889974.54178845603019,1477564.646047132555395 6889952.427406344562769,1477559.635465567931533 6889940.856842578388751,1477558.403814232908189 6889935.079229551367462)",560,service,0,0,0,minorroads,0,0
"LINESTRING (1477699.67982076969929 6890328.610064546577632,1477733.204996876418591 6890359.445991663262248,1477739.904433685587719 6890365.024671027436852)",561,service,0,0,0,minorroads,0,0
"LINESTRING (1477962.600058013107628 6891779.436749854125082,1477953.866530364844948 6891751.538483916781843,1477943.453478170791641 6891735.30541658680886)",562,footway,0,0,0,minorroads,0,0
"LINESTRING (1477349.881510943174362 6890675.812269823625684,1477337.537005520658568 6890685.851225290447474)",563,footway,0,0,0,minorroads,0,0
"LINESTRING (1477178.570007083471864 6890971.238683593459427,1477201.355556778842583 6891033.344750871881843,1477171.068130770465359 6891047.170006854459643,1477173.083560226485133 6891051.921486127190292,1477200.823707337491214 6891117.231619697995484,1477217.040449918713421 6891155.381811781786382,1477226.044567629694939 6891176.595174888148904,1477236.019077305682003 6891188.397431484423578,1477262.11702263681218 6891201.349278477951884,1477343.11675929534249 6891166.862158128991723)",564,service,0,0,0,minorroads,0,0
"LINESTRING (1477555.511299735167995 6891809.818378160707653,1477539.014636401087046 6891785.00108590349555)",565,footway,0,0,0,minorroads,0,0
"LINESTRING (1477397.141465578228235 6890736.030863894149661,1477364.94124772422947 6890746.376430032774806)",566,steps,0,0,0,minorroads,0,0
"LINESTRING (1477192.883288506418467 6890795.897391020320356,1477199.097529330058023 6890810.090084169991314,1477209.725187440868467 6890834.291289354674518)",567,steps,0,0,0,minorroads,0,0
"LINESTRING (1476986.90826411684975 6891504.980270971544087,1476978.417334458557889 6891488.410481329075992,1476982.625476519111544 6891477.634771515615284,1477001.21221484686248 6891429.979636301286519,1477055.871408184524626 6891387.674252809025347,1476926.19345171796158 6891217.903148794546723,1476932.389031158527359 6891202.544834636151791,1477041.110253545222804 6891117.369567033834755,1477044.021429431624711 6891042.633113135583699,1477037.135378784500062 6891030.999671006575227,1477030.258658833103254 6891020.699720491655171)",568,service,0,0,0,minorroads,0,0
"LINESTRING (1477851.564824028639123 6890914.007110533304513,1477837.214219840010628 6890907.017958667129278,1477820.027085299603641 6890898.649376915767789,1477793.499928140547127 6890885.713344623334706,1477766.64619676116854 6890872.63939,1477741.136085020378232 6890860.209190255962312,1477713.750504202675074 6890846.874718683771789,1477685.777089789044112 6890833.233730419538915,1477659.791112761478871 6890820.589014776051044,1477634.607575237983838 6890808.327491325326264)",569,service,0,0,0,minorroads,0,0
"LINESTRING (1477657.943635757779703 6891131.777412844821811,1477634.971472224220634 6891151.028787543997169)",572,service,0,0,1,minorroads,0,0
"LINESTRING (1477547.608203666983172 6890950.087170991115272,1477521.230337577406317 6890965.031168691813946,1477512.394172318745404 6890970.012507430277765,1477494.852471484802663 6890979.95986695215106,1477486.482840825803578 6890984.695979272015393,1477470.17279132688418 6890993.938303586095572,1477464.826304849237204 6890996.973098964430392,1477447.863106921315193 6891006.567964611575007,1477439.782727705081925 6891011.135492536239326,1477421.92378334957175 6891021.251503217034042,1477409.887190758716315 6891028.072153965942562)",573,service,0,0,1,minorroads,0,0
"LINESTRING (1477634.971472224220634 6891151.028787543997169,1477612.559150202432647 6891120.695631274022162)",574,service,0,0,1,minorroads,0,0
"LINESTRING (1477805.405891042202711 6891322.361922188661993,1477795.459373445017263 6891330.2404525866732,1477820.325667443918064 6891360.42112004570663,1477845.29459905042313 6891389.191724671050906,1477868.005503211170435 6891418.483586152084172,1477915.246796463150531 6891483.398165013641119,1477941.960567463189363 6891518.177879937924445,1478007.443363436963409 6891603.372722592204809,1478079.075085395481437 6891736.240464904345572)",575,service,0,0,0,minorroads,0,0
"LINESTRING (1477604.488101679133251 6892361.919472146779299,1477636.333753245649859 6892365.016103434376419,1477641.120398203376681 6892375.777672911994159,1477651.720064238179475 6892399.615673690102994,1477661.713235300034285 6892422.135367657989264,1477671.743729121983051 6892444.701114750467241,1477677.360805668402463 6892457.31772515270859,1477696.218134059105068 6892478.028631558641791,1477711.763066816842183 6892498.678270866163075)",576,service,0,0,0,minorroads,0,0
"LINESTRING (1477022.420877606840804 6891477.159598301164806,1477104.59628144861199 6891583.522458178922534,1477116.763503728900105 6891599.280038581229746,1477202.167326975846663 6891709.829224040731788,1477215.323602598393336 6891726.859329365193844,1477316.235035840189084 6891857.49109398201108,1477337.518344137584791 6891842.192873341962695)",577,service,0,0,0,minorroads,0,0
"LINESTRING (1476941.243857803056017 6891507.294832653366029,1476903.80912177474238 6891496.304502658545971,1476881.984633348649368 6891489.881987628526986,1476860.79463197151199 6891483.674072253517807,1476837.299949686974287 6891476.761065948754549,1476802.673751928843558 6891462.735805360600352,1476793.585657987510785 6891460.084037529304624)",578,service,0,0,0,minorroads,0,0
"LINESTRING (1477751.623782749054953 6891507.58606893569231,1477741.089431561529636 6891515.342154928483069)",579,service,0,0,0,minorroads,0,0
"LINESTRING (1477612.559150202432647 6891120.695631274022162,1477582.075779662933201 6891143.656241306103766,1477566.754783512093127 6891124.2362818159163,1477529.049457415007055 6891078.468512326478958)",580,service,0,0,0,minorroads,0,0
"LINESTRING (1477634.971472224220634 6891151.028787543997169,1477614.761193496640772 6891168.440898629836738,1477601.101060511544347 6891175.721502039581537,1477585.4534901403822 6891184.105699811130762,1477566.950728042982519 6891186.788031838834286,1477558.702396374428645 6891184.381596778519452,1477547.496235363651067 6891176.426571349613369,1477507.896778806811199 6891126.826628868468106)",581,service,0,0,0,minorroads,0,0
"LINESTRING (1477793.089377692667767 6892048.154125873930752,1477767.52328180288896 6891994.900465020909905,1477758.453849244629964 6891976.490170946344733)",582,footway,0,0,0,minorroads,0,0
"LINESTRING (1477215.323602598393336 6891726.859329365193844,1477568.294347681337968 6891455.945442079566419,1477586.535850405925885 6891442.410717039369047)",585,service,0,0,0,minorroads,0,0
"LINESTRING (1476860.79463197151199 6891483.674072253517807,1476960.819649475859478 6891630.565365144982934,1476941.281180571764708 6891746.219429916702211,1476922.526489791693166 6891772.308886986225843,1476902.138927918858826 6891980.215147942304611,1476921.612081981264055 6892006.780568920075893)",586,service,0,0,0,minorroads,0,0
"LINESTRING (1477202.167326975846663 6891709.829224040731788,1477555.511299735167995 6891439.437065890990198,1477573.715479691047221 6891425.779744077473879)",587,service,0,0,0,minorroads,0,0
"LINESTRING (1477696.218134059105068 6892478.028631558641791,1477691.039600039366633 6892481.830491381697357,1477655.918875608593225 6892510.237186400219798,1477625.398182300385088 6892475.315208514221013,1477531.120871023042127 6892361.674194470979273,1477492.827711335849017 6892391.613455899991095,1477584.249830884160474 6892505.760787431150675,1477625.398182300385088 6892475.315208514221013)",588,service,0,0,0,minorroads,0,0
"LINESTRING (1477584.249830884160474 6892505.760787431150675,1477550.510048857657239 6892529.55318315140903,1477537.027199015021324 6892540.912850533612072)",589,service,0,0,0,minorroads,0,0
"LINESTRING (1478066.245383990462869 6892248.387368608266115,1478062.709051750600338 6892246.839075284078717,1478053.341037050588056 6892250.855440765619278,1478053.117100443691015 6892255.760928054340184)",590,path,0,0,0,minorroads,0,0
"LINESTRING (1478057.465202880557626 6892224.90239691734314,1478055.188514051726088 6892228.182930614799261,1478045.251327144447714 6892231.816046603955328,1478042.116214653942734 6892230.589678158052266)",591,path,0,0,0,minorroads,0,0
"LINESTRING (1477784.906360871624202 6892316.451251152902842,1477641.120398203376681 6892375.777672911994159)",592,service,0,0,0,minorroads,0,0
"LINESTRING (1477794.470320102758706 6892339.154669879004359,1477651.720064238179475 6892399.615673690102994)",593,service,0,0,0,minorroads,0,0
"LINESTRING (1477818.590158740524203 6892272.577574365772307,1477820.493619899032637 6892278.142251771874726,1477867.380346852121875 6892398.006031540222466)",594,footway,0,0,0,minorroads,0,0
"LINESTRING (1477804.024948637932539 6892361.87348258215934,1477661.713235300034285 6892422.135367657989264)",595,service,0,0,0,minorroads,0,0
"LINESTRING (1478053.117100443691015 6892255.760928054340184,1477964.606156779220328 6892292.444870038889349,1477895.484390949364752 6892321.126831811852753)",596,service,0,0,0,minorroads,0,0
"LINESTRING (1478032.020405984483659 6892209.480840558186173,1477946.392646130407229 6892246.195230620913208,1477870.356837577652186 6892278.801428685896099)",597,service,0,0,0,minorroads,0,0
"LINESTRING (1478042.116214653942734 6892230.589678158052266,1477955.219480698928237 6892268.637846413999796,1477881.059141225880012 6892301.121497599408031)",598,service,0,0,0,minorroads,0,0
"LINESTRING (1477974.254092237679288 6892334.525068153627217,1477970.353863011812791 6892307.008119508624077,1477964.606156779220328 6892292.444870038889349,1477955.219480698928237 6892268.637846413999796,1477946.392646130407229 6892246.195230620913208,1477939.861161776585504 6892229.639242734760046)",599,service,0,0,0,minorroads,0,0
"LINESTRING (1477813.588907869067043 6892385.481493636965752,1477671.743729121983051 6892444.701114750467241)",600,service,0,0,0,minorroads,0,0
"LINESTRING (1477315.871138856979087 6890705.699273365549743,1477293.813383128261194 6890711.002312272787094)",601,steps,0,0,0,minorroads,0,0
"LINESTRING (1477327.739778992719948 6890696.79446735791862,1477325.491082236869261 6890699.476636806502938,1477315.871138856979087 6890705.699273365549743)",602,footway,0,0,0,minorroads,0,0
"LINESTRING (1477191.548999560764059 6890584.63460551109165,1477193.573759709950536 6890604.436424199491739,1477192.715336051303893 6890631.717647477984428,1477189.860144322039559 6890651.550235321745276,1477182.722164992243052 6890668.118300231173635,1477164.126095974352211 6890700.488198084756732)",603,footway,0,0,0,minorroads,0,0
"LINESTRING (1477337.537005520658568 6890685.851225290447474,1477327.739778992719948 6890696.79446735791862)",604,steps,0,0,0,minorroads,0,0
"LINESTRING (1477317.485348558053374 6890876.701050061732531,1477328.215644282288849 6890898.603395721875131,1477336.324015568709001 6890915.141315577551723,1477340.560149707831442 6890923.770475399680436,1477391.543050420703366 6891037.789675366133451,1477433.661793799139559 6891131.76208533346653,1477423.286064371000975 6891138.966017907485366,1477419.021938158897683 6891141.924230385571718,1477415.15903169894591 6891144.591220805421472,1477411.258802472846583 6891147.304194730706513,1477406.565464430022985 6891150.59961626958102,1477402.814526273403317 6891153.297264670953155,1477398.149180306354538 6891156.699981558136642)",606,footway,0,0,0,minorroads,0,0
"LINESTRING (1477001.21221484686248 6891429.979636301286519,1477012.810264917090535 6891381.604368223808706,1476990.127352835144848 6891349.568942168727517,1476972.175101556349546 6891324.201267114840448,1476953.905606755753979 6891298.404492945410311,1476935.21623081760481 6891272.010018249042332,1476926.622663548681885 6891259.870428316295147,1476909.556828004540876 6891253.110891866497695,1476842.273208488477394 6891436.264150676317513,1476866.915565874893218 6891446.33471198566258,1476891.623238111380488 6891456.405285906977952,1476916.274926193524152 6891463.640165685676038,1476941.495786485727876 6891471.074317997321486,1476963.730825359700248 6891477.604115179739892,1476982.625476519111544 6891477.634771515615284)",607,service,0,0,0,minorroads,0,0
"LINESTRING (1477430.340067470446229 6891165.329400658607483,1477423.817913812352344 6891156.408757981844246)",608,steps,0,0,0,minorroads,0,0
"LINESTRING (1477438.401785300811753 6891159.091080768965185,1477431.627702959813178 6891150.078479750081897)",609,steps,0,0,0,minorroads,0,0
"LINESTRING (1477391.543050420703366 6891037.789675366133451,1477409.887190758716315 6891028.072153965942562)",610,footway,0,0,0,minorroads,0,0
"LINESTRING (1476990.127352835144848 6891349.568942168727517,1476941.495786485727876 6891471.074317997321486)",611,service,0,0,0,minorroads,0,0
"LINESTRING (1477422.772876315517351 6891171.353139204904437,1477416.036116740433499 6891162.723713628947735)",612,steps,0,0,0,minorroads,0,0
"LINESTRING (1477391.981592941563576 6891187.615723043680191,1477474.922113521490246 6891297.515479031950235,1477487.751814926741645 6891314.146186651661992,1477573.715479691047221 6891425.779744077473879,1477586.535850405925885 6891442.410717039369047,1477691.888693005079404 6891579.199858834967017)",614,service,0,0,0,minorroads,0,0
"LINESTRING (1477374.197294117882848 6891201.563865466974676,1477456.410020725568756 6891311.233894356526434,1477469.668933961540461 6891328.61569665838033,1477555.511299735167995 6891439.437065890990198,1477568.294347681337968 6891455.945442079566419,1477673.292623987188563 6891591.493214836344123)",615,service,0,0,0,minorroads,0,0
"LINESTRING (1477173.083560226485133 6891051.921486127190292,1477137.272364595206454 6891079.863306542858481,1477118.508343119407073 6891093.428076104260981)",616,footway,0,0,0,minorroads,0,0
"LINESTRING (1477088.584814094239846 6891117.76808157004416,1477048.864058541134 6891148.239174656569958,1477017.643563339253888 6891172.196156406775117,1476959.317408075323328 6891216.922177751548588)",617,footway,0,0,0,minorroads,0,0
"LINESTRING (1477024.818865434965119 6891578.770664696581662,1477055.012984525877982 6891556.5139145758003)",618,steps,0,0,0,minorroads,0,0
"LINESTRING (1477044.683908559381962 6891600.613609550520778,1477072.899920959956944 6891578.770664696581662)",619,steps,0,0,0,minorroads,0,0
"LINESTRING (1477081.764078291598707 6892021.849164674989879,1477121.027629941003397 6892015.901434796862304,1477150.913836200255901 6892003.71473397128284,1477181.042640446452424 6891986.515421602874994,1477246.96397894108668 6891938.244107788428664)",620,service,0,0,0,minorroads,0,0
"LINESTRING (1477137.272364595206454 6891079.863306542858481,1477179.68035942222923 6891133.754661783576012,1477203.753544606966898 6891164.777608038857579,1477227.313541733426973 6891196.827625382691622,1477267.108942821156234 6891248.650520586408675,1477275.89845462096855 6891259.655839771032333)",621,footway,0,0,0,minorroads,0,0
"LINESTRING (1477038.329707350814715 6891342.288181316107512,1477049.825119810411707 6891333.827179099433124,1477076.091017599450424 6891312.613401100039482)",622,steps,0,0,0,minorroads,0,0
"LINESTRING (1477050.459606862161309 6891150.522978541441262,1477048.864058541134 6891148.239174656569958,1477039.906594285974279 6891136.728199865669012)",623,steps,0,0,0,minorroads,0,0
"LINESTRING (1477019.500371033092961 6891174.066122156567872,1477017.643563339253888 6891172.196156406775117,1477008.994011918548495 6891161.221612081862986)",624,steps,0,0,0,minorroads,0,0
"LINESTRING (1477236.019077305682003 6891188.397431484423578,1477227.313541733426973 6891196.827625382691622)",625,footway,0,0,0,minorroads,0,0
"LINESTRING (1476959.317408075323328 6891216.922177751548588,1477000.549735719105229 6891270.170685262419283,1477025.378706949297339 6891302.251778436824679,1477049.825119810411707 6891333.827179099433124,1477089.85378819797188 6891385.528333493508399,1477098.167434711009264 6891396.257935808971524)",626,footway,0,0,0,minorroads,0,0
"LINESTRING (1477203.753544606966898 6891164.777608038857579,1477217.040449918713421 6891155.381811781786382)",627,footway,0,0,0,minorroads,0,0
"LINESTRING (1477227.313541733426973 6891196.827625382691622,1477200.506463813129812 6891216.600296653807163)",628,steps,0,0,0,minorroads,0,0
"LINESTRING (1477176.405286555178463 6891136.161081690341234,1477179.68035942222923 6891133.754661783576012,1477200.823707337491214 6891117.231619697995484)",629,footway,0,0,0,minorroads,0,0
"LINESTRING (1476989.203614334575832 6891279.551287890411913,1477000.549735719105229 6891270.170685262419283,1477004.487287716707215 6891266.890542482957244)",630,steps,0,0,0,minorroads,0,0
"LINESTRING (1477014.592427076306194 6891310.758730973117054,1477025.378706949297339 6891302.251778436824679)",631,steps,0,0,0,minorroads,0,0
"LINESTRING (1477657.813006068347022 6891744.87050611898303,1477663.094177704304457 6891744.042757529765368,1477667.983460275456309 6891744.012100178748369,1477687.633897485909984 6891746.357388046570122,1477693.166997798951343 6891746.265415959060192,1477698.485492197796702 6891744.747876695357263,1477702.80560256447643 6891741.75878503266722,1477705.595479451818392 6891737.66603057552129,1477709.299764146795496 6891729.863744132220745,1477713.694520050892606 6891719.654869962483644,1477722.110804171767086 6891695.68092814553529)",632,footway,0,0,0,minorroads,0,0
"LINESTRING (1477488.80618311651051 6891880.361834840849042,1477485.269850873854011 6891887.59709616843611,1477482.47064329078421 6891890.678215784020722,1477476.881558825960383 6891894.065915833227336,1477471.292474361369386 6891894.939666754566133,1477465.274178063031286 6891895.246246046386659,1477471.124521903228015 6891926.686014686711133,1477472.029599023750052 6891931.560646092519164)",633,footway,0,0,0,minorroads,0,0
"LINESTRING (1477471.124521903228015 6891926.686014686711133,1477496.830578175140545 6891922.010663450695574)",634,footway,0,0,0,minorroads,0,0
"LINESTRING (1477105.706633787136525 6892515.296133446507156,1477093.642049120273441 6892467.834137276746333,1477084.078089892165735 6892430.22959574777633,1477075.652475078590214 6892397.070906250737607,1477065.827256471849978 6892358.362946599721909)",635,footway,0,0,0,minorroads,0,0
"LINESTRING (1477084.078089892165735 6892430.22959574777633,1477114.505476279882714 6892422.533946882933378,1477144.70892606372945 6892414.914955166168511)",636,footway,0,0,0,minorroads,0,0
"LINESTRING (1477136.208665715297684 6892506.573284320533276,1477124.26538004190661 6892460.322412922978401,1477114.505476279882714 6892422.533946882933378)",637,footway,0,0,0,minorroads,0,0
"LINESTRING (1477166.915972861694172 6892497.804454318247736,1477154.860718884970993 6892452.826025616377592,1477144.70892606372945 6892414.914955166168511,1477135.490202432963997 6892380.483947849832475,1477125.282425462966785 6892342.404590574093163)",638,footway,0,0,0,minorroads,0,0
"LINESTRING (1477093.642049120273441 6892467.834137276746333,1477124.26538004190661 6892460.322412922978401,1477154.860718884970993 6892452.826025616377592,1477172.812970160972327 6892448.211688437499106,1477176.834498385898769 6892435.687072315253317,1477157.23071463429369 6892374.474633106961846,1477135.490202432963997 6892380.483947849832475,1477075.652475078590214 6892397.070906250737607,1477052.30708386329934 6892403.555465837940574,1477067.898670082679018 6892466.684383096173406,1477073.991611915640533 6892473.5982407303527,1477093.642049120273441 6892467.834137276746333)",639,footway,0,0,0,minorroads,0,0
"LINESTRING (1477104.59628144861199 6891583.522458178922534,1477136.936459684744477 6891559.073744270019233,1477456.410020725568756 6891311.233894356526434,1477474.922113521490246 6891297.515479031950235)",640,service,0,0,0,minorroads,0,0
"LINESTRING (1477116.763503728900105 6891599.280038581229746,1477149.467578951269388 6891573.988217326812446,1477469.668933961540461 6891328.61569665838033,1477487.751814926741645 6891314.146186651661992)",641,service,0,0,0,minorroads,0,0
"LINESTRING (1477358.950943501666188 6890905.500577809289098,1477389.145062592579052 6890890.97052111569792,1477415.597574219573289 6890878.233752502128482,1477438.168518 6890867.382225495763123,1477521.230337577406317 6890965.031168691813946)",642,service,0,0,0,minorroads,0,0
"LINESTRING (1477293.813383128261194 6890711.002312272787094,1477245.060517788399011 6890724.566459476016462,1477179.129848600830883 6890751.863417183049023)",643,footway,0,0,0,minorroads,0,0
"LINESTRING (1477623.578697375254706 6892624.202238139696419,1477621.787204523105174 6892605.299932564608753,1477625.295544689754024 6892598.999173911288381,1477697.6923833838664 6892539.977708619087934,1477702.124462053878233 6892533.431718253530562,1477700.025056370068341 6892524.555547795258462,1477695.331718327244744 6892512.33741554338485)",644,service,0,0,0,minorroads,0,0
"LINESTRING (1476916.274926193524152 6891463.640165685676038,1476972.175101556349546 6891324.201267114840448)",645,service,0,0,0,minorroads,0,0
"LINESTRING (1477411.258802472846583 6891147.304194730706513,1477420.178943959064782 6891159.366976878605783)",646,footway,0,0,0,minorroads,0,0
"LINESTRING (1476866.915565874893218 6891446.33471198566258,1476935.21623081760481 6891272.010018249042332)",647,service,0,0,0,minorroads,0,0
"LINESTRING (1477412.387816194444895 6891165.681934850290418,1477402.814526273403317 6891153.297264670953155)",648,footway,0,0,0,minorroads,0,0
"LINESTRING (1477427.587513351812959 6891153.35857486911118,1477419.021938158897683 6891141.924230385571718)",649,footway,0,0,0,minorroads,0,0
"LINESTRING (1477423.817913812352344 6891156.408757981844246,1477415.15903169894591 6891144.591220805421472)",650,footway,0,0,0,minorroads,0,0
"LINESTRING (1477431.627702959813178 6891150.078479750081897,1477423.286064371000975 6891138.966017907485366)",651,footway,0,0,0,minorroads,0,0
"LINESTRING (1477420.178943959064782 6891159.366976878605783,1477426.701097617158666 6891168.180329788476229)",652,steps,0,0,0,minorroads,0,0
"LINESTRING (1477434.221635316265747 6891162.217903890646994,1477427.587513351812959 6891153.35857486911118)",653,steps,0,0,0,minorroads,0,0
"LINESTRING (1477416.036116740433499 6891162.723713628947735,1477406.565464430022985 6891150.59961626958102)",654,footway,0,0,0,minorroads,0,0
"LINESTRING (1477790.178201811853796 6892050.76009990926832,1477793.089377692667767 6892048.154125873930752)",655,footway,0,0,0,minorroads,0,0
"LINESTRING (1477418.975284700049087 6891174.204070466570556,1477412.387816194444895 6891165.681934850290418)",656,steps,0,0,0,minorroads,0,0
"LINESTRING (1477426.897042148280889 6891184.442907216027379,1477421.92378334957175 6891178.005313728936017,1477418.975284700049087 6891174.204070466570556)",657,footway,0,0,0,minorroads,0,0
"LINESTRING (1477446.136928913649172 6891169.391208594664931,1477441.434260177891701 6891163.137557985261083,1477438.401785300811753 6891159.091080768965185)",658,footway,0,0,0,minorroads,0,0
"LINESTRING (1477430.68530307081528 6891181.484679089859128,1477425.721374965040013 6891175.108398336917162,1477422.772876315517351 6891171.353139204904437)",659,footway,0,0,0,minorroads,0,0
"LINESTRING (1477437.991234855726361 6891175.767484820447862,1477433.279235429828987 6891169.360553430393338,1477430.340067470446229 6891165.329400658607483)",660,footway,0,0,0,minorroads,0,0
"LINESTRING (1477426.701097617158666 6891168.180329788476229,1477429.630934883840382 6891172.134846064262092,1477434.426910537295043 6891178.633745247498155)",661,footway,0,0,0,minorroads,0,0
"LINESTRING (1477442.022093768231571 6891172.610001250170171,1477437.282102269353345 6891166.29503783211112,1477434.221635316265747 6891162.217903890646994)",662,footway,0,0,0,minorroads,0,0
"LINESTRING (1477655.685608308762312 6891734.416354355402291,1477657.066550716059282 6891741.436882919631898)",663,steps,0,0,0,minorroads,0,0
"LINESTRING (1476887.153836678247899 6891470.844395658001304,1476887.788323727203533 6891469.020345328375697,1476891.623238111380488 6891456.405285906977952,1476953.905606755753979 6891298.404492945410311)",664,service,0,0,0,minorroads,0,0
"LINESTRING (1477657.066550716059282 6891741.436882919631898,1477657.813006068347022 6891744.87050611898303,1477662.301068890141323 6891765.901480161584914)",665,footway,0,0,0,minorroads,0,0
"LINESTRING (1477421.92378334957175 6891178.005313728936017,1477425.721374965040013 6891175.108398336917162,1477429.630934883840382 6891172.134846064262092,1477433.279235429828987 6891169.360553430393338,1477437.282102269353345 6891166.29503783211112,1477441.434260177891701 6891163.137557985261083)",666,footway,0,0,0,minorroads,0,0
"LINESTRING (1477539.014636401087046 6891785.00108590349555,1477533.500197465298697 6891776.708233860321343)",667,steps,0,0,0,minorroads,0,0
"LINESTRING (1477533.500197465298697 6891776.708233860321343,1477528.760205966420472 6891769.565044686198235)",668,footway,0,0,0,minorroads,0,0
"LINESTRING (1477725.65646710456349 6891926.732001763768494,1477719.451556970831007 6891918.224397381767631)",669,steps,0,0,0,minorroads,0,0
"LINESTRING (1477936.222191923297942 6891522.408476941287518,1477941.960567463189363 6891518.177879937924445,1477949.331814086996019 6891512.996934459544718)",670,footway,0,0,0,minorroads,0,0
"LINESTRING (1477719.451556970831007 6891918.224397381767631,1477708.749253325397149 6891903.569878341630101)",671,footway,0,0,0,minorroads,0,0
"LINESTRING (1478201.335141776595265 6891732.714873464778066,1478199.170421248069033 6891718.367265134118497,1478194.67302773357369 6891689.365553838200867,1478190.492877749027684 6891669.729676574468613,1478176.459517084760591 6891671.952314448542893,1478125.448624295881018 6891656.102620540186763,1478117.200292630353943 6891651.01355717331171,1478098.249657313572243 6891632.772663729265332,1478077.890087522100657 6891607.710663352161646,1478071.806476379279047 6891600.000473447144032,1478068.064868915593252 6891592.627515465021133,1478066.105423611123115 6891589.776435805484653,1478059.704568943707272 6891578.923948316834867,1478057.315911811310798 6891574.923246877267957,1478048.171833718195558 6891567.15177505556494,1478038.029371589887887 6891557.050405757501721,1478027.616319393040612 6891542.335231919772923,1478017.091298892628402 6891529.934653213247657,1478008.619030622998253 6891518.208536428399384,1477996.181218277197331 6891503.953280243091285,1477988.81930234329775 6891498.389138715341687,1477984.340570217231289 6891494.189210750162601,1477973.75956556503661 6891481.405501900240779,1477964.279582561692223 6891469.204283156432211,1477824.468494659755379 6891286.004290502518415,1477785.690138992853463 6891237.798493586480618,1477740.902817723574117 6891179.430780413560569,1477721.830883413087577 6891153.404557520523667,1477715.85924057662487 6891139.548463800922036,1477708.441340490942821 6891129.35566674452275,1477696.861951803788543 6891119.883274444378912,1477597.909963869256899 6890988.619750818237662,1477466.533821473829448 6890820.497053281404078,1477454.497228882741183 6890826.259975696913898)",672,cycleway,0,0,0,minorroads,0,0
"LINESTRING (1477589.045806534821168 6891029.896104246377945,1477596.715635302942246 6891048.580122988671064,1477609.377384255873039 6891053.929370147176087,1477622.487006419571117 6891070.574901269748807,1477627.208336535375565 6891077.31895683798939,1477664.307167656254023 6891126.872611372731626,1477676.838286919984967 6891143.564276114106178,1477704.662410258548334 6891180.672316116280854,1477726.981425359845161 6891210.59185186214745,1477777.273854869185016 6891277.482036370784044,1477789.347770228981972 6891292.610576447099447,1477801.375032129930332 6891307.248653976246715,1477810.183205312816426 6891318.392004153691232,1477819.504566551186144 6891330.317092030309141,1477831.130608697189018 6891345.016549870371819,1477837.186227764235809 6891351.546244668774307,1477920.080094882519916 6891460.482569055631757,1477950.526142653310671 6891500.044585375115275,1477975.830979173071682 6891532.080611075274646,1477989.668395306216553 6891550.167992977425456,1478002.740694703999907 6891567.504326873458922,1478032.43095642933622 6891605.273445462808013,1478058.668862139806151 6891638.781424059532583,1478073.476670235162601 6891658.003355883061886,1478079.08441608841531 6891667.491710782982409,1478084.160312497522682 6891677.731175800785422,1478088.34979317500256 6891684.015883849933743,1478112.348332822322845 6891705.245970531366765,1478127.809289352502674 6891712.573045953176916,1478164.394932417897508 6891727.472475146874785,1478182.552458914928138 6891731.795154212042689,1478189.961028310470283 6891733.036775229498744,1478196.977708644000813 6891735.489360507577658,1478202.594785184599459 6891737.880631879903376,1478206.95221831719391 6891742.801134817302227)",673,cycleway,0,0,0,minorroads,0,0
"LINESTRING (1477469.444997354643419 6891153.312592218630016,1477547.748164046322927 6891253.907934416085482,1477616.375403200741857 6891265.342438179068267)",674,footway,0,0,0,minorroads,0,0
"LINESTRING (1477486.482840825803578 6890984.695979272015393,1477514.00838202284649 6891053.086365345865488)",675,service,0,0,0,minorroads,0,0
"LINESTRING (1477415.597574219573289 6890878.233752502128482,1477494.852471484802663 6890979.95986695215106)",676,service,0,0,0,minorroads,0,0
"LINESTRING (1477512.394172318745404 6890970.012507430277765,1477536.094129821518436 6891031.597436398267746)",677,service,0,0,0,minorroads,0,0
"LINESTRING (1477389.145062592579052 6890890.97052111569792,1477470.17279132688418 6890993.938303586095572)",678,service,0,0,0,minorroads,0,0
"LINESTRING (1477521.230337577406317 6890965.031168691813946,1477558.301176619715989 6891013.066729949787259,1477560.223299158038571 6891021.864595185033977,1477555.007442369591445 6891030.080032028257847,1477480.333914841059595 6891086.638024752959609,1477468.241338095627725 6891086.377458564005792,1477453.414868617197499 6891080.61434968188405,1477444.084176685893908 6891074.008237943053246,1477421.92378334957175 6891021.251503217034042)",679,service,0,0,1,minorroads,0,0
"LINESTRING (1477383.406687055714428 6890923.126736690290272,1477447.863106921315193 6891006.567964611575007)",680,service,0,0,0,minorroads,0,0
"LINESTRING (1477439.782727705081925 6891011.135492536239326,1477466.832403615349904 6891077.579522733576596)",681,service,0,0,0,minorroads,0,0
"LINESTRING (1477464.826304849237204 6890996.973098964430392,1477491.913303528213874 6891070.406299953348935)",682,service,0,0,0,minorroads,0,0
"LINESTRING (1476973.733327108668163 6890098.677702718414366,1477072.200119063491002 6890203.842244775034487,1477138.13078825105913 6890280.302726635709405,1477353.800401557935402 6890557.690723114646971)",4,motorway_link,0,0,1,motorways,3,0
"LINESTRING (1477470.023500254843384 6890738.375857715494931,1477739.381914934143424 6891078.698423445224762,1477864.478501664241776 6891247.500940763391554,1477920.91052646539174 6891323.312250348739326,1477948.986578486626968 6891354.964373402297497,1477973.404999271966517 6891376.300886962562799,1477996.311847963603213 6891392.272653280757368,1478013.694927032105625 6891401.822006645612419,1478036.583114340901375 6891411.340715271420777,1478065.797510776668787 6891417.502590633928776,1478093.948208335554227 6891419.311301215551794,1478129.507475286955014 6891418.805475333705544,1478152.834205113584176 6891412.950159872882068,1478174.593378700781614 6891405.071548422798514,1478206.345723341219127 6891389.345004675909877,1478223.448881654068828 6891375.381208484992385,1478234.179177372483537 6891364.345074972137809,1478247.979270739946514 6891351.914114957675338)",5,motorway_link,0,0,1,motorways,3,0
"LINESTRING (1479792.936579379020259 6889681.205510908737779,1479674.082225559744984 6889811.252340968698263,1479538.255343108437955 6889942.328065656125546,1479396.046267381170765 6890098.233262076042593,1479391.875448089325801 6890102.84625062905252,1479387.424708036473021 6890104.271526698023081,1479382.180859172018245 6890104.700642123818398,1479371.861113895662129 6890102.84625062905252)",7,motorway_link,0,0,1,motorways,3,0
"LINESTRING (1478196.94038587808609 6891352.28198526147753,1478211.0204 6891326.638399799354374,1478222.487820381997153 6891308.47488157171756,1478233.955240765586495 6891291.292384384199977,1478245.422661152202636 6891275.99524116050452,1478258.80287338164635 6891260.713454801589251,1478269.309232496190816 6891247.347663466818631,1478277.566894857445732 6891232.878299727104604,1478286.524359109578654 6891203.050646905787289,1478290.247305190423504 6891173.43769099842757,1478299.419375359313563 6891131.670120283961296)",9,motorway_link,0,0,1,motorways,3,0
"LINESTRING (1478588.708148004952818 6890605.53993255738169,1478609.123701951000839 6890560.234908378683031,1478633.962003871100023 6890512.462600218132138,1478661.664828216191381 6890461.824570003896952,1478680.783415985293686 6890415.018393527716398)",10,motorway_link,0,0,1,motorways,3,0
"LINESTRING (1478511.935214792611077 6890776.462944713421166,1478487.162227714201435 6890850.829076912254095,1478480.472121600992978 6890872.792660155333579,1478469.0513546760194 6890901.760771677829325,1478458.311728261876851 6890927.096459547057748,1478444.334351749392226 6890965.598274794407189)",11,motorway_link,0,0,1,motorways,3,0
"LINESTRING (1478747.693807828007266 6890450.713059439323843,1478695.917798298178241 6890536.494319370947778,1478652.86598572623916 6890592.926227985881269,1478605.848629083950073 6890639.948012223467231,1478534.739425873849541 6890732.521037810482085)",12,motorway_link,0,0,1,motorways,3,0
"LINESTRING (1478394.816369665553793 6891123.469907105900347,1478413.981610896298662 6891149.388740294612944,1478422.575178162194788 6891163.720005629584193,1478432.139137393329293 6891182.83350836019963,1478437.868182237260044 6891200.015773738734424,1478443.606557776918635 6891221.045322466641665,1478449.326271930942312 6891243.975563655607402,1478452.200125048635527 6891268.821841340512037,1478455.055316777899861 6891293.652867992408574,1478456.016378046944737 6891316.583316278643906,1478453.151855624979362 6891339.513829967938364,1478447.422810775460675 6891364.360402925871313,1478439.771643395768479 6891385.375053562223911,1478430.767525678966194 6891400.534452718682587,1478420.186521029798314 6891416.536923290230334)",13,motorway_link,0,0,1,motorways,3,0
"LINESTRING (1478505.114478987408802 6892450.388551495037973,1478533.022578559117392 6892428.221367940306664,1478547.111923375166953 6892412.922061143442988,1478557.151747890049592 6892398.465929266996682,1478563.580594633240253 6892385.098246153444052,1478568.479207897325978 6892368.143395646475255,1478570.681251191534102 6892353.135470101609826,1478571.632981767877936 6892338.326860104687512,1478570.699912574607879 6892311.990289855748415,1478550.256366555579007 6892207.533986137248576)",14,motorway_link,0,0,1,motorways,3,0
"LINESTRING (1478037.180278623942286 6891587.247253092937171,1478066.105423611123115 6891589.776435805484653,1478080.782602020073682 6891593.133352279663086,1478089.777389043709263 6891593.945756936445832,1478098.884144365321845 6891592.826784512028098,1478108.280151141108945 6891589.991033161990345,1478117.424229234224185 6891583.093263810500503,1478125.476616371888667 6891573.681650285609066,1478129.395506983622909 6891564.699241130612791,1478130.711134545970708 6891555.425603993237019,1478130.459205863298848 6891544.006015922874212,1478127.743974510813132 6891534.318539171479642,1478122.014929663855582 6891524.998952300287783,1478111.527231932384893 6891513.242186243645847,1478097.792453409638256 6891504.566409018822014,1478038.747834869194776 6891476.270564619451761)",15,motorway_link,0,0,1,motorways,3,0
"LINESTRING (1478508.650811232859269 6892023.658011235296726,1478483.16869156784378 6891955.519962281920016,1478463.396955363918096 6891854.103409341536462,1478457.220037306193262 6891812.31697329133749,1478454.476813877699897 6891793.539206840097904,1478438.726605898933485 6891697.918901789933443,1478429.171977360732853 6891676.535548973828554,1478420.335812099277973 6891665.75958699919283,1478408.149928435916081 6891657.88072778377682,1478399.071165190311149 6891653.864658541046083,1478385.448354968335479 6891648.729611102491617,1478367.953307596268132 6891647.825229956768453)",16,motorway_link,0,0,1,motorways,3,0
"LINESTRING (1477868.43471504189074 6891004.698037818074226,1477841.366377748781815 6890998.337224533781409,1477822.247789982473478 6890988.803677652962506,1477801.393693512771279 6890979.193505993112922,1477780.595581200672314 6890971.77513572294265,1477763.119195208651945 6890968.602405070327222,1477746.32394973305054 6890970.012507430277765,1477735.211095642531291 6890976.940405210480094,1477727.559928260045126 6890986.489265248179436,1477721.952182406792417 6890998.613115126267076,1477719.236951056867838 6891012.116438466124237,1477720.869822144042701 6891025.681093722581863,1477726.029694780707359 6891040.45663124602288,1477739.381914934143424 6891078.698423445224762)",17,motorway_link,0,0,1,motorways,3,0
"LINESTRING (1478394.816369665553793 6891123.469907105900347,1478404.940170413581654 6891151.136080365628004,1478410.678545950446278 6891170.249553177505732,1478414.494798951782286 6891184.58085570205003,1478417.368652066681534 6891201.778452461585402,1478418.320382643025368 6891218.041097856126726,1478418.320382643025368 6891238.089720109477639,1478416.407590797403827 6891256.253079305402935,1478411.630276529816911 6891276.317124638706446,1478407.814023525686935 6891294.449914567172527,1478403.027378567960113 6891311.663074205629528,1478399.211125569650903 6891327.895286121405661,1478395.394872565520927 6891349.875500658527017,1478393.444757953984663 6891367.855176903307438,1478392.315744229592383 6891385.528333493508399,1478394.909676586044952 6891406.956896369345486,1478402.159624219173566 6891432.263520221225917)",22,motorway_link,0,0,1,motorways,3,0
"LINESTRING (1478458.908892544917762 6890873.620319033972919,1478432.279097772669047 6890943.113314905203879,1478416.715503631858155 6890979.362105399370193)",28,motorway_link,0,0,1,motorways,3,0
"LINESTRING (1478178.904158371733502 6891520.431132415309548,1478160.308089353842661 6891514.3304911153391,1478117.685488610062748 6891501.086903820745647,1478038.747834869194776 6891476.270564619451761)",31,motorway_link,0,0,1,motorways,3,0
"LINESTRING (1477490.821612572530285 6890732.214502855204046,1477527.397924944991246 6890777.857686535455287,1477549.996860799379647 6890805.108844520524144,1477565.439155949512497 6890821.738533561117947,1477585.817387126618996 6890841.295704958960414,1477601.213028812082484 6890855.31988144479692,1477614.901153875980526 6890865.680928098037839,1477632.489508171333 6890878.494311951100826,1477649.452706102281809 6890888.77875323779881,1477668.282042416976765 6890898.771993438713253,1477686.439568916801363 6890907.033285750076175,1477707.200358462985605 6890915.171969769522548,1477725.833750249585137 6890922.13047450594604,1477746.855799174401909 6890927.847488413564861,1477770.742370518157259 6890933.595160651952028,1477794.628941864939407 6890937.411617287434638,1477821.380035630892962 6890941.228075731545687,1477850.043921245029196 6890945.059863138943911,1477902.482409899821505 6890949.82660922780633,1477940.458326059626415 6890951.343998450785875,1478028.540057893376797 6890957.306267951615155,1478070.472187433857471 6890961.96573100425303,1478111.23798048379831 6890968.004644367843866,1478151.201334026642144 6890975.683573756366968,1478187.992252313066274 6890986.795809898525476,1478222.38518277136609 6890997.340953027829528)",35,motorway_link,0,0,1,motorways,3,0
"LINESTRING (1477811.713438789127395 6891164.670315036550164,1477832.45556695247069 6891186.404841492883861,1477851.910059632034972 6891203.111957489512861,1477871.719118598848581 6891219.497226990759373,1477905.897443146212026 6891245.355058864690363,1477930.74507576203905 6891262.215574943460524,1477950.162245669867843 6891274.998935245908797)",36,motorway_link,0,0,1,motorways,3,0
"LINESTRING (1477917.271556612337008 6890861.695908572524786,1477919.660213744733483 6890873.497702899388969,1477929.681376882363111 6890876.225912362337112,1477939.068052962422371 6890882.433358696289361,1477964.755447848467156 6890903.79927234724164,1477993.242050317581743 6890920.735707654617727,1478017.072637509787455 6890931.70992370788008,1478043.179913533618674 6890940.982841396704316,1478070.173605292104185 6890947.926041314378381,1478124.907444161828607 6890961.429279524832964,1478156.893056107452139 6890970.763540306128561,1478188.804022510070354 6890982.151659685187042,1478222.38518277136609 6890997.340953027829528)",37,motorway_link,0,0,1,motorways,3,0
"LINESTRING (1478269.187933499692008 6891469.572158829309046,1478243.696483144769445 6891462.383258138783276,1478210.012685272842646 6891459.041724401526153,1478135.451126047875732 6891458.290645903907716,1478102.224532076856121 6891458.014739540405571,1478074.335093893809244 6891455.730848299339414,1478037.478860765462741 6891447.7142419135198,1478001.229122610529885 6891433.137220955453813,1477972.136025168234482 6891416.506267188116908,1477933.730897177709267 6891384.440046058036387,1477898.6754875916522 6891342.364820868708193,1477840.787874848581851 6891266.277431831695139,1477763.688367415918037 6891163.168213126249611)",38,motorway_link,0,0,1,motorways,3,0
"LINESTRING (1478396.486563521204516 6891050.220149672590196,1478391.046770125860348 6891088.599935160949826,1478387.930319021223113 6891118.01332129817456,1478386.372093471698463 6891145.495545344427228,1478382.163951405556872 6891187.385808815248311,1478378.506320169428363 6891208.921137149445713,1478372.991881239460781 6891239.009382877498865,1478369.520863838493824 6891260.422227461822331,1478362.756112190661952 6891278.784898377023637,1478355.926045695319772 6891294.327292013913393,1478345.830237028654665 6891312.904630331322551,1478327.989954053191468 6891332.294389794580638,1478310.998764046467841 6891350.411978059448302,1478297.571898355614394 6891364.145811591297388,1478283.641175301978365 6891375.396536458283663,1478263.253613431937993 6891389.712876693345606,1478242.194241744000465 6891402.603735917247832,1478220.360422622412443 6891413.885170697234571,1478198.479950044536963 6891423.005363918840885,1478177.131326905218884 6891429.734387061558664,1478158.199352977098897 6891435.007247400470078,1478137.298603048780933 6891440.096174038946629,1478114.988918640185148 6891442.518013746477664,1478088.275147637585178 6891441.828249195590615,1478056.961345518007874 6891437.214492295868695,1478035.164849167922512 6891430.991289503872395,1478017.959053244441748 6891424.292921440675855,1478000.762588013662025 6891417.594558958895504,1477984.517853362252936 6891408.04518685489893,1477967.237411904148757 6891395.414895111694932,1477937.668449172284454 6891367.441322010941803,1477910.376175272278488 6891334.287015947513282,1477853.272340653231367 6891256.406356768682599,1477773.756184012396261 6891153.373902422375977)",39,motorway_link,0,0,1,motorways,3,0
"LINESTRING (1478279.554332237923518 6891684.153840911574662,1478256.003665801370516 6891694.469970066100359,1478242.875382254831493 6891699.988261526450515)",41,motorway_link,0,0,1,motorways,3,0
"LINESTRING (1477739.381914934143424 6891078.698423445224762,1477811.713438789127395 6891164.670315036550164)",42,motorway_link,0,0,1,motorways,3,0
"LINESTRING (1478697.42003969871439 6892579.422395704314113,1478646.241194454720244 6892500.149962106719613,1478632.450431780423969 6892479.929561247117817,1478614.591487424913794 6892458.988699334673584,1478590.975506143877283 6892442.984153510071337,1478571.063809560844675 6892437.419361997395754,1478552.589039536425844 6892437.266062008216977,1478536.241667274385691 6892440.991252523846924,1478522.674841206986457 6892446.663356624543667,1478512.373757313471287 6892454.711619316600263)",43,motorway_link,0,0,1,motorways,3,0
"LINESTRING (1478524.373027135850862 6892700.593760442920029,1478524.317042984068394 6892666.928051271475852,1478522.40425114124082 6892647.811019618995488,1478513.801353176590055 6892615.325967458076775,1478499.973267736379057 6892576.157048926688731,1478487.572778159286827 6892544.546107861213386,1478482.29160652612336 6892521.520175693556666,1478482.29160652612336 6892500.594535555690527,1478486.285142672481015 6892481.140637652948499,1478493.348476464860141 6892465.0440674116835,1478505.114478987408802 6892450.388551495037973)",45,motorway_link,0,0,1,motorways,3,0
"LINESTRING (1478512.373757313471287 6892454.711619316600263,1478501.456847751280293 6892464.492185577750206,1478494.216230813646689 6892477.461418758146465,1478490.399977812543511 6892496.578045293688774,1478490.399977812543511 6892516.629856382496655,1478495.335913845105097 6892541.725350976921618,1478506.187508562812582 6892572.999015279114246,1478520.015594006050378 6892612.183248752728105,1478528.618491964880377 6892644.66828821413219,1478531.91222621477209 6892665.68628600705415,1478531.977541062282398 6892701.467599032446742)",46,motorway_link,0,0,1,motorways,3,0
"LINESTRING (1477773.756184012396261 6891153.373902422375977,1477609.890572311356664 6890941.044149981811643,1477495.477627843851224 6890800.066300450824201)",47,motorway_link,0,0,1,motorways,3,0
"LINESTRING (1477763.688367415918037 6891163.168213126249611,1477606.559515292756259 6890944.523412792012095,1477495.477627843851224 6890800.066300450824201)",48,motorway_link,0,0,1,motorways,3,0
"LINESTRING (1478038.747834869194776 6891476.270564619451761,1478016.783386061200872 6891466.046684342436492,1477987.559658932499588 6891449.476974944584072,1477960.565967173781246 6891425.565151103772223,1477940.439664676785469 6891408.397731687873602,1477893.683567407075316 6891346.396062412299216,1477835.012176543008536 6891269.78749094158411,1477773.252326647052541 6891185.147977290675044,1477763.688367415918037 6891163.168213126249611)",50,motorway_link,0,0,1,motorways,3,0
"LINESTRING (1477353.800401557935402 6890557.690723114646971,1477430.918570373440161 6890653.711285330355167)",51,motorway_link,0,0,1,motorways,3,0
"LINESTRING (1478431.31803650339134 6891617.70479725766927,1478395.805423010606319 6891558.521924624219537)",59,motorway_link,0,0,1,motorways,3,0
"LINESTRING (1478247.979270739946514 6891351.914114957675338,1478261.359482969157398 6891334.716197027824819,1478269.953050238080323 6891318.483971345238388,1478276.643156351288781 6891303.20210421551019,1478282.381531891180202 6891285.988962695933878,1478286.19778489228338 6891267.825536315329373,1478290.023368583526462 6891245.860873832367361,1478291.926829739008099 6891217.565939981490374,1478294.632730398792773 6891179.905936032533646,1478299.419375359313563 6891131.670120283961296,1478305.633616185979918 6891110.012379135005176,1478315.561472400324419 6891089.36630654707551,1478323.389922930859029 6891076.905116900801659,1478350.271646386012435 6891029.512921379879117)",62,motorway_link,0,0,1,motorways,3,0
"LINESTRING (1478222.38518277136609 6890997.340953027829528,1478265.38101119431667 6891016.607333100400865,1478304.32731931633316 6891039.64428252261132)",63,motorway_link,0,0,1,motorways,3,0
"LINESTRING (1479505.653905502287671 6891073.088594046421349,1479511.261651349952444 6891082.208400661125779,1479521.71202631550841 6891092.493102550506592,1479746.936268157558516 6891225.214452367275953,1479755.165938443038613 6891230.977664898149669,1479832.228123104199767 6891286.387485591694713,1479913.489119135309011 6891344.817286965437233,1479959.526753128273413 6891366.429676809348166,1480017.134445112897083 6891393.45290981978178,1480128.822827531956136 6891445.108463356271386)",165,residential,0,0,0,minorroads,3,0
"LINESTRING (1479467.789957643020898 6890509.550598309375346,1479441.747996460879222 6890586.856943410821259,1479449.529793532565236 6890590.320726469159126,1479457.666156894760206 6890598.397783920168877,1479463.22724928939715 6890607.670317178592086,1479467.556690343189985 6890622.843576487153769,1479469.021608978044242 6890645.833417885005474,1479472.46463430300355 6890697.59145475551486,1479478.305647450499237 6890719.830500395968556,1479480.489029361866415 6890744.552544073201716,1479485.7422089218162 6890800.280876728706062,1479493.141447621630505 6890875.21432897169143,1479491.368616155348718 6890886.081193597055972,1479490.071649975609034 6890894.005277621559799,1479503.097295911749825 6891055.03294020332396,1479505.653905502287671 6891073.088594046421349)",166,residential,0,0,0,minorroads,3,0
"LINESTRING (1478892.478154525859281 6890538.8086022362113,1478857.935932998079807 6890331.031569452024996,1479014.271676310105249 6890305.038744745776057,1479049.942911565070972 6890299.475432928651571,1479065.637135392287746 6890291.306720341555774,1479071.926021756138653 6890284.80853839032352,1479078.233569500269368 6890275.796917401254177)",167,residential,0,0,0,minorroads,3,0
"LINESTRING (1479046.145319949602708 6890513.27489566989243,1479014.271676310105249 6890305.038744745776057)",168,residential,0,0,0,minorroads,3,0
"LINESTRING (1479203.460785916773602 6890490.040212746709585,1479046.145319949602708 6890513.27489566989243,1478892.478154525859281 6890538.8086022362113,1478782.002762058749795 6890554.196301298215985,1478765.692712562624365 6890556.571894911117852,1478744.437396341003478 6890562.901705839671195,1478733.203243254218251 6890567.423002410680056,1478725.150856119580567 6890575.346772366203368,1478720.952044752193615 6890584.603952579200268,1478718.61004107282497 6890595.868913067504764,1478718.684686610475183 6890607.517052077688277,1478721.138658590381965 6890619.165207961574197)",169,residential,0,0,0,minorroads,3,0
"LINESTRING (1479490.071649975609034 6890894.005277621559799,1479245.458230298943818 6890915.64710977114737,1479232.777819963172078 6890911.35552369710058)",170,residential,0,0,0,minorroads,3,0
"LINESTRING (1479186.796170124784112 6890329.437667407095432,1479194.335369206732139 6890321.713377351872623,1479221.870241096476093 6890288.900553298182786,1479238.29225889313966 6890269.344725587405264,1479371.861113895662129 6890102.84625062905252,1479378.177992332726717 6890095.842478349804878,1479401.150155866052955 6890069.130116234533489,1479433.070452967192978 6890027.628814021125436,1479445.853500913595781 6890008.594684292562306)",171,residential,0,0,0,minorroads,3,0
"LINESTRING (1479356.241535600507632 6892244.984189610928297,1479596.926733975531533 6891723.011840671300888)",173,residential,0,0,0,minorroads,3,0
"LINESTRING (1479565.510294239735231 6892254.902467562817037,1479723.329617572249845 6891860.342268580570817)",174,residential,0,0,0,minorroads,3,0
"LINESTRING (1479608.944665183546022 6891709.660609316080809,1479997.390700987540185 6891805.618287485092878)",175,residential,0,0,0,minorroads,3,0
"LINESTRING (1479584.125024646287784 6890393.883670332841575,1479781.721087680663913 6890154.202325228601694)",176,residential,0,0,0,minorroads,3,0
"LINESTRING (1479482.392490514554083 6891545.140309852547944,1479497.461557985516265 6891543.408212435431778,1480046.890021679922938 6891672.780055603943765)",177,residential,0,0,0,minorroads,3,0
"LINESTRING (1479238.29225889313966 6890269.344725587405264,1479244.002642357023433 6890273.712598342448473,1479250.888693001354113 6890278.75481229275465,1479261.31107589113526 6890279.383173528127372,1479275.157822717214003 6890275.015297694131732,1479297.010303219081834 6890236.869282925501466,1479430.597819601651281 6890091.566655383445323,1479511.784170098369941 6889997.928235160186887,1479526.340049513848498 6889979.62979072984308,1479584.209000873845071 6889912.566501155495644,1479958.248448334634304 6889556.784876331686974,1479970.714252753648907 6889544.877743250690401,1479991.111145313596353 6889525.645538517273962,1480003.334351745434105 6889522.212862986139953,1480012.739689214387909 6889526.059298608452082,1480015.688187863910571 6889532.327000443823636,1480017.050468885339797 6889535.238648432306945,1480013.766065325355157 6889548.034587628208101,1480003.222383442102 6889555.972677503712475,1479990.989846320124343 6889554.624121142551303,1479970.714252753648907 6889544.877743250690401)",178,unclassified,0,0,0,minorroads,3,0
"LINESTRING (1478735.713199388701469 6892210.431273595429957,1478737.803274379577488 6892156.517370771616697,1478747.012667317176238 6892105.30179741140455,1478856.713612355990335 6891712.665017653256655,1478875.897514964221045 6891664.70191867928952,1478898.291175603168085 6891642.306974301114678,1478920.675505543360487 6891632.711349874734879,1479150.145212217466906 6891598.774201380088925)",179,residential,0,0,1,minorroads,3,0
"LINESTRING (1479232.777819963172078 6890911.35552369710058,1479225.509210946969688 6890904.029178469441831,1479219.015049364650622 6890835.992580109275877,1479415.566074902191758 6890596.129463358782232,1479426.510976537596434 6890588.466222968883812,1479433.854231088422239 6890586.182578745298088,1479441.747996460879222 6890586.856943410821259)",185,residential,0,0,0,minorroads,3,0
"LINESTRING (1479723.329617572249845 6891860.342268580570817,1479596.926733975531533 6891723.011840671300888)",188,residential,0,0,0,minorroads,3,0
"LINESTRING (1479094.002438864903525 6890258.861840659752488,1479102.166794305900112 6890249.972855378873646,1479110.592409119475633 6890237.283079625107348,1479113.904804755235091 6890222.585646998137236,1479107.16804518038407 6890125.037674428895116,1479369.173874618951231 6890088.94599081762135,1479378.177992332726717 6890095.842478349804878)",197,residential,0,0,0,minorroads,3,0
"LINESTRING (1479150.145212217466906 6891598.774201380088925,1479134.525633922312409 6891683.923912476748228,1479122.50770271429792 6891741.850757068023086,1479112.365240588784218 6891776.922836208716035,1479083.458756984677166 6891830.404985710047185,1479039.623166288714856 6891874.843419559299946,1478994.845175709342584 6891943.793224707245827,1478968.961836289614439 6891994.609211077913642,1478956.608000173931941 6892018.875299187377095,1478935.147408731281757 6892081.709938492625952,1478923.026839912869036 6892143.012125051580369,1478922.522982550086454 6892195.055733603425324,1478922.243061791639775 6892224.595805050805211)",200,residential,0,0,1,minorroads,3,0
"LINESTRING (1478948.648919956991449 6892418.042266790755093,1478932.982688202988356 6892462.407298980280757,1478924.323806092375889 6892507.707714077085257,1478923.16680029197596 6892543.764267535880208,1478928.690569914877415 6892595.135937471874058,1478954.200681655900553 6892647.565733219496906,1478981.091735800961033 6892698.110219702124596,1478998.14824065216817 6892739.042748300358653,1479008.262710707494989 6892770.393833446316421,1479017.257497728569433 6892806.252266069874167,1479018.65710151870735 6892835.779252862557769,1479019.179620267124847 6892907.067596364766359)",201,residential,0,0,0,minorroads,3,0
"LINESTRING (1478917.605707900365815 6892380.08537070825696,1478948.648919956991449 6892418.042266790755093,1478994.257342116441578 6892488.667711554095149,1479021.055089343804866 6892527.437619337812066,1479045.053628993919119 6892554.863341205753386,1479059.282934189308435 6892565.96243020426482,1479069.22945178928785 6892573.719537409953773,1479138.341886926209554 6892625.474657708778977,1479163.90798281878233 6892643.380535209551454,1479204.5151541037485 6892671.818462022580206,1479218.987057288642973 6892679.161748955026269,1479293.669915507314727 6892716.982082463800907,1479382.861999682616442 6892764.108276013284922)",202,residential,0,0,0,minorroads,3,0
"LINESTRING (1478922.690935002407059 6892238.254484030418098,1478923.446721050655469 6892317.493675459176302,1478917.605707900365815 6892380.08537070825696)",203,residential,0,0,0,minorroads,3,0
"LINESTRING (1479434.777969588991255 6891585.561131720431149,1479383.543140193447471 6891577.667022745124996)",204,residential,0,0,0,minorroads,3,0
"LINESTRING (1479354.879254579078406 6892263.487076595425606,1479349.467453256715089 6892329.95678826700896,1479349.355484956176952 6892342.527229115366936,1479352.994454809231684 6892359.236747993156314,1479354.991222882410511 6892368.404003384523094,1479365.450928538106382 6892387.980267693288624,1479382.470110620604828 6892403.647445440292358,1479415.538082826416939 6892422.043387837707996,1479449.315187618602067 6892436.146972191520035,1479465.634567807661369 6892439.780182166956365,1479506.027133178431541 6892443.306083716452122,1479520.704311587382108 6892443.949944161809981,1479571.528590538073331 6892439.105662046931684,1479589.126275520771742 6892444.087914266623557,1479616.297250424511731 6892460.996934827417135,1479667.821331271668896 6892498.969543068669736,1479700.124186736298725 6892523.865690400823951,1479709.174957911716774 6892527.560260701924562,1479717.899154869839549 6892526.05790411029011,1479767.417136950884014 6892498.601620291359723,1479779.584359225351363 6892492.408255994319916)",215,residential,0,0,1,minorroads,3,0
"LINESTRING (1479064.209539529168978 6890130.202399942092597,1479107.16804518038407 6890125.037674428895116)",216,residential,0,0,0,minorroads,3,0
"LINESTRING (1479511.784170098369941 6889997.928235160186887,1479577.425587837351486 6890050.785533404909074)",218,unclassified,0,0,0,minorroads,3,0
"LINESTRING (1478743.644287527073175 6890644.500005290843546,1478764.862280979752541 6890650.661292929202318,1478794.823132770834491 6890656.071581743657589,1478844.219815858406946 6890657.343689843080938,1478888.745877755107358 6890655.642436888068914,1478931.480446802219376 6890650.891191814094782,1478963.578027048613876 6890644.591964773833752,1479008.439993852749467 6890630.675441741943359,1479056.194475160446018 6890605.585912075825036,1479095.672632720787078 6890583.837629308924079,1479133.965792407980189 6890555.943512021563947,1479203.460785916773602 6890490.040212746709585,1479266.862837587017566 6890414.650566106662154)",235,residential,0,0,0,minorroads,3,0
"LINESTRING (1479383.543140193447471 6891577.667022745124996,1479323.005610939580947 6891573.329098201356828,1479299.119039598386735 6891575.842948182485998,1479238.852100410265848 6891583.553114917129278,1479171.10194629477337 6891595.187356659211218,1479150.145212217466906 6891598.774201380088925)",236,residential,0,0,0,minorroads,3,0
"LINESTRING (1479596.926733975531533 6891723.011840671300888,1479465.550591580104083 6891589.531181692145765,1479434.777969588991255 6891585.561131720431149)",285,residential,0,0,0,minorroads,3,0
"LINESTRING (1478721.138658590381965 6890619.165207961574197,1478727.371560799656436 6890630.690768297761679,1478735.050720260944217 6890638.997764837928116,1478743.644287527073175 6890644.500005290843546)",289,residential,0,0,0,minorroads,3,0
"LINESTRING (1478553.951320560649037 6891315.418398878537118,1478529.78482845518738 6891312.260860466398299,1478502.221964489435777 6891308.628160036168993,1478489.158995784586295 6891306.911441416479647)",296,unclassified,0,0,0,minorroads,3,0
"LINESTRING (1478598.850610133260489 6891319.848151468671858,1478619.014235399430618 6891314.222825936973095,1478629.520594513742253 6891309.455863785929978,1478638.123492472805083 6891299.891292298212647,1478656.850191182689741 6891252.574420961551368)",318,unclassified,0,0,0,minorroads,3,0
"LINESTRING (1478362.989379487698898 6891563.457646118476987,1478372.702629790874198 6891539.468841813504696,1478383.955444257706404 6891522.730370282195508,1478405.789263379527256 6891501.899299177341163,1478420.401126943761483 6891493.03959580976516,1478439.109164268011227 6891484.793029486201704,1478451.080442011589184 6891482.585771531797945,1478466.158840178279206 6891481.390173728577793,1478478.036811004159972 6891474.906357950530946,1478487.899352376582101 6891463.640165685676038,1478507.064593604533002 6891401.454134074039757,1478520.276853378862143 6891359.056933037005365,1478529.78482845518738 6891312.260860466398299)",320,unclassified,0,0,1,minorroads,3,0
"LINESTRING (1478237.248975021298975 6891675.033351420424879,1478264.074714324669912 6891662.709210627712309)",322,unclassified,0,0,1,minorroads,3,0
"LINESTRING (1478917.605707900365815 6892380.08537070825696,1478763.248071275651455 6892276.22604011092335,1478747.908413741970435 6892253.584117701277137,1478739.464137542527169 6892228.489522617310286)",323,residential,0,0,1,minorroads,3,0
"LINESTRING (1478079.187053699046373 6892810.37622603494674,1478145.453627796843648 6892613.685621440410614,1478151.313302329974249 6892587.37880960572511,1478163.71379190729931 6892357.366506541147828,1478160.606671495363116 6892351.387868744321167,1478139.976511632790789 6892311.59171611443162)",330,residential,0,0,0,minorroads,3,0
"LINESTRING (1478763.248071275651455 6892276.22604011092335,1478726.867703434312716 6892307.789936803281307)",335,residential,0,0,1,minorroads,3,0
"LINESTRING (1478755.606234583305195 6889945.040633909404278,1478753.161593299126253 6889966.633935891091824,1478748.785498783690855 6889984.227385916747153,1478740.005317673785612 6890001.008630651049316,1478657.895228676730767 6890098.125983302481472)",338,residential,0,0,0,minorroads,3,0
"LINESTRING (1477786.39927157945931 6890262.126246342435479,1478094.340097397565842 6890523.819417727179825,1478155.810695839114487 6890564.786856304854155)",346,unclassified,0,0,0,minorroads,3,0
"LINESTRING (1477842.131494486937299 6889810.838566199876368,1477906.373308435780928 6889868.935817634686828,1478137.494547579903156 6890058.632166887633502,1478153.804597075795755 6890076.363747696392238,1478161.362457540817559 6890099.060841219499707,1478176.627469539875165 6890170.079709811136127,1478184.745171522023156 6890192.792393619194627,1478195.494128623511642 6890209.911240221001208,1478209.71410313132219 6890228.547376076690853,1478261.070231520570815 6890273.49803611356765,1478292.038798042573035 6890286.525038770399988)",432,residential,0,0,0,minorroads,3,0
"LINESTRING (1478726.867703434312716 6892307.789936803281307,1478725.262824423145503 6892320.069077261723578,1478849.314373653382063 6892600.225598565302789)",449,residential,0,0,1,minorroads,3,0
"LINESTRING (1477170.004431890556589 6892330.416682093404233,1477226.473779457621276 6892480.77271568775177)",497,residential,0,0,0,minorroads,3,0
"LINESTRING (1477206.375469039194286 6890495.557677546516061,1477167.625105448300019 6890527.559048051945865,1477202.689845727290958 6890575.867871635593474)",504,residential,0,0,1,minorroads,3,0
"LINESTRING (1477056.785815992159769 6892691.840049274265766,1477047.42713198508136 6892531.960020915605128,1477034.205541517818347 6892466.163161252625287,1477014.965654755244032 6892407.817188702523708,1477005.485671751899645 6892378.107815207913518,1476984.137048612581566 6892331.842353134416044,1476956.555523263756186 6892281.284839883446693,1476909.892732914770022 6892184.90758672170341)",523,residential,0,0,0,minorroads,3,0
"LINESTRING (1476392.496534616453573 6892429.171826844103634,1476550.259873797185719 6892335.797441869974136,1476622.861987715121359 6892298.960004699416459,1476700.521336662117392 6892264.85141708701849,1476909.892732914770022 6892184.90758672170341,1477091.430675133131444 6892112.736543129198253,1477219.41977636096999 6892066.212010371498764,1477229.84215924795717 6892055.54283092636615)",525,residential,0,0,0,minorroads,3,0
"LINESTRING (1477005.485671751899645 6892378.107815207913518,1477065.827256471849978 6892358.362946599721909,1477125.282425462966785 6892342.404590574093163,1477170.004431890556589 6892330.416682093404233)",526,residential,0,0,0,minorroads,3,0
"LINESTRING (1477226.473779457621276 6892480.77271568775177,1477166.915972861694172 6892497.804454318247736,1477136.208665715297684 6892506.573284320533276,1477105.706633787136525 6892515.296133446507156,1477047.42713198508136 6892531.960020915605128)",527,residential,0,0,0,minorroads,3,0
"LINESTRING (1477091.430675133131444 6892112.736543129198253,1477170.004431890556589 6892330.416682093404233)",528,residential,0,0,0,minorroads,3,0
"LINESTRING (1477226.473779457621276 6892480.77271568775177,1477255.268294758396223 6892486.061595555394888,1477275.814478393411264 6892495.91885052062571)",529,residential,0,0,0,minorroads,3,0
"LINESTRING (1477275.814478393411264 6892495.91885052062571,1477328.626194727374241 6892664.521173093467951)",530,residential,0,0,0,minorroads,3,0
"LINESTRING (1477459.5917866777163 6892447.751787870191038,1477537.027199015021324 6892540.912850533612072,1477573.267606480047107 6892584.466056008823216,1477587.123683996265754 6892602.264529967680573)",531,residential,0,0,0,minorroads,3,0
"LINESTRING (1477275.814478393411264 6892495.91885052062571,1477459.5917866777163 6892447.751787870191038)",532,residential,0,0,0,minorroads,3,0
"LINESTRING (1476599.497935119783506 6892427.807458454743028,1476729.035931204212829 6892369.20115651935339,1476956.555523263756186 6892281.284839883446693)",533,residential,0,0,0,minorroads,3,0
"LINESTRING (1476699.578936775680631 6892648.255601234734058,1476829.256893242476508 6892551.184088567271829,1477014.965654755244032 6892407.817188702523708)",534,residential,0,0,0,minorroads,3,0
"LINESTRING (1477131.048793075839058 6890631.24252425506711,1476933.564698341768235 6890379.676385825499892)",536,residential,0,0,0,minorroads,3,0
"LINESTRING (1477050.235670255264267 6890288.333494927734137,1476933.564698341768235 6890379.676385825499892,1476902.820068429457024 6890398.910633538849652,1476831.654881067806855 6890456.920177238993347)",537,residential,0,0,1,minorroads,3,0
"LINESTRING (1476942.736768513685092 6890783.32936832588166,1476752.110732350964099 6890533.904162514954805,1476753.948878661962226 6890517.596921934746206,1476575.592702392954379 6890272.946304704993963,1476409.226465250365436 6890059.260510915890336,1476395.724954024655744 6890059.306487303227186,1476182.322698862291873 6889785.015997536480427)",552,residential,0,0,1,minorroads,3,0
"LINESTRING (1475786.729353038361296 6891662.356654640287161,1475992.471110128099099 6891500.68837027810514,1476100.436546466313303 6891415.663224364630878,1476197.223813875345513 6891340.402848524972796,1476278.139574306318536 6891277.49736415874213,1476321.676582857733592 6891244.343429019674659,1476489.871635615592822 6891115.576251862570643,1476493.678557923762128 6891113.246475487947464,1476512.825137766078115 6891098.624078639782965,1476574.920892572263256 6891049.53041878528893,1476642.055221018847078 6890998.321897276677191,1476664.887424173066393 6890986.290011228993535,1476689.865686475299299 6890974.840577159076929,1476942.736768513685092 6890783.32936832588166,1477029.446888633305207 6890709.37768148444593,1477131.048793075839058 6890631.24252425506711,1477191.548999560764059 6890584.63460551109165,1477202.689845727290958 6890575.867871635593474,1477245.125832630088553 6890544.065551890060306)",553,residential,0,0,0,minorroads,3,0
"LINESTRING (1476209.33505200385116 6889063.703335772268474,1476378.08994627604261 6889279.645944504998624,1476389.286776594119146 6889290.434032781980932,1476403.721357013098896 6889290.434032781980932,1476463.493769522989169 6889363.667758987285197,1476927.490417897468433 6889968.91740414686501,1477296.220701646525413 6890447.448577187024057,1477305.336787663633004 6890453.180579769425094)",554,unclassified,0,0,0,minorroads,3,0
"LINESTRING (1477029.446888633305207 6890709.37768148444593,1476831.654881067806855 6890456.920177238993347,1476647.672297562239692 6890213.635398782789707)",559,residential,0,0,0,minorroads,3,0
"LINESTRING (1479591.626900956500322 6890520.325010627508163,1479593.922251174226403 6890511.037251781672239,1479600.099169231951237 6890495.251151624135673,1479608.85135826584883 6890481.411518443375826,1479619.36704807030037 6890469.027902306057513,1479629.257581518730149 6890462.728817746974528,1479643.738815393997356 6890454.146131407469511,1479658.985166010214016 6890448.720652269199491,1479858.307407052256167 6890380.24345064163208,1480100.522838903823867 6890293.513651255518198)",67,tertiary,0,0,0,mainroads,4,0
"LINESTRING (1477367.992383987177163 6890698.603015801869333,1477349.881510943174362 6890675.812269823625684,1477245.125832630088553 6890544.065551890060306)",76,tertiary,0,0,0,mainroads,4,0
"LINESTRING (1477245.125832630088553 6890544.065551890060306,1477206.375469039194286 6890495.557677546516061,1477050.235670255264267 6890288.333494927734137,1476863.48187124566175 6890045.559557152912021,1476700.614643579581752 6889836.354716989211738,1476482.229798923013732 6889550.532479927875102,1476148.77886136691086 6889111.926746366545558,1476140.558521774364635 6889102.134934161789715,1476127.560867911204696 6889083.470761761069298,1476121.029383563203737 6889075.579109120182693)",98,tertiary,0,0,0,mainroads,4,0
"LINESTRING (1477440.221270225942135 6890807.515166061930358,1477433.064629515865818 6890796.72504198551178,1477425.628068044548854 6890779.620272696949542,1477416.483989951433614 6890762.960017169825733)",140,tertiary,0,0,0,mainroads,4,0
"LINESTRING (1477601.352989191422239 6891019.243627357296646,1477589.045806534821168 6891029.896104246377945,1477529.049457415007055 6891078.468512326478958,1477462.521623944398016 6891132.436495768837631)",65,secondary,0,0,0,mainroads,5,0
"LINESTRING (1478347.248502201633528 6892208.147168586961925,1478342.172605789732188 6892190.916759766638279,1478325.657281069783494 6892141.203251630999148)",66,secondary,0,0,1,mainroads,5,0
"LINESTRING (1479405.974123598309234 6890464.384051165543497,1479414.754304702393711 6890467.663866545073688,1479438.323632521787658 6890477.058859107084572,1479453.616636599646881 6890482.744903990067542)",68,secondary,0,0,1,mainroads,5,0
"LINESTRING (1478942.192081137793139 6890130.999331175349653,1478922.700265695340931 6890097.880774687975645,1478913.39756584004499 6890080.455656515434384)",69,secondary,0,0,1,mainroads,5,0
"LINESTRING (1478371.433655687142164 6890928.767115697264671,1478421.474156513577327 6890821.386014446616173,1478431.82189386873506 6890796.433831455186009,1478464.609945313073695 6890729.379055060446262,1478502.968419844750315 6890668.378852861002088,1478530.932503562653437 6890635.120143613778055,1478590.24771217443049 6890558.411064649000764,1478600.64210298541002 6890542.839440878480673,1478604.346387683181092 6890537.306617256253958,1478629.184689603513107 6890499.098052786663175,1478658.809636487159878 6890449.410331619903445,1478680.783415985293686 6890415.018393527716398)",70,secondary,0,0,1,mainroads,5,0
"LINESTRING (1479356.241535600507632 6892244.984189610928297,1479354.879254579078406 6892263.487076595425606)",71,secondary,0,0,0,mainroads,5,0
"LINESTRING (1478687.930726005230099 6892209.189578847959638,1478735.713199388701469 6892210.431273595429957,1478922.243061791639775 6892224.595805050805211)",72,secondary,0,0,1,mainroads,5,0
"LINESTRING (1478357.316318792523816 6892236.261633796617389,1478331.460971454158425 6892240.814530819654465,1478302.573149230098352 6892246.517152946442366,1478272.724265742348507 6892252.940272497013211,1478243.276602006983012 6892261.908121032640338,1478210.040677348850295 6892275.42889619525522,1478139.976511632790789 6892311.59171611443162,1478016.484803919447586 6892382.200895741581917,1477743.403443159302697 6892544.331485021859407,1477660.07103352015838 6892595.227919272147119,1477634.187694100197405 6892612.566507063806057,1477623.578697375254706 6892624.202238139696419,1477615.778238917700946 6892632.756580822169781,1477604.963966968702152 6892661.623721974901855,1477604.609400675399229 6892681.859910343773663)",73,secondary,0,0,1,mainroads,5,0
"LINESTRING (1478512.980252289446071 6892501.529672888107598,1478525.371411173837259 6892530.396342795342207,1478531.641636149259284 6892551.858618092723191,1478539.078197620576248 6892576.92356213927269,1478543.603583205491304 6892616.000502363778651,1478545.647004743106663 6892654.541068081744015,1478545.684327509021387 6892718.913729729130864,1478543.836850505322218 6892759.263800947926939,1478540.533785562496632 6892805.838337119668722,1478537.08142954739742 6892857.456974725238979)",74,secondary,0,0,1,mainroads,5,0
"LINESTRING (1478185.743555557215586 6892242.623426643200219,1478266.323411077726632 6892206.675530795939267,1478294.147534419083968 6892193.936677500605583)",75,secondary,0,0,1,mainroads,5,0
"LINESTRING (1477462.521623944398016 6891132.436495768837631,1477504.994933616137132 6891184.151682637631893,1477516.453023307025433 6891195.61674244236201,1477529.674613774055615 6891209.641537031158805,1477544.967617851914838 6891218.546911101788282,1477559.924717016518116 6891225.87354295141995,1477576.020160598680377 6891231.130941885523498,1477592.899382304633036 6891232.878299727104604,1477611.047578108729795 6891232.878299727104604,1477626.340582186589018 6891228.111385807394981,1477641.6242555687204 6891222.363503010012209,1477687.951141010504216 6891192.24466432724148,1477698.952026794664562 6891185.101994454860687)",77,secondary,0,0,0,mainroads,5,0
"LINESTRING (1478086.567631015786901 6891649.909905299544334,1478125.196695613209158 6891674.772766153328121,1478142.915679592173547 6891681.685942734591663,1478159.589626074302942 6891686.315168510191143,1478175.087905370397493 6891688.721753821708262,1478194.67302773357369 6891689.365553838200867,1478206.467022337485105 6891687.633425346575677)",78,secondary,0,0,1,mainroads,5,0
"LINESTRING (1478237.248975021298975 6891675.033351420424879,1478242.875382254831493 6891699.988261526450515)",79,secondary,0,0,1,mainroads,5,0
"LINESTRING (1478347.248502201633528 6892208.147168586961925,1478371.750899214530364 6892203.548301403410733)",80,secondary,0,0,1,mainroads,5,0
"LINESTRING (1478371.750899214530364 6892203.548301403410733,1478382.453202857170254 6892232.153297962620854)",81,secondary,0,0,1,mainroads,5,0
"LINESTRING (1478357.316318792523816 6892236.261633796617389,1478347.248502201633528 6892208.147168586961925)",82,secondary,0,0,1,mainroads,5,0
"LINESTRING (1478382.453202857170254 6892232.153297962620854,1478357.316318792523816 6892236.261633796617389)",83,secondary,0,0,1,mainroads,5,0
"LINESTRING (1479591.626900956500322 6890520.325010627508163,1479585.384668057085946 6890546.502448085695505)",84,secondary,0,0,0,mainroads,5,0
"LINESTRING (1478242.875382254831493 6891699.988261526450515,1478212.02811472909525 6891713.140204788185656)",85,secondary,0,0,1,mainroads,5,0
"LINESTRING (1478913.39756584004499 6890080.455656515434384,1478902.919198798481375 6890060.471222716383636,1478901.482272242428735 6890051.766362176276743,1478896.611651054350659 6890025.77444030251354,1478895.202716574305668 6890003.031577592715621,1478891.041227969806641 6889935.293782743625343)",86,secondary,0,0,1,mainroads,5,0
"LINESTRING (1478206.467022337485105 6891687.633425346575677,1478237.248975021298975 6891675.033351420424879)",87,secondary,0,0,1,mainroads,5,0
"LINESTRING (1478891.041227969806641 6889935.293782743625343,1478923.241445826832205 6889993.42258417326957,1478944.664714500773698 6890030.004252052865922,1478948.424983350094408 6890035.276194448582828,1478965.164244676940143 6890062.325604433193803)",88,secondary,0,0,1,mainroads,5,0
"LINESTRING (1480004.127460559597239 6892298.699399212375283,1479952.398104491410777 6892295.096912450157106,1479897.916194301797077 6892292.076956707052886,1479756.929439219413325 6892285.025287828408182,1479744.82753178384155 6892283.798911259509623,1479593.00784336659126 6892275.26026960555464,1479563.980060763191432 6892273.619992980733514,1479551.467602882767096 6892272.914827428758144,1479354.879254579078406 6892263.487076595425606,1479238.124306440819055 6892256.75735551957041)",89,secondary,0,0,1,mainroads,5,0
"LINESTRING (1477166.010895744198933 6890934.453480053693056,1477233.434475639369339 6890900.503951973281801,1477338.096847037784755 6890853.449989835731685,1477440.221270225942135 6890807.515166061930358)",90,secondary,0,0,1,mainroads,5,0
"LINESTRING (1478922.690935002407059 6892238.254484030418098,1478922.243061791639775 6892224.595805050805211)",91,secondary,0,0,0,mainroads,5,0
"LINESTRING (1477743.403443159302697 6892544.331485021859407,1477711.763066816842183 6892498.678270866163075)",93,secondary,0,0,0,mainroads,5,0
"LINESTRING (1478394.097906388808042 6892344.934010887518525,1478418.469673712505028 6892336.287995646707714)",94,secondary,0,0,0,mainroads,5,0
"LINESTRING (1478206.467022337485105 6891687.633425346575677,1478203.621161298360676 6891671.952314448542893,1478190.950081655522808 6891606.959570964798331,1478184.297298308229074 6891568.669280803762376,1478181.7500194106251 6891550.612513891421258,1478178.904158371733502 6891520.431132415309548,1478177.205972440075129 6891489.069593496620655)",95,secondary,0,0,1,mainroads,5,0
"LINESTRING (1478739.464137542527169 6892228.489522617310286,1478735.713199388701469 6892210.431273595429957)",96,secondary,0,0,1,mainroads,5,0
"LINESTRING (1478544.135432646842673 6892221.683182909153402,1478529.290301782777533 6892221.10065860580653,1478515.340917346067727 6892220.410827253945172,1478479.884288007859141 6892219.751655120402575,1478450.119380745105445 6892221.514557450078428,1478435.358226108597592 6892223.185482617467642,1478397.102389190113172 6892229.700561141595244,1478382.453202857170254 6892232.153297962620854)",99,secondary,0,0,1,mainroads,5,0
"LINESTRING (1478371.750899214530364 6892203.548301403410733,1478390.356298925122246 6892200.773652814328671,1478423.946789876557887 6892198.397573292255402,1478426.568714311579242 6892198.351584662683308,1478451.742921142140403 6892197.86103930324316,1478527.237549557816237 6892200.804311908781528)",100,secondary,0,0,1,mainroads,5,0
"LINESTRING (1478472.802292829845101 6892429.708376270718873,1478484.279043906368315 6892448.686919055879116)",101,secondary,0,0,1,mainroads,5,0
"LINESTRING (1478431.579295878997073 6892449.652710394002497,1478394.097906388808042 6892344.934010887518525,1478379.915254652500153 6892302.271228101104498,1478363.931779373902828 6892254.166644357144833,1478357.316318792523816 6892236.261633796617389)",103,secondary,0,0,1,mainroads,5,0
"LINESTRING (1478382.453202857170254 6892232.153297962620854,1478389.077994128456339 6892251.89785656798631,1478418.469673712505028 6892336.287995646707714,1478423.265649365726858 6892349.165043009445071,1478442.53352820710279 6892385.251545143313706,1478472.802292829845101 6892429.708376270718873)",104,secondary,0,0,1,mainroads,5,0
"LINESTRING (1480128.794835455948487 6890683.199713693931699,1480037.745943589601666 6890661.297954847104847,1479908.067987125832587 6890628.069927993230522,1479700.842650018632412 6890575.729933591559529,1479627.876639111666009 6890557.491479728370905,1479585.384668057085946 6890546.502448085695505)",105,secondary,0,0,1,mainroads,5,0
"LINESTRING (1479285.906779821496457 6890425.80800533015281,1479266.862837587017566 6890414.650566106662154)",106,secondary,0,0,1,mainroads,5,0
"LINESTRING (1479220.367999695939943 6892255.622961183078587,1479175.095482441131026 6892253.338843335397542,1478949.302068391814828 6892240.109368146397173,1478922.690935002407059 6892238.254484030418098,1478739.464137542527169 6892228.489522617310286)",108,secondary,0,0,1,mainroads,5,0
"LINESTRING (1478973.058010046370327 6890074.815872622653842,1478987.24999247584492 6890117.681394563056529,1478991.019592018099502 6890132.409286628477275,1478995.115765775088221 6890146.44755226187408,1479000.21032356726937 6890161.589289834722877,1479007.926805797265843 6890178.493510303087533,1479018.778400514973328 6890192.562507837079465,1479037.449115067487583 6890212.026194254867733,1479094.002438864903525 6890258.861840659752488,1479124.859037083573639 6890282.417699187062681,1479175.655323958257213 6890321.176968595944345,1479186.796170124784112 6890329.437667407095432)",111,secondary,0,0,1,mainroads,5,0
"LINESTRING (1479233.776204001158476 6892239.772116457112134,1479356.241535600507632 6892244.984189610928297,1479565.510294239735231 6892254.902467562817037,1479746.880284008570015 6892264.08493363391608,1479758.142429168568924 6892264.774768739938736,1479997.623968284577131 6892279.721210523508489)",113,secondary,0,0,1,mainroads,5,0
"LINESTRING (1479173.966468716738746 6890346.066372577100992,1479186.796170124784112 6890329.437667407095432)",114,secondary,0,0,0,mainroads,5,0
"LINESTRING (1479078.233569500269368 6890275.796917401254177,1479094.002438864903525 6890258.861840659752488)",116,secondary,0,0,0,mainroads,5,0
"LINESTRING (1477871.81242551933974 6890936.997784550301731,1477872.456243261462077 6890928.291974918916821,1477877.485486214514822 6890906.496837940067053,1477884.352875475771725 6890890.617998971603811,1477892.591876451391727 6890882.540647934190929,1477899.328636026475579 6890876.057315123267472,1477917.271556612337008 6890861.695908572524786)",117,secondary,0,0,0,mainroads,5,0
"LINESTRING (1478191.472600403940305 6891373.802427344955504,1478196.94038587808609 6891352.28198526147753,1478203.341240539913997 6891334.992099165916443,1478208.361152797238901 6891321.442249881103635,1478221.190854205284268 6891283.076680599711835,1478240.664008267689496 6891229.552189072594047,1478281.392478548688814 6891130.99570990819484,1478329.772116212407127 6891020.117283202707767)",118,secondary,0,0,1,mainroads,5,0
"LINESTRING (1478420.186521029798314 6891416.536923290230334,1478405.378712934441864 6891441.123156609944999,1478385.07512729219161 6891463.931400388479233)",119,secondary,0,0,1,mainroads,5,0
"LINESTRING (1478385.07512729219161 6891463.931400388479233,1478355.739431857131422 6891480.838359414599836,1478325.330706852255389 6891498.09790275990963,1478305.652277571614832 6891510.099898357875645,1478287.214830313343555 6891523.757363410666585,1478269.365216647740453 6891538.748412380926311,1478261.592750268988311 6891547.424226494506001,1478253.922921500634402 6891557.556240336969495,1478246.822264939546585 6891571.428382882848382,1478241.718376454431564 6891583.645085142925382,1478236.801101807504892 6891598.774201380088925,1478234.319137751823291 6891611.496783165261149,1478233.152801261516288 6891624.955150639638305,1478233.227446796139702 6891641.785805906169116,1478234.375121903605759 6891657.788756710477173,1478237.248975021298975 6891675.033351420424879)",121,secondary,0,0,1,mainroads,5,0
"LINESTRING (1478922.243061791639775 6892224.595805050805211,1478942.052120761480182 6892225.622887848876417,1479174.98351413779892 6892237.625969672575593,1479215.245449822163209 6892238.729702232405543)",122,secondary,0,0,1,mainroads,5,0
"LINESTRING (1478436.51523190876469 6891092.385810512118042,1478442.458882669685408 6891118.810350452549756,1478447.432141468161717 6891137.770471206866205,1478455.363229612121359 6891162.769696334376931,1478465.543014509370551 6891191.432300264947116,1478473.483433340443298 6891211.542166809551418,1478480.826687894295901 6891235.974496131762862,1478485.594671468948945 6891257.954459356144071,1478487.899352376582101 6891275.734668834134936,1478489.158995784586295 6891289.759603191167116,1478489.158995784586295 6891306.911441416479647)",123,secondary,0,0,1,mainroads,5,0
"LINESTRING (1478739.464137542527169 6892228.489522617310286,1478695.637877542292699 6892227.661724239587784)",124,secondary,0,0,1,mainroads,5,0
"LINESTRING (1479563.980060763191432 6892273.619992980733514,1479565.510294239735231 6892254.902467562817037)",126,secondary,0,0,0,mainroads,5,0
"LINESTRING (1478942.192081137793139 6890130.999331175349653,1478922.401683553820476 6890133.711963083595037,1478910.029186052503064 6890135.275175113230944,1478897.096847034059465 6890139.121904042549431,1478884.817656453233212 6890149.711912300437689,1478838.360141325276345 6890218.141173175536096,1478809.602948790416121 6890263.490247231908143,1478795.187029757071286 6890294.724398334510624,1478786.481494184816256 6890326.46442789491266,1478781.480243310332298 6890359.43066562525928,1478776.385685515357181 6890382.649645018391311,1478763.472007882548496 6890417.455250608734787,1478747.693807828007266 6890450.713059439323843)",127,secondary,0,0,1,mainroads,5,0
"LINESTRING (1478680.783415985293686 6890415.018393527716398,1478708.486240330385044 6890367.231622180901468,1478737.150125944754109 6890321.376206131651998,1478779.343514857813716 6890266.785306516103446,1478790.773612475488335 6890251.980539125390351,1478894.400277064414695 6890106.524382934905589,1478899.942708073183894 6890099.612560700625181,1478913.39756584004499 6890080.455656515434384)",128,secondary,0,0,1,mainroads,5,0
"LINESTRING (1478809.602948790416121 6890263.490247231908143,1478790.773612475488335 6890251.980539125390351)",129,secondary,0,0,1,mainroads,5,0
"LINESTRING (1478747.693807828007266 6890450.713059439323843,1478714.336584170814604 6890522.455372669734061,1478696.636261577485129 6890557.292236343957484,1478687.492183484369889 6890575.28546657320112,1478674.457206855295226 6890599.087476109154522,1478663.092424082104117 6890614.521270107477903,1478635.884126409655437 6890651.596215098164976,1478600.660764371277764 6890704.365850842557847,1478580.217218346660957 6890739.310790088959038,1478575.94376144465059 6890746.238489062525332,1478525.688654698198661 6890826.290629548951983,1478502.744483237853274 6890866.248027193360031,1478484.400342902867123 6890899.676290327683091,1478466.102856026496738 6890932.568242912180722,1478451.155087549006566 6890967.130994181148708)",130,secondary,0,0,1,mainroads,5,0
"LINESTRING (1478212.02811472909525 6891713.140204788185656,1478199.170421248069033 6891718.367265134118497,1478187.143159347353503 6891720.421301508322358,1478175.936998336343095 6891718.750480834394693,1478161.875645596301183 6891715.209568447433412,1478141.842650016769767 6891706.65620210301131,1478116.659112496068701 6891686.514439879916608,1478086.567631015786901 6891649.909905299544334)",131,secondary,0,0,1,mainroads,5,0
"LINESTRING (1479186.796170124784112 6890329.437667407095432,1479194.130093982676044 6890335.261541805230081,1479279.664546919055283 6890398.466176299378276,1479297.47683781851083 6890409.209787493571639)",132,secondary,0,0,1,mainroads,5,0
"LINESTRING (1478086.567631015786901 6891649.909905299544334,1478075.426784849492833 6891635.39383159019053,1478052.874502453953028 6891606.26979230903089,1478037.180278623942286 6891587.247253092937171,1478002.040892810327932 6891541.829398297704756,1477825.784122222103179 6891305.424640764482319,1477691.104914883850142 6891132.620425897650421,1477677.911316492594779 6891115.560924383811653,1477601.352989191422239 6891019.243627357296646,1477547.608203666983172 6890950.087170991115272,1477456.633957332465798 6890828.666303563863039,1477454.497228882741183 6890826.259975696913898,1477452.211209358181804 6890823.685052404180169,1477440.221270225942135 6890807.515166061930358)",133,secondary,0,0,0,mainroads,5,0
"LINESTRING (1479627.876639111666009 6890557.491479728370905,1479634.464107617270201 6890532.50946301408112)",134,secondary,0,0,0,mainroads,5,0
"LINESTRING (1478016.484803919447586 6892382.200895741581917,1477995.042873862665147 6892323.962841073982418)",136,secondary,0,0,0,mainroads,5,0
"LINESTRING (1478472.802292829845101 6892429.708376270718873,1478431.579295878997073 6892449.652710394002497)",137,secondary,0,0,0,mainroads,5,0
"LINESTRING (1476901.859007160179317 6891178.373176074586809,1476933.797965641599149 6891127.102523874491453,1476969.217272213893011 6891077.533540516160429,1477002.779771094908938 6891043.859300371259451,1477030.258658833103254 6891020.699720491655171,1477070.79118458321318 6890988.573769110254943,1477117.099408636335284 6890959.789270952343941,1477166.010895744198933 6890934.453480053693056)",139,secondary,0,0,0,mainroads,5,0
"LINESTRING (1477342.883491998305544 6890867.014377377927303,1477338.096847037784755 6890853.449989835731685)",141,secondary,0,0,0,mainroads,5,0
"LINESTRING (1477452.211209358181804 6890823.685052404180169,1477342.883491998305544 6890867.014377377927303,1477317.485348558053374 6890876.701050061732531,1477166.010895744198933 6890934.453480053693056)",142,secondary,0,0,1,mainroads,5,0
"LINESTRING (1477801.412354895845056 6891105.552087247371674,1477825.746799453394488 6891083.940398719161749,1477842.486060780240223 6891060.520138014107943,1477854.112102926243097 6891041.897400882095098,1477860.41031997743994 6891025.880348713137209,1477868.43471504189074 6891004.698037818074226,1477870.207546508172527 6890978.105273565277457)",144,secondary,0,0,0,mainroads,5,0
"LINESTRING (1478212.02811472909525 6891713.140204788185656,1478206.467022337485105 6891687.633425346575677)",145,secondary,0,0,1,mainroads,5,0
"LINESTRING (1478325.657281069783494 6892141.203251630999148,1478321.449139009229839 6892126.425690860487521,1478318.136743376497179 6892116.154995526187122,1478308.647429679986089 6892080.483592945151031,1478266.19278139132075 6891904.336327421478927,1478249.052300312556326 6891837.149678730405867,1478217.355939821107313 6891730.72214855439961,1478215.956336030969396 6891726.108225850388408,1478212.02811472909525 6891713.140204788185656)",146,secondary,0,0,1,mainroads,5,0
"LINESTRING (1478185.743555557215586 6892242.623426643200219,1478218.251686245668679 6892235.403175389394164,1478245.870534363202751 6892229.562594718299806,1478299.018155604368076 6892218.111389826983213,1478347.248502201633528 6892208.147168586961925)",147,secondary,0,0,1,mainroads,5,0
"LINESTRING (1479585.384668057085946 6890546.502448085695505,1479467.789957643020898 6890509.550598309375346)",148,secondary,0,0,1,mainroads,5,0
"LINESTRING (1479591.626900956500322 6890520.325010627508163,1479634.464107617270201 6890532.50946301408112)",149,secondary,0,0,1,mainroads,5,0
"LINESTRING (1478973.058010046370327 6890074.815872622653842,1478972.078287394251674 6890093.298440041951835,1478970.389432155527174 6890104.179573393426836,1478967.524909733561799 6890114.463024233467877,1478959.080633534118533 6890122.340371028520167,1478942.192081137793139 6890130.999331175349653)",150,secondary,0,0,1,mainroads,5,0
"LINESTRING (1478965.164244676940143 6890062.325604433193803,1478973.058010046370327 6890074.815872622653842)",151,secondary,0,0,1,mainroads,5,0
"LINESTRING (1478913.39756584004499 6890080.455656515434384,1478927.160336438566446 6890063.367736498825252,1478940.176651681773365 6890058.325657619163394,1478952.801077865762636 6890058.877374304458499,1478965.164244676940143 6890062.325604433193803)",152,secondary,0,0,1,mainroads,5,0
"LINESTRING (1478242.875382254831493 6891699.988261526450515,1478246.253092732280493 6891712.113187463954091,1478248.763048860942945 6891721.111089956946671,1478265.091759745730087 6891789.477083542384207,1478290.042029966600239 6891901.331847446970642,1478313.816633009817451 6892003.132225465960801,1478335.35186998709105 6892086.538675913587213,1478348.993341592140496 6892131.4230787018314,1478366.684333492536098 6892186.885094705037773,1478371.750899214530364 6892203.548301403410733)",153,secondary,0,0,1,mainroads,5,0
"LINESTRING (1477711.763066816842183 6892498.678270866163075,1477867.380346852121875 6892398.006031540222466,1477903.396817710250616 6892373.278902645222843,1477936.726049288874492 6892354.607134696096182,1477974.254092237679288 6892334.525068153627217,1477995.042873862665147 6892323.962841073982418,1478115.819350223056972 6892267.411472347564995,1478185.743555557215586 6892242.623426643200219)",154,secondary,0,0,1,mainroads,5,0
"LINESTRING (1478512.00052963453345 6892854.268168974667788,1478514.146588779985905 6892802.557567667216063,1478515.00501243583858 6892781.048631047829986,1478514.333202617941424 6892738.414194788783789,1478511.673955417005345 6892685.2786047719419,1478511.56198711367324 6892666.652103416621685,1478509.882462567882612 6892647.565733219496906,1478505.338415597099811 6892630.104427010752261,1478498.247089728945866 6892607.768114305101335,1478458.563656944548711 6892511.739540040493011,1478431.579295878997073 6892449.652710394002497)",155,secondary,0,0,1,mainroads,5,0
"LINESTRING (1477587.123683996265754 6892602.264529967680573,1477695.331718327244744 6892512.33741554338485,1477711.763066816842183 6892498.678270866163075)",156,secondary,0,0,1,mainroads,5,0
"LINESTRING (1478115.819350223056972 6892267.411472347564995,1478139.976511632790789 6892311.59171611443162)",157,secondary,0,0,0,mainroads,5,0
"LINESTRING (1478489.158995784586295 6891306.911441416479647,1478483.047392571577802 6891339.299239296466112,1478476.786498283268884 6891360.712351007387042,1478468.631473538232967 6891378.140244230628014,1478458.498342099832371 6891397.361552857793868,1478446.163167367456481 6891415.663224364630878,1478431.457996882498264 6891431.757693529129028,1478410.566577647114173 6891449.216396995820105,1478385.07512729219161 6891463.931400388479233)",158,secondary,0,0,1,mainroads,5,0
"LINESTRING (1478294.147534419083968 6892193.936677500605583,1478305.512317192507908 6892186.823776624165475,1478311.166716501815245 6892179.726211540400982,1478316.130644607590511 6892167.67722771782428,1478325.657281069783494 6892141.203251630999148)",159,secondary,0,0,1,mainroads,5,0
"LINESTRING (1479634.464107617270201 6890532.50946301408112,1479915.066006073495373 6890602.474631934426725,1480044.492033854592592 6890635.825165513902903,1480127.133972293231636 6890656.025601936504245)",160,secondary,0,0,1,mainroads,5,0
"LINESTRING (1479266.862837587017566 6890414.650566106662154,1479180.236693697748706 6890350.648851290345192,1479173.966468716738746 6890346.066372577100992,1479161.817907822318375 6890337.253920855000615,1479078.233569500269368 6890275.796917401254177)",161,secondary,0,0,1,mainroads,5,0
"LINESTRING (1479467.789957643020898 6890509.550598309375346,1479446.292043434455991 6890501.872114131227136,1479396.176897070370615 6890481.549454870633781)",162,secondary,0,0,1,mainroads,5,0
"LINESTRING (1479453.616636599646881 6890482.744903990067542,1479477.671160398516804 6890489.641729325987399,1479591.626900956500322 6890520.325010627508163)",163,secondary,0,0,1,mainroads,5,0
"LINESTRING (1479078.233569500269368 6890275.796917401254177,1479020.719184436369687 6890226.708281797356904,1478981.269018949009478 6890181.160181148909032,1478961.497282745083794 6890155.520330861210823,1478951.065569168189541 6890141.650631228461862,1478942.192081137793139 6890130.999331175349653)",164,secondary,0,0,1,mainroads,5,0
"LINESTRING (1478662.672542944317684 6890646.814319248311222,1478692.838669959222898 6890659.106249583885074,1478720.354880469152704 6890669.221817328594625,1478746.378180262632668 6890677.222320823930204,1478774.342263983329758 6890683.613533364608884,1478827.965750514063984 6890691.230884444899857,1478891.339810111327097 6890693.790438639931381,1478955.012451852904633 6890686.755498230457306,1478996.935250700218603 6890678.03463292773813,1479037.234509153524414 6890665.926593106240034,1479067.913824223913252 6890655.213292057625949,1479097.352157269604504 6890641.112831750884652,1479130.522767085814849 6890623.793821963481605,1479163.77735312958248 6890603.80803756415844,1479240.186389355920255 6890541.674635590054095,1479271.705466702114791 6890510.700072621926665,1479303.32718165894039 6890476.185262273997068,1479403.389521929202601 6890361.407724624499679,1479517.373254568781704 6890228.70063394960016,1479567.199149484280497 6890173.895804021507502)",683,rail,0,0,0,railways,7,0
"LINESTRING (1476778.273992526577786 6891183.002112032845616,1476810.838107366813347 6891118.825677935034037,1476844.288637944497168 6891066.17594079952687,1476886.575333778047934 6891009.372855611145496,1476930.149665095610544 6890957.382903834804893,1476992.422703049844131 6890898.036294349469244,1477053.594719349872321 6890849.986093406565487,1477124.750576021615416 6890812.741637612693012,1477186.743693214608356 6890783.666558920405805,1477242.522569580934942 6890762.929363554343581,1477299.747703199042007 6890745.947280360385776,1477363.233731099637225 6890724.581786209717393,1477492.921018256340176 6890688.380124446004629,1477610.926279115257785 6890655.443191071972251,1477670.204164955532178 6890644.070861050859094,1477770.350481458939612 6890631.3498101439327,1477885.024685293668881 6890629.909114081412554,1477979.656562864314765 6890634.936224867589772,1478114.718328571645543 6890651.703501258045435,1478209.443513062782586 6890670.325334578752518,1478311.623920405516401 6890696.625873879529536,1478387.155871592927724 6890721.531766928732395,1478441.24589272052981 6890743.985453568398952)",684,rail,0,0,0,railways,7,0
"LINESTRING (1479267.721261245664209 6890576.89474381506443,1479349.710051246453077 6890499.956325806677341)",685,light_rail,0,0,0,railways,7,0
"LINESTRING (1480035.058704312890768 6891629.36974533367902,1479728.956024808576331 6891543.530838788487017,1479512.717239294666797 6891494.143226150423288,1479401.821965686744079 6891469.265595769509673,1479333.754568046657369 6891453.922129524871707,1479271.490860788151622 6891437.490397951565683,1479207.566290363902226 6891415.111414563842118)",686,light_rail,0,0,0,railways,7,0
"LINESTRING (1476557.509821424959227 6892224.91772651206702,1476579.56757715344429 6892197.033244075253606,1476602.661039686063305 6892155.474967340938747,1476614.604325356660411 6892127.820666904561222,1476626.193044736748561 6892100.902270716615021,1476640.860892452765256 6892073.416780357249081,1476659.326331784250215 6892043.785288944840431,1476691.171983344946057 6891992.432471443898976,1476760.032489801989868 6891879.840651011094451,1476778.273992526577786 6891853.275649514980614,1476800.042496806709096 6891828.059673327021301,1476826.420362893491983 6891804.192709765397012,1476842.833050002809614 6891792.113631258718669,1476896.139293009182438 6891750.480804309248924,1476928.358172246254981 6891725.740338440053165,1476937.716856256127357 6891718.275293369777501,1476958.085756740299985 6891704.908741282299161,1476967.575070433784276 6891697.474372724071145,1477252.002552584279329 6891480.071950710378587,1477319.762037389911711 6891425.979008984751999,1477450.111803674371913 6891326.285858543589711)",687,rail,0,0,0,railways,7,0
"LINESTRING (1479344.55950930272229 6890482.33109465893358,1479381.891607720637694 6890430.850314672105014,1479559.622627633390948 6890217.144998343661427,1479616.707800869364291 6890150.324937810190022,1479735.832744759973139 6890003.951099094934762,1479757.517272809520364 6889977.315668813884258,1479906.463108111871406 6889794.287592766806483,1479968.549532222328708 6889699.85574609786272,1480013.924687087535858 6889632.978685894981027,1480063.200071178842336 6889572.814326574094594,1480595.105495428200811 6888922.40596410445869,1480676.674404293997213 6888823.617269230075181,1481192.549699805909768 6888190.108256537467241,1481629.319389119045809 6887662.561815643683076,1481736.099827584112063 6887530.067787102423608,1481774.91550601972267 6887482.558607625775039,1481844.793057894799858 6887399.016058546490967,1481868.278409486636519 6887371.761121637187898)",688,light_rail,0,0,0,railways,7,0
"LINESTRING (1479315.839639539364725 6890486.729735681787133,1479082.600333325797692 6890751.342306513339281,1478999.1466246873606 6890835.195578991435468,1478910.113162280060351 6890921.118885340169072,1478875.048422001069412 6890958.17991707008332,1478845.218199896393344 6890996.482626908458769,1478808.305982613703236 6891048.641432393342257,1478761.083350750152022 6891124.619469199329615)",689,rail,0,0,0,railways,7,0
"LINESTRING (1476557.509821424959227 6892224.91772651206702,1476576.040575603721663 6892207.426679218187928,1476622.861987715121359 6892172.689970703795552,1476647.1591095039621 6892154.43256404530257,1476668.713007867103443 6892134.718903675675392,1476686.254708698019385 6892114.39211630821228,1476697.955396381672472 6892099.200712250545621,1476709.628091989317909 6892081.188741613179445,1476879.773259358713403 6891804.805861446075141,1476894.207839777693152 6891782.165266772732139,1476907.783996538026258 6891763.433556890115142,1476948.400498515926301 6891721.019118160009384,1476956.704814333235845 6891716.067971306852996,1476966.007514191325754 6891708.173734177835286,1477005.746931127505377 6891679.095416892319918,1477256.22935602767393 6891486.632411575876176,1477326.153561364393681 6891432.983940120786428,1477454.375929886475205 6891332.524308172985911)",690,rail,0,0,0,railways,7,0
"LINESTRING (1478578.537693798076361 6892046.973773205652833,1478584.938548462698236 6892094.35663787741214,1478595.808804563246667 6892162.1739446753636,1478606.221856760093942 6892214.478280032984912,1478616.578924805158749 6892272.623563419096172,1478646.530445903539658 6892364.080981981940567,1478711.369424138218164 6892514.636937133036554,1478787.84377520903945 6892676.55557119846344,1478826.81807540403679 6892755.92172808945179,1478854.548891827696934 6892815.098086142912507,1478923.894594261655584 6892997.93432189617306,1478943.321094862185419 6893067.721645668148994,1478958.240871261106804 6893144.040726294741035,1478968.271365088876337 6893217.554868974722922,1478973.869780246401206 6893291.606290957890451,1478974.466944529442117 6893364.12521836720407)",691,rail,0,0,0,railways,7,0
"LINESTRING (1479276.548095814418048 6891179.446108014322817,1479307.358040571212769 6891231.606100558303297,1479339.17570005916059 6891279.306043236516416,1479366.542619493789971 6891318.974463047459722,1479402.260508207604289 6891358.597094771452248,1479431.306952188257128 6891389.360332677140832,1479472.697901599807665 6891421.380589242093265,1479515.283179575111717 6891449.063115849159658,1479565.827537767123431 6891472.499836646020412,1479622.035625964170322 6891492.334498732350767,1479731.885862075258046 6891519.496109201572835,1480048.737498683854938 6891593.869114982895553)",692,light_rail,0,0,0,railways,7,0
"LINESTRING (1478602.097690927330405 6891164.808263186365366,1478585.890279041836038 6891284.364215715788305,1478582.717843782622367 6891342.10424639005214,1478565.502717171795666 6891616.09531166497618,1478560.296191073488444 6891715.332197420299053,1478556.013403475517407 6891851.006974860094488,1478567.415509017417207 6891960.501914793625474,1478578.537693798076361 6892046.973773205652833)",693,rail,0,0,0,railways,7,0
"LINESTRING (1475827.439161936519668 6888429.393967813812196,1475897.979192936560139 6888504.029522120021284,1476023.309046963695437 6888628.280639900825918,1476225.150574827333912 6888800.601991452276707,1476400.138371311826631 6888947.490241937339306,1476464.28687833994627 6889000.647103982046247,1476631.903428197605535 6889142.129735194146633,1476745.103382710367441 6889237.949506449513137,1476791.197000852320343 6889272.33640996273607,1476838.662230708403513 6889305.65077849291265,1477053.790663880994543 6889449.851177944801748,1477102.916756902821362 6889486.154534038156271,1477127.755058822920546 6889504.834965611808002,1477167.513137144735083 6889537.935754880309105,1477506.179931489285082 6889826.255522099323571,1477606.680814286228269 6889910.988007251173258,1477636.93091752869077 6889934.542846583761275,1477663.88728651846759 6889953.79135469160974,1477695.201088640838861 6889973.530318510718644,1477754.889524928759784 6890008.701961868442595,1477817.227877719327807 6890043.245416264049709,1477908.538028964074329 6890093.375067686662078,1477952.914799788501114 6890118.462998975068331,1478006.174389333231375 6890147.750230991281569,1478042.330820570699871 6890171.137181520462036,1478075.501430386910215 6890194.033776975236833,1478102.308508307440206 6890215.076020252890885,1478166.429023256991059 6890265.697170505300164,1478183.560173645848408 6890279.046004079282284)",695,rail,0,0,0,railways,7,0
"LINESTRING (1478598.449390378547832 6890845.709869343787432,1478556.414623227668926 6890825.447648616507649)",696,rail,0,0,0,railways,7,0
"LINESTRING (1478927.88813040801324 6890978.978924939408898,1479441.859964764444157 6891217.979787161573768,1479558.960148505866528 6891274.753690734505653,1479694.432464661076665 6891336.67816798388958,1479814.882366804173216 6891392.165357237681746,1480077.364061532309279 6891515.142887800931931)",697,rail,0,0,0,railways,7,0
"LINESTRING (1478569.785504766972736 6890803.361579650081694,1478595.75282041169703 6890816.082902735099196)",700,rail,0,0,0,railways,7,0
"LINESTRING (1478850.574017061386257 6890963.099942809902132,1478627.402527447091416 6890858.032757756300271)",703,rail,0,0,0,railways,7,0
"LINESTRING (1478183.560173645848408 6890279.046004079282284,1478405.86390891415067 6890456.521695459261537,1478453.245162542676553 6890498.408369177952409,1478496.56756518012844 6890547.360726167447865,1478533.153208245523274 6890597.539500389248133)",704,rail,0,0,0,railways,7,0
"LINESTRING (1478343.516225425293669 6890759.5421401290223,1478223.607503416249529 6890749.472439081408083,1478071.965098144253716 6890723.922736717388034,1477935.876956322928891 6890680.27232330199331,1477861.231420873198658 6890651.795460822060704)",705,rail,0,0,0,railways,7,0
"LINESTRING (1479207.566290363902226 6891415.111414563842118,1479145.39589002286084 6891388.195404731668532,1479060.327971686143428 6891345.599010691978037,1478962.775587541749701 6891295.568845461122692,1478908.82552679348737 6891268.132091694511473,1478785.175197315169498 6891204.261530964635313,1478658.75365233537741 6891138.674794974736869)",708,light_rail,0,0,0,railways,7,0
"LINESTRING (1478183.560173645848408 6890279.046004079282284,1478275.262213947018608 6890340.70227038115263,1478305.01779051986523 6890362.756416314281523,1478420.541087323101237 6890454.559939289465547,1478460.187197338789701 6890491.067073968239129,1478510.171714016469195 6890538.195547109469771,1478530.773881800472736 6890556.893749584443867,1478551.954552487237379 6890575.162854988127947)",709,rail,0,0,0,railways,7,0
"LINESTRING (1478575.831793141085654 6891339.988995048217475,1478579.592061987845227 6891283.046025006100535,1478593.50412365840748 6891161.252267209812999)",710,rail,0,0,0,railways,7,0
"LINESTRING (1477781.108769256155938 6890678.065286220051348,1477905.421577859437093 6890735.141912166029215,1478103.250908190850168 6890828.69695742521435,1478294.856667005689815 6890931.571979558095336,1478411.714252757374197 6890990.995472802780569,1478613.145230175927281 6891098.501459069550037,1478665.191829765914008 6891124.772744154557586)",713,light_rail,0,0,0,railways,7,0
"LINESTRING (1478604.868906431598589 6891027.229151873849332,1478611.251099710585549 6890982.580821967683733,1478613.247867786558345 6890914.635521415621042,1478611.652319462504238 6890865.451023075729609,1478607.640121933305636 6890811.484831825830042,1478591.227434826781973 6890756.093610955402255)",714,rail,0,0,0,railways,7,0
"LINESTRING (1478625.956270195310935 6890829.907785100862384,1478861.276320709846914 6890948.416510410606861)",715,rail,0,0,0,railways,7,0
"LINESTRING (1479616.707800869364291 6890150.324937810190022,1479664.443620794219896 6890101.926717818714678,1479699.98422635695897 6890058.524888642132282,1479734.657077576732263 6890015.874237441457808,1479788.523162097437307 6889964.457745274528861)",718,light_rail,0,0,0,railways,7,0
"LINESTRING (1478782.273352124495432 6891113.062545800581574,1478812.280857374193147 6891067.999899725429714,1478834.945108078885823 6891038.540714574977756,1478859.28888332657516 6891009.74071024172008,1478876.867906926199794 6890991.439962794072926,1478897.348775716731325 6890970.962793939746916,1478936.528351138578728 6890935.541706578806043,1478983.667006774339825 6890894.219856407493353,1479029.200783401727676 6890851.304213112220168,1479066.794141192454845 6890814.289654764346778,1479101.980180467711762 6890775.926505616866052,1479143.14719326980412 6890729.808203851804137,1479181.440352956997231 6890681.77433499135077,1479267.721261245664209 6890576.89474381506443,1479344.55950930272229 6890482.33109465893358)",719,light_rail,0,0,0,railways,7,0
"LINESTRING (1479735.832744759973139 6890003.951099094934762,1479699.98422635695897 6890058.524888642132282,1479669.062313296599314 6890105.972662986256182,1479632.952535520773381 6890164.209978073835373)",720,light_rail,0,0,0,railways,7,0
"LINESTRING (1478572.827310339780524 6890796.249909016303718,1478594.185264169238508 6890806.013130874373019)",723,rail,0,0,0,railways,7,0
"LINESTRING (1478714.065994105068967 6891217.213403515517712,1478673.654767348431051 6891300.887601297348738,1478632.870312915416434 6891389.360332677140832,1478605.372763794381171 6891470.307910224422812,1478585.83429489005357 6891564.484644450247288,1478578.593677949858829 6891611.80335165001452,1478569.23499394278042 6891715.255554312840104,1478573.153884557308629 6891842.852014512754977,1478573.49912015767768 6891933.752698284573853,1478578.537693798076361 6892046.973773205652833)",724,rail,0,0,0,railways,7,0
"LINESTRING (1478438.502669292036444 6890750.315412051975727,1478385.625638116383925 6890728.62804473284632,1478310.177663156529889 6890703.384942455217242,1478208.071901348652318 6890677.774079982191324,1478114.541045426623896 6890658.554491711780429,1477979.628570788539946 6890640.561075114645064,1477885.481889200396836 6890636.698779699392617,1477771.03162196977064 6890638.5839474638924,1477672.135618184227496 6890651.933400171808898,1477611.794033464044333 6890663.01453560963273,1477495.402982309227809 6890694.725365828722715,1477367.273920707637444 6890730.942382912151515,1477302.826831534970552 6890753.058906504884362,1477244.845911874435842 6890771.420418604277074,1477189.309633497847244 6890792.32623135112226,1477128.520175561308861 6890819.209592456929386,1477058.07345147873275 6890859.25891683716327,1476996.164310513529927 6890906.328240063972771,1476934.367137851659209 6890964.709297677502036,1476892.463000384392217 6891013.940385126508772,1476850.120320399058983 6891069.716567330062389,1476816.053964158287272 6891122.121087796986103,1476784.497564045945182 6891185.623133247718215)",727,rail,0,0,0,railways,7,0
"LINESTRING (1477785.139628168661147 6890619.962187672965229,1477670.577392631676048 6890570.948082859627903,1477610.665019739652053 6890546.318531366065145,1477551.331149747828022 6890517.719532645307481)",728,rail,0,0,0,railways,7,0
"LINESTRING (1478598.971909126965329 6890754.806160444393754,1478614.376881508156657 6890813.262752261944115,1478617.549316764576361 6890865.542985087260604,1478618.976912630489096 6890914.083746002987027,1478617.614631609292701 6890981.584552413783967,1478611.950901604257524 6891032.133892551995814)",730,rail,0,0,0,railways,7,0
"LINESTRING (1478624.789933702209964 6890819.929957416839898,1478866.398870577802882 6890942.408266056329012)",731,rail,0,0,0,railways,7,0
"LINESTRING (1478565.502717171795666 6891616.09531166497618,1478561.677133480552584 6891537.138942591845989)",735,rail,0,0,0,railways,7,0
"LINESTRING (1478595.276955124922097 6890826.290629548951983,1478565.344095406820998 6890811.423524235375226)",736,rail,0,0,0,railways,7,0
"LINESTRING (1476576.040575603721663 6892207.426679218187928,1476618.149988292017952 6892167.615909783169627,1476640.273058862425387 6892146.093342563137412,1476655.827322310302407 6892126.916231859475374,1476670.784421477932483 6892106.114253824576735,1476680.329719322966412 6892090.386338596232235,1476691.657179324654862 6892070.780140379443765,1476829.630120918620378 6891846.576929586008191,1476847.059853446204215 6891819.168952871114016,1476865.683914539869875 6891793.661837009713054,1476884.354629097972065 6891773.197953407652676,1476901.187197342514992 6891757.54733301512897,1476948.400498515926301 6891721.019118160009384)",737,rail,0,0,0,railways,7,0
"LINESTRING (1476937.716856256127357 6891718.275293369777501,1476957.72185975429602 6891707.821176195517182,1476966.875268540112302 6891701.980978826992214,1477005.746931127505377 6891679.095416892319918)",739,rail,0,0,0,railways,7,0
"LINESTRING (1477252.002552584279329 6891480.071950710378587,1477286.414144428446889 6891458.857786803506315,1477326.153561364393681 6891432.983940120786428)",741,rail,0,0,0,railways,7,0
"LINESTRING (1478855.416646176483482 6890957.168323368765414,1478625.368436602409929 6890839.900952127762139)",742,rail,0,0,0,railways,7,0
"LINESTRING (1477256.22935602767393 6891486.632411575876176,1477286.414144428446889 6891458.857786803506315,1477319.762037389911711 6891425.979008984751999)",743,rail,0,0,0,railways,7,0
"LINESTRING (1478430.310321775265038 6890777.137325343675911,1478363.717173459939659 6890762.914036750793457)",746,rail,0,0,0,railways,7,0
"LINESTRING (1478932.544145682128146 6890972.940003331750631,1479191.92805068846792 6891093.642660211771727,1479300.29470678162761 6891144.070084678940475,1479955.859791199443862 6891450.764536706730723,1480073.361194689990953 6891504.167875309474766,1480081.059015537146479 6891508.153213307261467)",747,rail,0,0,0,railways,7,0
"LINESTRING (1478614.35822012508288 6895547.603960990905762,1478615.365934853209183 6895453.089168295264244,1478618.7716374094598 6895322.46029799990356,1478627.934376885648817 6895235.953195017762482,1478677.928224253468215 6894754.545370802283287,1478689.899502002634108 6894669.838488157838583,1478708.728838320123032 6894564.201485143043101,1478728.612542824819684 6894486.274192513898015,1478750.604983708821237 6894401.156126040033996,1478775.648560852976516 6894316.60630351677537,1478799.17123521049507 6894234.572051984257996,1478819.176238714251667 6894162.305936777964234,1478835.234359527472407 6894088.062495077960193,1478888.839184675598517 6893836.372824227437377,1478909.506667304085568 6893747.121864621527493,1478924.529081313405186 6893665.614724689163268,1478939.710117084905505 6893584.200404370203614,1478951.018915706546977 6893509.088375779800117,1478957.755675281397998 6893436.798119088634849,1478962.271730176173151 6893365.505077449604869,1478961.907833192963153 6893291.146342131309211,1478955.684261673595756 6893219.30265864636749,1478946.036326214903966 6893145.742505932226777,1478932.404185302788392 6893069.54605878982693,1478912.567134257173166 6893000.47927956096828,1478842.764227916719392 6892818.547498689033091,1478815.686559933237731 6892760.919507294893265,1478777.505368549609557 6892681.10871759429574,1478695.451263701310381 6892523.329134689643979,1478630.239057793281972 6892371.377998174168169,1478598.673326985212043 6892274.539774225093424,1478586.73937200778164 6892214.110370276495814,1478576.382303962484002 6892165.36247589904815,1478565.717323085758835 6892097.821070521138608,1478557.963518089847639 6892049.073881317861378,1478550.666917 6892009.018629167228937,1478547.363852057838812 6891970.695765716023743,1478545.954917574767023 6891928.402865662239492,1478544.294054409023374 6891850.393819660879672,1478547.634442123584449 6891714.841681536287069,1478555.74281340977177 6891610.715033587068319,1478561.677133480552584 6891537.138942591845989,1478566.193188372533768 6891473.710761290974915,1478575.831793141085654 6891339.988995048217475)",749,rail,0,0,0,railways,7,0
"LINESTRING (1477556.565667921910062 6890511.175188716500998,1477614.798516265349463 6890538.701317588798702,1477682.334064466878772 6890563.668027113191783,1477739.55919808219187 6890579.638179088011384,1477786.753837872762233 6890589.339832002297044,1477886.918815756216645 6890608.05347993876785,1477979.441956950351596 6890621.326249268837273,1478115.203524554148316 6890637.250536070205271,1478210.255283262813464 6890657.389669657684863,1478313.182145957835019 6890686.479618338868022,1478388.508821921423078 6890711.523420327343047,1478445.080807101679966 6890735.663021787069738)",750,rail,0,0,0,railways,7,0
"LINESTRING (1478347.229840818792582 6891012.392329533584416,1478476.030712238047272 6891063.922815636731684)",751,light_rail,0,0,0,railways,7,0
"LINESTRING (1478094.470727083971724 6890836.620984894223511,1478107.888262082124129 6890843.119612865149975,1478290.601871486520395 6890940.323774167336524,1478460.821684390539303 6891029.313666300848126,1478546.72936500585638 6891074.130857136100531,1478570.382669050013646 6891085.365848724730313,1478660.983687705593184 6891132.375185729004443,1478788.133026657626033 6891198.023180870339274,1478968.12207401660271 6891290.617960623465478,1479014.626242603408173 6891313.885613084770739,1479051.445152965839952 6891332.922833372838795,1479137.968659247271717 6891374.814073477871716,1479237.54580354061909 6891417.272669827565551,1479286.979809394106269 6891432.999268201179802)",753,light_rail,0,0,0,railways,7,0
"LINESTRING (1477521.612895943690091 6890502.255271850153804,1477475.761875794501975 6890473.181315985508263,1477442.637919437140226 6890448.153582629747689,1477408.198335519991815 6890419.110474707558751,1477351.449067191453651 6890359.875120709650218,1477284.827926800120622 6890281.743360051885247,1477035.661129459738731 6889969.653018221259117,1477000.447098108474165 6889923.002958968281746,1476967.005898226518184 6889873.855176855809987,1476902.036290308227763 6889765.446070476435125,1476666.398996269330382 6889354.24341909494251,1476618.523215968394652 6889274.71162486448884,1476574.892900496488437 6889215.837150192819536,1476535.629348847083747 6889162.648217984475195,1476495.936585372779518 6889113.780909334309399,1476444.403173832688481 6889058.600589515641332,1476398.720106138614938 6889012.645371961407363,1476350.088539789430797 6888967.02753147855401,1476127.411576841957867 6888777.08111983910203,1476049.882857584161684 6888709.813339100219309,1475992.648393273120746 6888654.528531948104501,1475915.940774908289313 6888571.127032433636487,1475859.518080794485286 6888503.707749617286026,1475810.438641237094998 6888443.337326082400978)",754,rail,0,0,0,railways,7,0
"LINESTRING (1478087.146133915986866 6890851.273559163324535,1478099.686583872418851 6890857.588275128975511,1478284.284993046661839 6890953.198585663922131,1478356.989744574995711 6890988.497132927179337,1478420.373134867986664 6891017.419679494574666)",755,light_rail,0,0,0,railways,7,0
"LINESTRING (1477405.483104167273268 6890465.763412615284324,1477442.693903588689864 6890498.193800956942141,1477484.448749980889261 6890527.267847270704806,1477538.921329480595887 6890561.752224069088697,1477579.621807685820386 6890584.404708518646657,1477683.612369260750711 6890631.518402252346277)",757,light_rail,0,0,0,railways,7,0
"LINESTRING (1478638.020854862174019 6891161.880697418935597,1478549.817824034951627 6891106.839593932963908,1478476.030712238047272 6891063.922815636731684)",758,light_rail,0,0,0,railways,7,0
"LINESTRING (1477654.761869808426127 6890641.77187445666641,1477570.934933496639132 6890599.225414553657174,1477528.592253511305898 6890576.43495028745383,1477478.915649668080732 6890539.130456198938191,1477438.289816997246817 6890504.661502741277218,1477401.172324493527412 6890470.315307054668665)",759,light_rail,0,0,0,railways,7,0
"LINESTRING (1478908.82552679348737 6891268.132091694511473,1478968.12207401660271 6891290.617960623465478)",760,light_rail,0,0,0,railways,7,0
"LINESTRING (1477344.973566989181563 6890408.949243260547519,1477311.504375034244731 6890367.109013764187694,1476949.016324184834957 6889894.743330676108599,1476911.338990163756534 6889833.412309887818992,1476874.352127346210182 6889766.059066688641906,1476800.67698385566473 6889633.913489734753966,1476653.438665177905932 6889368.648105666041374,1476600.757578530581668 6889286.419145964086056,1476556.250178016955033 6889229.536690140143037)",761,light_rail,0,0,0,railways,7,0
"LINESTRING (1478951.550765147898346 6891271.872068259865046,1479014.626242603408173 6891313.885613084770739)",762,light_rail,0,0,0,railways,7,0
"LINESTRING (1478665.191829765914008 6891124.772744154557586,1478570.382669050013646 6891085.365848724730313)",764,light_rail,0,0,0,railways,7,0
"LINESTRING (1478613.145230175927281 6891098.501459069550037,1478512.373757313471287 6891032.731658027507365,1478391.186730505200103 6890953.244567170739174)",766,light_rail,0,0,0,railways,7,0
"LINESTRING (1475352.861508915899321 6893202.392042903229594,1475384.884443622082472 6893185.496794159524143,1475415.40513693029061 6893166.639162816107273,1475452.914518496021628 6893139.104034236632288,1475485.021429432556033 6893109.6065957788378,1475514.525077319936827 6893077.932231985032558,1475539.596646539866924 6893046.978557553142309,1475559.415036202641204 6893018.186688029207289,1475577.078036027029157 6892989.057638514786959,1475610.024709239369258 6892929.052129200659692,1475653.543056407710537 6892853.762252791784704,1475678.120098955230787 6892816.385866651311517,1475710.124372278340161 6892775.744226446375251,1475739.320107336854562 6892744.73039329610765,1475768.805093838367611 6892714.682502984069288,1475840.838035549037158 6892642.246086311526597,1475907.869726384989917 6892584.328083496540785,1475976.898185294354334 6892529.445871927775443,1476109.086097889812663 6892446.571376527659595,1476194.667204285040498 6892393.790303630754352,1476235.65693393885158 6892368.557302054949105,1476273.334267959930003 6892339.721872925758362,1476309.854596180841327 6892310.288686713203788,1476343.585047514177859 6892278.724780205637217,1476371.26921047619544 6892251.223352207802236,1476396.396763845114037 6892220.564123103395104,1476441.333376189693809 6892160.288419598713517,1476485.271604493027553 6892090.876877398230135,1476503.046572620980442 6892057.520307081751525,1476521.353390193078667 6892020.162952153012156,1476548.636333400150761 6891949.31168732047081,1476565.347602651221678 6891885.28242499101907,1476579.390294005395845 6891822.020113877020776,1476596.904002760536969 6891745.790226866491139,1476612.318305834662169 6891669.8369763167575,1476641.18746667006053 6891532.141924168914557,1476660.623297963757068 6891452.527270408347249,1476674.292761641787365 6891406.190494714304805,1476690.145607233978808 6891361.524732173420489,1476706.138413205510005 6891325.274218517355621,1476725.210347512969747 6891292.150741980411112,1476789.237555547850206 6891203.280561587773263,1476851.547916265204549 6891125.75370395090431,1476899.52633417956531 6891059.339930346235633,1476944.845504887402058 6891000.314440655522048,1476973.220139053184539 6890965.077150264754891,1476999.598005142761394 6890935.066565403714776,1477026.824964198283851 6890910.297954620793462,1477054.87302414374426 6890884.992973770014942,1477130.479620868572965 6890828.405745735391974,1477242.401270584436134 6890777.627784022130072,1477373.040288320509717 6890737.992688745260239,1477489.468662241240963 6890705.561333095654845)",767,light_rail,0,0,0,railways,7,0
"LINESTRING (1478411.714252757374197 6890990.995472802780569,1478512.373757313471287 6891032.731658027507365,1478671.266110216034576 6891093.428076104260981)",768,light_rail,0,0,0,railways,7,0
"LINESTRING (1477489.468662241240963 6890705.561333095654845,1477590.081513338722289 6890676.256742395460606,1477641.279019968351349 6890665.849960001185536,1477684.806697827065364 6890661.926345975138247,1477737.515776550164446 6890662.217551639303565,1477788.27474065637216 6890666.984130036085844,1477827.081088401842862 6890675.505737031809986,1477872.446912571322173 6890688.977864359505475,1477922.702019314747304 6890709.776175797916949,1478339.364067516522482 6890923.509914490394294,1478391.186730505200103 6890953.244567170739174,1478671.266110216034576 6891093.428076104260981,1478812.467471212381497 6891164.624332321807742,1478920.47023032233119 6891225.199124677106738,1478966.713139536324888 6891258.153720107860863,1479043.168829224305227 6891308.045701892115176,1479111.833391147432849 6891342.71736282389611,1479235.297106784768403 6891399.41550721321255)",769,light_rail,0,0,0,railways,7,0
"LINESTRING (1478460.821684390539303 6891029.313666300848126,1478493.917648672126234 6891050.955862689763308,1478535.485881229164079 6891075.832198646850884)",770,light_rail,0,0,0,railways,7,0
"LINESTRING (1478546.72936500585638 6891074.130857136100531,1478493.917648672126234 6891050.955862689763308,1478458.08779165497981 6891036.594143707305193)",772,light_rail,0,0,0,railways,7,0
"LINESTRING (1478560.296191073488444 6891715.332197420299053,1478571.828926299000159 6891609.948612500913441,1478579.424109532730654 6891563.518959445878863,1478599.410451650619507 6891468.039343643933535,1478627.72910166461952 6891387.229740903712809,1478666.022261348785833 6891297.469495555385947,1478708.467578947311267 6891213.902627007104456)",773,rail,0,0,0,railways,7,0
"LINESTRING (1478749.074750232277438 6891229.766776816919446,1478697.252087243599817 6891335.283329210244119,1478680.839400137076154 6891369.265349286608398,1478665.275805993471295 6891403.860634117387235,1478650.579966201679781 6891440.893235126510262,1478636.807864910224453 6891480.31720149051398,1478625.71367220277898 6891516.50710129737854,1478615.524556615622714 6891556.452601296827197,1478606.27784091187641 6891606.162493411451578,1478598.524035915965214 6891650.400417221710086,1478592.160504020052031 6891714.366494299843907,1478591.815268416889012 6891798.812305805273354,1478593.541446424322203 6891856.908596065826714,1478596.872503443155438 6891908.797062506899238,1478605.195480649126694 6892008.037561585195363,1478619.499431378906593 6892103.09436908364296,1478629.772523196646944 6892163.722221702337265,1478641.538525721756741 6892218.479299768805504,1478655.889129913412035 6892270.998617016710341,1478670.920874612871557 6892319.547864924184978,1478688.173323994968086 6892364.908794411458075,1478723.713929563527927 6892447.276557306759059,1478779.240877247182652 6892575.543838411569595,1478816.097110378323123 6892663.448042929172516,1478871.092208620626479 6892789.173881882801652,1478923.194792367983609 6892912.464073054492474,1478951.923992824042216 6892984.013724349439144,1478964.156529946019873 6893022.080790019594133,1478974.028402008581907 6893060.37800376676023,1478982.360709904693067 6893100.990420570597053,1478987.305976627394557 6893130.380508157424629)",774,light_rail,0,0,0,railways,7,0
"LINESTRING (1478162.239542582305148 6890271.275784828700125,1478102.308508307440206 6890215.076020252890885)",775,rail,0,0,0,railways,7,0
"LINESTRING (1477639.31024397094734 6890001.207860252819955,1477597.219492668518797 6889960.565124080516398,1477572.390521438326687 6889934.420244771055877,1477555.05409582844004 6889916.489749496802688,1477065.258084264583886 6889497.847038632258773,1477030.715862737037241 6889473.036882025189698,1476963.954761966597289 6889426.634892208501697,1476919.242086228914559 6889398.606871547177434)",776,rail,0,0,0,railways,7,0
"LINESTRING (1477532.455159971257672 6889929.485523279756308,1477564.646047132555395 6889952.427406344562769,1477596.025164099410176 6889970.817740640603006,1477639.31024397094734 6890001.207860252819955)",777,rail,0,0,0,railways,7,0
"LINESTRING (1478526.565739739919081 6890602.627896940335631,1478491.594306378625333 6890551.6980971544981,1478448.131943361833692 6890503.527355609461665,1478399.733644315274432 6890460.41455677524209,1478162.239542582305148 6890271.275784828700125,1478101.907288549700752 6890224.102898960933089,1478071.293288323795423 6890200.317325276322663,1478038.579882414080203 6890177.742551427334547,1478001.96624727291055 6890154.355581684969366,1477949.630396228516474 6890124.501278791576624,1477904.553823507856578 6890099.152794464491308,1477813.999458313919604 6890050.080562806688249,1477751.007957082940266 6890014.740159252658486,1477691.636764322407544 6889979.752393233589828,1477660.929457176011056 6889961.024882393889129,1477632.35887848213315 6889940.381760180927813,1477601.996806936105713 6889916.796253352425992,1477500.964074700837955 6889831.695906238630414,1477162.465232811402529 6889543.621135639958084,1477122.604516879189759 6889510.397727609612048,1477098.494008928304538 6889492.268960924819112,1477048.098941802745685 6889454.93884819932282,1476833.278421464608982 6889311.933632552623749,1476738.459930056007579 6889246.285711977630854,1476692.198359458940104 6889212.803027050569654,1476648.502729142317548 6889177.5735699608922,1476570.432829750468954 6889112.309837851673365,1476404.710410355357453 6888972.559274631552398)",778,rail,0,0,0,railways,7,0
"LINESTRING (1477852.236633849330246 6890212.394012399949133,1478308.479477224871516 6890605.202749434858561,1478362.784104266436771 6890650.676619523204863,1478396.178650686750188 6890676.946441259235144,1478453.133194239344448 6890714.128961123526096)",779,rail,0,0,0,railways,7,0
"LINESTRING (1482784.748301694169641 6886965.537159140221775,1482693.28885937994346 6886972.002020028419793,1482596.454938515089452 6886983.813426220789552,1482487.295173607533798 6887003.177429282106459,1482381.643748866859823 6887039.102067950181663,1482275.889686515787616 6887083.636586944572628,1482198.407620716840029 6887123.973706754855812,1482126.533300768584013 6887170.745409660041332,1482052.44760683295317 6887226.985180730931461,1481981.702300606062636 6887286.71834568399936,1481968.443387370323762 6887300.031594241969287,1481893.564584620529786 6887373.415718881413341,1481786.998752072220668 6887491.950112945400178,1481743.732333586551249 6887544.959467724896967,1481636.671974362805486 6887667.648355164565146,1481197.382998225279152 6888196.696677305735648,1480772.771200496470556 6888722.807162684388459,1480690.84772533737123 6888841.269510939717293,1480527.495301691815257 6889044.931987857446074,1480432.555511289509013 6889146.512319353409111,1480354.168368370272219 6889229.996406652964652,1480070.375373274553567 6889577.472987326793373,1480025.877303453860804 6889645.238416977226734,1479985.932611293857917 6889713.004417773336172,1479958.108487955294549 6889763.959554866887629,1479928.418226227164268 6889811.788715708069503,1479883.397637658054009 6889871.648361132480204,1479800.475778460968286 6889970.710463566705585,1479752.823934766696766 6890021.713210099376738,1479702.307568650459871 6890079.44417324475944,1479632.952535520773381 6890164.209978073835373,1479578.181373882573098 6890234.309874192811549,1479501.660369355697185 6890327.797787746414542,1479399.125395719893277 6890440.429178510792553,1479372.187688112957403 6890474.959161611273885,1479349.710051246453077 6890499.956325806677341,1479267.189411807339638 6890593.876469925045967,1479186.413611755473539 6890685.71328535862267,1479147.700570930493996 6890733.747177755460143,1479106.981431342195719 6890780.861746666021645,1479071.1049208662007 6890819.224919372238219,1479033.035697785904631 6890855.687729027122259,1478987.819164683111012 6890899.323767800815403,1478941.10039018210955 6890940.752934218384326,1478905.223879706114531 6890974.625996216200292,1478886.235921626212075 6890995.65495538059622,1478870.345753268105909 6891016.116859840229154,1478849.874215167714283 6891047.476553818210959,1478830.513029411667958 6891078.085327141918242,1478803.090125825256109 6891124.665451684966683)",780,light_rail,0,0,0,railways,7,0
"LINESTRING (1477856.34213829645887 6890206.462946793064475,1478312.584981674794108 6890600.190983732230961,1478372.161449659382924 6890649.036674340255558,1478398.940535501111299 6890670.218048175796866,1478437.774875319562852 6890694.98591932002455)",781,rail,0,0,0,railways,7,0
"LINESTRING (1482783.740586966043338 6886947.980951749719679,1482690.806895327055827 6886951.780197567306459,1482595.2606099487748 6886967.00783793721348,1482485.121122389100492 6886988.62378338817507,1482377.426276116399094 6887024.134725640527904,1482269.460839775390923 6887069.113434969447553,1482189.804722755216062 6887109.159404909238219,1482114.440724022919312 6887154.138589794747531,1482034.290080333128572 6887211.098286444321275,1481972.978103650966659 6887259.325908213853836,1481901.262405461864546 6887325.861504116095603,1481730.342790664173663 6887524.123379080556333,1481461.170989822829142 6887854.10595522634685,1481188.752108187647536 6888186.614863532595336,1480670.170912018744275 6888817.763843473047018,1480055.054377123713493 6889565.443227421492338,1479862.077006594510749 6889808.447867930866778,1479841.60546849691309 6889834.730262932367623,1479692.510342122521251 6890026.310829350724816,1479549.928038716083393 6890208.225407693535089,1479413.634621670935303 6890373.821827123872936,1479315.839639539364725 6890486.729735681787133)",782,rail,0,0,0,railways,7,0
"LINESTRING (1477861.343389173736796 6890200.087439280003309,1478318.509971052641049 6890594.719426577910781,1478390.477597918594256 6890656.393440401181579,1478437.774875319562852 6890694.98591932002455,1478455.288584077497944 6890709.31637466698885)",783,rail,0,0,0,railways,7,0
"LINESTRING (1480071.877614675322548 6891532.785711640492082,1479083.878638119669631 6891071.034723062068224,1478918.445470173377544 6890994.888592929579318)",784,rail,0,0,0,railways,7,0
"LINESTRING (1477866.363301434088498 6890193.696611104533076,1478323.520552617264912 6890589.707667414098978,1478345.643623190466315 6890607.563031607307494,1478390.477597918594256 6890656.393440401181579)",785,rail,0,0,0,railways,7,0
"LINESTRING (1479235.297106784768403 6891399.41550721321255,1479323.42549207736738 6891429.473809752613306,1479404.817117797909304 6891454.412629490718246,1479515.861682475078851 6891481.696737250313163,1479730.990115647669882 6891529.674072655849159,1480047.17927313153632 6891600.766893580555916)",786,light_rail,0,0,0,railways,7,0
"LINESTRING (1477872.288290809141472 6890185.972451457753778,1478330.359949802746996 6890582.412268224172294,1478408.961698635946959 6890650.630639746785164,1478459.636686514364555 6890694.801999206654727,1478463.210341525729746 6890697.438187943771482)",787,rail,0,0,0,railways,7,0
"LINESTRING (1478805.488113650586456 6894342.55076818075031,1478857.320107331965119 6894072.714029368944466,1478926.292582089779899 6893755.217427032999694,1478940.615194202633575 6893690.161840692162514,1478969.521677806740627 6893554.241368629038334,1478978.189890613080934 6893508.015132857486606,1478983.816297846613452 6893465.484164356254041,1478989.190776400035247 6893405.965717462822795,1478991.168883087579161 6893344.040629624389112,1478990.7023484937381 6893285.075020092539489,1478985.887711454415694 6893222.721581661142409,1478980.597209128318354 6893177.72376514505595,1478972.638128911377862 6893132.434905360452831,1478968.709907609736547 6893107.061603565700352,1478959.323231523856521 6893066.157863318920135,1478950.49639695812948 6893030.804198566824198,1478937.797325239283964 6892990.912695890292525,1478857.497390477219597 6892791.243522559292614,1478802.642252611462027 6892668.445764632895589,1478757.547018504701555 6892584.742001041769981,1478697.793267377885059 6892455.217510379850864,1478660.498491725884378 6892373.738798955455422,1478642.947460204828531 6892327.228085407055914,1478624.09013180853799 6892263.195812923833728,1478611.559012545039877 6892213.55850566457957,1478604.887567814672366 6892161.637413104996085,1478597.898879556916654 6892089.83448248077184,1478592.841644530883059 6892002.932946247048676,1478584.938548462698236 6891893.805323468521237,1478581.840758743695915 6891800.866362730972469,1478581.532845909241587 6891711.040184433571994,1478585.181146452436224 6891648.944210037589073,1478590.415664629545063 6891604.461039665155113,1478597.721596408868209 6891552.206658062525094,1478605.596700401278213 6891511.44878276437521,1478616.131051591597497 6891471.442193754017353,1478628.074337264988571 6891433.029924367554486,1478641.19329012138769 6891395.13899090141058,1478656.962159483227879 6891360.574399496428668,1478672.087211105972528 6891325.688071240670979,1478697.252087243599817 6891275.382129811681807,1478725.31880857469514 6891220.416887637227774)",788,light_rail,0,0,0,railways,7,0
"LINESTRING (1477882.775988540612161 6890173.665918780490756,1478339.476035819854587 6890570.105128699913621,1478400.685374894412234 6890626.399334325455129,1478459.636686514364555 6890694.801999206654727)",789,rail,0,0,0,railways,7,0
"LINESTRING (1477908.538028964074329 6890093.375067686662078,1477813.999458313919604 6890050.080562806688249)",790,rail,0,0,0,railways,7,0
"LINESTRING (1477877.298872376326472 6890180.041405342519283,1478334.922658159164712 6890576.036462583579123,1478373.15050300443545 6890608.819805517792702,1478408.961698635946959 6890650.630639746785164)",791,rail,0,0,0,railways,7,0
"LINESTRING (1478441.880379769485444 6890723.922736717388034,1478448.113281978992745 6890727.11069754883647)",792,rail,0,0,0,railways,7,0
"LINESTRING (1477872.288290809141472 6890238.830985979177058,1478303.935430257115513 6890611.578578202985227,1478358.687930509448051 6890655.504497475922108,1478392.194445233326405 6890681.43714867066592,1478448.794422489590943 6890719.355371965095401)",793,rail,0,0,0,railways,7,0
"LINESTRING (1478374.52211471600458 6890689.882137652486563,1478441.880379769485444 6890723.922736717388034)",794,rail,0,0,0,railways,7,0
"LINESTRING (1477881.404376826249063 6890257.972941686399281,1478297.543906279606745 6890617.050146820954978,1478351.223376962356269 6890659.979866296984255,1478385.718945034081116 6890686.908764844760299,1478441.880379769485444 6890723.922736717388034)",795,rail,0,0,0,railways,7,0
"LINESTRING (1477639.31024397094734 6890001.207860252819955,1477650.339121833909303 6890011.138695799745619,1477667.871491971891373 6890027.245678919367492,1477711.333854988683015 6890056.072814892046154,1477872.288290809141472 6890185.972451457753778)",796,rail,0,0,0,railways,7,0
"LINESTRING (1477711.333854988683015 6890056.072814892046154,1477765.601159261539578 6890092.271629626862705,1477877.298872376326472 6890180.041405342519283)",797,rail,0,0,0,railways,7,0
"LINESTRING (1477765.601159261539578 6890092.271629626862705,1477828.779274330707267 6890136.347967855632305,1477882.775988540612161 6890173.665918780490756)",798,rail,0,0,0,railways,7,0
"LINESTRING (1477667.871491971891373 6890027.245678919367492,1477709.663661133032292 6890068.854257536120713,1477866.363301434088498 6890193.696611104533076)",799,rail,0,0,0,railways,7,0
"LINESTRING (1477709.663661133032292 6890068.854257536120713,1477738.43018435779959 6890100.348186734132469,1477861.343389173736796 6890200.087439280003309)",800,rail,0,0,0,railways,7,0
"LINESTRING (1477738.43018435779959 6890100.348186734132469,1477767.485959034180269 6890134.800081231631339,1477856.34213829645887 6890206.462946793064475)",801,rail,0,0,0,railways,7,0
"LINESTRING (1477767.485959034180269 6890134.800081231631339,1477796.280474334955215 6890170.96859906706959,1477852.236633849330246 6890212.394012399949133)",802,rail,0,0,0,railways,7,0
"LINESTRING (1477796.280474334955215 6890170.96859906706959,1477825.522862849291414 6890206.815438941121101,1477872.288290809141472 6890238.830985979177058)",803,rail,0,0,0,railways,7,0
"LINESTRING (1477825.522862849291414 6890206.815438941121101,1477854.522653371095657 6890233.896077645942569,1477881.404376826249063 6890257.972941686399281)",804,rail,0,0,0,railways,7,0
"LINESTRING (1477335.922795813763514 6889793.260820533148944,1477382.669562393333763 6889831.527330902405083,1477414.291277347132564 6889860.415065491572022,1477448.665546425385401 6889897.256655850447714,1477629.102466995362192 6890037.329800856299698,1477696.330102362437174 6890102.263879836536944,1477741.44399785483256 6890151.443709483370185,1477774.763898740522563 6890185.328771825879812,1477834.890877549303696 6890236.608744276687503,1478292.505332639208063 6890623.870454665273428,1478342.340558242052794 6890664.056745544075966,1478374.52211471600458 6890689.882137652486563)",805,rail,0,0,0,railways,7,0
"LINESTRING (1477335.922795813763514 6889793.260820533148944,1477374.542529721045867 6889835.496514805592597,1477399.390162334311754 6889867.6638342756778,1477427.400899513624609 6889893.532643830403686,1477590.072182645788416 6890022.694035316817462,1477621.115394705208018 6890055.337192909792066,1477774.763898740522563 6890185.328771825879812)",806,rail,0,0,0,railways,7,0
"LINESTRING (1478113.020142643013969 6890567.867468994110823,1478206.914895548252389 6890612.88133230060339,1478324.761534644989297 6890666.15649242606014)",807,rail,0,0,0,railways,7,0
"LINESTRING (1478632.758344612084329 6890816.420094702392817,1478872.753071786370128 6890934.054974609985948)",808,rail,0,0,0,railways,7,0
"LINESTRING (1477627.702863208018243 6890097.421008551493287,1477642.613308914005756 6890109.068425429053605,1477684.3868166890461 6890145.849852683022618,1477714.636919934535399 6890174.52415706217289,1477745.222928084433079 6890205.788614028133452,1477770.891661590430886 6890232.807946092449129,1478127.641336897388101 6890537.229985372163355,1478178.017742637079209 6890574.044024353846908,1478255.014612456317991 6890619.533044742420316)",809,rail,0,0,0,railways,7,0
"LINESTRING (1477633.282616982702166 6890089.78889452945441,1477648.622274519409984 6890102.432460854761302,1477690.694364438997582 6890138.202367076650262,1477719.246281747007743 6890165.696567691862583,1477750.653390789870173 6890198.846054994501173,1477777.712397390045226 6890226.217856734059751,1478134.965930065372959 6890527.988186067901552,1478179.100102899828926 6890562.058752524666488,1478255.014612456317991 6890619.533044742420316)",810,rail,0,0,0,railways,7,0
"LINESTRING (1478119.13174585881643 6890559.131406237371266,1478211.729532587574795 6890605.67787111364305,1478274.851663501933217 6890634.675673317164183)",811,rail,0,0,0,railways,7,0
"LINESTRING (1478578.658992794342339 6890784.938687206245959,1478592.291133706457913 6890793.812937114387751)",814,rail,0,0,0,railways,7,0
"LINESTRING (1478576.662224721163511 6890790.042529220692813,1478592.869636606657878 6890797.951191720552742)",816,rail,0,0,0,railways,7,0
"LINESTRING (1478255.014612456317991 6890619.533044742420316,1478274.851663501933217 6890634.675673317164183,1478324.761534644989297 6890666.15649242606014,1478374.52211471600458 6890689.882137652486563)",819,rail,0,0,0,railways,7,0
"LINESTRING (1478624.575327788246796 6890811.791369803249836,1478632.758344612084329 6890816.420094702392817)",821,rail,0,0,0,railways,7,0
"LINESTRING (1478624.575327788246796 6890812.481080299243331,1478632.758344612084329 6890816.420094702392817)",823,rail,0,0,0,railways,7,0
"LINESTRING (1479311.071655961917713 6890483.128060797229409,1479409.174550930503756 6890368.840857767499983,1479522.103915374726057 6890231.44395041000098,1479567.199149484280497 6890173.895804021507502,1479618.872521397890523 6890109.175704349763691,1479907.088264473713934 6889740.297941270284355,1480050.090449015144259 6889560.462758839130402,1480664.171277103479952 6888813.320146127603948,1481185.187783869216219 6888181.696536475792527,1481455.404622207395732 6887849.387007832527161,1481725.210910100489855 6887521.289062367752194,1481896.998279252555221 6887321.387990654446185,1481969.926967390812933 6887255.449916490353644,1482031.50020344578661 6887206.440996480174363,1482112.350649032043293 6887148.7459767004475,1482187.733309147180989 6887103.322546837851405,1482267.604032081319019 6887064.410267961211503,1482375.364193198736757 6887018.619642356410623,1482484.141399736981839 6886983.154683265835047,1482594.028958613984287 6886961.53875251673162,1482690.424336957978085 6886945.468548243865371,1482783.236729600699618 6886939.279460026882589)",824,rail,0,0,0,railways,7,0
"LINESTRING (1479076.507391492836177 6891028.424682137556374,1479191.92805068846792 6891093.642660211771727)",825,rail,0,0,0,railways,7,0
"LINESTRING (1478938.59976474638097 6890964.157518833875656,1479076.507391492836177 6891028.424682137556374,1479885.31042950367555 6891405.531389341689646,1479995.26330322236754 6891461.448241677135229,1480073.361194689990953 6891504.167875309474766)",827,rail,0,0,0,railways,7,0
"LINESTRING (1475815.159971352899447 6888439.460763610899448,1475864.211418837308884 6888499.693255602382123,1475920.802065403433517 6888566.576213048771024,1475997.071141253225505 6888649.85508313588798,1476055.490603434853256 6888704.557588589377701,1476132.328851491678506 6888770.982559802941978,1476354.128729394637048 6888961.802259580232203,1476403.460097637493163 6889007.343453120440245,1476449.217810868984088 6889054.064817779697478,1476500.732561023207381 6889108.907986088655889,1476539.548239458817989 6889157.376847730018198,1476580.500646346947178 6889211.990862969309092,1476624.84009440545924 6889271.003225136548281,1476671.465561988530681 6889351.255216074176133,1476907.158840176416561 6889762.457714626565576,1476971.960495642386377 6889870.391702450811863,1477004.384650106076151 6889919.784666567109525,1477040.15852296887897 6889966.741212910972536,1477288.289613505359739 6890277.007661812007427,1477353.996346088824794 6890353.8979682167992,1477413.740766525734216 6890414.619913823902607,1477448.021728683495894 6890442.958000471815467,1477480.277930689277127 6890466.284504777751863,1477526.68879235861823 6890495.281804216094315)",828,rail,0,0,0,railways,7,0
"LINESTRING (1475804.159085565945134 6888448.485649089328945,1475830.975494176382199 6888481.704669660888612,1475911.042161641409621 6888576.367373092100024,1475986.294192070141435 6888660.810877257026732,1476043.97652958938852 6888715.605394661426544,1476111.773337163729593 6888773.20439646858722,1476344.24752664193511 6888971.976985700428486,1476393.14968305407092 6889017.380325557664037,1476438.403538923012093 6889064.254984210245311,1476487.604277476668358 6889117.994917658157647,1476533.557935239281505 6889174.907231950201094,1476567.698937014909461 6889219.606819932349026,1476608.427407295908779 6889281.208990493789315,1476659.587591157061979 6889363.897621073760092,1476806.275399013189599 6889630.894533473998308,1476879.651960362214595 6889764.051504278555512,1476916.340241038240492 6889830.99095484893769,1476954.605408649425954 6889891.371798135340214,1477316.729562512831762 6890362.909676750190556,1477349.396314963698387 6890405.439559964463115)",829,light_rail,0,0,0,railways,7,0
"LINESTRING (1478755.951470183674246 6891121.998467871919274,1478802.306347704026848 6891043.660044934600592,1478839.731753036612645 6890992.834741913713515,1478870.849610630888492 6890954.65466683357954,1478904.841321337036788 6890917.057202836498618,1478994.527932184981182 6890830.566843283362687,1479078.056286355247721 6890746.790252956561744,1479311.071655961917713 6890483.128060797229409)",831,rail,0,0,0,railways,7,0
"LINESTRING (1478476.030712238047272 6891063.922815636731684,1478281.896335911471397 6890962.59414563048631,1477896.856002663495019 6890755.863709062337875,1477714.347668485715985 6890670.003475363366306)",832,light_rail,0,0,0,railways,7,0
"LINESTRING (1478476.030712238047272 6891063.922815636731684,1478633.626098963664845 6891126.550733875483274)",833,light_rail,0,0,0,railways,7,0
"LINESTRING (1478633.626098963664845 6891126.550733875483274,1478535.485881229164079 6891075.832198646850884,1478458.08779165497981 6891036.594143707305193,1478420.373134867986664 6891017.419679494574666,1478287.233491696184501 6890945.580986365675926,1478057.745123639237136 6890824.282802382484078,1478049.450138514628634 6890819.79201518651098)",834,light_rail,0,0,0,railways,7,0
"LINESTRING (1479207.566290363902226 6891415.111414563842118,1479099.610184715595096 6891375.703095939941704,1478899.448181400541216 6891294.403931108303368,1478781.23764532036148 6891236.143100920133293,1478638.020854862174019 6891161.880697418935597)",835,light_rail,0,0,0,railways,7,0
"LINESTRING (1478638.020854862174019 6891161.880697418935597,1478347.229840818792582 6891012.392329533584416,1478274.310483370674774 6890973.691036481410265,1477887.81456218380481 6890777.459188850596547,1477799.630192739423364 6890730.620521273463964,1477771.712762480368838 6890717.776719653978944,1477743.422104542376474 6890708.212852067314088,1477709.010512698208913 6890701.438452739268541,1477673.143332915147766 6890694.740692501887679,1477614.537256892537698 6890691.997217950411141,1477570.645682045025751 6890694.648732445202768,1477526.22225776175037 6890703.461575921624899,1477450.475700660608709 6890727.95366817060858,1477383.070782145252451 6890752.73704397585243,1477250.239051808137447 6890804.419134659692645,1477138.028150640428066 6890855.948287741281092,1477061.32986296294257 6890902.18992966786027,1477035.62380669103004 6890922.253091386519372,1477009.283263367367908 6890945.443041983060539,1476980.022213472751901 6890972.051025399938226,1476950.705179423559457 6891005.096546770073473,1476903.846444540657103 6891063.493649013340473,1476855.672082100762054 6891129.723526864312589,1476793.529673835728317 6891209.472932793200016,1476732.255019919481128 6891296.519170454703271,1476712.110056042205542 6891330.976191231049597,1476696.051935228751972 6891364.161139542236924,1476680.646962850354612 6891407.355425265617669,1476666.734901179792359 6891453.354988979175687,1476646.729897676035762 6891533.07694885134697,1476618.121996216243133 6891670.986616539768875,1476602.045214017154649 6891746.771262445487082,1476585.455243762582541 6891822.893856970593333,1476570.768734660698101 6891886.907293429598212,1476553.786875346908346 6891951.166504768654704,1476526.279995532939211 6892021.971798327751458,1476508.187783877598122 6892059.191198166459799,1476490.170217757113278 6892094.923823652788997,1476446.866476502502337 6892164.733967241831124,1476401.873880009399727 6892224.289213199168444,1476348.166417250875384 6892284.197483622469008,1476315.499664797214791 6892317.447686146944761,1476280.761498738545924 6892349.870215245522559,1476244.129202214302495 6892379.34953604824841,1476205.294862395850942 6892409.380842979066074,1476120.198951980331913 6892465.657269499264657,1475994.131973290815949 6892548.271348089911044,1475918.823958713328466 6892599.934322696179152,1475847.500149589264765 6892656.135431186296046,1475775.420554416952655 6892722.209795576520264,1475745.310411553597078 6892752.058416236191988,1475710.488269264576957 6892789.52648729365319,1475659.496037861565128 6892857.211681927554309,1475614.400803754804656 6892932.133648023940623,1475582.536490808241069 6892991.587262314744294,1475563.931091094622388 6893021.605525500141084,1475543.394238155335188 6893050.612043621018529,1475518.527944159228355 6893081.657719410024583,1475488.809690357884392 6893114.466613277792931,1475455.89100922155194 6893143.642111292108893,1475418.689540492836386 6893171.989819569513202,1475387.095817609224468 6893190.74014341738075,1475353.1974138233345 6893208.371313671581447)",836,light_rail,0,0,0,railways,7,0
"LINESTRING (1478658.75365233537741 6891138.674794974736869,1478633.626098963664845 6891126.550733875483274)",837,light_rail,0,0,0,railways,7,0
"LINESTRING (1478665.191829765914008 6891124.772744154557586,1478792.53711324906908 6891190.098797177895904,1478951.550765147898346 6891271.872068259865046,1479057.696716560982168 6891325.611431846395135,1479110.443118050228804 6891347.499672620557249,1479235.297106784768403 6891399.41550721321255)",838,light_rail,0,0,0,railways,7,0
"LINESTRING (1478557.963518089847639 6892049.073881317861378,1478556.050726244226098 6892008.252170108258724,1478555.892104479251429 6891960.287307545542717,1478556.013403475517407 6891851.006974860094488)",839,rail,0,0,0,railways,7,0
"LINESTRING (1478566.193188372533768 6891473.710761290974915,1478566.314487369032577 6891421.901743350550532,1478564.35504206456244 6891386.677933054976165,1478562.041030463995412 6891340.556127598509192,1478559.988278241828084 6891280.026449425145984,1478552.421087084105238 6891228.617199691012502,1478536.680209795245901 6891184.841425079852343,1478515.882097477559 6891146.093319251202047,1478490.17604120564647 6891115.22371987067163,1478460.448456714395434 6891086.806626409292221,1478416.528889790875837 6891054.77237503696233,1478271.417968872701749 6890980.772209639661014,1477885.407243662746623 6890784.019076376222074,1477796.569725786335766 6890736.781874912790954,1477769.296113269403577 6890724.014697107486427,1477741.248053323943168 6890714.527455672621727,1477707.312326766550541 6890707.385210207663476,1477672.322232022183016 6890701.285185849294066,1477614.070722295902669 6890697.269594454206526,1477572.231899673352018 6890700.074377545155585,1477526.175604302901775 6890708.120891856960952,1477455.775533676613122 6890734.314267538487911,1477389.107739823870361 6890759.603447327390313,1477324.548682353226468 6890788.141999081708491,1477257.99285680684261 6890813.109483245760202,1477200.954337026691064 6890839.057969767600298,1477139.474407889414579 6890870.033797833137214,1477067.376151334261522 6890914.604867226444185,1477017.195690128253773 6890957.275613599456847,1476964.794524239376187 6891008.238637273199856,1476915.929690593155101 6891070.344990382902324,1476870.666504034306854 6891132.22191062476486,1476788.761690261075273 6891251.961311405524611,1476754.90060923830606 6891323.971348975785077,1476738.030718227848411 6891370.399618566036224,1476719.761223427485675 6891450.917817885056138,1476702.368813663022593 6891509.915959592908621,1476623.253876777132973 6891838.284014022909105,1476608.446068681776524 6891899.1704620430246,1476585.417920996667817 6891971.646170520223677,1476560.598280456615612 6892035.553486871533096,1476540.061427514301613 6892081.755926453508437,1476514.971196911530569 6892126.241737992502749,1476469.894624190637842 6892196.55802833661437,1476420.703216326888651 6892263.563724930398166,1476371.01728179352358 6892312.496171937324107,1476327.321651474107057 6892356.41605613194406,1476278.49414059962146 6892398.205320552922785,1476225.598448038101196 6892436.177632182836533,1476038.051540214335546 6892556.212400928139687,1476025.800341709284112 6892564.613368845544755)",840,rail,0,0,0,railways,7,0
"LINESTRING (1478564.35504206456244 6891386.677933054976165,1478557.991510165855289 6891469.69478405546397,1478557.17973996582441 6891485.973299608565867)",841,rail,0,0,0,railways,7,0
"LINESTRING (1479372.187688112957403 6890474.959161611273885,1479284.45119188237004 6890585.155705378390849,1479257.214902134146541 6890621.678759607486427,1479238.068322289036587 6890653.343446989543736,1479217.820720798335969 6890695.077879380434752,1479200.521617954364046 6890742.973886811174452,1479189.595377702033147 6890782.241162405349314,1479182.326768688624725 6890823.608417795971036,1479178.603822610806674 6890869.190812314860523,1479179.844804635737091 6890923.985054980032146,1479185.153968344675377 6890968.203897933475673,1479195.361745317699388 6891013.066729949787259,1479215.254780515097082 6891069.072816937230527)",842,light_rail,0,0,0,railways,7,0
"LINESTRING (1479618.872521397890523 6890109.175704349763691,1479692.510342122521251 6890026.310829350724816)",843,rail,0,0,0,railways,7,0
"LINESTRING (1479213.220689673209563 6891123.270649696700275,1479083.878638119669631 6891071.034723062068224)",844,rail,0,0,0,railways,7,0
"LINESTRING (1479300.29470678162761 6891144.070084678940475,1479441.859964764444157 6891217.979787161573768)",845,rail,0,0,0,railways,7,0
"LINESTRING (1479384.009674790082499 6891203.495148631744087,1479558.960148505866528 6891274.753690734505653)",846,rail,0,0,0,railways,7,0
"LINESTRING (1480034.237603422952816 6891507.38680200651288,1479869.214985921513289 6891429.1672482220456,1479384.009674790082499 6891203.495148631744087,1479213.220689673209563 6891123.270649696700275,1478922.187077639857307 6890988.451151218265295)",847,rail,0,0,0,railways,7,0
"LINESTRING (1476931.73588272370398 6891636.221568983048201,1476803.457530052866787 6891734.431683016009629,1476778.572574671125039 6891759.448092334903777,1476760.209772950038314 6891782.226581771858037,1476741.193822791567072 6891808.684046884998679,1476723.484169505303726 6891841.487745635211468,1476712.809857935877517 6891868.19066839851439,1476703.031292790779844 6891897.499604214914143,1476694.307095838477835 6891943.869869998656213)",848,rail,0,0,0,railways,7,0
"LINESTRING (1476934.208516089478508 6891653.941301063634455,1476814.523730684537441 6891746.801919807679951,1476788.603068495867774 6891772.722762719728053,1476773.235418886179104 6891792.128960026428103,1476754.74198747612536 6891818.172579637728631,1476737.676151934778318 6891848.401065579615533,1476720.880906458944082 6891883.688214769586921,1476708.900298016844317 6891916.369587530381978,1476699.78421199973673 6891943.992502459324896)",849,rail,0,0,0,railways,7,0
"LINESTRING (1476935.00162490340881 6891674.266924197785556,1476822.473480205750093 6891761.793384700082242,1476799.939859193284065 6891783.790114367380738,1476785.346657011890784 6891800.345184058882296,1476766.722595915198326 6891824.54937045276165,1476723.736098188208416 6891895.798088805750012,1476711.624860059702769 6891917.672553083859384,1476699.78421199973673 6891943.992502459324896)",850,rail,0,0,0,railways,7,0
"LINESTRING (1476691.171983344946057 6891992.432471443898976,1476706.772900257259607 6891960.961787490174174,1476716.439497095998377 6891939.271154,1476729.035931204212829 6891916.139652455225587,1476782.090245527913794 6891832.382406485266984,1476799.4173404420726 6891808.806677283719182,1476812.181727005401626 6891794.474261927418411,1476832.625273029785603 6891774.68484057392925,1476935.253553586313501 6891694.699898800812662)",851,rail,0,0,0,railways,7,0
"LINESTRING (1478630.015121186384931 6891858.76339219789952,1478635.520229423418641 6891908.122586939483881,1478636.070740247843787 6891978.06907045096159,1478638.916601286735386 6892047.004431717097759,1478643.134074043016881 6892094.463943293318152,1478650.887879036134109 6892145.250223226845264,1478658.464400883996859 6892179.312314847484231,1478671.471385437063873 6892218.341333535499871,1478691.635010700207204 6892270.921968608163297,1478834.935777385951951 6892617.579527481459081)",1,motorway,0,0,1,motorways,9,0
"LINESTRING (1478313.583365709986538 6891281.068739344365895,1478311.064078888390213 6891244.052202273160219,1478311.791872860630974 6891206.913214413449168,1478314.357813141075894 6891179.61471161711961,1478320.152172832516953 6891150.063152204267681,1478327.019562090979889 6891118.93297032918781,1478335.622460052836686 6891089.810801983810961,1478345.895551870344207 6891061.240524603053927,1478354.07856869418174 6891040.180739216506481)",2,motorway,0,0,1,motorways,9,0
"LINESTRING (1478376.7148273200728 6891043.997246447019279,1478366.012523674638942 6891069.379364733584225,1478349.170624737394974 6891124.496849230490625,1478341.099576216889545 6891155.581069990992546,1478337.404622212052345 6891183.400629828684032,1478334.409470103681087 6891212.032651987858117,1478334.120218652067706 6891244.757277576252818,1478336.770135160302743 6891278.29440912604332)",3,motorway,0,0,1,motorways,9,0
"LINESTRING (1478997.037888313643634 6890015.629031332209706,1479043.672686586854979 6889994.847840843722224,1479081.350020605139434 6889979.614465416409075,1479123.524748138152063 6889968.564922427758574,1479170.215530562913045 6889961.760495744645596,1479209.572389130014926 6889960.028739424422383,1479277.229236325016245 6889958.00580330286175,1479339.371644590049982 6889955.538434940390289,1479394.28276660759002 6889949.515607272274792,1479445.900154372444376 6889934.450895222835243,1479482.691072656074539 6889919.309585420414805,1479513.939559936523438 6889901.930829749442637,1479538.787192549789324 6889886.636329824104905,1479557.066018043085933 6889872.138764577917755,1479576.044645432848483 6889857.028222269378603,1479623.267277299193665 6889818.424440407194197,1479929.099366740556434 6889533.936068938113749)",6,motorway,0,0,1,motorways,9,0
"LINESTRING (1479942.302295821951702 6889547.176416218280792,1479792.936579379020259 6889681.205510908737779,1479634.277493779081851 6889834.561687532812357,1479584.358291943091899 6889878.774539081379771,1479537.527549138991162 6889912.305973013862967,1479500.783284314209595 6889934.512196131981909,1479450.145619201473892 6889955.569085474126041,1479395.169182339450344 6889971.124246567487717,1479341.666994804749265 6889978.327139240689576,1479278.190297594293952 6889979.032103547826409,1479243.788036443060264 6889981.116346220485866,1479210.038923726649955 6889982.848107086494565,1479169.683681121794507 6889986.541509824804962,1479130.242846327135339 6889994.863166186027229,1479095.224759506992996 6890005.008548954501748,1479058.321872920030728 6890019.537004569545388,1479016.87493935925886 6890040.272282585501671)",8,motorway,0,0,1,motorways,9,0
"LINESTRING (1478777.253439866937697 6890329.912772791460156,1478754.393244634149596 6890382.84888407215476,1478729.78821000806056 6890439.463628521189094,1478709.120727382134646 6890476.890270238742232,1478688.985094192204997 6890512.937716416083276,1478670.454340018797666 6890542.195732670836151,1478633.747397957136855 6890586.473781661130488,1478588.71747869788669 6890651.550235321745276,1478534.739425873849541 6890732.521037810482085,1478511.935214792611077 6890776.462944713421166,1478472.820954215712845 6890853.679894518107176,1478458.908892544917762 6890873.620319033972919,1478415.84774928027764 6890956.907761368900537)",18,motorway,0,0,1,motorways,9,0
"LINESTRING (1478394.163221230730414 6890950.225115459412336,1478448.831745258299634 6890845.265387403778732,1478487.684746459824964 6890764.078874094411731,1478528.161288061179221 6890690.694451033137739,1478570.830542263807729 6890627.870682856999338,1478588.708148004952818 6890605.53993255738169,1478636.835856985999271 6890548.770754639059305,1478661.664828216191381 6890514.378391520120203,1478677.918893560534343 6890487.618659947998822,1478693.202566948253661 6890460.874343669973314,1478710.613638089969754 6890427.81573298573494,1478734.294934212695807 6890372.963567573577166,1478758.974614370847121 6890316.165379947982728)",20,motorway,0,0,1,motorways,9,0
"LINESTRING (1477398.289140685694292 6890680.900715908035636,1477271.680981867713854 6890519.972504733130336,1476953.084505865816027 6890110.692934914492071,1476865.413324474124238 6889991.261711636558175)",32,motorway,0,0,1,motorways,9,0
"LINESTRING (1476973.733327108668163 6890098.677702718414366,1477006.950590386521071 6890149.282794474624097,1477137.477639816235751 6890317.958516811951995,1477307.492177499225363 6890529.505495676770806,1477414.468560495181009 6890666.92282354272902)",44,motorway,0,0,1,motorways,9,0
"LINESTRING (1476882.217900645453483 6889977.560873750597239,1476973.733327108668163 6890098.677702718414366)",49,motorway,0,0,1,motorways,9,0
"LINESTRING (1478361.561783624347299 6891449.124428308568895,1478345.746260801097378 6891406.083198485895991,1478336.760804470162839 6891379.550418416969478)",53,motorway,0,0,1,motorways,9,0
"LINESTRING (1478843.389384278329089 6893924.490144995972514,1478859.260891250800341 6893860.031164361163974,1478879.54581551020965 6893775.931677811779082,1478890.938590359175578 6893720.826675555668771,1478904.066873905947432 6893655.58737968839705,1478915.562286365544423 6893583.970421583391726,1478926.843092911178246 6893487.393564508296549,1478932.180248695891351 6893415.977419194765389,1478936.435044218087569 6893333.093783299438655,1478934.214339534984902 6893251.146226578392088,1478925.770063341362402 6893158.988803039304912,1478919.71444427408278 6893114.221312643960118,1478911.20485323574394 6893073.302204750478268,1478903.451048239832744 6893044.080968570895493,1478888.521941148210317 6892996.8458161521703,1478859.027623953763396 6892921.984570599161088,1478827.620514913694933 6892843.919889785349369,1478773.241242334712297 6892718.913729729130864,1478735.255995481973514 6892636.665826476179063,1478681.044675360899419 6892531.377474130131304,1478640.75474760052748 6892447.521837593987584,1478616.914829715620726 6892391.18421838991344,1478585.778310738503933 6892312.450182654894888,1478550.256366555579007 6892207.533986137248576,1478535.308598081115633 6892151.82655640784651,1478521.71377993770875 6892092.363823323510587,1478508.650811232859269 6892023.658011235296726,1478497.593941294122487 6891948.391943287104368,1478489.672183843096718 6891879.334796157665551,1478479.958933542715386 6891808.776019685901701,1478470.609580228338018 6891754.910796630196273,1478462.314595098374411 6891717.861420435830951,1478450.408632193692029 6891673.592468312941492,1478431.31803650339134 6891617.70479725766927,1478396.617193207610399 6891531.804702173918486)",57,motorway,0,0,1,motorways,9,0
"LINESTRING (1478357.829506850801408 6891368.391655500978231,1478371.993497204268351 6891403.906618202105165,1478390.850825597764924 6891440.249455007724464)",61,motorway,0,0,1,motorways,9,0
"LINESTRING (1477495.477627843851224 6890800.066300450824201,1477451.250148088904098 6890745.763359077274799)",64,motorway,0,0,1,motorways,9,0
"LINESTRING (1478967.31030381959863 6890667.658501483500004,1478973.720489174127579 6890696.33466696832329)",206,service,0,1,0,minorroads,10,1
"LINESTRING (1479327.960208358010277 6889996.932087614201009,1479283.12623362406157 6889933.470080768689513)",208,footway,0,1,0,minorroads,10,1
"LINESTRING (1478931.601745795924217 6891332.723570773378015,1479038.970017851097509 6891272.239934901706874)",252,footway,0,1,0,minorroads,10,1
"LINESTRING (1479334.09980364702642 6891680.858200660906732,1479344.391556847607717 6891681.793242639862001)",260,footway,0,1,0,minorroads,10,1
"LINESTRING (1478994.415963881416246 6892026.73918299935758,1479007.749522649217397 6892003.975329895503819)",268,footway,0,1,0,minorroads,10,1
"LINESTRING (1478550.844200145918876 6890545.552211744710803,1478684.179787848610431 6890636.959331315010786)",290,path,0,1,0,minorroads,10,1
"LINESTRING (1478483.35530540603213 6892391.046249195933342,1478493.69371206802316 6892418.992724485695362,1478523.77586285257712 6892467.619516485370696)",329,service,0,1,1,minorroads,10,1
"LINESTRING (1478314.525765596190467 6891576.70133616309613,1478278.31335021276027 6891560.652561791241169,1478215.200549985514954 6891534.686417824588716)",376,service,0,1,1,minorroads,10,1
"LINESTRING (1478215.228542061522603 6891874.245591463521123,1478297.571898355614394 6891853.750844960100949,1478291.20836645970121 6891823.66029835306108)",378,footway,0,1,0,minorroads,10,1
"LINESTRING (1477112.210126065183431 6890858.29331654496491,1477075.419207778759301 6890879.996360674500465,1477069.279612489743158 6890889.912954720668495,1477083.490256302058697 6890932.47628013510257)",501,footway,0,1,0,minorroads,10,1
"LINESTRING (1477502.205056728795171 6890571.39254963491112,1477519.588135797530413 6890535.436799609102309)",541,service,0,1,0,minorroads,10,1
"LINESTRING (1477221.817764186300337 6890863.182627168484032,1477209.725187440868467 6890834.291289354674518,1477200.338511357782409 6890838.981335008516908,1477183.972477710107341 6890800.265549850650132,1477192.883288506418467 6890795.897391020320356,1477188.460540529107675 6890785.490453751757741)",556,footway,0,1,0,minorroads,10,1
"LINESTRING (1477943.453478170791641 6891735.30541658680886,1477934.290738694835454 6891718.244636114686728)",570,footway,0,1,0,minorroads,10,1
"LINESTRING (1477770.406465607928112 6892066.840511322021484,1477790.178201811853796 6892050.76009990926832)",583,footway,0,1,0,minorroads,10,1
"LINESTRING (1477118.508343119407073 6891093.428076104260981,1477088.584814094239846 6891117.76808157004416)",613,footway,0,1,0,minorroads,10,1
"LINESTRING (1478304.32731931633316 6891039.64428252261132,1478336.73281239438802 6891063.202428812161088,1478362.868080493994057 6891085.381176148541272,1478384.421978857368231 6891108.402995181269944,1478394.816369665553793 6891123.469907105900347)",23,motorway_link,0,1,1,motorways,13,1
"LINESTRING (1478416.715503631858155 6890979.362105399370193,1478402.775449885288253 6891019.994664833880961,1478396.486563521204516 6891050.220149672590196)",29,motorway_link,0,1,1,motorways,13,1
"LINESTRING (1478444.334351749392226 6890965.598274794407189,1478436.291295301867649 6890993.279232017695904,1478432.251105696661398 6891019.442882195115089,1478432.932246207259595 6891054.266572091728449)",30,motorway_link,0,1,1,motorways,13,1
"LINESTRING (1477430.918570373440161 6890653.711285330355167,1477490.821612572530285 6890732.214502855204046)",34,motorway_link,0,1,1,motorways,13,1
"LINESTRING (1478402.159624219173566 6891432.263520221225917,1478419.636010205605999 6891465.801433998160064,1478516.63788352557458 6891599.647920207120478,1478542.959765463601798 6891648.515012176707387)",55,motorway_link,0,1,1,motorways,13,1
"LINESTRING (1478395.805423010606319 6891558.521924624219537,1478375.240577995311469 6891530.716394937597215,1478359.005174034042284 6891515.434124372899532,1478339.886586264939979 6891502.06790954247117,1478316.951745497528464 6891488.686388740316033,1478294.97796599916182 6891479.136932187713683,1478269.187933499692008 6891469.572158829309046)",58,motorway_link,0,1,1,motorways,13,1
"LINESTRING (1478350.271646386012435 6891029.512921379879117,1478380.699032773729414 6890977.676111518405378)",60,motorway_link,0,1,1,motorways,13,1
"LINESTRING (1479445.853500913595781 6890008.594684292562306,1479466.810234990902245 6889974.786993312649429,1479481.711350003723055 6889943.24758021812886,1479491.517907224595547 6889916.918854899704456,1479498.478603403549641 6889887.111409046687186)",172,residential,0,1,0,minorroads,13,1
"LINESTRING (1478553.951320560649037 6891315.418398878537118,1478598.850610133260489 6891319.848151468671858)",317,unclassified,0,1,0,minorroads,13,1
"LINESTRING (1477416.483989951433614 6890762.960017169825733,1477397.141465578228235 6890736.030863894149661,1477367.992383987177163 6890698.603015801869333)",135,tertiary,0,1,0,mainroads,14,1
"LINESTRING (1478177.205972440075129 6891489.069593496620655,1478177.317940743407235 6891468.652469684369862,1478178.577584154205397 6891445.077807144261897,1478182.907025211025029 6891420.261640835553408,1478186.732608902268112 6891397.361552857793868,1478191.472600403940305 6891373.802427344955504)",92,secondary,0,1,1,mainroads,15,1
"LINESTRING (1478695.637877542292699 6892227.661724239587784,1478544.135432646842673 6892221.683182909153402)",97,secondary,0,1,1,mainroads,15,1
"LINESTRING (1478527.237549557816237 6892200.804311908781528,1478681.837784175062552 6892208.622385010123253,1478687.930726005230099 6892209.189578847959638)",102,secondary,0,1,1,mainroads,15,1
"LINESTRING (1479238.124306440819055 6892256.75735551957041,1479220.367999695939943 6892255.622961183078587)",107,secondary,0,1,1,mainroads,15,1
"LINESTRING (1479396.176897070370615 6890481.549454870633781,1479348.459738528588787 6890459.663571572862566,1479285.906779821496457 6890425.80800533015281)",109,secondary,0,1,1,mainroads,15,1
"LINESTRING (1479215.245449822163209 6892238.729702232405543,1479233.776204001158476 6892239.772116457112134)",110,secondary,0,1,1,mainroads,15,1
"LINESTRING (1479297.47683781851083 6890409.209787493571639,1479361.448061698814854 6890444.184096252545714,1479405.974123598309234 6890464.384051165543497)",112,secondary,0,1,1,mainroads,15,1
"LINESTRING (1478329.772116212407127 6891020.117283202707767,1478371.433655687142164 6890928.767115697264671)",120,secondary,0,1,1,mainroads,15,1
"LINESTRING (1478451.155087549006566 6890967.130994181148708,1478439.454399868380278 6891002.920075045898557,1478435.899406239856035 6891020.515792922116816,1478432.932246207259595 6891054.266572091728449,1478436.51523190876469 6891092.385810512118042)",125,secondary,0,1,1,mainroads,15,1
"LINESTRING (1478484.279043906368315 6892448.686919055879116,1478512.980252289446071 6892501.529672888107598)",138,secondary,0,1,1,mainroads,15,1
"LINESTRING (1478441.24589272052981 6890743.985453568398952,1478569.785504766972736 6890803.361579650081694)",698,rail,0,1,0,railways,17,1
"LINESTRING (1478556.414623227668926 6890825.447648616507649,1478501.363540833583102 6890799.943685433827341,1478430.310321775265038 6890777.137325343675911)",699,rail,0,1,0,railways,17,1
"LINESTRING (1478627.402527447091416 6890858.032757756300271,1478598.449390378547832 6890845.709869343787432)",701,rail,0,1,0,railways,17,1
"LINESTRING (1478595.75282041169703 6890816.082902735099196,1478625.956270195310935 6890829.907785100862384)",702,rail,0,1,0,railways,17,1
"LINESTRING (1477861.231420873198658 6890651.795460822060704,1477785.139628168661147 6890619.962187672965229)",706,rail,0,1,0,railways,17,1
"LINESTRING (1478533.153208245523274 6890597.539500389248133,1478563.608586709247902 6890651.657521475106478,1478583.986817886354402 6890702.90981500223279,1478598.971909126965329 6890754.806160444393754)",707,rail,0,1,0,railways,17,1
"LINESTRING (1478551.954552487237379 6890575.162854988127947,1478588.605510394554585 6890603.547487018629909,1478617.885221674805507 6890622.138555723242462,1478642.714192904997617 6890636.468881220556796,1478662.672542944317684 6890646.814319248311222)",711,rail,0,1,0,railways,17,1
"LINESTRING (1478591.227434826781973 6890756.093610955402255,1478577.12875931779854 6890705.745253457687795,1478556.750528137898073 6890657.573588914237916,1478526.565739739919081 6890602.627896940335631)",712,rail,0,1,0,railways,17,1
"LINESTRING (1478593.50412365840748 6891161.252267209812999,1478604.868906431598589 6891027.229151873849332)",716,rail,0,1,0,railways,17,1
"LINESTRING (1478861.276320709846914 6890948.416510410606861,1478927.88813040801324 6890978.978924939408898)",717,rail,0,1,0,railways,17,1
"LINESTRING (1478445.080807101679966 6890735.663021787069738,1478572.827310339780524 6890796.249909016303718)",721,rail,0,1,0,railways,17,1
"LINESTRING (1478725.31880857469514 6891220.416887637227774,1478753.684112047543749 6891165.635952131822705,1478782.273352124495432 6891113.062545800581574)",722,light_rail,0,1,0,railways,17,1
"LINESTRING (1478565.344095406820998 6890811.423524235375226,1478438.502669292036444 6890750.315412051975727)",725,rail,0,1,0,railways,17,1
"LINESTRING (1478761.083350750152022 6891124.619469199329615,1478714.065994105068967 6891217.213403515517712)",726,rail,0,1,0,railways,17,1
"LINESTRING (1478594.185264169238508 6890806.013130874373019,1478624.789933702209964 6890819.929957416839898)",729,rail,0,1,0,railways,17,1
"LINESTRING (1478611.950901604257524 6891032.133892551995814,1478602.097690927330405 6891164.808263186365366)",732,rail,0,1,0,railways,17,1
"LINESTRING (1478625.368436602409929 6890839.900952127762139,1478595.276955124922097 6890826.290629548951983)",733,rail,0,1,0,railways,17,1
"LINESTRING (1478918.445470173377544 6890994.888592929579318,1478850.574017061386257 6890963.099942809902132)",738,rail,0,1,0,railways,17,1
"LINESTRING (1478922.187077639857307 6890988.451151218265295,1478855.416646176483482 6890957.168323368765414)",740,rail,0,1,0,railways,17,1
"LINESTRING (1478363.717173459939659 6890762.914036750793457,1478343.516225425293669 6890759.5421401290223)",744,rail,0,1,0,railways,17,1
"LINESTRING (1478866.398870577802882 6890942.408266056329012,1478932.544145682128146 6890972.940003331750631)",745,rail,0,1,0,railways,17,1
"LINESTRING (1477526.68879235861823 6890495.281804216094315,1477556.565667921910062 6890511.175188716500998)",748,rail,0,1,0,railways,17,1
"LINESTRING (1477551.331149747828022 6890517.719532645307481,1477521.612895943690091 6890502.255271850153804)",752,rail,0,1,0,railways,17,1
"LINESTRING (1478803.090125825256109 6891124.665451684966683,1478749.074750232277438 6891229.766776816919446)",771,light_rail,0,1,0,railways,17,1
"LINESTRING (1478455.288584077497944 6890709.31637466698885,1478485.305420020362362 6890732.873553024604917,1478551.777269339188933 6890776.279022733680904)",812,rail,0,1,0,railways,17,1
"LINESTRING (1478463.210341525729746 6890697.438187943771482,1478515.826113325776532 6890741.441210155375302,1478545.09649391612038 6890764.354756650514901,1478578.658992794342339 6890784.938687206245959)",813,rail,0,1,0,railways,17,1
"LINESTRING (1478448.113281978992745 6890727.11069754883647,1478488.795098801376298 6890745.211595254950225,1478551.777269339188933 6890776.279022733680904,1478576.662224721163511 6890790.042529220692813)",815,rail,0,1,0,railways,17,1
"LINESTRING (1478448.794422489590943 6890719.355371965095401,1478488.795098801376298 6890745.211595254950225)",817,rail,0,1,0,railways,17,1
"LINESTRING (1478453.133194239344448 6890714.128961123526096,1478485.305420020362362 6890732.873553024604917)",818,rail,0,1,0,railways,17,1
"LINESTRING (1478592.291133706457913 6890793.812937114387751,1478624.575327788246796 6890811.791369803249836)",820,rail,0,1,0,railways,17,1
"LINESTRING (1478592.869636606657878 6890797.951191720552742,1478624.575327788246796 6890812.481080299243331)",822,rail,0,1,0,railways,17,1
"LINESTRING (1478872.753071786370128 6890934.054974609985948,1478938.59976474638097 6890964.157518833875656)",826,rail,0,1,0,railways,17,1
"LINESTRING (1478708.467578947311267 6891213.902627007104456,1478755.951470183674246 6891121.998467871919274)",830,rail,0,1,0,railways,17,1
"LINESTRING (1478556.050726244226098 6890567.974754032678902,1478593.896012717625126 6890597.156338127329946,1478621.766789517831057 6890615.134331055916846,1478643.236711653415114 6890627.472192604094744,1478666.591433558845893 6890639.610827658325434)",852,rail,0,1,0,railways,17,1
"LINESTRING (1477451.250148088904098 6890745.763359077274799,1477398.289140685694292 6890680.900715908035636)",24,motorway,0,1,1,motorways,19,1
"LINESTRING (1478390.850825597764924 6891440.249455007724464,1478416.4169214903377 6891479.535464659333229,1478439.883611699100584 6891511.923958003520966,1478473.362134346971288 6891559.089072591625154,1478503.668221738422289 6891600.536967532709241,1478542.959765463601798 6891648.515012176707387,1478591.927236720221117 6891731.335294630378485,1478610.709919579094276 6891779.927269681356847,1478623.922179353423417 6891826.787379971705377,1478630.015121186384931 6891858.76339219789952)",25,motorway,0,1,1,motorways,19,1
"LINESTRING (1478354.07856869418174 6891040.180739216506481,1478380.699032773729414 6890977.676111518405378,1478394.163221230730414 6890950.225115459412336)",26,motorway,0,1,1,motorways,19,1
"LINESTRING (1478415.84774928027764 6890956.907761368900537,1478376.7148273200728 6891043.997246447019279)",27,motorway,0,1,1,motorways,19,1
"LINESTRING (1477414.468560495181009 6890666.92282354272902,1477470.023500254843384 6890738.375857715494931)",33,motorway,0,1,1,motorways,19,1
"LINESTRING (1478336.770135160302743 6891278.29440912604332,1478342.517841390101239 6891313.25717099942267,1478349.375899961218238 6891340.387520620599389,1478357.829506850801408 6891368.391655500978231)",52,motorway,0,1,1,motorways,19,1
"LINESTRING (1478336.760804470162839 6891379.550418416969478,1478326.310429504606873 6891342.334165048785508,1478318.892529421718791 6891313.10389244556427,1478313.583365709986538 6891281.068739344365895)",54,motorway,0,1,1,motorways,19,1
"LINESTRING (1478396.617193207610399 6891531.804702173918486,1478382.845091919181868 6891499.554082627408206,1478361.561783624347299 6891449.124428308568895)",56,motorway,0,1,1,motorways,19,1
1 WKT fid type tunnel bridge oneway class z_order z
2 LINESTRING (1478464.087426564656198 6892271.151913832873106,1478475.106973737478256 6892349.655597596429288) 312 service 1 0 1 minorroads -10 -1
3 LINESTRING (1478267.685692099155858 6891978.835526627488434,1478231.305324257584289 6891833.51674110814929,1478229.896389777539298 6891821.759523851796985,1478231.40796187100932 6891811.979739548638463,1478234.552405048860237 6891804.43797043338418,1478240.58003204013221 6891797.938565328717232,1478264.75585483526811 6891788.741302938200533,1478317.1663514142856 6891772.262900795787573,1478340.17583771632053 6891781.920006790198386,1478348.685428757686168 6891803.794161200523376,1478402.16895490931347 6892023.780644913204014,1478450.679222259437665 6892216.85436431504786,1478464.087426564656198 6892271.151913832873106,1478454.672758408589289 6892353.104810423217714) 313 service 1 0 1 minorroads -10 -1
4 LINESTRING (1478426.895288528874516 6891709.308051269501448,1478411.676929988665506 6891698.869274341501296,1478398.007466310635209 6891695.573628057725728,1478379.514034900348634 6891705.552542590536177,1478372.413378342054784 6891719.700855853967369,1478378.730256776325405 6891746.357388046570122,1478416.519559100735933 6891913.901618065312505,1478440.583413592772558 6892016.652565392665565,1478431.719256255310029 6892045.870066974312067,1478463.555577126098797 6892169.547425043769181,1478450.679222259437665 6892216.85436431504786) 315 service 1 0 1 minorroads -10 -1
5 LINESTRING (1478079.075085395481437 6891736.240464904345572,1478104.715826825471595 6891790.366151860915124,1478111.42459432175383 6891812.884139166213572,1478111.919120994396508 6891834.559102791361511,1478109.614440086763352 6891846.147721174173057) 334 service 1 0 0 minorroads -10 -1
6 LINESTRING (1478454.672758408589289 6892353.104810423217714,1478458.218421341385692 6892374.581942255608737,1478466.532067854423076 6892390.463712620548904,1478477.467638794099912 6892401.945822895504534,1478492.303438970819116 6892407.924498297274113) 352 service 1 0 0 minorroads -10 -1
7 LINESTRING (1478295.649775819852948 6892148.408088837750256,1478302.451850236626342 6892175.740540593862534,1478344.449294621357694 6892185.352142740041018,1478371.359010152285919 6892210.707205789163709,1478358.342694909079 6892292.506188929080963) 371 footway 1 0 0 minorroads -10 -1
8 LINESTRING (1478404.315014054765925 6892179.250996824353933,1478397.699553476180881 6892180.93724271748215,1478392.530350143555552 6892182.255580662749708,1478371.359010152285919 6892210.707205789163709,1478418.786917239660397 6892247.360282902605832) 372 footway 1 0 0 minorroads -10 -1
9 LINESTRING (1478380.437773400917649 6892134.381656404584646,1478402.747457809513435 6892127.958631582558155) 386 footway 1 0 0 minorroads -10 -1
10 LINESTRING (1478402.16895490931347 6892023.780644913204014,1478431.719256255310029 6892045.870066974312067) 387 service 1 0 1 minorroads -10 -1
11 LINESTRING (1478302.451850236626342 6892175.740540593862534,1478279.339726323960349 6892178.407874005846679) 388 footway 1 0 0 minorroads -10 -1
12 LINESTRING (1478440.583413592772558 6892016.652565392665565,1478459.888615197036415 6892053.703318660147488,1478482.851448043249547 6892145.54148262552917,1478463.555577126098797 6892169.547425043769181) 390 service 1 0 1 minorroads -10 -1
13 LINESTRING (1478402.16895490931347 6892023.780644913204014,1478391.01877805008553 6892079.79377365577966,1478402.747457809513435 6892127.958631582558155,1478416.584873942658305 6892184.692973483353853,1478450.679222259437665 6892216.85436431504786) 391 service 1 0 1 minorroads -10 -1
14 LINESTRING (1478392.530350143555552 6892182.255580662749708,1478380.437773400917649 6892134.381656404584646,1478354.479788446333259 6892046.069347251206636) 392 footway 1 0 0 minorroads -10 -1
15 LINESTRING (1478352.147115462692454 6891731.442595199681818,1478363.101347791031003 6891774.746155516244471,1478421.539471358293667 6892018.967274392023683,1478431.719256255310029 6892045.870066974312067) 393 service 1 0 1 minorroads -10 -1
16 LINESTRING (1478289.006323162466288 6891573.850262156687677,1478287.961285665631294 6891604.6449805945158,1478304.653893533628434 6891631.25514588970691) 397 service 1 0 1 minorroads -10 -1
17 LINESTRING (1478316.746470273472369 6891546.32058884575963,1478314.525765596190467 6891576.70133616309613) 400 service 1 0 1 minorroads -10 -1
18 LINESTRING (1478352.874909435166046 6891537.000988053157926,1478335.267893759533763 6891583.292532620951533,1478318.957844263641164 6891610.699705163016915,1478266.771284291520715 6891649.189465964213014) 402 path 1 0 1 minorroads -10 -1
19 LINESTRING (1478304.653893533628434 6891544.619147759862244,1478289.006323162466288 6891573.850262156687677) 403 service 1 0 1 minorroads -10 -1
20 LINESTRING (1478304.653893533628434 6891631.25514588970691,1478325.004132634960115 6891655.259552592411637,1478338.570958702359349 6891679.785201796330512,1478352.147115462692454 6891731.442595199681818) 404 service 1 0 1 minorroads -10 -1
21 LINESTRING (1478189.345202641561627 6892164.39671871624887,1478191.565907321637496 6892107.493896978907287) 417 footway 1 0 0 minorroads -10 -1
22 LINESTRING (1477341.726486198138446 6891879.672032723203301,1477366.966007873183116 6891868.589220155961812) 487 service 1 0 0 minorroads -10 -1
23 LINESTRING (1477280.535808509448543 6891906.926925845444202,1477314.966061739251018 6891890.785518474876881,1477341.726486198138446 6891879.672032723203301) 488 service 1 0 0 minorroads -10 -1
24 LINESTRING (1477246.96397894108668 6891938.244107788428664,1477280.535808509448543 6891906.926925845444202) 489 service 1 0 0 minorroads -10 -1
25 LINESTRING (1477089.116663535358384 6890956.187384136021137,1477095.414880589582026 6891011.595310922712088) 498 footway 1 0 0 minorroads -10 -1
26 LINESTRING (1477776.443423286313191 6890246.309983272105455,1477868.845265486976132 6890131.995495325885713) 499 footway 1 0 0 minorroads -10 -1
27 LINESTRING (1477507.896778806811199 6891126.826628868468106,1477488.684884120011702 6891123.347287161275744,1477444.914608268765733 6891146.583800435997546,1477413.610136836534366 6891170.065622186288238,1477406.453496126458049 6891175.721502039581537) 571 service 1 0 0 minorroads -10 -1
28 LINESTRING (1477741.089431561529636 6891515.342154928483069,1477664.167207277147099 6891575.812291472218931,1477687.456614337861538 6891609.488759884610772) 584 service 1 0 0 minorroads -10 -1
29 LINESTRING (1477226.557755685178563 6892508.796153583563864,1477223.683902570279315 6892523.712388763204217) 605 footway 1 0 0 minorroads -10 -1
30 LINESTRING (1478367.953307596268132 6891647.825229956768453,1478351.279361113905907 6891651.197499162517488,1478335.519822442205623 6891655.826707382686436,1478312.034470850601792 6891667.031854874454439,1478293.233126608654857 6891676.167663832195103,1478279.554332237923518 6891684.153840911574662) 40 motorway_link 1 0 1 motorways -7 0
31 LINESTRING (1478264.074714324669912 6891662.709210627712309,1478309.907073091017082 6891635.777043334208429,1478332.132781271822751 6891620.126690473407507,1478345.130435132188722 6891607.143511951901019,1478354.162544921739027 6891591.585185151547194,1478362.989379487698898 6891563.457646118476987) 321 unclassified 1 0 1 minorroads -7 0
32 LINESTRING (1477870.207546508172527 6890978.105273565277457,1477871.81242551933974 6890936.997784550301731) 115 secondary 1 0 0 mainroads -5 0
33 LINESTRING (1477698.952026794664562 6891185.101994454860687,1477704.662410258548334 6891180.672316116280854,1477801.412354895845056 6891105.552087247371674) 143 secondary 1 0 0 mainroads -5 0
34 LINESTRING (1479215.254780515097082 6891069.072816937230527,1479243.134888005442917 6891128.374706505797803,1479276.548095814418048 6891179.446108014322817) 694 light_rail 1 0 0 railways -3 0
35 LINESTRING (1477683.612369260750711 6890631.518402252346277,1477781.108769256155938 6890678.065286220051348) 734 light_rail 1 0 0 railways -3 0
36 LINESTRING (1477349.396314963698387 6890405.439559964463115,1477377.099139308556914 6890438.206881085410714,1477405.483104167273268 6890465.763412615284324) 756 light_rail 1 0 0 railways -3 0
37 LINESTRING (1477401.172324493527412 6890470.315307054668665,1477373.534814990125597 6890442.390931232832372,1477344.973566989181563 6890408.949243260547519) 763 light_rail 1 0 0 railways -3 0
38 LINESTRING (1477714.347668485715985 6890670.003475363366306,1477654.761869808426127 6890641.77187445666641) 765 light_rail 1 0 0 railways -3 0
39 LINESTRING (1479016.87493935925886 6890040.272282585501671,1478980.289296296890825 6890061.804538452997804,1478944.888651107437909 6890084.838752162642777,1478893.905750391772017 6890130.064469543285668,1478869.048787088599056 6890161.77319775428623,1478842.530960619682446 6890196.347961265593767,1478810.134798231767491 6890258.739233900792897,1478777.253439866937697 6890329.912772791460156) 19 motorway 1 0 1 motorways -1 0
40 LINESTRING (1478758.974614370847121 6890316.165379947982728,1478791.501406445167959 6890245.313804953359067,1478827.919097055448219 6890179.964776864275336,1478850.14480523345992 6890142.815378563478589,1478874.553895328659564 6890110.171865802258253,1478923.16680029197596 6890062.616788381710649,1478958.455477175069973 6890037.95814321283251,1478997.037888313643634 6890015.629031332209706) 21 motorway 1 0 1 motorways -1 0
41 LINESTRING (1479020.635208208812401 6892437.128092028200626,1479011.145894512534142 6892381.664349486120045,1479006.648501003393903 6892345.654512577690184,1479018.862376742530614 6892314.12112672906369,1479040.462928561726585 6892294.161799130029976,1479017.65871748351492 6892284.044186560437083) 180 footway 0 0 0 minorroads 0 0
42 LINESTRING (1479020.635208208812401 6892437.128092028200626,1479068.343036052072421 6892505.88342846557498,1479114.138072055066004 6892537.938793009147048,1479148.503010437591001 6892548.945877370424569,1479190.491124129621312 6892566.407007291913033,1479238.338912354782224 6892590.107600770890713,1479258.381238624453545 6892602.448493731208146,1479338.130662565119565 6892645.69542468432337,1479404.201292129000649 6892683.055686702951789,1479430.168607773724943 6892698.094889210537076,1479544.040372106945142 6892763.203769372776151) 181 footway 0 0 0 minorroads 0 0
43 LINESTRING (1479045.072290376992896 6892170.589830297976732,1479020.971113116247579 6892174.437533211894333,1479002.925554922781885 6892173.946989312767982,1478997.952296121278778 6892171.632235683500767,1478992.381873039528728 6892169.087540414184332,1478988.360344814369455 6892166.251585789956152,1478981.390317942481488 6892158.372236031107605,1478979.636147862067446 6892149.9870221093297,1478980.55055566970259 6892139.19509603176266,1478990.749001952353865 6892115.465173177421093,1479012.517506226664409 6892082.706344389356673,1479051.342515352414921 6892039.569746791385114,1479037.383800225798041 6892032.27303178049624,1479034.351325348485261 6892030.126940387301147) 182 footway 0 0 0 minorroads 0 0
44 LINESTRING (1478942.052120761480182 6892225.622887848876417,1478944.244833362754434 6892195.132381286472082,1478953.267612462397665 6892164.350730281323195,1478960.172324489569291 6892134.611597723327577,1478974.215015846770257 6892108.95018723513931,1478994.714546022936702 6892084.208618130534887,1479019.207612342899665 6892056.370611586607993,1479031.37483462318778 6892040.750098372809589,1479037.383800225798041 6892032.27303178049624) 183 footway 0 0 0 minorroads 0 0
45 LINESTRING (1479511.261651349952444 6891082.208400661125779,1479481.459421321051195 6891103.084366684779525,1479360.328378667356446 6891034.478972747921944,1479352.322644991567358 6891022.952833535149693,1479317.873730378691107 6890999.440786958672106,1479303.915015249047428 6890990.106492877937853,1479242.089850508607924 6890937.610870090313256,1479204.841728321043774 6890955.758223262615502) 184 service 0 0 0 minorroads 0 0
46 LINESTRING (1479453.616636599646881 6890482.744903990067542,1479446.292043434455991 6890501.872114131227136) 186 footway 0 0 0 minorroads 0 0
47 LINESTRING (1478987.24999247584492 6890117.681394563056529,1478974.429621760733426 6890121.788649991154671,1478968.140735402470455 6890127.643025163561106,1478961.749211427755654 6890132.608519486151636,1478951.065569168189541 6890141.650631228461862) 187 path 0 0 0 minorroads 0 0
48 LINESTRING (1478973.720489174127579 6890696.33466696832329,1478974.793518746970221 6890708.27415887080133,1478934.484929603524506 6890755.082042676396668,1478897.694011319894344 6890797.568019906058908) 189 service 0 0 0 minorroads 0 0
49 LINESTRING (1479085.427532981848344 6890674.279605968855321,1479067.307329247938469 6890686.387658378109336,1478977.630049095954746 6890791.621195725165308) 190 footway 0 0 0 minorroads 0 0
50 LINESTRING (1478977.630049095954746 6890791.621195725165308,1478928.056082863127813 6890850.737115069292486,1478879.415185823803768 6890912.75028891582042,1478830.093148273881525 6890892.73313207551837,1478828.898819707566872 6890880.302901268936694) 191 footway 0 0 0 minorroads 0 0
51 LINESTRING (1478934.484929603524506 6890755.082042676396668,1478977.630049095954746 6890791.621195725165308) 192 footway 0 0 0 minorroads 0 0
52 LINESTRING (1478842.60560615430586 6890756.859950644895434,1478850.378072533290833 6890746.820906506851315,1478913.714809364406392 6890737.854747919365764,1478934.484929603524506 6890755.082042676396668) 193 footway 0 0 0 minorroads 0 0
53 LINESTRING (1479375.994610418565571 6891635.010619860142469,1479355.719016854884103 6891632.650036015547812,1479354.972561499569565 6891634.887992111966014,1479352.901147891534492 6891636.420839112251997,1479350.960363967344165 6891637.417189817875624,1479346.481631841277704 6891681.977185339666903) 194 footway 0 0 0 minorroads 0 0
54 LINESTRING (1479310.493153058923781 6891678.712203078903258,1479316.203536522807553 6891629.262446126900613,1479319.264003475895151 6891603.648633949458599) 195 footway 0 0 0 minorroads 0 0
55 LINESTRING (1479383.543140193447471 6891577.667022745124996,1479380.146768330130726 6891605.043519286438823) 196 footway 0 0 0 minorroads 0 0
56 LINESTRING (1479596.926733975531533 6891723.011840671300888,1479608.944665183546022 6891709.660609316080809) 198 pedestrian 0 0 0 minorroads 0 0
57 LINESTRING (1479434.777969588991255 6891585.561131720431149,1479482.392490514554083 6891545.140309852547944) 199 pedestrian 0 0 0 minorroads 0 0
58 LINESTRING (1478963.578027048613876 6890644.591964773833752,1478967.31030381959863 6890667.658501483500004) 205 service 0 0 0 minorroads 0 0
59 LINESTRING (1479401.150155866052955 6890069.130116234533489,1479393.65761024877429 6890062.678090267814696,1479327.960208358010277 6889996.932087614201009) 207 footway 0 0 0 minorroads 0 0
60 LINESTRING (1478944.664714500773698 6890030.004252052865922,1478958.623429630184546 6890021.192146747373044,1478992.307227504905313 6890002.081405482254922,1479026.690827270271257 6889979.154706041328609,1479038.44749910547398 6889972.901981176808476,1479054.701564449816942 6889964.273841869086027,1479095.672632720787078 6889942.527293800376356,1479155.734296685084701 6889930.205808525905013,1479283.12623362406157 6889933.470080768689513) 209 footway 0 0 0 minorroads 0 0
61 LINESTRING (1478877.884952347259969 6890822.336283389478922,1478872.855709397001192 6890815.577114805579185,1478875.6642476671841 6890806.963398001156747,1478885.032262367196381 6890797.506712420843542,1478891.367802187101915 6890795.698141722939909,1478897.694011319894344 6890797.568019906058908,1478901.986129605211318 6890803.192983939312398,1478902.536640429403633 6890810.013449692167342,1478892.618114905199036 6890821.953110418282449,1478886.105291939806193 6890826.198667988181114,1478877.884952347259969 6890822.336283389478922) 210 footway 0 0 0 minorroads 0 0
62 LINESTRING (1478892.618114905199036 6890821.953110418282449,1478928.056082863127813 6890850.737115069292486) 211 footway 0 0 0 minorroads 0 0
63 LINESTRING (1479085.175604299176484 6891455.347645132802427,1479072.933736484264955 6891457.646864391863346,1479028.836886418517679 6891467.809421390295029,1478969.717622337630019 6891487.352836342528462,1478948.182385357562453 6891496.258518047630787,1478911.130207701120526 6891514.514429982751608,1478900.287943673552945 6891515.526093818247318,1478903.68431553686969 6891509.823990211822093,1478916.467363483039662 6891497.224194971844554,1478942.947867186041549 6891484.103261307813227,1478965.024284297600389 6891474.477169387042522,1478945.691090611740947 6891413.149424462579191,1478898.029916227562353 6891434.746669919230044,1478844.462413848377764 6891469.14297055080533,1478793.47951313527301 6891520.001941416412592,1478771.944276155205444 6891540.035988440737128,1478758.237489708466455 6891558.935789356008172,1478748.08569689001888 6891566.799223258160055,1478780.789772106800228 6891606.361762794665992) 212 footway 0 0 0 minorroads 0 0
64 LINESTRING (1478965.024284297600389 6891474.477169387042522,1479027.586573694832623 6891454.795832606963813,1479057.939314550952986 6891448.388678853400052,1479088.058788104215637 6891445.828884401358664) 213 footway 0 0 0 minorroads 0 0
65 LINESTRING (1478945.691090611740947 6891413.149424462579191,1479018.255881766555831 6891391.138380916789174,1479047.694214809220284 6891380.316817537881434) 214 footway 0 0 0 minorroads 0 0
66 LINESTRING (1478991.019592018099502 6890132.409286628477275,1479002.59898070525378 6890131.244540799409151,1479038.382184260990471 6890132.45526344049722,1479064.209539529168978 6890130.202399942092597) 217 footway 0 0 0 minorroads 0 0
67 LINESTRING (1479317.873730378691107 6890999.440786958672106,1479295.08818068052642 6891012.499620502814651,1479265.976421855157241 6891029.635539894923568,1479237.909700526855886 6891045.959146456792951) 219 service 0 0 0 minorroads 0 0
68 LINESTRING (1479265.976421855157241 6891029.635539894923568,1479332.858821619069204 6891062.006893378682435,1479344.43821030925028 6891037.498456098139286,1479352.322644991567358 6891022.952833535149693) 220 service 0 0 0 minorroads 0 0
69 LINESTRING (1479295.08818068052642 6891012.499620502814651,1479344.43821030925028 6891037.498456098139286) 221 service 0 0 0 minorroads 0 0
70 LINESTRING (1479352.742526129353791 6891350.626569028012455,1479161.827238515252247 6891268.591924785636365) 222 footway 0 0 0 minorroads 0 0
71 LINESTRING (1479401.896611221367493 6891423.296597149223089,1479090.344807628775015 6891287.537070981226861) 223 footway 0 0 0 minorroads 0 0
72 LINESTRING (1479465.690551959211007 6891463.594181259162724,1479453.709943517111242 6891455.914785820990801,1479425.409954888978973 6891447.760226246900856,1479401.896611221367493 6891423.296597149223089,1479373.596622593235224 6891386.126125248149037,1479360.179087595082819 6891365.494671508669853,1479352.742526129353791 6891350.626569028012455,1479336.908341917209327 6891318.483971345238388,1479321.559353690594435 6891301.699976419098675,1479307.162096040323377 6891284.670771724544466,1479300.210730554070324 6891269.067085674032569,1479294.696291621308774 6891260.682799293659627,1479263.55977264419198 6891258.99674641340971,1479232.815142731880769 6891257.326021636836231,1479201.156105006346479 6891259.012074161320925,1479161.827238515252247 6891268.591924785636365,1479090.344807628775015 6891287.537070981226861) 224 footway 0 0 0 minorroads 0 0
73 LINESTRING (1479037.383800225798041 6892032.27303178049624,1479057.752700712764636 6891999.744479458779097,1479091.725750033278018 6891954.630875697359443,1479132.724810380022973 6891911.878190251998603,1479161.743262287694961 6891876.376312308013439,1479180.040749166859314 6891847.818568326532841,1479192.609191199066117 6891807.42708539031446,1479193.822181151015684 6891798.107181905768812,1479196.416113504674286 6891778.103149225004017,1479199.467249767621979 6891738.493778496980667,1479205.933419276727363 6891698.869274341501296,1479220.787880830932409 6891680.980829110369086,1479229.549400552175939 6891674.880065969191492,1479240.596939800772816 6891673.745753734372556,1479255.068842985900119 6891677.547233199700713,1479267.637285018106923 6891689.365553838200867,1479275.447074165800586 6891698.256130744703114) 225 footway 0 0 0 minorroads 0 0
74 LINESTRING (1479229.549400552175939 6891674.880065969191492,1479216.271825936157256 6891656.777074966579676,1479171.10194629477337 6891595.187356659211218) 226 footway 0 0 0 minorroads 0 0
75 LINESTRING (1479051.342515352414921 6892039.569746791385114,1479074.529284805525094 6892052.660928558558226) 227 footway 0 0 0 minorroads 0 0
76 LINESTRING (1479558.661566364113241 6892730.994200934655964,1479535.32550584175624 6892695.871967596933246,1479509.208899124991149 6892661.945660936646163,1479484.967761487932876 6892632.250678585842252,1479458.813832005020231 6892615.448610161431134,1479373.167410765308887 6892570.024945888668299,1479300.957185906590894 6892532.435256485827267,1479252.782823463901877 6892527.974175323732197,1479204.001966048264876 6892521.336213783361018,1479171.325882901670411 6892514.928209916688502,1479142.64333590422757 6892504.442396434023976,1479120.930815778905526 6892491.151187589392066,1479098.593139297328889 6892472.555796183645725,1479066.934101571794599 6892412.370182883925736,1479042.375720410142094 6892360.26384799182415,1479040.780172086087987 6892331.70438495837152,1479040.462928561726585 6892294.161799130029976,1479080.986123618902639 6892292.26091337017715,1479193.756866306532174 6892289.164310114458203,1479216.402455622563139 6892282.403908143751323,1479220.871857058489695 6892272.516255625523627,1479224.174922001315281 6892272.577574365772307,1479229.232157027581707 6892272.286310367286205,1479219.024380057584494 6892224.105258090421557,1479209.292468371335417 6892223.185482617467642,1479204.58046894823201 6892214.079711130820215,1479197.18123024282977 6892205.249881953001022,1479179.490238342434168 6892197.692414339631796,1479135.346734812250361 6892196.512039718218148,1479051.137240131385624 6892183.788532035425305,1479045.072290376992896 6892170.589830297976732,1479049.149802750907838 6892124.877421021461487,1479058.424510530428961 6892087.581070398911834,1479071.254211938474327 6892057.964856051839888,1479074.529284805525094 6892052.660928558558226,1479095.532672341447324 6892018.691348779946566,1479112.467878199182451 6891998.625450547784567,1479173.910484564956278 6891937.309035980142653,1479213.509941124590114 6891907.87732311245054,1479228.280426451237872 6891875.471905553713441,1479240.065090362215415 6891839.295718602836132,1479248.854602162260562 6891812.393617324531078,1479261.460366960382089 6891762.237917317077518,1479267.515986024634913 6891728.959353854879737,1479271.630821167491376 6891712.113187463954091,1479275.447074165800586 6891698.256130744703114,1479285.748158059082925 6891687.204225420951843,1479299.772188033210114 6891680.474986762739718,1479310.493153058923781 6891678.712203078903258,1479332.560239477548748 6891680.720243656076491,1479334.09980364702642 6891680.858200660906732) 228 footway 0 0 0 minorroads 0 0
77 LINESTRING (1479414.754304702393711 6890467.663866545073688,1479442.774372574873269 6890432.367605943232775,1479416.368514406494796 6890410.742400817573071) 229 footway 0 0 0 minorroads 0 0
78 LINESTRING (1479416.368514406494796 6890410.742400817573071,1479439.378000711556524 6890381.009754501283169) 230 steps 0 0 0 minorroads 0 0
79 LINESTRING (1479051.137240131385624 6892183.788532035425305,1479170.150215718429536 6892218.908528059720993) 231 footway 0 0 0 minorroads 0 0
80 LINESTRING (1479506.027133178431541 6892443.306083716452122,1479501.464424824807793 6892426.182480680756271,1479502.845367229077965 6892406.974041910842061,1479509.358190197264776 6892389.145340526476502,1479520.33108390844427 6892376.789445140399039,1479537.816800587577745 6892362.747284359298646,1479546.046470873057842 6892354.515155650675297,1479550.012014943640679 6892345.179288049228489,1479549.91870802314952 6892327.672649290412664,1479550.151975322980434 6892285.929740659892559,1479551.467602882767096 6892272.914827428758144) 232 footway 0 0 0 minorroads 0 0
81 LINESTRING (1478902.919198798481375 6890060.471222716383636,1478914.64787855790928 6890058.708794203586876,1478926.861754297045991 6890049.774053867906332,1478938.058584614889696 6890042.172635945491493,1478948.424983350094408 6890035.276194448582828) 233 path 0 0 0 minorroads 0 0
82 LINESTRING (1479491.368616155348718 6890886.081193597055972,1479515.021920202299953 6890883.996716304682195,1479588.379820165457204 6890877.528709341771901,1479587.465412357822061 6890868.70034805405885,1479683.07701257779263 6890859.764707515016198) 234 service 0 0 0 minorroads 0 0
83 LINESTRING (1479098.593139297328889 6892472.555796183645725,1479020.635208208812401 6892437.128092028200626,1478995.227734078653157 6892424.526843289844692,1478961.786534196697176 6892387.259762216359377,1478945.541799542261288 6892336.609921579249203,1478949.302068391814828 6892240.109368146397173) 237 footway 0 0 0 minorroads 0 0
84 LINESTRING (1479433.219744036672637 6891903.615865284577012,1479430.597819601651281 6891902.512178732082248,1479418.225322103127837 6891896.365260567516088,1479414.045172115787864 6891896.319273664616048,1479410.387540879659355 6891897.668222876265645,1479407.756285757524893 6891900.350793006829917,1479391.679503558436409 6891935.208957064896822,1479391.408913492690772 6891939.347799245268106,1479394.180128997191787 6891944.268425508402288,1479406.673925491981208 6891951.089859411120415,1479410.060966662364081 6891952.4388178139925) 238 footway 0 0 0 minorroads 0 0
85 LINESTRING (1479406.673925491981208 6891951.089859411120415,1479430.597819601651281 6891902.512178732082248) 239 footway 0 0 0 minorroads 0 0
86 LINESTRING (1479452.32900111284107 6891899.875594805926085,1479453.635297982487828 6891897.116379988379776) 240 steps 0 0 0 minorroads 0 0
87 LINESTRING (1479410.060966662364081 6891952.4388178139925,1479414.446391870733351 6891954.676862930878997) 241 steps 0 0 0 minorroads 0 0
88 LINESTRING (1479419.643587276339531 6891968.243108676746488,1479421.313781131990254 6891964.763402775861323) 242 steps 0 0 0 minorroads 0 0
89 LINESTRING (1479437.483870248775929 6891905.623962035402656,1479433.219744036672637 6891903.615865284577012) 243 steps 0 0 0 minorroads 0 0
90 LINESTRING (1479414.446391870733351 6891954.676862930878997,1479424.038343177642673 6891959.060980518348515) 244 footway 0 0 0 minorroads 0 0
91 LINESTRING (1479447.374403697205707 6891910.237987771630287,1479437.483870248775929 6891905.623962035402656) 245 footway 0 0 0 minorroads 0 0
92 LINESTRING (1479421.313781131990254 6891964.763402775861323,1479424.038343177642673 6891959.060980518348515,1479447.374403697205707 6891910.237987771630287,1479452.32900111284107 6891899.875594805926085) 246 footway 0 0 0 minorroads 0 0
93 LINESTRING (1479450.229595429031178 6891990.2404032535851,1479444.976415869081393 6891987.649777974933386,1479416.667096548015252 6891974.466727374121547,1479419.643587276339531 6891968.243108676746488) 247 footway 0 0 0 minorroads 0 0
94 LINESTRING (1479453.635297982487828 6891897.116379988379776,1479455.45478290761821 6891893.330125654116273,1479482.747056807857007 6891906.22179246135056,1479488.485432347515598 6891908.93502342607826) 248 footway 0 0 0 minorroads 0 0
95 LINESTRING (1479571.146032168995589 6890409.056526175700128,1479584.125024646287784 6890393.883670332841575) 249 footway 0 0 0 minorroads 0 0
96 LINESTRING (1479124.859037083573639 6890282.417699187062681,1479141.76625086273998 6890264.731641499325633,1479190.089904377469793 6890264.731641499325633,1479210.813371154945344 6890280.333378406241536,1479221.870241096476093 6890288.900553298182786) 250 service 0 0 0 minorroads 0 0
97 LINESTRING (1478931.471116109518334 6891338.793418453074992,1478931.601745795924217 6891332.723570773378015) 251 footway 0 0 0 minorroads 0 0
98 LINESTRING (1479038.970017851097509 6891272.239934901706874,1479061.484977483516559 6891259.410595729015768) 253 footway 0 0 0 minorroads 0 0
99 LINESTRING (1479300.518643385730684 6891457.738833180628717,1479254.406363858142868 6891450.381333781406283,1479213.62190942815505 6891446.33471198566258,1479156.919294558465481 6891446.212087113410234,1479127.704898122698069 6891446.917180147953331,1479088.058788104215637 6891445.828884401358664,1479094.702240758575499 6891400.411828546784818,1479047.694214809220284 6891380.316817537881434,1478962.775587541749701 6891344.388105345889926,1478953.202297617914155 6891347.637623907066882) 254 footway 0 0 0 minorroads 0 0
100 LINESTRING (1479263.55977264419198 6891258.99674641340971,1479214.013798487139866 6891247.240369359962642,1479177.754729644861072 6891220.830734963528812,1479149.939936996437609 6891199.249391805380583,1479148.055137223796919 6891171.123225434683263,1479200.400318960892037 6891168.364260731264949,1479207.734242819016799 6891139.14994818624109,1478898.141884530894458 6890996.773844690993428,1478872.053269889904186 6891032.103237913921475,1478847.513550108298659 6891072.260914628393948,1478835.010422920808196 6891095.865138819441199,1478857.982586456928402 6891105.383485198020935,1478904.402778816176578 6891101.950135124847293,1478961.124055066145957 6891130.857762338593602,1478959.257916682166979 6891138.521519755013287,1478997.224502151831985 6891155.550414878875017,1479010.977942057419568 6891164.624332321807742,1479041.769225431373343 6891166.509623884223402,1479062.08214176655747 6891176.656485269777477,1479078.64411994535476 6891173.376380642876029,1479096.782985062338412 6891175.09307074919343,1479103.650374323595315 6891176.487881724722683,1479123.655377824557945 6891171.812966760247946,1479148.055137223796919 6891171.123225434683263) 255 footway 0 0 0 minorroads 0 0
101 LINESTRING (1479349.467453256715089 6892329.95678826700896,1479339.194361444795504 6892336.594591772183776,1479340.202076172921807 6892354.714443584904075,1479352.994454809231684 6892359.236747993156314) 256 service 0 0 0 minorroads 0 0
102 LINESTRING (1479593.00784336659126 6892275.26026960555464,1479592.009459325810894 6892313.845190985128284,1479549.91870802314952 6892327.672649290412664) 257 footway 0 0 0 minorroads 0 0
103 LINESTRING (1479592.009459325810894 6892313.845190985128284,1479591.281665356131271 6892346.405673980712891,1479550.012014943640679 6892345.179288049228489) 258 footway 0 0 0 minorroads 0 0
104 LINESTRING (1479007.749522649217397 6892003.975329895503819,1479015.932539475848898 6891989.627237430773675) 259 steps 0 0 0 minorroads 0 0
105 LINESTRING (1478994.0800589711871 6892008.788691441528499,1478986.037002523662522 6892003.868025694973767,1479006.424564396496862 6891979.418033379130065,1479038.531475333031267 6891954.814824637956917,1479057.276835423195735 6891941.953738008625805,1479083.216158994706348 6891928.663459150120616,1479132.724810380022973 6891911.878190251998603,1479185.1912911105901 6891905.991857678629458,1479213.509941124590114 6891907.87732311245054) 261 footway 0 0 0 minorroads 0 0
106 LINESTRING (1479344.391556847607717 6891681.793242639862001,1479346.481631841277704 6891681.977185339666903,1479371.403909988934174 6891684.245812286622822) 262 footway 0 0 0 minorroads 0 0
107 LINESTRING (1478964.949638760183007 6892198.842130050994456,1478992.540494801709428 6892200.957607388496399,1479023.751659313682467 6892197.355164431966841) 263 steps 0 0 0 minorroads 0 0
108 LINESTRING (1479332.560239477548748 6891680.720243656076491,1479337.094955755397677 6891635.807700280100107,1479335.769997502909973 6891634.887992111966014,1479334.062480878317729 6891633.339816934429109,1479333.260041374014691 6891630.994562047533691,1479316.203536522807553 6891629.262446126900613) 264 footway 0 0 0 minorroads 0 0
109 LINESTRING (1478922.522982550086454 6892195.055733603425324,1478944.244833362754434 6892195.132381286472082,1478964.949638760183007 6892198.842130050994456) 265 footway 0 0 0 minorroads 0 0
110 LINESTRING (1478944.244833362754434 6892195.132381286472082,1478948.518290270585567 6892151.075413181446493,1478957.111857536714524 6892107.018686534836888,1478968.99915905832313 6892072.619656547904015,1478994.415963881416246 6892026.73918299935758) 266 footway 0 0 0 minorroads 0 0
111 LINESTRING (1479034.351325348485261 6892030.126940387301147,1479031.645424688700587 6892028.762639727443457,1479025.907049149041995 6892025.604821115732193,1478994.0800589711871 6892008.788691441528499) 267 steps 0 0 0 minorroads 0 0
112 LINESTRING (1479023.751659313682467 6892197.355164431966841,1479051.137240131385624 6892183.788532035425305) 269 footway 0 0 0 minorroads 0 0
113 LINESTRING (1479015.932539475848898 6891989.627237430773675,1479030.637709960807115 6891967.752577354200184,1479038.531475333031267 6891954.814824637956917) 270 footway 0 0 0 minorroads 0 0
114 LINESTRING (1478986.037002523662522 6892003.868025694973767,1478968.961836289614439 6891994.609211077913642) 271 footway 0 0 0 minorroads 0 0
115 LINESTRING (1479175.076821058290079 6892272.807519636116922,1479168.890572307631373 6892273.788619532249868) 272 steps 0 0 0 minorroads 0 0
116 LINESTRING (1478966.694478150689974 6892266.047131421044469,1478949.302068391814828 6892240.109368146397173) 273 footway 0 0 0 minorroads 0 0
117 LINESTRING (1479176.037882324540988 6892219.889621376991272,1479174.98351413779892 6892237.625969672575593) 274 footway 0 0 0 minorroads 0 0
118 LINESTRING (1479175.095482441131026 6892253.338843335397542,1479175.076821058290079 6892272.807519636116922) 275 footway 0 0 0 minorroads 0 0
119 LINESTRING (1479017.65871748351492 6892284.044186560437083,1478966.694478150689974 6892266.047131421044469) 276 steps 0 0 0 minorroads 0 0
120 LINESTRING (1479168.890572307631373 6892273.788619532249868,1479040.462928561726585 6892294.161799130029976) 277 footway 0 0 0 minorroads 0 0
121 LINESTRING (1479170.150215718429536 6892218.908528059720993,1479176.037882324540988 6892219.889621376991272) 278 steps 0 0 0 minorroads 0 0
122 LINESTRING (1479176.065874400548637 6891773.136638476513326,1479193.822181151015684 6891798.107181905768812) 279 steps 0 0 0 minorroads 0 0
123 LINESTRING (1479380.146768330130726 6891605.043519286438823,1479379.689564426196739 6891608.752995756454766) 280 steps 0 0 0 minorroads 0 0
124 LINESTRING (1479319.525262851500884 6891600.613609550520778,1479323.005610939580947 6891573.329098201356828) 281 footway 0 0 0 minorroads 0 0
125 LINESTRING (1479319.264003475895151 6891603.648633949458599,1479319.525262851500884 6891600.613609550520778) 282 steps 0 0 0 minorroads 0 0
126 LINESTRING (1479379.689564426196739 6891608.752995756454766,1479375.994610418565571 6891635.010619860142469,1479371.403909988934174 6891684.245812286622822) 283 footway 0 0 0 minorroads 0 0
127 LINESTRING (1479112.365240588784218 6891776.922836208716035,1479157.544450920075178 6891796.972852283157408,1479167.155063610058278 6891794.903467575088143,1479173.182690595509484 6891787.484344554133713,1479176.065874400548637 6891773.136638476513326,1479180.367323384154588 6891714.09057914186269,1479184.668772364966571 6891697.750287312082946,1479189.819314308930188 6891682.835584651678801,1479216.271825936157256 6891656.777074966579676) 284 footway 0 0 0 minorroads 0 0
128 LINESTRING (1479098.593139297328889 6892472.555796183645725,1479118.924717012792826 6892513.39519539475441,1479148.503010437591001 6892548.945877370424569,1479229.493416403187439 6892660.412618377245963,1479234.933209798531607 6892661.685043681412935) 286 footway 0 0 0 minorroads 0 0
129 LINESTRING (1479070.41444966266863 6892513.732458561658859,1479068.343036052072421 6892505.88342846557498) 287 footway 0 0 0 minorroads 0 0
130 LINESTRING (1479074.566607571439818 6892534.336199035868049,1479070.41444966266863 6892513.732458561658859) 288 steps 0 0 0 minorroads 0 0
131 LINESTRING (1477868.43471504189074 6891004.698037818074226,1477945.356939326506108 6891019.718773512169719,1478003.72041735611856 6891029.390302868559957,1478039.289015 6891037.053963554091752,1478070.117621140554547 6891046.449621527455747,1478085.634561822284013 6891052.51925307046622,1478099.238710658624768 6891059.35525771882385,1478109.306527255102992 6891066.405851566232741,1478116.089940288802609 6891073.793654355220497,1478123.5731552161742 6891084.292929342016578,1478128.854326849337667 6891095.068111938424408,1478131.298968139104545 6891104.89300652872771,1478132.073415567399934 6891115.208392390981317,1478133.986207413021475 6891124.680779177695513,1478132.25069871544838 6891137.371955673210323,1478130.169954414712265 6891151.105425273999572,1478121.949614822166041 6891169.866363619454205,1478117.396237158449367 6891177.591468608006835,1478104.967755505582318 6891189.056519051082432,1478093.948208335554227 6891197.226143856532872,1478082.126221658429131 6891203.740390969440341,1478067.458373942412436 6891210.99037102330476,1478049.823366191005334 6891215.036874360404909,1478034.912920482223853 6891216.998816108331084,1478020.459678680170327 6891214.347129329107702,1478000.622627634555101 6891210.745128460228443,1477978.45290360529907 6891202.43754112534225,1477942.063205073587596 6891174.296036006882787,1477908.155470594996586 6891145.7101308433339,1477869.451760460156947 6891113.706299720332026,1477831.671788828447461 6891088.967793419025838,1477825.746799453394488 6891083.940398719161749) 291 service 0 0 1 minorroads 0 0
132 LINESTRING (1478121.949614822166041 6891169.866363619454205,1478201.437779386993498 6891217.397335584275424) 292 service 0 0 0 minorroads 0 0
133 LINESTRING (1477908.155470594996586 6891145.7101308433339,1478070.117621140554547 6891046.449621527455747) 293 service 0 0 0 minorroads 0 0
134 LINESTRING (1477942.063205073587596 6891174.296036006882787,1478116.089940288802609 6891073.793654355220497) 294 service 0 0 0 minorroads 0 0
135 LINESTRING (1477978.45290360529907 6891202.43754112534225,1478132.073415567399934 6891115.208392390981317) 295 service 0 0 0 minorroads 0 0
136 LINESTRING (1478502.968419844750315 6890668.378852861002088,1478491.659621223341674 6890662.079612115398049,1478357.717538550263271 6890547.713233261369169,1478130.104639569995925 6890358.679689854383469,1477868.845265486976132 6890131.995495325885713,1477851.947382397949696 6890112.623956055380404,1477704.587764723692089 6890002.725070449523628,1477682.39004861866124 6889990.909228938631713,1477667.638224675087258 6889991.169759628362954,1477650.339121833909303 6890011.138695799745619,1477637.518751118797809 6890024.67101151868701,1477629.102466995362192 6890037.329800856299698,1477626.90975439385511 6890045.283699262887239,1477621.115394705208018 6890055.337192909792066,1477617.560401076916605 6890072.379119392484426) 297 service 0 0 0 minorroads 0 0
137 LINESTRING (1478249.052300312556326 6891837.149678730405867,1478207.735996438423172 6891845.090029121376574) 298 footway 0 0 0 minorroads 0 0
138 LINESTRING (1478305.754915182245895 6892111.878097912296653,1478297.767842886503786 6892113.47235338576138,1478285.376684002345428 6892102.711135057732463,1478249.565488368039951 6891961.345014753751457,1478246.71029663621448 6891935.132311857305467,1478251.254343609558418 6891925.459692790172994,1478266.19278139132075 6891904.336327421478927) 299 service 0 0 1 minorroads 0 0
139 LINESTRING (1478245.217385928379372 6892482.137093056924641,1478249.798755665076897 6892400.458819705992937,1478255.873036114964634 6892389.436608762480319,1478265.017114208079875 6892376.636146306991577,1478275.60744954738766 6892369.308465602807701,1478290.592540793586522 6892365.292040934786201,1478302.666456150589511 6892364.924124269746244,1478313.993916155071929 6892364.556207627058029,1478330.81715370924212 6892374.796560563147068,1478343.973429331788793 6892389.068690993823111,1478352.007155086379498 6892407.709879103116691,1478350.187670158455148 6892440.240082282572985,1478345.708938032155856 6892489.756148488260806) 300 service 0 0 0 minorroads 0 0
140 LINESTRING (1477998.047356663970277 6891324.661103413440287,1478020.413025221321732 6891332.049143535085022,1478049.879350342787802 6891330.792256562970579,1478086.632945860503241 6891324.339218001812696,1478122.32284249830991 6891312.122909786179662,1478158.218014360172674 6891292.917132769711316,1478184.875801208429039 6891269.342985554598272) 301 service 0 0 1 minorroads 0 0
141 LINESTRING (1477965.529895279556513 6891284.946672138758004,1477998.047356663970277 6891324.661103413440287,1478031.899106987984851 6891366.506316591985524,1478044.019675809424371 6891373.311932296492159,1478056.233551548561081 6891375.8870316343382,1478074.745644338661805 6891370.552898212336004,1478103.446852721972391 6891365.862542429938912,1478147.40374241117388 6891349.476974621415138,1478163.508516683243215 6891340.49481596890837,1478174.164166870061308 6891331.252093238756061,1478176.888728912686929 6891309.486519484780729,1478184.875801208429039 6891269.342985554598272,1478190.875436118105426 6891248.466587806120515) 302 service 0 0 1 minorroads 0 0
142 LINESTRING (1478298.215716100297868 6890783.32936832588166,1478344.18803524854593 6890790.609622975811362,1478360.563399586360902 6890795.406931225210428,1478380.503088242607191 6890801.30777757242322,1478412.759290251415223 6890816.649998326785862,1478421.474156513577327 6890821.386014446616173) 303 service 0 0 0 minorroads 0 0
143 LINESTRING (1477950.162245669867843 6891274.998935245908797,1477965.529895279556513 6891284.946672138758004,1478000.743926630821079 6891290.280748765915632,1478023.613452556543052 6891292.687215525656939,1478047.994550570147112 6891291.46099033113569,1478072.963482179446146 6891288.364772556349635,1478095.851669488241896 6891280.823494642972946,1478111.704515080433339 6891274.615740698762238,1478129.106255532009527 6891265.219816066324711,1478142.495798451593146 6891260.667471537366509,1478156.566481890156865 6891257.203399649821222,1478178.49360792664811 6891255.563330735079944,1478190.875436118105426 6891248.466587806120515,1478201.437779386993498 6891217.397335584275424) 304 service 0 0 1 minorroads 0 0
144 LINESTRING (1478600.64210298541002 6890542.839440878480673,1478535.252613929333165 6890495.358435696922243,1478534.422182349255309 6890488.415626615285873,1478532.957263714633882 6890483.311976070515811,1478532.593366731191054 6890467.096795568242669,1478530.577937269350514 6890451.785894272848964,1478523.999799459474161 6890439.785478501580656,1478517.244378498755395 6890430.773683805018663,1478478.139448614558205 6890386.052035748027265,1478464.246048329630867 6890364.151086367666721,1478458.572987634688616 6890346.725391098298132,1478458.750270782737061 6890330.817005697637796) 305 footway 0 0 0 minorroads 0 0
145 LINESTRING (1478340.343790168641135 6890286.463735183700919,1478368.121260051382706 6890284.593975868076086,1478383.470248277997598 6890287.291333702392876,1478397.167704032035545 6890294.509835544042289,1478446.153836674522609 6890326.924207131378353,1478458.750270782737061 6890330.817005697637796,1478503.892158345319331 6890335.016325954347849,1478531.492345079779625 6890335.338171758688986,1478549.220659751677886 6890332.02775839343667,1478568.049996066605672 6890323.322603833861649,1478581.206271691946313 6890309.513918485492468,1478611.904248145408928 6890269.283422131091356,1478624.873909929767251 6890255.781346369534731,1478640.418842690298334 6890243.183516338467598,1478661.786127212457359 6890232.056982149370015,1478685.187502576736733 6890226.662304446101189,1478711.509384517557919 6890225.466893401928246,1478734.892098498763517 6890232.961204051040113,1478757.192452211398631 6890244.976636931300163,1478770.059476385358721 6890257.712402357719839,1478779.343514857813716 6890266.785306516103446) 306 footway 0 0 0 minorroads 0 0
146 LINESTRING (1478306.762629910372198 6890306.402752917259932,1478312.267738147405908 6890297.314478134736419,1478325.470667231595144 6890295.873841928318143,1478340.343790168641135 6890286.463735183700919) 307 steps 0 0 0 minorroads 0 0
147 LINESTRING (1478502.221964489435777 6891308.628160036168993,1478503.920150421094149 6891293.882785264402628,1478500.98098246450536 6891258.506258369423449,1478495.905086055397987 6891238.197014091536403,1478490.232025357428938 6891222.68538433779031,1478483.513927168212831 6891211.634132778272033,1478480.528105752775446 6891201.47189961373806,1478468.724780458724126 6891168.793432957492769,1478460.224520107498392 6891146.093319251202047,1478452.750635873060673 6891121.906502928584814,1478444.203722060192376 6891086.377458564005792,1478440.9659719618503 6891055.921927305869758,1478442.906755883479491 6891021.588703794404864,1478448.719776954967529 6890994.842611184343696,1478458.880900469142944 6890968.127261942252517,1478497.388666070066392 6890895.277423369698226,1478576.074391131056473 6890758.086094295606017,1478645.634699478745461 6890649.848983596079051,1478661.468883685301989 6890629.219419246539474,1478670.46367070893757 6890619.165207961574197,1478673.300201055128127 6890616.375779623165727,1478677.396374812116846 6890611.777822931297123) 308 cycleway 0 0 0 minorroads 0 0
148 LINESTRING (1478340.343790168641135 6890286.463735183700919,1478296.209617334185168 6890250.693169337697327) 309 footway 0 0 0 minorroads 0 0
149 LINESTRING (1478828.898819707566872 6890880.302901268936694,1478825.987643823958933 6890825.386340913362801,1478839.097265987657011 6890775.359412892721593,1478842.60560615430586 6890756.859950644895434) 310 footway 0 0 0 minorroads 0 0
150 LINESTRING (1478828.898819707566872 6890880.302901268936694,1478877.884952347259969 6890822.336283389478922) 311 footway 0 0 0 minorroads 0 0
151 LINESTRING (1478454.476813877699897 6891793.539206840097904,1478436.776491281576455 6891737.267485307529569,1478426.895288528874516 6891709.308051269501448) 314 service 0 0 1 minorroads 0 0
152 LINESTRING (1478656.850191182689741 6891252.574420961551368,1478692.222844290314242 6891238.886761170811951,1478723.359363270457834 6891253.156875086948276) 316 footway 0 0 0 minorroads 0 0
153 LINESTRING (1478466.158840178279206 6891481.390173728577793,1478483.747194468043745 6891486.157237827777863,1478497.845869976794347 6891492.978283021599054,1478514.510485763195902 6891508.551747220568359,1478523.122714417753741 6891524.799684935249388,1478528.851759261917323 6891543.914046152494848,1478534.506158574018627 6891569.711608147248626,1478542.959765463601798 6891648.515012176707387) 319 service 0 0 0 minorroads 0 0
154 LINESTRING (1478186.172767387935892 6892076.850545356050134,1478159.738917143782601 6891950.645316352136433,1478153.524676317116246 6891922.393888857215643) 324 service 0 0 1 minorroads 0 0
155 LINESTRING (1477992.150359361898154 6891880.024598241783679,1478001.098492924124002 6891901.362505401484668,1478010.111941330833361 6891922.884417406283319,1478034.241110664559528 6892064.219202788546681) 325 service 0 0 0 minorroads 0 0
156 LINESTRING (1478153.524676317116246 6891922.393888857215643,1478129.796726738568395 6891820.855123235844076) 326 service 0 0 1 minorroads 0 0
157 LINESTRING (1478475.106973737478256 6892349.655597596429288,1478483.35530540603213 6892391.046249195933342) 327 service 0 0 1 minorroads 0 0
158 LINESTRING (1478523.77586285257712 6892467.619516485370696,1478535.821786136599258 6892493.496693428605795,1478543.360985215753317 6892518.883388736285269,1478545.749642353737727 6892539.471812217496336,1478544.443345481297001 6892557.070893596857786,1478539.078197620576248 6892576.92356213927269) 328 service 0 0 0 minorroads 0 0
159 LINESTRING (1478418.469673712505028 6892336.287995646707714,1478428.005640867631882 6892332.746811239980161,1478435.218265729257837 6892330.96855472587049,1478454.252877273596823 6892323.31899023335427,1478520.995316658169031 6892314.458381541073322,1478516.460600377526134 6892285.055947243236005,1478513.745369025040418 6892253.890710676088929,1478514.221234314609319 6892241.45837504696101) 331 service 0 0 0 minorroads 0 0
160 LINESTRING (1478129.796726738568395 6891820.855123235844076,1478087.482038826216012 6891839.403020612895489,1478076.089263980044052 6891843.971021738834679,1477992.150359361898154 6891880.024598241783679) 332 service 0 0 1 minorroads 0 0
161 LINESTRING (1478010.111941330833361 6891922.884417406283319,1478076.369184735696763 6891897.95947330724448,1478085.34531037369743 6891892.333743230439723,1478092.147384793264791 6891886.891964479349554,1478098.258988006506115 6891878.798283461481333,1478103.689450711710379 6891867.148302355781198,1478106.675272129941732 6891858.380169824697077,1478109.614440086763352 6891846.147721174173057) 333 service 0 0 0 minorroads 0 0
162 LINESTRING (1478054.423397313337773 6892200.32909594848752,1478083.927045200718567 6892187.697559367865324,1478108.522749131079763 6892177.21217271219939) 336 service 0 0 0 minorroads 0 0
163 LINESTRING (1478515.340917346067727 6892220.410827253945172,1478514.398517462657765 6892233.394996258430183,1478514.221234314609319 6892241.45837504696101) 337 service 0 0 0 minorroads 0 0
164 LINESTRING (1478550.844200145918876 6890545.552211744710803,1478554.819074909435585 6890541.383434292860329,1478590.24771217443049 6890558.411064649000764) 339 steps 0 0 0 minorroads 0 0
165 LINESTRING (1478292.038798042573035 6890286.525038770399988,1478306.762629910372198 6890306.402752917259932,1478342.517841390101239 6890336.334361232817173,1478380.587064470164478 6890360.65674867015332,1478421.67010104469955 6890401.592703618109226,1478455.680473136715591 6890423.769625853747129,1478497.174060156103224 6890463.020016191527247,1478511.655294034164399 6890478.330938881263137,1478535.252613929333165 6890495.358435696922243) 340 path 0 0 0 minorroads 0 0
166 LINESTRING (1478535.252613929333165 6890495.358435696922243,1478532.378760814433917 6890516.49342564959079,1478534.599465494509786 6890529.290926621295512,1478543.332993139745668 6890539.498289315961301,1478550.844200145918876 6890545.552211744710803) 341 path 0 0 0 minorroads 0 0
167 LINESTRING (1478529.290301782777533 6892221.10065860580653,1478531.958879676647484 6892233.824225340969861,1478532.938602331560105 6892274.263839844614267,1478537.202728543663397 6892321.908650481142104,1478524.886215194128454 6892336.410634094849229,1478436.459247756982222 6892347.892667171545327,1478423.265649365726858 6892349.165043009445071) 342 footway 0 0 0 minorroads 0 0
168 LINESTRING (1478454.252877273596823 6892323.31899023335427,1478448.91572148585692 6892291.325800381600857,1478445.295413015875965 6892261.908121032640338,1478513.745369025040418 6892253.890710676088929) 343 service 0 0 0 minorroads 0 0
169 LINESTRING (1478448.91572148585692 6892291.325800381600857,1478516.460600377526134 6892285.055947243236005) 344 service 0 0 0 minorroads 0 0
170 LINESTRING (1478344.18803524854593 6890790.609622975811362,1478348.937357440358028 6890749.870935382321477,1478348.666767374845222 6890739.923860553652048,1478342.881738376105204 6890733.302702005021274,1478318.04343645600602 6890728.520757546648383) 345 service 0 0 0 minorroads 0 0
171 LINESTRING (1478684.179787848610431 6890636.959331315010786,1478689.386313944123685 6890639.28896967228502,1478714.775126691674814 6890647.488689003512263,1478731.701001853682101 6890650.768579075112939,1478743.644287527073175 6890644.500005290843546) 347 path 0 0 0 minorroads 0 0
172 LINESTRING (1478431.579295878997073 6892449.652710394002497,1478423.079035527771339 6892454.803599508479238,1478359.453047247836366 6892490.139400960877538,1478345.708938032155856 6892489.756148488260806) 348 service 0 0 0 minorroads 0 0
173 LINESTRING (1478875.6642476671841 6890806.963398001156747,1478839.097265987657011 6890775.359412892721593) 349 footway 0 0 0 minorroads 0 0
174 LINESTRING (1478600.660764371277764 6890704.365850842557847,1478605.186149956192821 6890712.81086390838027,1478611.820271917851642 6890722.313430053181946,1478614.516841887496412 6890727.034063856117427,1478654.694801344303414 6890781.137629794888198,1478763.126772282179445 6890832.75859528966248) 350 service 0 0 0 minorroads 0 0
175 LINESTRING (1478614.516841887496412 6890727.034063856117427,1478637.041132210055366 6890686.939418164081872,1478692.633394738193601 6890709.071147411130369) 351 footway 0 0 0 minorroads 0 0
176 LINESTRING (1478492.303438970819116 6892407.924498297274113,1478509.257306208834052 6892408.369066645391285,1478526.360464518889785 6892406.008255694061518,1478540.33784103137441 6892401.240646092221141,1478552.645023687975481 6892388.946051742881536,1478560.342844535131007 6892378.199794524349272,1478570.681251191534102 6892353.135470101609826) 353 service 0 0 0 minorroads 0 0
177 LINESTRING (1478953.202297617914155 6891347.637623907066882,1478931.471116109518334 6891338.793418453074992,1478901.864830611506477 6891359.991937587969005,1478864.206157973501831 6891384.041518303565681,1478830.662320480914786 6891409.348070020787418,1478812.290188067127019 6891426.132289689965546,1478755.130369296530262 6891480.654421320185065,1478703.251722156070173 6891549.692815471440554,1478689.134385264245793 6891571.535681317560375,1478657.522001 6891627.055148504674435,1478637.796918255276978 6891670.128218493424356,1478618.799629485467449 6891717.401561643928289,1478619.667383834253997 6891757.486018202267587,1478668.280288797570392 6891771.649751598015428,1478672.507092240964994 6891756.075777715072036,1478697.168111018836498 6891710.1971107237041,1478713.935364418663085 6891684.552383543923497,1478733.277888791868463 6891659.076351834461093,1478767.045662891119719 6891621.092382272705436,1478780.789772106800228 6891606.361762794665992,1478810.078814079985023 6891579.583067904226482,1478855.052749193273485 6891541.890711458399892,1478900.287943673552945 6891515.526093818247318) 354 footway 0 0 0 minorroads 0 0
178 LINESTRING (1478668.280288797570392 6891771.649751598015428,1478660.134594739647582 6891790.028919039294124,1478649.525598014704883 6891813.849854120984674,1478640.558803069638088 6891829.010061269626021,1478646.213202378945425 6891861.185358035378158,1478648.508552593644708 6891887.934333082288504,1478650.589296894380823 6891930.487613770179451,1478650.160085063660517 6891985.994230893440545,1478651.48504331917502 6892023.887949385680258) 355 footway 0 0 0 minorroads 0 0
179 LINESTRING (1478782.749217414064333 6891635.179233017377555,1478773.446517555741593 6891671.001945073716342,1478739.286854397272691 6891804.361326470971107,1478712.246509179938585 6891906.574359148740768,1478678.739994450472295 6892037.714908943511546,1478666.423481103731319 6892094.096039024181664) 356 footway 0 0 0 minorroads 0 0
180 LINESTRING (1478755.130369296530262 6891480.654421320185065,1478793.47951313527301 6891520.001941416412592) 357 footway 0 0 0 minorroads 0 0
181 LINESTRING (1478773.446517555741593 6891671.001945073716342,1478818.709704117616639 6891683.065513053908944) 358 footway 0 0 0 minorroads 0 0
182 LINESTRING (1478767.045662891119719 6891621.092382272705436,1478782.749217414064333 6891635.179233017377555) 359 footway 0 0 0 minorroads 0 0
183 LINESTRING (1477846.171684092143551 6889939.00248887296766,1478169.946694119600579 6890214.401686768047512,1478195.494128623511642 6890209.911240221001208) 360 footway 0 0 0 minorroads 0 0
184 LINESTRING (1478245.217385928379372 6892482.137093056924641,1478237.435588859487325 6892526.349177302792668,1478234.711026813834906 6892557.270186549983919,1478232.518314209766686 6892588.957829094491899,1478340.996938606491312 6892596.776279703713953) 361 service 0 0 0 minorroads 0 0
185 LINESTRING (1478345.708938032155856 6892489.756148488260806,1478245.217385928379372 6892482.137093056924641) 362 service 0 0 0 minorroads 0 0
186 LINESTRING (1478036.723074720241129 6891729.495856549590826,1478044.626170785399154 6891741.988715119659901) 363 footway 0 0 0 minorroads 0 0
187 LINESTRING (1478321.449139009229839 6892126.425690860487521,1478312.127777771092951 6892118.009851474314928,1478305.754915182245895 6892111.878097912296653,1478300.501735622063279 6892101.944667064584792,1478292.346710877027363 6892075.516895382665098,1478267.685692099155858 6891978.835526627488434) 364 service 0 0 1 minorroads 0 0
188 LINESTRING (1478253.503040365641937 6891040.058120541274548,1478253.16713545517996 6891093.259474310092628,1478229.616469018859789 6891186.251565363258123,1478201.437779386993498 6891217.397335584275424) 365 track 0 0 0 minorroads 0 0
189 LINESTRING (1478663.092424082104117 6890614.521270107477903,1478670.46367070893757 6890619.165207961574197) 366 footway 0 0 0 minorroads 0 0
190 LINESTRING (1478362.765442883595824 6892306.640205512754619,1478358.342694909079 6892292.506188929080963) 367 steps 0 0 0 minorroads 0 0
191 LINESTRING (1478318.136743376497179 6892116.154995526187122,1478312.127777771092951 6892118.009851474314928,1478290.126006194157526 6892125.138020876795053) 368 footway 0 0 0 minorroads 0 0
192 LINESTRING (1478439.062510809162632 6892244.340345094911754,1478418.786917239660397 6892247.360282902605832) 369 steps 0 0 0 minorroads 0 0
193 LINESTRING (1478423.918797800550237 6892177.089536693878472,1478404.315014054765925 6892179.250996824353933) 370 steps 0 0 0 minorroads 0 0
194 LINESTRING (1477934.290738694835454 6891718.244636114686728,1477948.034847910283133 6891709.921195707283914,1477965.940445724641904 6891696.585314678959548,1477976.76404836634174 6891682.437042098492384,1477981.336087410105392 6891672.028957143425941,1477988.007532143266872 6891667.445725190453231,1477996.741059794323519 6891667.445725190453231,1478005.073367684613913 6891672.85669831186533,1478008.824305844027549 6891681.593971388414502,1478008.824305844027549 6891692.845140528865159,1478014.64665760868229 6891701.582435327582061,1478025.890141385374591 6891713.247505113482475,1478032.132374287815765 6891720.329329716973007,1478036.723074720241129 6891729.495856549590826,1478027.560335241258144 6891739.060939160175622,1478017.147283044410869 6891743.644211953505874,1478005.073367684613913 6891745.315037799067795,1477993.008783017750829 6891739.474813184700906,1477976.353497921489179 6891744.042757529765368,1477985.926787842530757 6891771.95632619317621) 373 footway 0 0 0 minorroads 0 0
195 LINESTRING (1478002.040892810327932 6891541.829398297704756,1478017.091298892628402 6891529.934653213247657,1478018.332280920585617 6891528.96897236444056,1478035.687367916340008 6891514.468445266596973,1478046.73490715934895 6891504.82698876876384,1478070.192266677971929 6891511.939286240376532,1478108.914638193091378 6891556.621212807483971) 374 service 0 0 0 minorroads 0 0
196 LINESTRING (1478035.687367916340008 6891514.468445266596973,1478084.262950108153746 6891571.137144286185503) 375 service 0 0 0 minorroads 0 0
197 LINESTRING (1478215.200549985514954 6891534.686417824588716,1478178.904158371733502 6891520.431132415309548) 377 service 0 0 1 minorroads 0 0
198 LINESTRING (1478284.536921729333699 6891783.682813100516796,1478291.20836645970121 6891823.66029835306108) 379 steps 0 0 0 minorroads 0 0
199 LINESTRING (1478265.091759745730087 6891789.477083542384207,1478284.536921729333699 6891783.682813100516796) 380 footway 0 0 0 minorroads 0 0
200 LINESTRING (1478207.735996438423172 6891845.090029121376574,1478215.228542061522603 6891874.245591463521123) 381 steps 0 0 0 minorroads 0 0
201 LINESTRING (1478052.874502453953028 6891606.26979230903089,1478077.890087522100657 6891607.710663352161646,1478084.682831245940179 6891608.109202195890248,1478111.340618094196543 6891607.894604350440204,1478134.574041006155312 6891600.184414274990559,1478181.7500194106251 6891550.612513891421258) 382 footway 0 0 0 minorroads 0 0
202 LINESTRING (1478201.437779386993498 6891217.397335584275424,1478240.664008267689496 6891229.552189072594047) 383 service 0 0 0 minorroads 0 0
203 LINESTRING (1478641.370573266642168 6892632.0667141424492,1478562.768824436236173 6892499.644068215973675,1478577.007460321532562 6892490.660624356009066,1478665.649033669615164 6892636.067941721528769,1478671.144811219535768 6892649.037451725453138,1478668.858791697770357 6892665.502320799045265) 384 service 0 0 0 minorroads 0 0
204 LINESTRING (1478577.50198699417524 6892657.315873299725354,1478578.043167128227651 6892638.551463293842971,1478576.540925727691501 6892624.723470226861537,1478569.626883004792035 6892561.378688556142151,1478562.768824436236173 6892499.644068215973675) 385 service 0 0 0 minorroads 0 0
205 LINESTRING (1478354.479788446333259 6892046.069347251206636,1478380.7830090012867 6892040.244233387522399) 389 steps 0 0 0 minorroads 0 0
206 LINESTRING (1478279.339726323960349 6892178.407874005846679,1478258.466968471417204 6892184.15644040890038) 394 steps 0 0 0 minorroads 0 0
207 LINESTRING (1478330.751838867552578 6891513.839987489394844,1478314.572419055039063 6891526.363167470321059,1478304.653893533628434 6891544.619147759862244) 395 service 0 0 1 minorroads 0 0
208 LINESTRING (1478266.771284291520715 6891649.189465964213014,1478247.857971743447706 6891659.628178384155035,1478237.248975021298975 6891675.033351420424879) 396 path 0 0 1 minorroads 0 0
209 LINESTRING (1478502.221964489435777 6891308.628160036168993,1478500.943659695796669 6891361.524732173420489,1478492.462060733232647 6891398.051313592121005,1478467.679742961889133 6891433.934281352907419,1478439.631683016428724 6891460.022724987007678,1478405.05213871714659 6891485.467469537630677,1478373.747667287709191 6891508.950281143188477,1478352.874909435166046 6891537.000988053157926) 398 path 0 0 1 minorroads 0 0
210 LINESTRING (1478314.572419055039063 6891526.363167470321059,1478287.214830313343555 6891523.757363410666585) 399 service 0 0 1 minorroads 0 0
211 LINESTRING (1478034.241110664559528 6892064.219202788546681,1478039.344999152235687 6892078.598087023943663,1478054.283436933998019 6892089.251967732794583,1478158.106046056607738 6892095.843584448099136,1478176.534162622177973 6892091.444062924012542,1478186.172767387935892 6892076.850545356050134) 401 service 0 0 1 minorroads 0 0
212 LINESTRING (1478483.047392571577802 6891339.299239296466112,1478488.347225587582216 6891367.196074674837291,1478478.951218814589083 6891390.17271673399955,1478463.807505809003487 6891415.739864616654813,1478443.457266707671806 6891438.701317322440445,1478427.287177590886131 6891453.830160783603787,1478398.585969207808375 6891473.143619342707098,1478366.227129588602111 6891491.920637429691851,1478330.751838867552578 6891513.839987489394844,1478321.794374612625688 6891529.076270229183137,1478316.746470273472369 6891546.32058884575963) 405 service 0 0 1 minorroads 0 0
213 LINESTRING (1478057.465202880557626 6892224.90239691734314,1478093.024469834985211 6892209.925397932529449,1478146.34004353149794 6892186.425209088250995) 406 service 0 0 0 minorroads 0 0
214 LINESTRING (1478066.245383990462869 6892248.387368608266115,1478102.47646076255478 6892233.011756023392081,1478190.418232214171439 6892193.645416352897882) 407 service 0 0 0 minorroads 0 0
215 LINESTRING (1478266.323411077726632 6892206.675530795939267,1478258.466968471417204 6892184.15644040890038) 408 footway 0 0 0 minorroads 0 0
216 LINESTRING (1478294.147534419083968 6892193.936677500605583,1478302.395866084843874 6892198.198289232328534,1478342.172605789732188 6892190.916759766638279,1478366.684333492536098 6892186.885094705037773,1478394.974991430528462 6892184.217758473940194,1478408.691108567407355 6892187.253003220073879,1478423.946789876557887 6892198.397573292255402) 409 cycleway 0 0 1 minorroads 0 0
217 LINESTRING (1478426.568714311579242 6892198.351584662683308,1478423.918797800550237 6892177.089536693878472) 410 footway 0 0 0 minorroads 0 0
218 LINESTRING (1478290.126006194157526 6892125.138020876795053,1478295.649775819852948 6892148.408088837750256) 411 steps 0 0 0 minorroads 0 0
219 LINESTRING (1478379.915254652500153 6892302.271228101104498,1478362.765442883595824 6892306.640205512754619) 412 footway 0 0 0 minorroads 0 0
220 LINESTRING (1478435.358226108597592 6892223.185482617467642,1478439.258455337258056 6892236.184985723346472,1478439.062510809162632 6892244.340345094911754) 413 footway 0 0 0 minorroads 0 0
221 LINESTRING (1478083.927045200718567 6892187.697559367865324,1478093.024469834985211 6892209.925397932529449,1478102.47646076255478 6892233.011756023392081,1478106.442004830343649 6892242.715404408052564,1478115.819350223056972 6892267.411472347564995) 414 service 0 0 0 minorroads 0 0
222 LINESTRING (1478258.466968471417204 6892184.15644040890038,1478255.191895604366437 6892172.015472995117307,1478188.91599081363529 6892168.2597481533885,1478009.794697806239128 6892157.437138617038727,1477988.875286494847387 6892163.798869086429477,1478001.574358213692904 6892194.411893087439239,1477860.755555583396927 6892253.814062429592013,1477862.994921646546572 6892261.662846405990422,1477820.493619899032637 6892278.142251771874726,1477774.316025526728481 6892297.166425926610827,1477770.956976432120427 6892291.555746189318597,1477604.488101679133251 6892361.919472146779299) 415 footway 0 0 0 minorroads 0 0
223 LINESTRING (1478148.495433366857469 6891955.366671485826373,1478146.871892969822511 6891953.542511217296124) 416 steps 0 0 0 minorroads 0 0
224 LINESTRING (1478159.738917143782601 6891950.645316352136433,1478148.495433366857469 6891955.366671485826373) 418 footway 0 0 0 minorroads 0 0
225 LINESTRING (1478188.91599081363529 6892168.2597481533885,1478189.345202641561627 6892164.39671871624887) 419 footway 0 0 0 minorroads 0 0
226 LINESTRING (1478136.794745683437213 6891958.003273610956967,1478133.109122371301055 6891956.638985191471875) 420 footway 0 0 0 minorroads 0 0
227 LINESTRING (1478191.565907321637496 6892107.493896978907287,1478186.172767387935892 6892076.850545356050134) 421 footway 0 0 0 minorroads 0 0
228 LINESTRING (1478146.871892969822511 6891953.542511217296124,1478136.794745683437213 6891958.003273610956967) 422 footway 0 0 0 minorroads 0 0
229 LINESTRING (1478174.164166870061308 6891331.252093238756061,1478183.056316283298656 6891328.90692647267133,1478203.341240539913997 6891334.992099165916443) 423 footway 0 0 0 minorroads 0 0
230 LINESTRING (1478742.832517329836264 6890551.621465139091015,1478732.372811674140394 6890553.414654522202909) 424 footway 0 0 0 minorroads 0 0
231 LINESTRING (1478670.46367070893757 6890619.165207961574197,1478689.983478227397427 6890631.901566152460873,1478689.386313944123685 6890639.28896967228502) 425 steps 0 0 0 minorroads 0 0
232 LINESTRING (1478744.437396341003478 6890562.901705839671195,1478742.832517329836264 6890551.621465139091015) 426 footway 0 0 0 minorroads 0 0
233 LINESTRING (1478711.369424138218164 6890558.916836394928396,1478701.861449058866128 6890559.085426985286176,1478696.636261577485129 6890557.292236343957484) 427 footway 0 0 0 minorroads 0 0
234 LINESTRING (1478942.192081137793139 6890130.999331175349653,1478929.446355960331857 6890151.520337683148682,1478917.950943500734866 6890148.838351035490632,1478911.232845311518759 6890147.79620789270848,1478903.646992770954967 6890148.57781523745507,1478894.801496819360182 6890155.535656509920955,1478878.239518640562892 6890175.397721116431057,1478845.694065183168277 6890222.738904757425189,1478818.970963490428403 6890267.812139219604433,1478806.281222464516759 6890296.624811832793057,1478797.323758209589869 6890324.257487938739359,1478792.845026083523408 6890342.311500664800406,1478787.022674316074699 6890377.546061621978879,1478784.932599325431511 6890395.446932943537831,1478779.85670291329734 6890416.060571308247745,1478771.794985085725784 6890435.172296620905399,1478761.046027981443331 6890455.172988045029342,1478735.965128068579361 6890488.553563161753118,1478725.962626316817477 6890506.531313234940171,1478713.720758504699916 6890536.540298494510353,1478704.016838894458488 6890553.276716859079897,1478701.861449058866128 6890559.085426985286176,1478700.424522500019521 6890562.96301154140383,1478697.149449632968754 6890575.208834332413971,1478693.557133241556585 6890582.672818078659475,1478677.396374812116846 6890611.777822931297123) 428 cycleway 0 0 1 minorroads 0 0
235 LINESTRING (1478732.372811674140394 6890553.414654522202909,1478711.369424138218164 6890558.916836394928396) 429 steps 0 0 0 minorroads 0 0
236 LINESTRING (1478677.396374812116846 6890611.777822931297123,1478687.081633039517328 6890607.195195377804339,1478692.78268580744043 6890602.581917437724769,1478698.707675185520202 6890595.562383316457272,1478713.562136739492416 6890570.764165580272675,1478718.376773776020855 6890564.786856304854155,1478726.401168837677687 6890560.541436778381467,1478737.066149717196822 6890558.610308059491217,1478744.437396341003478 6890562.901705839671195) 430 cycleway 0 0 0 minorroads 0 0
237 LINESTRING (1478643.236711653415114 6892266.522351266816258,1478653.985668757697567 6892305.935037068091333) 431 steps 0 0 0 minorroads 0 0
238 LINESTRING (1478772.90533742448315 6891164.83891832921654,1478775.947142997290939 6891159.152391017414629) 433 steps 0 0 0 minorroads 0 0
239 LINESTRING (1478772.90533742448315 6891164.83891832921654,1478769.872862547170371 6891170.280208340846002) 434 steps 0 0 0 minorroads 0 0
240 LINESTRING (1478723.359363270457834 6891253.156875086948276,1478731.085176187567413 6891239.193315446376801) 435 steps 0 0 0 minorroads 0 0
241 LINESTRING (1478786.593462488148361 6891171.828294342383742,1478772.90533742448315 6891164.83891832921654) 436 steps 0 0 0 minorroads 0 0
242 LINESTRING (1478668.765484777279198 6892171.203009921126068,1478681.837784175062552 6892208.622385010123253) 437 footway 0 0 0 minorroads 0 0
243 LINESTRING (1478710.221749030752108 6891380.163537707179785,1478748.841482935240492 6891408.183139178901911,1478750.819589622784406 6891407.692642033100128,1478767.596173715544865 6891418.790147279389203,1478786.602793178288266 6891409.302085905335844,1478804.489729615394026 6891405.224828724749386,1478817.935256686527282 6891406.941568339243531,1478830.662320480914786 6891409.348070020787418) 438 footway 0 0 0 minorroads 0 0
244 LINESTRING (1478666.796708779875189 6891437.429085585288703,1478710.221749030752108 6891380.163537707179785,1478724.544361143605784 6891353.262972820550203,1478732.932653188472614 6891356.113968593068421,1478780.79910279950127 6891268.009469541721046) 439 footway 0 0 0 minorroads 0 0
245 LINESTRING (1478650.160085063660517 6891985.994230893440545,1478681.333926809718832 6891992.585762946866453,1478677.928224253468215 6892027.842886608093977,1478677.741610415279865 6892034.388465284369886,1478678.739994450472295 6892037.714908943511546) 440 footway 0 0 0 minorroads 0 0
246 LINESTRING (1478168.15520126442425 6892347.494091650471091,1478160.606671495363116 6892351.387868744321167) 441 service 0 0 0 minorroads 0 0
247 LINESTRING (1478168.15520126442425 6892347.494091650471091,1478229.02863542875275 6892316.635208372958004,1478258.448307088343427 6892304.662668073549867,1478284.107709898613393 6892296.859831305220723,1478311.735888709081337 6892290.911897944286466,1478306.995897207176313 6892268.867791567929089,1478278.453310589306056 6892275.014994577504694,1478250.899777316488326 6892283.385009210556746,1478219.585975191090256 6892296.139333989471197,1478179.24006327916868 6892316.972463291138411,1478168.15520126442425 6892347.494091650471091) 442 service 0 0 -1 minorroads 0 0
248 LINESTRING (1478466.102856026496738 6890932.568242912180722,1478535.261944622267038 6890968.449133092537522,1478563.813861930277199 6890983.239892659708858) 443 service 0 0 0 minorroads 0 0
249 LINESTRING (1478535.261944622267038 6890968.449133092537522,1478551.870576259680092 6890937.856104321777821) 444 service 0 0 0 minorroads 0 0
250 LINESTRING (1478201.335141776595265 6891732.714873464778066,1478206.95221831719391 6891742.801134817302227,1478218.783535687020048 6891781.920006790198386,1478228.459463221486658 6891817.743372742086649,1478231.855835082009435 6891832.934244934469461,1478232.47166075091809 6891843.219907283782959,1478248.548442946979776 6891921.397502834908664,1478245.795888828579336 6891933.921317706815898,1478285.656604760792106 6892105.271138682030141,1478298.74756553885527 6892115.112597333267331) 445 cycleway 0 0 0 minorroads 0 0
251 LINESTRING (1478294.147534419083968 6892193.936677500605583,1478283.305270394310355 6892188.264751724898815,1478292.328049491159618 6892184.800280102528632,1478299.932563415030017 6892178.361885491758585,1478303.198305588914081 6892173.471774934791028,1478305.997513171983883 6892166.573504913598299,1478306.128142858389765 6892160.089136488735676,1478302.031969098607078 6892141.893076196312904,1478301.080238522263244 6892130.840560940094292,1478301.957323563983664 6892124.540174165740609,1478298.74756553885527 6892115.112597333267331) 446 cycleway 0 0 0 minorroads 0 0
252 LINESTRING (1478201.335141776595265 6891732.714873464778066,1478215.956336030969396 6891726.108225850388408,1478246.253092732280493 6891712.113187463954091) 447 cycleway 0 0 0 minorroads 0 0
253 LINESTRING (1478001.098492924124002 6891901.362505401484668,1478060.320394612615928 6891876.636904109269381,1478078.972447784850374 6891865.860673903487623,1478082.060906813945621 6891858.579445453360677,1478079.243037850596011 6891849.841980019584298,1478076.089263980044052 6891843.971021738834679) 448 service 0 0 1 minorroads 0 0
254 LINESTRING (1477667.806177130201831 6890740.184415513649583,1477692.989714653696865 6890752.445835038088262,1477718.966360991122201 6890765.105770315043628,1477746.939775401959196 6890778.731316149234772,1477774.325356219662353 6890792.081001562997699,1477799.844798653386533 6890804.495769085362554,1477826.689199339831248 6890817.569612891413271,1477853.21635650168173 6890830.490208609960973,1477870.412821729434654 6890838.874046353623271,1477884.222245789365843 6890845.602580599486828,1477896.118878001114354 6890851.39617495983839,1477908.761965568177402 6890857.557621157728136,1477917.271556612337008 6890861.695908572524786) 450 service 0 0 0 minorroads 0 0
255 LINESTRING (1478824.485402423189953 6889940.611638756468892,1478826.332879424327984 6889961.990374932065606,1478873.471535062883049 6890004.119678050279617,1478895.202716574305668 6890003.031577592715621) 451 service 0 0 0 minorroads 0 0
256 LINESTRING (1478826.332879424327984 6889961.990374932065606,1478844.583712844643742 6889961.729845183901489,1478857.460067708510906 6889965.62246694136411,1478866.314894350245595 6889971.446077805943787,1478871.148192772408947 6889978.863525116816163,1478873.051653927890584 6889986.694763084873557,1478873.471535062883049 6890004.119678050279617) 452 service 0 0 0 minorroads 0 0
257 LINESTRING (1477976.540111759677529 6891214.653682666830719,1477971.902757871197537 6891228.034747345373034) 453 steps 0 0 0 minorroads 0 0
258 LINESTRING (1477938.965415351791307 6891251.148941309191287,1477930.74507576203905 6891262.215574943460524) 454 footway 0 0 0 minorroads 0 0
259 LINESTRING (1477687.951141010504216 6891192.24466432724148,1477663.122169780312106 6891154.109624875709414) 455 steps 0 0 0 minorroads 0 0
260 LINESTRING (1477691.104914883850142 6891132.620425897650421,1477676.838286919984967 6891143.564276114106178,1477663.122169780312106 6891154.109624875709414) 456 footway 0 0 0 minorroads 0 0
261 LINESTRING (1477462.521623944398016 6891132.436495768837631,1477442.441974906018004 6891104.218598398379982,1477409.887190758716315 6891028.072153965942562,1477358.950943501666188 6890905.500577809289098,1477348.043364635203034 6890881.83560439478606,1477342.883491998305544 6890867.014377377927303) 457 service 0 0 1 minorroads 0 0
262 LINESTRING (1477831.671788828447461 6891088.967793419025838,1477945.356939326506108 6891019.718773512169719) 458 service 0 0 0 minorroads 0 0
263 LINESTRING (1477869.451760460156947 6891113.706299720332026,1478003.72041735611856 6891029.390302868559957) 459 service 0 0 0 minorroads 0 0
264 LINESTRING (1477845.527866347460076 6891886.3401223346591,1477791.073948236415163 6891868.1293527437374) 460 footway 0 0 0 minorroads 0 0
265 LINESTRING (1477453.480183461913839 6891871.563030050136149,1477488.80618311651051 6891880.361834840849042,1477497.931599820964038 6891882.584530951455235) 461 footway 0 0 0 minorroads 0 0
266 LINESTRING (1477532.912363875191659 6891765.932137601077557,1477528.760205966420472 6891769.565044686198235,1477518.44979138020426 6891779.850625957362354,1477476.415024229325354 6891823.798257810994983,1477453.480183461913839 6891871.563030050136149,1477446.790077348472551 6891924.126067938283086,1477455.001086245523766 6891954.247648754157126,1477479.27954665129073 6891990.056453500874341,1477520.185300080571324 6892012.866254753433168,1477559.542158647440374 6892023.489389923401177,1477605.402509489562362 6892027.306364,1477641.698901103343815 6892021.588568172417581,1477698.606791194295511 6891999.713821127079427,1477758.453849244629964 6891976.490170946344733,1477766.870133368065581 6891969.990626736544073,1477805.835102870129049 6891944.375728919170797,1477826.847821102011949 6891917.074721806682646,1477845.527866347460076 6891886.3401223346591,1477851.910059632034972 6891830.496958760544658,1477838.539178092731163 6891786.549290280789137,1477791.7177659785375 6891729.219940873794258,1477778.748104193946347 6891722.337380684912205,1477750.625398713862523 6891707.238689129240811,1477722.110804171767086 6891695.68092814553529,1477715.271406986285001 6891692.891126264818013,1477715.271406986285001 6891689.074310968630016) 462 footway 0 0 0 minorroads 0 0
267 LINESTRING (1477698.606791194295511 6891999.713821127079427,1477684.106895933393389 6891965.959072479978204) 463 footway 0 0 0 minorroads 0 0
268 LINESTRING (1477641.698901103343815 6892021.588568172417581,1477630.651361857540905 6891980.675021766684949) 464 footway 0 0 0 minorroads 0 0
269 LINESTRING (1477758.453849244629964 6891976.490170946344733,1477733.382280024467036 6891937.293706933036447) 465 footway 0 0 0 minorroads 0 0
270 LINESTRING (1477589.372380752116442 6891940.098922687582672,1477608.183055686764419 6891941.662485988810658,1477621.553937226068228 6891941.61649882979691,1477645.869720400776714 6891935.300931309349835,1477672.452861708588898 6891925.796931291930377,1477690.274483300978318 6891915.112609200179577,1477708.749253325397149 6891903.569878341630101,1477733.260981028201059 6891876.943482707254589,1477740.81884149601683 6891855.620969253592193,1477739.204631788888946 6891837.83947719540447,1477727.531936184270307 6891822.342019217088819,1477711.119249074719846 6891813.175386519171298,1477692.793770122574642 6891811.21329927444458,1477669.625662055332214 6891811.627177014946938,1477646.289601535769179 6891816.425094575621188,1477623.009525167988613 6891825.009235370904207,1477603.237788961268961 6891833.317466095089912,1477582.868888476863503 6891847.971857075579464,1477568.835527812829241 6891862.702919281087816,1477557.713343029376119 6891874.904735265299678,1477552.590793161420152 6891893.192165004089475,1477556.323069932172075 6891914.928661165758967,1477568.508953595301136 6891930.993471848778427,1477589.372380752116442 6891940.098922687582672) 466 footway 0 0 0 minorroads 0 0
271 LINESTRING (1477630.651361857540905 6891980.675021766684949,1477621.553937226068228 6891941.61649882979691) 467 footway 0 0 0 minorroads 0 0
272 LINESTRING (1477733.382280024467036 6891937.293706933036447,1477725.65646710456349 6891926.732001763768494) 468 footway 0 0 0 minorroads 0 0
273 LINESTRING (1477692.793770122574642 6891811.21329927444458,1477692.383219677722082 6891764.399265908636153) 469 footway 0 0 0 minorroads 0 0
274 LINESTRING (1477623.009525167988613 6891825.009235370904207,1477605.701091633876786 6891783.682813100516796) 470 footway 0 0 0 minorroads 0 0
275 LINESTRING (1477568.835527812829241 6891862.702919281087816,1477532.959017333807424 6891828.534867286682129) 471 footway 0 0 0 minorroads 0 0
276 LINESTRING (1477712.416215251665562 6892167.769204625859857,1477622.598974722903222 6892203.119073937647045,1477613.996076758485287 6892205.019938614219427,1477434.361595695605502 6891964.472149926237762,1477394.239620390348136 6891910.743844576179981,1477429.593612115131691 6891873.494474177248776,1477436.890213207341731 6891866.151923180557787,1477441.835479930043221 6891855.605640362016857,1477443.235083720181137 6891845.319962166249752,1477442.451305598951876 6891835.080283679999411,1477436.778244903776795 6891818.847047658637166,1477420.038983579957858 6891781.7513905512169,1477621.376654078019783 6891628.511351731605828,1477646.028342162957415 6891609.810656713321805,1477673.292623987188563 6891591.493214836344123) 472 service 0 0 0 minorroads 0 0
277 LINESTRING (1477815.604337325086817 6892123.712386487983167,1477827.603607150260359 6892118.301109884865582,1477942.464424828533083 6892069.323857038281858,1477932.499245842685923 6892029.866343609988689,1477907.651613229420036 6891922.531850008293986,1477868.882588252890855 6891831.89188345707953,1477820.43763574725017 6891737.451429275795817,1477790.495445336448029 6891720.130057509988546,1477761.831559722078964 6891708.204391392879188,1477715.271406986285001 6891689.074310968630016,1477648.389007219579071 6891687.173568284139037,1477635.969856259413064 6891687.173568284139037) 473 service 0 0 0 minorroads 0 0
278 LINESTRING (1477679.992060790536925 6892101.331492725759745,1477711.445823292247951 6892094.893164958804846,1477740.706873192451894 6892082.721673713997006,1477770.406465607928112 6892066.840511322021484) 474 footway 0 0 0 minorroads 0 0
279 LINESTRING (1477679.992060790536925 6892101.331492725759745,1477656.320095360744745 6892053.243440655060112,1477653.212974948808551 6892047.832211491651833,1477641.698901103343815 6892021.588568172417581) 475 footway 0 0 0 minorroads 0 0
280 LINESTRING (1477656.320095360744745 6892053.243440655060112,1477710.120865036733449 6892026.509244767017663,1477767.52328180288896 6891994.900465020909905) 476 footway 0 0 0 minorroads 0 0
281 LINESTRING (1477710.120865036733449 6892026.509244767017663,1477698.606791194295511 6891999.713821127079427) 477 footway 0 0 0 minorroads 0 0
282 LINESTRING (1477648.389007219579071 6891687.173568284139037,1477621.376654078019783 6891628.511351731605828) 478 service 0 0 0 minorroads 0 0
283 LINESTRING (1477932.499245842685923 6892029.866343609988689,1477886.685548456618562 6892048.276759926229715,1477859.551896321587265 6892044.52109289355576,1477838.193942492129281 6892048.522028035484254,1477825.345579701242968 6892061.076699531637132,1477818.552835974609479 6892075.225638516247272,1477816.938626270508394 6892089.72717712726444,1477827.603607150260359 6892118.301109884865582) 479 service 0 0 0 minorroads 0 0
284 LINESTRING (1477793.089377692667767 6892048.154125873930752,1477798.221258256351575 6892062.103761437349021,1477809.315450964029878 6892056.815160491503775,1477818.552835974609479 6892075.225638516247272) 480 footway 0 0 0 minorroads 0 0
285 LINESTRING (1477653.212974948808551 6892047.832211491651833,1477598.712403376353905 6892069.354515632614493,1477624.567750717513263 6892151.274696073494852,1477622.598974722903222 6892203.119073937647045) 481 footway 0 0 0 minorroads 0 0
286 LINESTRING (1477420.038983579957858 6891781.7513905512169,1477396.65626959851943 6891799.042237523943186,1477337.518344137584791 6891842.192873341962695,1477394.239620390348136 6891910.743844576179981) 482 service 0 0 0 minorroads 0 0
287 LINESTRING (1476971.260693745920435 6891517.24285698775202,1477003.171660154126585 6891536.188589158467948,1476982.261579535668716 6891598.958142179064453,1476967.575070433784276 6891697.474372724071145,1476966.875268540112302 6891701.980978826992214,1476966.007514191325754 6891708.173734177835286,1476958.244378502713516 6891776.202385487966239,1476938.295359153533354 6891904.612249108031392,1476921.612081981264055 6892006.780568920075893,1476991.209713097894564 6892086.753286531195045,1477034.942666180199012 6892055.404867491684854,1477081.764078291598707 6892021.849164674989879,1477195.953086152207106 6891932.158478451892734,1477145.837939785327762 6891865.492780096828938) 483 service 0 0 0 minorroads 0 0
288 LINESTRING (1477366.966007873183116 6891868.589220155961812,1477374.589183179894462 6891866.535145924426615,1477381.72716250969097 6891866.059949724003673,1477387.073648984543979 6891867.378236030228436,1477393.241236352361739 6891869.064416506327689,1477400.024649386061355 6891868.911127359606326,1477405.669718005461618 6891867.424222765490413,1477410.885574793908745 6891865.109557402320206,1477415.000409936532378 6891861.675882850773633,1477418.340797648299485 6891857.813000736758113,1477420.710793400416151 6891853.612884988076985,1477422.185042725177482 6891848.309092325158417,1477422.492955556837842 6891842.898001108318567,1477421.839807122014463 6891837.241651857271791,1477418.331466958159581 6891830.450972235761583,1477407.787785074906424 6891815.995887773111463,1477396.65626959851943 6891799.042237523943186) 484 service 0 0 0 minorroads 0 0
289 LINESTRING (1477698.644113963004202 6891577.758992903865874,1477820.43763574725017 6891737.451429275795817) 485 service 0 0 1 minorroads 0 0
290 LINESTRING (1477687.456614337861538 6891609.488759884610772,1477698.756082263542339 6891624.587267857044935,1477700.855487952940166 6891631.31645973585546,1477700.70619688089937 6891638.674124730750918,1477699.073325790930539 6891646.231066821143031,1477695.555654934141785 6891652.009909689426422,1477690.4051129873842 6891656.97634560521692,1477684.937327513471246 6891659.873434635810554,1477677.034231450874358 6891661.329643805511296,1477668.60861663450487 6891660.256647552363575,1477661.470637307269499 6891656.961017092689872,1477656.077497370773926 6891652.5923927500844,1477652.401204751804471 6891646.859534942544997,1477649.816603085491806 6891639.394563124515116,1477650.255145606352016 6891626.01281373295933,1477656.189465674338862 6891614.179257809184492,1477665.128268546424806 6891606.315777552314103,1477673.292623987188563 6891591.493214836344123,1477691.888693005079404 6891579.199858834967017,1477698.644113963004202 6891577.758992903865874) 486 service 0 0 0 minorroads 0 0
291 LINESTRING (1477181.042640446452424 6891986.515421602874994,1477192.79931227886118 6892009.585808921605349,1477209.538573602680117 6892019.396492030471563,1477223.357328352984041 6892015.226950248703361,1477241.897413221886382 6892003.868025694973767,1477254.251249337336048 6892002.672350356355309,1477481.09903157921508 6892286.972161007113755,1477529.711936542764306 6892276.82389810308814,1477549.437019285047427 6892291.479097588919103,1477584.352468494558707 6892335.368207341991365,1477604.488101679133251 6892361.919472146779299) 490 service 0 0 0 minorroads 0 0
292 LINESTRING (1477583.904595280997455 6891294.219997277483344,1477610.217146528884768 6891274.416479538194835,1477654.062067914754152 6891332.033815642818809,1477629.401049136882648 6891352.74182316660881) 491 service 0 0 0 minorroads 0 0
293 LINESTRING (1477868.005503211170435 6891418.483586152084172,1477848.45770361693576 6891433.290501792915165,1477828.732620871858671 6891448.066788487136364,1477807.514627421740443 6891462.582523957826197) 492 service 0 0 0 minorroads 0 0
294 LINESTRING (1477807.514627421740443 6891462.582523957826197,1477751.623782749054953 6891507.58606893569231,1477629.401049136882648 6891352.74182316660881) 493 service 0 0 0 minorroads 0 0
295 LINESTRING (1477629.401049136882648 6891352.74182316660881,1477583.904595280997455 6891294.219997277483344) 494 service 0 0 0 minorroads 0 0
296 LINESTRING (1477583.904595280997455 6891294.219997277483344,1477558.161216243170202 6891260.008378100581467) 495 service 0 0 0 minorroads 0 0
297 LINESTRING (1477601.101060511544347 6890443.310502992011607,1477582.691605331841856 6890428.290844186209142,1477188.208611846435815 6890073.681786119006574) 496 service 0 0 0 minorroads 0 0
298 LINESTRING (1477130.610250554978848 6890845.357349183410406,1477112.210126065183431 6890858.29331654496491) 500 steps 0 0 0 minorroads 0 0
299 LINESTRING (1477083.490256302058697 6890932.47628013510257,1477087.66107559367083 6890947.466226569376886,1477089.116663535358384 6890956.187384136021137) 502 footway 0 0 0 minorroads 0 0
300 LINESTRING (1477087.66107559367083 6890947.466226569376886,1477145.95923878159374 6890906.512165016494691,1477156.708195885876194 6890900.657222660258412,1477187.527471335837618 6890885.774652787484229,1477210.406327954260632 6890875.919371928088367,1477223.142722439020872 6890877.1455337414518) 503 footway 0 0 0 minorroads 0 0
301 LINESTRING (1477406.453496126458049 6891175.721502039581537,1477391.981592941563576 6891187.615723043680191,1477374.197294117882848 6891201.563865466974676,1477022.420877606840804 6891477.159598301164806,1476986.90826411684975 6891504.980270971544087,1476971.260693745920435 6891517.24285698775202,1476941.243857803056017 6891507.294832653366029) 505 service 0 0 0 minorroads 0 0
302 LINESTRING (1477358.950943501666188 6890905.500577809289098,1477336.324015568709001 6890915.141315577551723,1477320.424516517668962 6890921.931222087703645,1477285.014540638308972 6890925.701691834256053,1477178.570007083471864 6890971.238683593459427,1477158.975554024800658 6890984.971869397908449,1477098.400702007813379 6891032.118565235286951) 506 service 0 0 0 minorroads 0 0
303 LINESTRING (1477095.414880589582026 6891011.595310922712088,1477098.400702007813379 6891032.118565235286951,1477105.977223855676129 6891139.563791322521865) 507 footway 0 0 0 minorroads 0 0
304 LINESTRING (1477677.911316492594779 6891115.560924383811653,1477665.996022895211354 6891125.600428977049887,1477664.307167656254023 6891126.872611372731626,1477657.943635757779703 6891131.777412844821811) 508 service 0 0 0 minorroads 0 0
305 LINESTRING (1477768.558988607022911 6891022.355068786069751,1477796.73767824168317 6891035.567212809808552,1477831.550489834975451 6891054.557791966944933,1477842.486060780240223 6891060.520138014107943) 509 service 0 0 0 minorroads 0 0
306 LINESTRING (1477556.62165207369253 6890751.633515411056578,1477574.769847880583256 6890734.436881551519036,1477588.150060110026971 6890725.838578412309289,1477599.608149800915271 6890720.106381432153285,1477612.997692723292857 6890719.156124571338296,1477625.40751299331896 6890720.106381432153285,1477644.516770066693425 6890726.804162795655429,1477667.806177130201831 6890740.184415513649583) 510 service 0 0 0 minorroads 0 0
307 LINESTRING (1477782.620341347064823 6891064.459273951128125,1477796.73767824168317 6891035.567212809808552,1477810.771038905717432 6891005.403092133812606) 511 service 0 0 0 minorroads 0 0
308 LINESTRING (1477872.456243261462077 6890928.291974918916821,1477851.564824028639123 6890914.007110533304513) 512 service 0 0 0 minorroads 0 0
309 LINESTRING (1477853.21635650168173 6890830.490208609960973,1477820.027085299603641 6890898.649376915767789) 513 service 0 0 0 minorroads 0 0
310 LINESTRING (1477799.844798653386533 6890804.495769085362554,1477766.64619676116854 6890872.63939,1477751.77307382132858 6890903.186189386062324) 514 service 0 0 0 minorroads 0 0
311 LINESTRING (1477724.163556393934414 6890895.04751749522984,1477741.136085020378232 6890860.209190255962312,1477774.325356219662353 6890792.081001562997699) 515 service 0 0 0 minorroads 0 0
312 LINESTRING (1477695.984866762068123 6890883.337653747759759,1477713.750504202675074 6890846.874718683771789,1477746.939775401959196 6890778.731316149234772) 516 service 0 0 0 minorroads 0 0
313 LINESTRING (1477668.114089961862192 6890869.497352491132915,1477685.777089789044112 6890833.233730419538915,1477718.966360991122201 6890765.105770315043628) 517 service 0 0 0 minorroads 0 0
314 LINESTRING (1477754.656257629161701 6891051.660921058617532,1477768.558988607022911 6891022.355068786069751,1477783.898646140703931 6890993.049323340877891) 518 service 0 0 0 minorroads 0 0
315 LINESTRING (1477642.893229672452435 6890855.289227482862771,1477659.791112761478871 6890820.589014776051044,1477692.989714653696865 6890752.445835038088262) 519 service 0 0 0 minorroads 0 0
316 LINESTRING (1477623.998578510247171 6890830.107035243883729,1477634.607575237983838 6890808.327491325326264,1477667.806177130201831 6890740.184415513649583) 520 service 0 0 0 minorroads 0 0
317 LINESTRING (1477781.379359321901575 6890910.619823455810547,1477793.499928140547127 6890885.713344623334706,1477826.689199339831248 6890817.569612891413271) 521 service 0 0 0 minorroads 0 0
318 LINESTRING (1477870.412821729434654 6890838.874046353623271,1477837.214219840010628 6890907.017958667129278) 522 service 0 0 0 minorroads 0 0
319 LINESTRING (1477091.775910733500496 6890789.490762358531356,1476942.736768513685092 6890783.32936832588166) 524 footway 0 0 0 minorroads 0 0
320 LINESTRING (1477536.616648569935933 6891975.447790859267116,1477569.955210844287649 6891984.997836984694004,1477600.793147677090019 6891986.469434185884893,1477630.651361857540905 6891980.675021766684949,1477684.106895933393389 6891965.959072479978204,1477713.899795272154734 6891950.844594269990921,1477733.382280024467036 6891937.293706933036447,1477770.46244975971058 6891905.470672187395394,1477791.073948236415163 6891868.1293527437374,1477793.630557826953009 6891835.402189544402063,1477787.742891217814758 6891810.416201460175216,1477774.064096846850589 6891789.768330050632358,1477751.353192683542147 6891775.144702635705471,1477724.723397911060601 6891766.315355568192899,1477692.383219677722082 6891764.399265908636153,1477662.301068890141323 6891765.901480161584914,1477631.080573685467243 6891773.381898197345436,1477605.701091633876786 6891783.682813100516796,1477577.802322755102068 6891796.129769561812282,1477555.511299735167995 6891809.818378160707653,1477532.959017333807424 6891828.534867286682129,1477517.423415269004181 6891848.12514582183212,1477505.610759282018989 6891863.929231609217823,1477497.931599820964038 6891882.584530951455235,1477494.936447712592781 6891903.999089813791215,1477496.830578175140545 6891922.010663450695574,1477500.497540106996894 6891936.419951410032809,1477507.775479810545221 6891951.089859411120415,1477523.27375910943374 6891966.464932785369456,1477536.616648569935933 6891975.447790859267116) 535 footway 0 0 0 minorroads 0 0
321 LINESTRING (1477161.457518077688292 6890758.668512595817447,1477029.446888633305207 6890709.37768148444593) 538 footway 0 0 0 minorroads 0 0
322 LINESTRING (1477131.048793075839058 6890631.24252425506711,1477164.126095974352211 6890700.488198084756732,1477179.391107973642647 6890738.498471793718636) 539 service 0 0 0 minorroads 0 0
323 LINESTRING (1477519.588135797530413 6890535.436799609102309,1477529.833235539030284 6890516.294183277525008,1477567.697183395503089 6890475.526233145967126,1477601.101060511544347 6890443.310502992011607,1477654.556594587164 6890383.078775299713016,1477699.67982076969929 6890328.610064546577632,1477708.963859239360318 6890318.096450427547097,1477743.879308448871598 6890287.352637302130461,1477755.803932736394927 6890280.6858737943694,1477780.185030752792954 6890271.551650473847985,1477786.39927157945931 6890262.126246342435479,1477776.443423286313191 6890246.309983272105455,1477725.507176032289863 6890206.493598283268511,1477672.238255794625729 6890175.474349547177553,1477612.512496743584052 6890149.129538116045296,1477598.469805386383086 6890135.673640975728631,1477603.097828581929207 6890120.148812685161829,1477617.560401076916605 6890072.379119392484426,1477630.968605382135138 6890069.988343353383243,1477642.156105010071769 6890079.5361262653023,1478111.629869545809925 6890480.982382909394801) 540 service 0 0 0 minorroads 0 0
324 LINESTRING (1477457.678994829300791 6890649.726370869204402,1477478.663720985176042 6890623.471964616328478,1477502.205056728795171 6890571.39254963491112) 542 service 0 0 0 minorroads 0 0
325 LINESTRING (1477394.202297621639445 6890700.610811580903828,1477457.678994829300791 6890649.726370869204402) 543 service 0 0 0 minorroads 0 0
326 LINESTRING (1477202.689845727290958 6890575.867871635593474,1477215.379586750175804 6890595.455097910948098,1477325.491082236869261 6890699.476636806502938,1477343.788569116033614 6890718.313154872506857,1477379.665079592028633 6890708.013604944571853,1477394.202297621639445 6890700.610811580903828) 544 service 0 0 0 minorroads 0 0
327 LINESTRING (1477179.129848600830883 6890751.863417183049023,1477161.457518077688292 6890758.668512595817447,1477091.775910733500496 6890789.490762358531356,1477003.218313615769148 6890845.05080992449075,1476929.076635525561869 6890897.699098956771195,1476846.1361149456352 6890928.598517356440425,1476697.29291725391522 6891011.472692683339119,1476669.580762218683958 6891010.522401385009289,1476642.055221018847078 6890998.321897276677191) 545 footway 0 0 0 minorroads 0 0
328 LINESTRING (1477179.391107973642647 6890738.498471793718636,1477173.72737796837464 6890740.307029619812965,1477160.067244980484247 6890746.192508741281927,1477144.335698384558782 6890708.933207083493471,1477164.126095974352211 6890700.488198084756732) 546 service 0 0 0 minorroads 0 0
329 LINESTRING (1477825.784122222103179 6891305.424640764482319,1477810.183205312816426 6891318.392004153691232,1477807.579942266456783 6891320.553233419544995,1477805.405891042202711 6891322.361922188661993) 547 service 0 0 0 minorroads 0 0
330 LINESTRING (1477434.361595695605502 6891964.472149926237762,1477445.68905570008792 6891957.957286356948316,1477455.001086245523766 6891954.247648754157126,1477500.497540106996894 6891936.419951410032809) 548 footway 0 0 0 minorroads 0 0
331 LINESTRING (1477654.071398604661226 6891729.08198303822428,1477655.685608308762312 6891734.416354355402291) 549 footway 0 0 0 minorroads 0 0
332 LINESTRING (1477751.353192683542147 6891775.144702635705471,1477778.748104193946347 6891722.337380684912205) 550 footway 0 0 0 minorroads 0 0
333 LINESTRING (1477530.710320580750704 6892072.497022124007344,1477532.408506509615108 6892059.927003527060151,1477512.972675218945369 6892026.631878494285047,1477520.185300080571324 6892012.866254753433168,1477536.616648569935933 6891975.447790859267116) 551 footway 0 0 0 minorroads 0 0
334 LINESTRING (1477188.460540529107675 6890785.490453751757741,1477179.129848600830883 6890751.863417183049023,1477173.72737796837464 6890740.307029619812965) 555 footway 0 0 0 minorroads 0 0
335 LINESTRING (1477233.434475639369339 6890900.503951973281801,1477229.739521637326106 6890892.028087645769119,1477223.142722439020872 6890877.1455337414518,1477221.817764186300337 6890863.182627168484032) 557 footway 0 0 0 minorroads 0 0
336 LINESTRING (1477682.39004861866124 6889990.909228938631713,1477660.640205727424473 6889979.016778235323727,1477638.041269867448136 6889962.005700208246708,1477601.502280263695866 6889935.768864835612476,1477037.424630233086646 6889460.654818921349943,1476851.809175638016313 6889334.68986457772553,1476836.674793327925727 6889326.736669098958373,1476816.165932461619377 6889319.151258772239089,1476789.40550800296478 6889310.018127746880054,1476760.433709556935355 6889300.195426267571747,1476743.535826465114951 6889295.567574185319245,1476724.081333788577467 6889290.40338478051126,1476703.572472922271118 6889300.655146818608046) 558 service 0 0 0 minorroads 0 0
337 LINESTRING (1477637.518751118797809 6890024.67101151868701,1477572.987685721367598 6889974.54178845603019,1477564.646047132555395 6889952.427406344562769,1477559.635465567931533 6889940.856842578388751,1477558.403814232908189 6889935.079229551367462) 560 service 0 0 0 minorroads 0 0
338 LINESTRING (1477699.67982076969929 6890328.610064546577632,1477733.204996876418591 6890359.445991663262248,1477739.904433685587719 6890365.024671027436852) 561 service 0 0 0 minorroads 0 0
339 LINESTRING (1477962.600058013107628 6891779.436749854125082,1477953.866530364844948 6891751.538483916781843,1477943.453478170791641 6891735.30541658680886) 562 footway 0 0 0 minorroads 0 0
340 LINESTRING (1477349.881510943174362 6890675.812269823625684,1477337.537005520658568 6890685.851225290447474) 563 footway 0 0 0 minorroads 0 0
341 LINESTRING (1477178.570007083471864 6890971.238683593459427,1477201.355556778842583 6891033.344750871881843,1477171.068130770465359 6891047.170006854459643,1477173.083560226485133 6891051.921486127190292,1477200.823707337491214 6891117.231619697995484,1477217.040449918713421 6891155.381811781786382,1477226.044567629694939 6891176.595174888148904,1477236.019077305682003 6891188.397431484423578,1477262.11702263681218 6891201.349278477951884,1477343.11675929534249 6891166.862158128991723) 564 service 0 0 0 minorroads 0 0
342 LINESTRING (1477555.511299735167995 6891809.818378160707653,1477539.014636401087046 6891785.00108590349555) 565 footway 0 0 0 minorroads 0 0
343 LINESTRING (1477397.141465578228235 6890736.030863894149661,1477364.94124772422947 6890746.376430032774806) 566 steps 0 0 0 minorroads 0 0
344 LINESTRING (1477192.883288506418467 6890795.897391020320356,1477199.097529330058023 6890810.090084169991314,1477209.725187440868467 6890834.291289354674518) 567 steps 0 0 0 minorroads 0 0
345 LINESTRING (1476986.90826411684975 6891504.980270971544087,1476978.417334458557889 6891488.410481329075992,1476982.625476519111544 6891477.634771515615284,1477001.21221484686248 6891429.979636301286519,1477055.871408184524626 6891387.674252809025347,1476926.19345171796158 6891217.903148794546723,1476932.389031158527359 6891202.544834636151791,1477041.110253545222804 6891117.369567033834755,1477044.021429431624711 6891042.633113135583699,1477037.135378784500062 6891030.999671006575227,1477030.258658833103254 6891020.699720491655171) 568 service 0 0 0 minorroads 0 0
346 LINESTRING (1477851.564824028639123 6890914.007110533304513,1477837.214219840010628 6890907.017958667129278,1477820.027085299603641 6890898.649376915767789,1477793.499928140547127 6890885.713344623334706,1477766.64619676116854 6890872.63939,1477741.136085020378232 6890860.209190255962312,1477713.750504202675074 6890846.874718683771789,1477685.777089789044112 6890833.233730419538915,1477659.791112761478871 6890820.589014776051044,1477634.607575237983838 6890808.327491325326264) 569 service 0 0 0 minorroads 0 0
347 LINESTRING (1477657.943635757779703 6891131.777412844821811,1477634.971472224220634 6891151.028787543997169) 572 service 0 0 1 minorroads 0 0
348 LINESTRING (1477547.608203666983172 6890950.087170991115272,1477521.230337577406317 6890965.031168691813946,1477512.394172318745404 6890970.012507430277765,1477494.852471484802663 6890979.95986695215106,1477486.482840825803578 6890984.695979272015393,1477470.17279132688418 6890993.938303586095572,1477464.826304849237204 6890996.973098964430392,1477447.863106921315193 6891006.567964611575007,1477439.782727705081925 6891011.135492536239326,1477421.92378334957175 6891021.251503217034042,1477409.887190758716315 6891028.072153965942562) 573 service 0 0 1 minorroads 0 0
349 LINESTRING (1477634.971472224220634 6891151.028787543997169,1477612.559150202432647 6891120.695631274022162) 574 service 0 0 1 minorroads 0 0
350 LINESTRING (1477805.405891042202711 6891322.361922188661993,1477795.459373445017263 6891330.2404525866732,1477820.325667443918064 6891360.42112004570663,1477845.29459905042313 6891389.191724671050906,1477868.005503211170435 6891418.483586152084172,1477915.246796463150531 6891483.398165013641119,1477941.960567463189363 6891518.177879937924445,1478007.443363436963409 6891603.372722592204809,1478079.075085395481437 6891736.240464904345572) 575 service 0 0 0 minorroads 0 0
351 LINESTRING (1477604.488101679133251 6892361.919472146779299,1477636.333753245649859 6892365.016103434376419,1477641.120398203376681 6892375.777672911994159,1477651.720064238179475 6892399.615673690102994,1477661.713235300034285 6892422.135367657989264,1477671.743729121983051 6892444.701114750467241,1477677.360805668402463 6892457.31772515270859,1477696.218134059105068 6892478.028631558641791,1477711.763066816842183 6892498.678270866163075) 576 service 0 0 0 minorroads 0 0
352 LINESTRING (1477022.420877606840804 6891477.159598301164806,1477104.59628144861199 6891583.522458178922534,1477116.763503728900105 6891599.280038581229746,1477202.167326975846663 6891709.829224040731788,1477215.323602598393336 6891726.859329365193844,1477316.235035840189084 6891857.49109398201108,1477337.518344137584791 6891842.192873341962695) 577 service 0 0 0 minorroads 0 0
353 LINESTRING (1476941.243857803056017 6891507.294832653366029,1476903.80912177474238 6891496.304502658545971,1476881.984633348649368 6891489.881987628526986,1476860.79463197151199 6891483.674072253517807,1476837.299949686974287 6891476.761065948754549,1476802.673751928843558 6891462.735805360600352,1476793.585657987510785 6891460.084037529304624) 578 service 0 0 0 minorroads 0 0
354 LINESTRING (1477751.623782749054953 6891507.58606893569231,1477741.089431561529636 6891515.342154928483069) 579 service 0 0 0 minorroads 0 0
355 LINESTRING (1477612.559150202432647 6891120.695631274022162,1477582.075779662933201 6891143.656241306103766,1477566.754783512093127 6891124.2362818159163,1477529.049457415007055 6891078.468512326478958) 580 service 0 0 0 minorroads 0 0
356 LINESTRING (1477634.971472224220634 6891151.028787543997169,1477614.761193496640772 6891168.440898629836738,1477601.101060511544347 6891175.721502039581537,1477585.4534901403822 6891184.105699811130762,1477566.950728042982519 6891186.788031838834286,1477558.702396374428645 6891184.381596778519452,1477547.496235363651067 6891176.426571349613369,1477507.896778806811199 6891126.826628868468106) 581 service 0 0 0 minorroads 0 0
357 LINESTRING (1477793.089377692667767 6892048.154125873930752,1477767.52328180288896 6891994.900465020909905,1477758.453849244629964 6891976.490170946344733) 582 footway 0 0 0 minorroads 0 0
358 LINESTRING (1477215.323602598393336 6891726.859329365193844,1477568.294347681337968 6891455.945442079566419,1477586.535850405925885 6891442.410717039369047) 585 service 0 0 0 minorroads 0 0
359 LINESTRING (1476860.79463197151199 6891483.674072253517807,1476960.819649475859478 6891630.565365144982934,1476941.281180571764708 6891746.219429916702211,1476922.526489791693166 6891772.308886986225843,1476902.138927918858826 6891980.215147942304611,1476921.612081981264055 6892006.780568920075893) 586 service 0 0 0 minorroads 0 0
360 LINESTRING (1477202.167326975846663 6891709.829224040731788,1477555.511299735167995 6891439.437065890990198,1477573.715479691047221 6891425.779744077473879) 587 service 0 0 0 minorroads 0 0
361 LINESTRING (1477696.218134059105068 6892478.028631558641791,1477691.039600039366633 6892481.830491381697357,1477655.918875608593225 6892510.237186400219798,1477625.398182300385088 6892475.315208514221013,1477531.120871023042127 6892361.674194470979273,1477492.827711335849017 6892391.613455899991095,1477584.249830884160474 6892505.760787431150675,1477625.398182300385088 6892475.315208514221013) 588 service 0 0 0 minorroads 0 0
362 LINESTRING (1477584.249830884160474 6892505.760787431150675,1477550.510048857657239 6892529.55318315140903,1477537.027199015021324 6892540.912850533612072) 589 service 0 0 0 minorroads 0 0
363 LINESTRING (1478066.245383990462869 6892248.387368608266115,1478062.709051750600338 6892246.839075284078717,1478053.341037050588056 6892250.855440765619278,1478053.117100443691015 6892255.760928054340184) 590 path 0 0 0 minorroads 0 0
364 LINESTRING (1478057.465202880557626 6892224.90239691734314,1478055.188514051726088 6892228.182930614799261,1478045.251327144447714 6892231.816046603955328,1478042.116214653942734 6892230.589678158052266) 591 path 0 0 0 minorroads 0 0
365 LINESTRING (1477784.906360871624202 6892316.451251152902842,1477641.120398203376681 6892375.777672911994159) 592 service 0 0 0 minorroads 0 0
366 LINESTRING (1477794.470320102758706 6892339.154669879004359,1477651.720064238179475 6892399.615673690102994) 593 service 0 0 0 minorroads 0 0
367 LINESTRING (1477818.590158740524203 6892272.577574365772307,1477820.493619899032637 6892278.142251771874726,1477867.380346852121875 6892398.006031540222466) 594 footway 0 0 0 minorroads 0 0
368 LINESTRING (1477804.024948637932539 6892361.87348258215934,1477661.713235300034285 6892422.135367657989264) 595 service 0 0 0 minorroads 0 0
369 LINESTRING (1478053.117100443691015 6892255.760928054340184,1477964.606156779220328 6892292.444870038889349,1477895.484390949364752 6892321.126831811852753) 596 service 0 0 0 minorroads 0 0
370 LINESTRING (1478032.020405984483659 6892209.480840558186173,1477946.392646130407229 6892246.195230620913208,1477870.356837577652186 6892278.801428685896099) 597 service 0 0 0 minorroads 0 0
371 LINESTRING (1478042.116214653942734 6892230.589678158052266,1477955.219480698928237 6892268.637846413999796,1477881.059141225880012 6892301.121497599408031) 598 service 0 0 0 minorroads 0 0
372 LINESTRING (1477974.254092237679288 6892334.525068153627217,1477970.353863011812791 6892307.008119508624077,1477964.606156779220328 6892292.444870038889349,1477955.219480698928237 6892268.637846413999796,1477946.392646130407229 6892246.195230620913208,1477939.861161776585504 6892229.639242734760046) 599 service 0 0 0 minorroads 0 0
373 LINESTRING (1477813.588907869067043 6892385.481493636965752,1477671.743729121983051 6892444.701114750467241) 600 service 0 0 0 minorroads 0 0
374 LINESTRING (1477315.871138856979087 6890705.699273365549743,1477293.813383128261194 6890711.002312272787094) 601 steps 0 0 0 minorroads 0 0
375 LINESTRING (1477327.739778992719948 6890696.79446735791862,1477325.491082236869261 6890699.476636806502938,1477315.871138856979087 6890705.699273365549743) 602 footway 0 0 0 minorroads 0 0
376 LINESTRING (1477191.548999560764059 6890584.63460551109165,1477193.573759709950536 6890604.436424199491739,1477192.715336051303893 6890631.717647477984428,1477189.860144322039559 6890651.550235321745276,1477182.722164992243052 6890668.118300231173635,1477164.126095974352211 6890700.488198084756732) 603 footway 0 0 0 minorroads 0 0
377 LINESTRING (1477337.537005520658568 6890685.851225290447474,1477327.739778992719948 6890696.79446735791862) 604 steps 0 0 0 minorroads 0 0
378 LINESTRING (1477317.485348558053374 6890876.701050061732531,1477328.215644282288849 6890898.603395721875131,1477336.324015568709001 6890915.141315577551723,1477340.560149707831442 6890923.770475399680436,1477391.543050420703366 6891037.789675366133451,1477433.661793799139559 6891131.76208533346653,1477423.286064371000975 6891138.966017907485366,1477419.021938158897683 6891141.924230385571718,1477415.15903169894591 6891144.591220805421472,1477411.258802472846583 6891147.304194730706513,1477406.565464430022985 6891150.59961626958102,1477402.814526273403317 6891153.297264670953155,1477398.149180306354538 6891156.699981558136642) 606 footway 0 0 0 minorroads 0 0
379 LINESTRING (1477001.21221484686248 6891429.979636301286519,1477012.810264917090535 6891381.604368223808706,1476990.127352835144848 6891349.568942168727517,1476972.175101556349546 6891324.201267114840448,1476953.905606755753979 6891298.404492945410311,1476935.21623081760481 6891272.010018249042332,1476926.622663548681885 6891259.870428316295147,1476909.556828004540876 6891253.110891866497695,1476842.273208488477394 6891436.264150676317513,1476866.915565874893218 6891446.33471198566258,1476891.623238111380488 6891456.405285906977952,1476916.274926193524152 6891463.640165685676038,1476941.495786485727876 6891471.074317997321486,1476963.730825359700248 6891477.604115179739892,1476982.625476519111544 6891477.634771515615284) 607 service 0 0 0 minorroads 0 0
380 LINESTRING (1477430.340067470446229 6891165.329400658607483,1477423.817913812352344 6891156.408757981844246) 608 steps 0 0 0 minorroads 0 0
381 LINESTRING (1477438.401785300811753 6891159.091080768965185,1477431.627702959813178 6891150.078479750081897) 609 steps 0 0 0 minorroads 0 0
382 LINESTRING (1477391.543050420703366 6891037.789675366133451,1477409.887190758716315 6891028.072153965942562) 610 footway 0 0 0 minorroads 0 0
383 LINESTRING (1476990.127352835144848 6891349.568942168727517,1476941.495786485727876 6891471.074317997321486) 611 service 0 0 0 minorroads 0 0
384 LINESTRING (1477422.772876315517351 6891171.353139204904437,1477416.036116740433499 6891162.723713628947735) 612 steps 0 0 0 minorroads 0 0
385 LINESTRING (1477391.981592941563576 6891187.615723043680191,1477474.922113521490246 6891297.515479031950235,1477487.751814926741645 6891314.146186651661992,1477573.715479691047221 6891425.779744077473879,1477586.535850405925885 6891442.410717039369047,1477691.888693005079404 6891579.199858834967017) 614 service 0 0 0 minorroads 0 0
386 LINESTRING (1477374.197294117882848 6891201.563865466974676,1477456.410020725568756 6891311.233894356526434,1477469.668933961540461 6891328.61569665838033,1477555.511299735167995 6891439.437065890990198,1477568.294347681337968 6891455.945442079566419,1477673.292623987188563 6891591.493214836344123) 615 service 0 0 0 minorroads 0 0
387 LINESTRING (1477173.083560226485133 6891051.921486127190292,1477137.272364595206454 6891079.863306542858481,1477118.508343119407073 6891093.428076104260981) 616 footway 0 0 0 minorroads 0 0
388 LINESTRING (1477088.584814094239846 6891117.76808157004416,1477048.864058541134 6891148.239174656569958,1477017.643563339253888 6891172.196156406775117,1476959.317408075323328 6891216.922177751548588) 617 footway 0 0 0 minorroads 0 0
389 LINESTRING (1477024.818865434965119 6891578.770664696581662,1477055.012984525877982 6891556.5139145758003) 618 steps 0 0 0 minorroads 0 0
390 LINESTRING (1477044.683908559381962 6891600.613609550520778,1477072.899920959956944 6891578.770664696581662) 619 steps 0 0 0 minorroads 0 0
391 LINESTRING (1477081.764078291598707 6892021.849164674989879,1477121.027629941003397 6892015.901434796862304,1477150.913836200255901 6892003.71473397128284,1477181.042640446452424 6891986.515421602874994,1477246.96397894108668 6891938.244107788428664) 620 service 0 0 0 minorroads 0 0
392 LINESTRING (1477137.272364595206454 6891079.863306542858481,1477179.68035942222923 6891133.754661783576012,1477203.753544606966898 6891164.777608038857579,1477227.313541733426973 6891196.827625382691622,1477267.108942821156234 6891248.650520586408675,1477275.89845462096855 6891259.655839771032333) 621 footway 0 0 0 minorroads 0 0
393 LINESTRING (1477038.329707350814715 6891342.288181316107512,1477049.825119810411707 6891333.827179099433124,1477076.091017599450424 6891312.613401100039482) 622 steps 0 0 0 minorroads 0 0
394 LINESTRING (1477050.459606862161309 6891150.522978541441262,1477048.864058541134 6891148.239174656569958,1477039.906594285974279 6891136.728199865669012) 623 steps 0 0 0 minorroads 0 0
395 LINESTRING (1477019.500371033092961 6891174.066122156567872,1477017.643563339253888 6891172.196156406775117,1477008.994011918548495 6891161.221612081862986) 624 steps 0 0 0 minorroads 0 0
396 LINESTRING (1477236.019077305682003 6891188.397431484423578,1477227.313541733426973 6891196.827625382691622) 625 footway 0 0 0 minorroads 0 0
397 LINESTRING (1476959.317408075323328 6891216.922177751548588,1477000.549735719105229 6891270.170685262419283,1477025.378706949297339 6891302.251778436824679,1477049.825119810411707 6891333.827179099433124,1477089.85378819797188 6891385.528333493508399,1477098.167434711009264 6891396.257935808971524) 626 footway 0 0 0 minorroads 0 0
398 LINESTRING (1477203.753544606966898 6891164.777608038857579,1477217.040449918713421 6891155.381811781786382) 627 footway 0 0 0 minorroads 0 0
399 LINESTRING (1477227.313541733426973 6891196.827625382691622,1477200.506463813129812 6891216.600296653807163) 628 steps 0 0 0 minorroads 0 0
400 LINESTRING (1477176.405286555178463 6891136.161081690341234,1477179.68035942222923 6891133.754661783576012,1477200.823707337491214 6891117.231619697995484) 629 footway 0 0 0 minorroads 0 0
401 LINESTRING (1476989.203614334575832 6891279.551287890411913,1477000.549735719105229 6891270.170685262419283,1477004.487287716707215 6891266.890542482957244) 630 steps 0 0 0 minorroads 0 0
402 LINESTRING (1477014.592427076306194 6891310.758730973117054,1477025.378706949297339 6891302.251778436824679) 631 steps 0 0 0 minorroads 0 0
403 LINESTRING (1477657.813006068347022 6891744.87050611898303,1477663.094177704304457 6891744.042757529765368,1477667.983460275456309 6891744.012100178748369,1477687.633897485909984 6891746.357388046570122,1477693.166997798951343 6891746.265415959060192,1477698.485492197796702 6891744.747876695357263,1477702.80560256447643 6891741.75878503266722,1477705.595479451818392 6891737.66603057552129,1477709.299764146795496 6891729.863744132220745,1477713.694520050892606 6891719.654869962483644,1477722.110804171767086 6891695.68092814553529) 632 footway 0 0 0 minorroads 0 0
404 LINESTRING (1477488.80618311651051 6891880.361834840849042,1477485.269850873854011 6891887.59709616843611,1477482.47064329078421 6891890.678215784020722,1477476.881558825960383 6891894.065915833227336,1477471.292474361369386 6891894.939666754566133,1477465.274178063031286 6891895.246246046386659,1477471.124521903228015 6891926.686014686711133,1477472.029599023750052 6891931.560646092519164) 633 footway 0 0 0 minorroads 0 0
405 LINESTRING (1477471.124521903228015 6891926.686014686711133,1477496.830578175140545 6891922.010663450695574) 634 footway 0 0 0 minorroads 0 0
406 LINESTRING (1477105.706633787136525 6892515.296133446507156,1477093.642049120273441 6892467.834137276746333,1477084.078089892165735 6892430.22959574777633,1477075.652475078590214 6892397.070906250737607,1477065.827256471849978 6892358.362946599721909) 635 footway 0 0 0 minorroads 0 0
407 LINESTRING (1477084.078089892165735 6892430.22959574777633,1477114.505476279882714 6892422.533946882933378,1477144.70892606372945 6892414.914955166168511) 636 footway 0 0 0 minorroads 0 0
408 LINESTRING (1477136.208665715297684 6892506.573284320533276,1477124.26538004190661 6892460.322412922978401,1477114.505476279882714 6892422.533946882933378) 637 footway 0 0 0 minorroads 0 0
409 LINESTRING (1477166.915972861694172 6892497.804454318247736,1477154.860718884970993 6892452.826025616377592,1477144.70892606372945 6892414.914955166168511,1477135.490202432963997 6892380.483947849832475,1477125.282425462966785 6892342.404590574093163) 638 footway 0 0 0 minorroads 0 0
410 LINESTRING (1477093.642049120273441 6892467.834137276746333,1477124.26538004190661 6892460.322412922978401,1477154.860718884970993 6892452.826025616377592,1477172.812970160972327 6892448.211688437499106,1477176.834498385898769 6892435.687072315253317,1477157.23071463429369 6892374.474633106961846,1477135.490202432963997 6892380.483947849832475,1477075.652475078590214 6892397.070906250737607,1477052.30708386329934 6892403.555465837940574,1477067.898670082679018 6892466.684383096173406,1477073.991611915640533 6892473.5982407303527,1477093.642049120273441 6892467.834137276746333) 639 footway 0 0 0 minorroads 0 0
411 LINESTRING (1477104.59628144861199 6891583.522458178922534,1477136.936459684744477 6891559.073744270019233,1477456.410020725568756 6891311.233894356526434,1477474.922113521490246 6891297.515479031950235) 640 service 0 0 0 minorroads 0 0
412 LINESTRING (1477116.763503728900105 6891599.280038581229746,1477149.467578951269388 6891573.988217326812446,1477469.668933961540461 6891328.61569665838033,1477487.751814926741645 6891314.146186651661992) 641 service 0 0 0 minorroads 0 0
413 LINESTRING (1477358.950943501666188 6890905.500577809289098,1477389.145062592579052 6890890.97052111569792,1477415.597574219573289 6890878.233752502128482,1477438.168518 6890867.382225495763123,1477521.230337577406317 6890965.031168691813946) 642 service 0 0 0 minorroads 0 0
414 LINESTRING (1477293.813383128261194 6890711.002312272787094,1477245.060517788399011 6890724.566459476016462,1477179.129848600830883 6890751.863417183049023) 643 footway 0 0 0 minorroads 0 0
415 LINESTRING (1477623.578697375254706 6892624.202238139696419,1477621.787204523105174 6892605.299932564608753,1477625.295544689754024 6892598.999173911288381,1477697.6923833838664 6892539.977708619087934,1477702.124462053878233 6892533.431718253530562,1477700.025056370068341 6892524.555547795258462,1477695.331718327244744 6892512.33741554338485) 644 service 0 0 0 minorroads 0 0
416 LINESTRING (1476916.274926193524152 6891463.640165685676038,1476972.175101556349546 6891324.201267114840448) 645 service 0 0 0 minorroads 0 0
417 LINESTRING (1477411.258802472846583 6891147.304194730706513,1477420.178943959064782 6891159.366976878605783) 646 footway 0 0 0 minorroads 0 0
418 LINESTRING (1476866.915565874893218 6891446.33471198566258,1476935.21623081760481 6891272.010018249042332) 647 service 0 0 0 minorroads 0 0
419 LINESTRING (1477412.387816194444895 6891165.681934850290418,1477402.814526273403317 6891153.297264670953155) 648 footway 0 0 0 minorroads 0 0
420 LINESTRING (1477427.587513351812959 6891153.35857486911118,1477419.021938158897683 6891141.924230385571718) 649 footway 0 0 0 minorroads 0 0
421 LINESTRING (1477423.817913812352344 6891156.408757981844246,1477415.15903169894591 6891144.591220805421472) 650 footway 0 0 0 minorroads 0 0
422 LINESTRING (1477431.627702959813178 6891150.078479750081897,1477423.286064371000975 6891138.966017907485366) 651 footway 0 0 0 minorroads 0 0
423 LINESTRING (1477420.178943959064782 6891159.366976878605783,1477426.701097617158666 6891168.180329788476229) 652 steps 0 0 0 minorroads 0 0
424 LINESTRING (1477434.221635316265747 6891162.217903890646994,1477427.587513351812959 6891153.35857486911118) 653 steps 0 0 0 minorroads 0 0
425 LINESTRING (1477416.036116740433499 6891162.723713628947735,1477406.565464430022985 6891150.59961626958102) 654 footway 0 0 0 minorroads 0 0
426 LINESTRING (1477790.178201811853796 6892050.76009990926832,1477793.089377692667767 6892048.154125873930752) 655 footway 0 0 0 minorroads 0 0
427 LINESTRING (1477418.975284700049087 6891174.204070466570556,1477412.387816194444895 6891165.681934850290418) 656 steps 0 0 0 minorroads 0 0
428 LINESTRING (1477426.897042148280889 6891184.442907216027379,1477421.92378334957175 6891178.005313728936017,1477418.975284700049087 6891174.204070466570556) 657 footway 0 0 0 minorroads 0 0
429 LINESTRING (1477446.136928913649172 6891169.391208594664931,1477441.434260177891701 6891163.137557985261083,1477438.401785300811753 6891159.091080768965185) 658 footway 0 0 0 minorroads 0 0
430 LINESTRING (1477430.68530307081528 6891181.484679089859128,1477425.721374965040013 6891175.108398336917162,1477422.772876315517351 6891171.353139204904437) 659 footway 0 0 0 minorroads 0 0
431 LINESTRING (1477437.991234855726361 6891175.767484820447862,1477433.279235429828987 6891169.360553430393338,1477430.340067470446229 6891165.329400658607483) 660 footway 0 0 0 minorroads 0 0
432 LINESTRING (1477426.701097617158666 6891168.180329788476229,1477429.630934883840382 6891172.134846064262092,1477434.426910537295043 6891178.633745247498155) 661 footway 0 0 0 minorroads 0 0
433 LINESTRING (1477442.022093768231571 6891172.610001250170171,1477437.282102269353345 6891166.29503783211112,1477434.221635316265747 6891162.217903890646994) 662 footway 0 0 0 minorroads 0 0
434 LINESTRING (1477655.685608308762312 6891734.416354355402291,1477657.066550716059282 6891741.436882919631898) 663 steps 0 0 0 minorroads 0 0
435 LINESTRING (1476887.153836678247899 6891470.844395658001304,1476887.788323727203533 6891469.020345328375697,1476891.623238111380488 6891456.405285906977952,1476953.905606755753979 6891298.404492945410311) 664 service 0 0 0 minorroads 0 0
436 LINESTRING (1477657.066550716059282 6891741.436882919631898,1477657.813006068347022 6891744.87050611898303,1477662.301068890141323 6891765.901480161584914) 665 footway 0 0 0 minorroads 0 0
437 LINESTRING (1477421.92378334957175 6891178.005313728936017,1477425.721374965040013 6891175.108398336917162,1477429.630934883840382 6891172.134846064262092,1477433.279235429828987 6891169.360553430393338,1477437.282102269353345 6891166.29503783211112,1477441.434260177891701 6891163.137557985261083) 666 footway 0 0 0 minorroads 0 0
438 LINESTRING (1477539.014636401087046 6891785.00108590349555,1477533.500197465298697 6891776.708233860321343) 667 steps 0 0 0 minorroads 0 0
439 LINESTRING (1477533.500197465298697 6891776.708233860321343,1477528.760205966420472 6891769.565044686198235) 668 footway 0 0 0 minorroads 0 0
440 LINESTRING (1477725.65646710456349 6891926.732001763768494,1477719.451556970831007 6891918.224397381767631) 669 steps 0 0 0 minorroads 0 0
441 LINESTRING (1477936.222191923297942 6891522.408476941287518,1477941.960567463189363 6891518.177879937924445,1477949.331814086996019 6891512.996934459544718) 670 footway 0 0 0 minorroads 0 0
442 LINESTRING (1477719.451556970831007 6891918.224397381767631,1477708.749253325397149 6891903.569878341630101) 671 footway 0 0 0 minorroads 0 0
443 LINESTRING (1478201.335141776595265 6891732.714873464778066,1478199.170421248069033 6891718.367265134118497,1478194.67302773357369 6891689.365553838200867,1478190.492877749027684 6891669.729676574468613,1478176.459517084760591 6891671.952314448542893,1478125.448624295881018 6891656.102620540186763,1478117.200292630353943 6891651.01355717331171,1478098.249657313572243 6891632.772663729265332,1478077.890087522100657 6891607.710663352161646,1478071.806476379279047 6891600.000473447144032,1478068.064868915593252 6891592.627515465021133,1478066.105423611123115 6891589.776435805484653,1478059.704568943707272 6891578.923948316834867,1478057.315911811310798 6891574.923246877267957,1478048.171833718195558 6891567.15177505556494,1478038.029371589887887 6891557.050405757501721,1478027.616319393040612 6891542.335231919772923,1478017.091298892628402 6891529.934653213247657,1478008.619030622998253 6891518.208536428399384,1477996.181218277197331 6891503.953280243091285,1477988.81930234329775 6891498.389138715341687,1477984.340570217231289 6891494.189210750162601,1477973.75956556503661 6891481.405501900240779,1477964.279582561692223 6891469.204283156432211,1477824.468494659755379 6891286.004290502518415,1477785.690138992853463 6891237.798493586480618,1477740.902817723574117 6891179.430780413560569,1477721.830883413087577 6891153.404557520523667,1477715.85924057662487 6891139.548463800922036,1477708.441340490942821 6891129.35566674452275,1477696.861951803788543 6891119.883274444378912,1477597.909963869256899 6890988.619750818237662,1477466.533821473829448 6890820.497053281404078,1477454.497228882741183 6890826.259975696913898) 672 cycleway 0 0 0 minorroads 0 0
444 LINESTRING (1477589.045806534821168 6891029.896104246377945,1477596.715635302942246 6891048.580122988671064,1477609.377384255873039 6891053.929370147176087,1477622.487006419571117 6891070.574901269748807,1477627.208336535375565 6891077.31895683798939,1477664.307167656254023 6891126.872611372731626,1477676.838286919984967 6891143.564276114106178,1477704.662410258548334 6891180.672316116280854,1477726.981425359845161 6891210.59185186214745,1477777.273854869185016 6891277.482036370784044,1477789.347770228981972 6891292.610576447099447,1477801.375032129930332 6891307.248653976246715,1477810.183205312816426 6891318.392004153691232,1477819.504566551186144 6891330.317092030309141,1477831.130608697189018 6891345.016549870371819,1477837.186227764235809 6891351.546244668774307,1477920.080094882519916 6891460.482569055631757,1477950.526142653310671 6891500.044585375115275,1477975.830979173071682 6891532.080611075274646,1477989.668395306216553 6891550.167992977425456,1478002.740694703999907 6891567.504326873458922,1478032.43095642933622 6891605.273445462808013,1478058.668862139806151 6891638.781424059532583,1478073.476670235162601 6891658.003355883061886,1478079.08441608841531 6891667.491710782982409,1478084.160312497522682 6891677.731175800785422,1478088.34979317500256 6891684.015883849933743,1478112.348332822322845 6891705.245970531366765,1478127.809289352502674 6891712.573045953176916,1478164.394932417897508 6891727.472475146874785,1478182.552458914928138 6891731.795154212042689,1478189.961028310470283 6891733.036775229498744,1478196.977708644000813 6891735.489360507577658,1478202.594785184599459 6891737.880631879903376,1478206.95221831719391 6891742.801134817302227) 673 cycleway 0 0 0 minorroads 0 0
445 LINESTRING (1477469.444997354643419 6891153.312592218630016,1477547.748164046322927 6891253.907934416085482,1477616.375403200741857 6891265.342438179068267) 674 footway 0 0 0 minorroads 0 0
446 LINESTRING (1477486.482840825803578 6890984.695979272015393,1477514.00838202284649 6891053.086365345865488) 675 service 0 0 0 minorroads 0 0
447 LINESTRING (1477415.597574219573289 6890878.233752502128482,1477494.852471484802663 6890979.95986695215106) 676 service 0 0 0 minorroads 0 0
448 LINESTRING (1477512.394172318745404 6890970.012507430277765,1477536.094129821518436 6891031.597436398267746) 677 service 0 0 0 minorroads 0 0
449 LINESTRING (1477389.145062592579052 6890890.97052111569792,1477470.17279132688418 6890993.938303586095572) 678 service 0 0 0 minorroads 0 0
450 LINESTRING (1477521.230337577406317 6890965.031168691813946,1477558.301176619715989 6891013.066729949787259,1477560.223299158038571 6891021.864595185033977,1477555.007442369591445 6891030.080032028257847,1477480.333914841059595 6891086.638024752959609,1477468.241338095627725 6891086.377458564005792,1477453.414868617197499 6891080.61434968188405,1477444.084176685893908 6891074.008237943053246,1477421.92378334957175 6891021.251503217034042) 679 service 0 0 1 minorroads 0 0
451 LINESTRING (1477383.406687055714428 6890923.126736690290272,1477447.863106921315193 6891006.567964611575007) 680 service 0 0 0 minorroads 0 0
452 LINESTRING (1477439.782727705081925 6891011.135492536239326,1477466.832403615349904 6891077.579522733576596) 681 service 0 0 0 minorroads 0 0
453 LINESTRING (1477464.826304849237204 6890996.973098964430392,1477491.913303528213874 6891070.406299953348935) 682 service 0 0 0 minorroads 0 0
454 LINESTRING (1476973.733327108668163 6890098.677702718414366,1477072.200119063491002 6890203.842244775034487,1477138.13078825105913 6890280.302726635709405,1477353.800401557935402 6890557.690723114646971) 4 motorway_link 0 0 1 motorways 3 0
455 LINESTRING (1477470.023500254843384 6890738.375857715494931,1477739.381914934143424 6891078.698423445224762,1477864.478501664241776 6891247.500940763391554,1477920.91052646539174 6891323.312250348739326,1477948.986578486626968 6891354.964373402297497,1477973.404999271966517 6891376.300886962562799,1477996.311847963603213 6891392.272653280757368,1478013.694927032105625 6891401.822006645612419,1478036.583114340901375 6891411.340715271420777,1478065.797510776668787 6891417.502590633928776,1478093.948208335554227 6891419.311301215551794,1478129.507475286955014 6891418.805475333705544,1478152.834205113584176 6891412.950159872882068,1478174.593378700781614 6891405.071548422798514,1478206.345723341219127 6891389.345004675909877,1478223.448881654068828 6891375.381208484992385,1478234.179177372483537 6891364.345074972137809,1478247.979270739946514 6891351.914114957675338) 5 motorway_link 0 0 1 motorways 3 0
456 LINESTRING (1479792.936579379020259 6889681.205510908737779,1479674.082225559744984 6889811.252340968698263,1479538.255343108437955 6889942.328065656125546,1479396.046267381170765 6890098.233262076042593,1479391.875448089325801 6890102.84625062905252,1479387.424708036473021 6890104.271526698023081,1479382.180859172018245 6890104.700642123818398,1479371.861113895662129 6890102.84625062905252) 7 motorway_link 0 0 1 motorways 3 0
457 LINESTRING (1478196.94038587808609 6891352.28198526147753,1478211.0204 6891326.638399799354374,1478222.487820381997153 6891308.47488157171756,1478233.955240765586495 6891291.292384384199977,1478245.422661152202636 6891275.99524116050452,1478258.80287338164635 6891260.713454801589251,1478269.309232496190816 6891247.347663466818631,1478277.566894857445732 6891232.878299727104604,1478286.524359109578654 6891203.050646905787289,1478290.247305190423504 6891173.43769099842757,1478299.419375359313563 6891131.670120283961296) 9 motorway_link 0 0 1 motorways 3 0
458 LINESTRING (1478588.708148004952818 6890605.53993255738169,1478609.123701951000839 6890560.234908378683031,1478633.962003871100023 6890512.462600218132138,1478661.664828216191381 6890461.824570003896952,1478680.783415985293686 6890415.018393527716398) 10 motorway_link 0 0 1 motorways 3 0
459 LINESTRING (1478511.935214792611077 6890776.462944713421166,1478487.162227714201435 6890850.829076912254095,1478480.472121600992978 6890872.792660155333579,1478469.0513546760194 6890901.760771677829325,1478458.311728261876851 6890927.096459547057748,1478444.334351749392226 6890965.598274794407189) 11 motorway_link 0 0 1 motorways 3 0
460 LINESTRING (1478747.693807828007266 6890450.713059439323843,1478695.917798298178241 6890536.494319370947778,1478652.86598572623916 6890592.926227985881269,1478605.848629083950073 6890639.948012223467231,1478534.739425873849541 6890732.521037810482085) 12 motorway_link 0 0 1 motorways 3 0
461 LINESTRING (1478394.816369665553793 6891123.469907105900347,1478413.981610896298662 6891149.388740294612944,1478422.575178162194788 6891163.720005629584193,1478432.139137393329293 6891182.83350836019963,1478437.868182237260044 6891200.015773738734424,1478443.606557776918635 6891221.045322466641665,1478449.326271930942312 6891243.975563655607402,1478452.200125048635527 6891268.821841340512037,1478455.055316777899861 6891293.652867992408574,1478456.016378046944737 6891316.583316278643906,1478453.151855624979362 6891339.513829967938364,1478447.422810775460675 6891364.360402925871313,1478439.771643395768479 6891385.375053562223911,1478430.767525678966194 6891400.534452718682587,1478420.186521029798314 6891416.536923290230334) 13 motorway_link 0 0 1 motorways 3 0
462 LINESTRING (1478505.114478987408802 6892450.388551495037973,1478533.022578559117392 6892428.221367940306664,1478547.111923375166953 6892412.922061143442988,1478557.151747890049592 6892398.465929266996682,1478563.580594633240253 6892385.098246153444052,1478568.479207897325978 6892368.143395646475255,1478570.681251191534102 6892353.135470101609826,1478571.632981767877936 6892338.326860104687512,1478570.699912574607879 6892311.990289855748415,1478550.256366555579007 6892207.533986137248576) 14 motorway_link 0 0 1 motorways 3 0
463 LINESTRING (1478037.180278623942286 6891587.247253092937171,1478066.105423611123115 6891589.776435805484653,1478080.782602020073682 6891593.133352279663086,1478089.777389043709263 6891593.945756936445832,1478098.884144365321845 6891592.826784512028098,1478108.280151141108945 6891589.991033161990345,1478117.424229234224185 6891583.093263810500503,1478125.476616371888667 6891573.681650285609066,1478129.395506983622909 6891564.699241130612791,1478130.711134545970708 6891555.425603993237019,1478130.459205863298848 6891544.006015922874212,1478127.743974510813132 6891534.318539171479642,1478122.014929663855582 6891524.998952300287783,1478111.527231932384893 6891513.242186243645847,1478097.792453409638256 6891504.566409018822014,1478038.747834869194776 6891476.270564619451761) 15 motorway_link 0 0 1 motorways 3 0
464 LINESTRING (1478508.650811232859269 6892023.658011235296726,1478483.16869156784378 6891955.519962281920016,1478463.396955363918096 6891854.103409341536462,1478457.220037306193262 6891812.31697329133749,1478454.476813877699897 6891793.539206840097904,1478438.726605898933485 6891697.918901789933443,1478429.171977360732853 6891676.535548973828554,1478420.335812099277973 6891665.75958699919283,1478408.149928435916081 6891657.88072778377682,1478399.071165190311149 6891653.864658541046083,1478385.448354968335479 6891648.729611102491617,1478367.953307596268132 6891647.825229956768453) 16 motorway_link 0 0 1 motorways 3 0
465 LINESTRING (1477868.43471504189074 6891004.698037818074226,1477841.366377748781815 6890998.337224533781409,1477822.247789982473478 6890988.803677652962506,1477801.393693512771279 6890979.193505993112922,1477780.595581200672314 6890971.77513572294265,1477763.119195208651945 6890968.602405070327222,1477746.32394973305054 6890970.012507430277765,1477735.211095642531291 6890976.940405210480094,1477727.559928260045126 6890986.489265248179436,1477721.952182406792417 6890998.613115126267076,1477719.236951056867838 6891012.116438466124237,1477720.869822144042701 6891025.681093722581863,1477726.029694780707359 6891040.45663124602288,1477739.381914934143424 6891078.698423445224762) 17 motorway_link 0 0 1 motorways 3 0
466 LINESTRING (1478394.816369665553793 6891123.469907105900347,1478404.940170413581654 6891151.136080365628004,1478410.678545950446278 6891170.249553177505732,1478414.494798951782286 6891184.58085570205003,1478417.368652066681534 6891201.778452461585402,1478418.320382643025368 6891218.041097856126726,1478418.320382643025368 6891238.089720109477639,1478416.407590797403827 6891256.253079305402935,1478411.630276529816911 6891276.317124638706446,1478407.814023525686935 6891294.449914567172527,1478403.027378567960113 6891311.663074205629528,1478399.211125569650903 6891327.895286121405661,1478395.394872565520927 6891349.875500658527017,1478393.444757953984663 6891367.855176903307438,1478392.315744229592383 6891385.528333493508399,1478394.909676586044952 6891406.956896369345486,1478402.159624219173566 6891432.263520221225917) 22 motorway_link 0 0 1 motorways 3 0
467 LINESTRING (1478458.908892544917762 6890873.620319033972919,1478432.279097772669047 6890943.113314905203879,1478416.715503631858155 6890979.362105399370193) 28 motorway_link 0 0 1 motorways 3 0
468 LINESTRING (1478178.904158371733502 6891520.431132415309548,1478160.308089353842661 6891514.3304911153391,1478117.685488610062748 6891501.086903820745647,1478038.747834869194776 6891476.270564619451761) 31 motorway_link 0 0 1 motorways 3 0
469 LINESTRING (1477490.821612572530285 6890732.214502855204046,1477527.397924944991246 6890777.857686535455287,1477549.996860799379647 6890805.108844520524144,1477565.439155949512497 6890821.738533561117947,1477585.817387126618996 6890841.295704958960414,1477601.213028812082484 6890855.31988144479692,1477614.901153875980526 6890865.680928098037839,1477632.489508171333 6890878.494311951100826,1477649.452706102281809 6890888.77875323779881,1477668.282042416976765 6890898.771993438713253,1477686.439568916801363 6890907.033285750076175,1477707.200358462985605 6890915.171969769522548,1477725.833750249585137 6890922.13047450594604,1477746.855799174401909 6890927.847488413564861,1477770.742370518157259 6890933.595160651952028,1477794.628941864939407 6890937.411617287434638,1477821.380035630892962 6890941.228075731545687,1477850.043921245029196 6890945.059863138943911,1477902.482409899821505 6890949.82660922780633,1477940.458326059626415 6890951.343998450785875,1478028.540057893376797 6890957.306267951615155,1478070.472187433857471 6890961.96573100425303,1478111.23798048379831 6890968.004644367843866,1478151.201334026642144 6890975.683573756366968,1478187.992252313066274 6890986.795809898525476,1478222.38518277136609 6890997.340953027829528) 35 motorway_link 0 0 1 motorways 3 0
470 LINESTRING (1477811.713438789127395 6891164.670315036550164,1477832.45556695247069 6891186.404841492883861,1477851.910059632034972 6891203.111957489512861,1477871.719118598848581 6891219.497226990759373,1477905.897443146212026 6891245.355058864690363,1477930.74507576203905 6891262.215574943460524,1477950.162245669867843 6891274.998935245908797) 36 motorway_link 0 0 1 motorways 3 0
471 LINESTRING (1477917.271556612337008 6890861.695908572524786,1477919.660213744733483 6890873.497702899388969,1477929.681376882363111 6890876.225912362337112,1477939.068052962422371 6890882.433358696289361,1477964.755447848467156 6890903.79927234724164,1477993.242050317581743 6890920.735707654617727,1478017.072637509787455 6890931.70992370788008,1478043.179913533618674 6890940.982841396704316,1478070.173605292104185 6890947.926041314378381,1478124.907444161828607 6890961.429279524832964,1478156.893056107452139 6890970.763540306128561,1478188.804022510070354 6890982.151659685187042,1478222.38518277136609 6890997.340953027829528) 37 motorway_link 0 0 1 motorways 3 0
472 LINESTRING (1478269.187933499692008 6891469.572158829309046,1478243.696483144769445 6891462.383258138783276,1478210.012685272842646 6891459.041724401526153,1478135.451126047875732 6891458.290645903907716,1478102.224532076856121 6891458.014739540405571,1478074.335093893809244 6891455.730848299339414,1478037.478860765462741 6891447.7142419135198,1478001.229122610529885 6891433.137220955453813,1477972.136025168234482 6891416.506267188116908,1477933.730897177709267 6891384.440046058036387,1477898.6754875916522 6891342.364820868708193,1477840.787874848581851 6891266.277431831695139,1477763.688367415918037 6891163.168213126249611) 38 motorway_link 0 0 1 motorways 3 0
473 LINESTRING (1478396.486563521204516 6891050.220149672590196,1478391.046770125860348 6891088.599935160949826,1478387.930319021223113 6891118.01332129817456,1478386.372093471698463 6891145.495545344427228,1478382.163951405556872 6891187.385808815248311,1478378.506320169428363 6891208.921137149445713,1478372.991881239460781 6891239.009382877498865,1478369.520863838493824 6891260.422227461822331,1478362.756112190661952 6891278.784898377023637,1478355.926045695319772 6891294.327292013913393,1478345.830237028654665 6891312.904630331322551,1478327.989954053191468 6891332.294389794580638,1478310.998764046467841 6891350.411978059448302,1478297.571898355614394 6891364.145811591297388,1478283.641175301978365 6891375.396536458283663,1478263.253613431937993 6891389.712876693345606,1478242.194241744000465 6891402.603735917247832,1478220.360422622412443 6891413.885170697234571,1478198.479950044536963 6891423.005363918840885,1478177.131326905218884 6891429.734387061558664,1478158.199352977098897 6891435.007247400470078,1478137.298603048780933 6891440.096174038946629,1478114.988918640185148 6891442.518013746477664,1478088.275147637585178 6891441.828249195590615,1478056.961345518007874 6891437.214492295868695,1478035.164849167922512 6891430.991289503872395,1478017.959053244441748 6891424.292921440675855,1478000.762588013662025 6891417.594558958895504,1477984.517853362252936 6891408.04518685489893,1477967.237411904148757 6891395.414895111694932,1477937.668449172284454 6891367.441322010941803,1477910.376175272278488 6891334.287015947513282,1477853.272340653231367 6891256.406356768682599,1477773.756184012396261 6891153.373902422375977) 39 motorway_link 0 0 1 motorways 3 0
474 LINESTRING (1478279.554332237923518 6891684.153840911574662,1478256.003665801370516 6891694.469970066100359,1478242.875382254831493 6891699.988261526450515) 41 motorway_link 0 0 1 motorways 3 0
475 LINESTRING (1477739.381914934143424 6891078.698423445224762,1477811.713438789127395 6891164.670315036550164) 42 motorway_link 0 0 1 motorways 3 0
476 LINESTRING (1478697.42003969871439 6892579.422395704314113,1478646.241194454720244 6892500.149962106719613,1478632.450431780423969 6892479.929561247117817,1478614.591487424913794 6892458.988699334673584,1478590.975506143877283 6892442.984153510071337,1478571.063809560844675 6892437.419361997395754,1478552.589039536425844 6892437.266062008216977,1478536.241667274385691 6892440.991252523846924,1478522.674841206986457 6892446.663356624543667,1478512.373757313471287 6892454.711619316600263) 43 motorway_link 0 0 1 motorways 3 0
477 LINESTRING (1478524.373027135850862 6892700.593760442920029,1478524.317042984068394 6892666.928051271475852,1478522.40425114124082 6892647.811019618995488,1478513.801353176590055 6892615.325967458076775,1478499.973267736379057 6892576.157048926688731,1478487.572778159286827 6892544.546107861213386,1478482.29160652612336 6892521.520175693556666,1478482.29160652612336 6892500.594535555690527,1478486.285142672481015 6892481.140637652948499,1478493.348476464860141 6892465.0440674116835,1478505.114478987408802 6892450.388551495037973) 45 motorway_link 0 0 1 motorways 3 0
478 LINESTRING (1478512.373757313471287 6892454.711619316600263,1478501.456847751280293 6892464.492185577750206,1478494.216230813646689 6892477.461418758146465,1478490.399977812543511 6892496.578045293688774,1478490.399977812543511 6892516.629856382496655,1478495.335913845105097 6892541.725350976921618,1478506.187508562812582 6892572.999015279114246,1478520.015594006050378 6892612.183248752728105,1478528.618491964880377 6892644.66828821413219,1478531.91222621477209 6892665.68628600705415,1478531.977541062282398 6892701.467599032446742) 46 motorway_link 0 0 1 motorways 3 0
479 LINESTRING (1477773.756184012396261 6891153.373902422375977,1477609.890572311356664 6890941.044149981811643,1477495.477627843851224 6890800.066300450824201) 47 motorway_link 0 0 1 motorways 3 0
480 LINESTRING (1477763.688367415918037 6891163.168213126249611,1477606.559515292756259 6890944.523412792012095,1477495.477627843851224 6890800.066300450824201) 48 motorway_link 0 0 1 motorways 3 0
481 LINESTRING (1478038.747834869194776 6891476.270564619451761,1478016.783386061200872 6891466.046684342436492,1477987.559658932499588 6891449.476974944584072,1477960.565967173781246 6891425.565151103772223,1477940.439664676785469 6891408.397731687873602,1477893.683567407075316 6891346.396062412299216,1477835.012176543008536 6891269.78749094158411,1477773.252326647052541 6891185.147977290675044,1477763.688367415918037 6891163.168213126249611) 50 motorway_link 0 0 1 motorways 3 0
482 LINESTRING (1477353.800401557935402 6890557.690723114646971,1477430.918570373440161 6890653.711285330355167) 51 motorway_link 0 0 1 motorways 3 0
483 LINESTRING (1478431.31803650339134 6891617.70479725766927,1478395.805423010606319 6891558.521924624219537) 59 motorway_link 0 0 1 motorways 3 0
484 LINESTRING (1478247.979270739946514 6891351.914114957675338,1478261.359482969157398 6891334.716197027824819,1478269.953050238080323 6891318.483971345238388,1478276.643156351288781 6891303.20210421551019,1478282.381531891180202 6891285.988962695933878,1478286.19778489228338 6891267.825536315329373,1478290.023368583526462 6891245.860873832367361,1478291.926829739008099 6891217.565939981490374,1478294.632730398792773 6891179.905936032533646,1478299.419375359313563 6891131.670120283961296,1478305.633616185979918 6891110.012379135005176,1478315.561472400324419 6891089.36630654707551,1478323.389922930859029 6891076.905116900801659,1478350.271646386012435 6891029.512921379879117) 62 motorway_link 0 0 1 motorways 3 0
485 LINESTRING (1478222.38518277136609 6890997.340953027829528,1478265.38101119431667 6891016.607333100400865,1478304.32731931633316 6891039.64428252261132) 63 motorway_link 0 0 1 motorways 3 0
486 LINESTRING (1479505.653905502287671 6891073.088594046421349,1479511.261651349952444 6891082.208400661125779,1479521.71202631550841 6891092.493102550506592,1479746.936268157558516 6891225.214452367275953,1479755.165938443038613 6891230.977664898149669,1479832.228123104199767 6891286.387485591694713,1479913.489119135309011 6891344.817286965437233,1479959.526753128273413 6891366.429676809348166,1480017.134445112897083 6891393.45290981978178,1480128.822827531956136 6891445.108463356271386) 165 residential 0 0 0 minorroads 3 0
487 LINESTRING (1479467.789957643020898 6890509.550598309375346,1479441.747996460879222 6890586.856943410821259,1479449.529793532565236 6890590.320726469159126,1479457.666156894760206 6890598.397783920168877,1479463.22724928939715 6890607.670317178592086,1479467.556690343189985 6890622.843576487153769,1479469.021608978044242 6890645.833417885005474,1479472.46463430300355 6890697.59145475551486,1479478.305647450499237 6890719.830500395968556,1479480.489029361866415 6890744.552544073201716,1479485.7422089218162 6890800.280876728706062,1479493.141447621630505 6890875.21432897169143,1479491.368616155348718 6890886.081193597055972,1479490.071649975609034 6890894.005277621559799,1479503.097295911749825 6891055.03294020332396,1479505.653905502287671 6891073.088594046421349) 166 residential 0 0 0 minorroads 3 0
488 LINESTRING (1478892.478154525859281 6890538.8086022362113,1478857.935932998079807 6890331.031569452024996,1479014.271676310105249 6890305.038744745776057,1479049.942911565070972 6890299.475432928651571,1479065.637135392287746 6890291.306720341555774,1479071.926021756138653 6890284.80853839032352,1479078.233569500269368 6890275.796917401254177) 167 residential 0 0 0 minorroads 3 0
489 LINESTRING (1479046.145319949602708 6890513.27489566989243,1479014.271676310105249 6890305.038744745776057) 168 residential 0 0 0 minorroads 3 0
490 LINESTRING (1479203.460785916773602 6890490.040212746709585,1479046.145319949602708 6890513.27489566989243,1478892.478154525859281 6890538.8086022362113,1478782.002762058749795 6890554.196301298215985,1478765.692712562624365 6890556.571894911117852,1478744.437396341003478 6890562.901705839671195,1478733.203243254218251 6890567.423002410680056,1478725.150856119580567 6890575.346772366203368,1478720.952044752193615 6890584.603952579200268,1478718.61004107282497 6890595.868913067504764,1478718.684686610475183 6890607.517052077688277,1478721.138658590381965 6890619.165207961574197) 169 residential 0 0 0 minorroads 3 0
491 LINESTRING (1479490.071649975609034 6890894.005277621559799,1479245.458230298943818 6890915.64710977114737,1479232.777819963172078 6890911.35552369710058) 170 residential 0 0 0 minorroads 3 0
492 LINESTRING (1479186.796170124784112 6890329.437667407095432,1479194.335369206732139 6890321.713377351872623,1479221.870241096476093 6890288.900553298182786,1479238.29225889313966 6890269.344725587405264,1479371.861113895662129 6890102.84625062905252,1479378.177992332726717 6890095.842478349804878,1479401.150155866052955 6890069.130116234533489,1479433.070452967192978 6890027.628814021125436,1479445.853500913595781 6890008.594684292562306) 171 residential 0 0 0 minorroads 3 0
493 LINESTRING (1479356.241535600507632 6892244.984189610928297,1479596.926733975531533 6891723.011840671300888) 173 residential 0 0 0 minorroads 3 0
494 LINESTRING (1479565.510294239735231 6892254.902467562817037,1479723.329617572249845 6891860.342268580570817) 174 residential 0 0 0 minorroads 3 0
495 LINESTRING (1479608.944665183546022 6891709.660609316080809,1479997.390700987540185 6891805.618287485092878) 175 residential 0 0 0 minorroads 3 0
496 LINESTRING (1479584.125024646287784 6890393.883670332841575,1479781.721087680663913 6890154.202325228601694) 176 residential 0 0 0 minorroads 3 0
497 LINESTRING (1479482.392490514554083 6891545.140309852547944,1479497.461557985516265 6891543.408212435431778,1480046.890021679922938 6891672.780055603943765) 177 residential 0 0 0 minorroads 3 0
498 LINESTRING (1479238.29225889313966 6890269.344725587405264,1479244.002642357023433 6890273.712598342448473,1479250.888693001354113 6890278.75481229275465,1479261.31107589113526 6890279.383173528127372,1479275.157822717214003 6890275.015297694131732,1479297.010303219081834 6890236.869282925501466,1479430.597819601651281 6890091.566655383445323,1479511.784170098369941 6889997.928235160186887,1479526.340049513848498 6889979.62979072984308,1479584.209000873845071 6889912.566501155495644,1479958.248448334634304 6889556.784876331686974,1479970.714252753648907 6889544.877743250690401,1479991.111145313596353 6889525.645538517273962,1480003.334351745434105 6889522.212862986139953,1480012.739689214387909 6889526.059298608452082,1480015.688187863910571 6889532.327000443823636,1480017.050468885339797 6889535.238648432306945,1480013.766065325355157 6889548.034587628208101,1480003.222383442102 6889555.972677503712475,1479990.989846320124343 6889554.624121142551303,1479970.714252753648907 6889544.877743250690401) 178 unclassified 0 0 0 minorroads 3 0
499 LINESTRING (1478735.713199388701469 6892210.431273595429957,1478737.803274379577488 6892156.517370771616697,1478747.012667317176238 6892105.30179741140455,1478856.713612355990335 6891712.665017653256655,1478875.897514964221045 6891664.70191867928952,1478898.291175603168085 6891642.306974301114678,1478920.675505543360487 6891632.711349874734879,1479150.145212217466906 6891598.774201380088925) 179 residential 0 0 1 minorroads 3 0
500 LINESTRING (1479232.777819963172078 6890911.35552369710058,1479225.509210946969688 6890904.029178469441831,1479219.015049364650622 6890835.992580109275877,1479415.566074902191758 6890596.129463358782232,1479426.510976537596434 6890588.466222968883812,1479433.854231088422239 6890586.182578745298088,1479441.747996460879222 6890586.856943410821259) 185 residential 0 0 0 minorroads 3 0
501 LINESTRING (1479723.329617572249845 6891860.342268580570817,1479596.926733975531533 6891723.011840671300888) 188 residential 0 0 0 minorroads 3 0
502 LINESTRING (1479094.002438864903525 6890258.861840659752488,1479102.166794305900112 6890249.972855378873646,1479110.592409119475633 6890237.283079625107348,1479113.904804755235091 6890222.585646998137236,1479107.16804518038407 6890125.037674428895116,1479369.173874618951231 6890088.94599081762135,1479378.177992332726717 6890095.842478349804878) 197 residential 0 0 0 minorroads 3 0
503 LINESTRING (1479150.145212217466906 6891598.774201380088925,1479134.525633922312409 6891683.923912476748228,1479122.50770271429792 6891741.850757068023086,1479112.365240588784218 6891776.922836208716035,1479083.458756984677166 6891830.404985710047185,1479039.623166288714856 6891874.843419559299946,1478994.845175709342584 6891943.793224707245827,1478968.961836289614439 6891994.609211077913642,1478956.608000173931941 6892018.875299187377095,1478935.147408731281757 6892081.709938492625952,1478923.026839912869036 6892143.012125051580369,1478922.522982550086454 6892195.055733603425324,1478922.243061791639775 6892224.595805050805211) 200 residential 0 0 1 minorroads 3 0
504 LINESTRING (1478948.648919956991449 6892418.042266790755093,1478932.982688202988356 6892462.407298980280757,1478924.323806092375889 6892507.707714077085257,1478923.16680029197596 6892543.764267535880208,1478928.690569914877415 6892595.135937471874058,1478954.200681655900553 6892647.565733219496906,1478981.091735800961033 6892698.110219702124596,1478998.14824065216817 6892739.042748300358653,1479008.262710707494989 6892770.393833446316421,1479017.257497728569433 6892806.252266069874167,1479018.65710151870735 6892835.779252862557769,1479019.179620267124847 6892907.067596364766359) 201 residential 0 0 0 minorroads 3 0
505 LINESTRING (1478917.605707900365815 6892380.08537070825696,1478948.648919956991449 6892418.042266790755093,1478994.257342116441578 6892488.667711554095149,1479021.055089343804866 6892527.437619337812066,1479045.053628993919119 6892554.863341205753386,1479059.282934189308435 6892565.96243020426482,1479069.22945178928785 6892573.719537409953773,1479138.341886926209554 6892625.474657708778977,1479163.90798281878233 6892643.380535209551454,1479204.5151541037485 6892671.818462022580206,1479218.987057288642973 6892679.161748955026269,1479293.669915507314727 6892716.982082463800907,1479382.861999682616442 6892764.108276013284922) 202 residential 0 0 0 minorroads 3 0
506 LINESTRING (1478922.690935002407059 6892238.254484030418098,1478923.446721050655469 6892317.493675459176302,1478917.605707900365815 6892380.08537070825696) 203 residential 0 0 0 minorroads 3 0
507 LINESTRING (1479434.777969588991255 6891585.561131720431149,1479383.543140193447471 6891577.667022745124996) 204 residential 0 0 0 minorroads 3 0
508 LINESTRING (1479354.879254579078406 6892263.487076595425606,1479349.467453256715089 6892329.95678826700896,1479349.355484956176952 6892342.527229115366936,1479352.994454809231684 6892359.236747993156314,1479354.991222882410511 6892368.404003384523094,1479365.450928538106382 6892387.980267693288624,1479382.470110620604828 6892403.647445440292358,1479415.538082826416939 6892422.043387837707996,1479449.315187618602067 6892436.146972191520035,1479465.634567807661369 6892439.780182166956365,1479506.027133178431541 6892443.306083716452122,1479520.704311587382108 6892443.949944161809981,1479571.528590538073331 6892439.105662046931684,1479589.126275520771742 6892444.087914266623557,1479616.297250424511731 6892460.996934827417135,1479667.821331271668896 6892498.969543068669736,1479700.124186736298725 6892523.865690400823951,1479709.174957911716774 6892527.560260701924562,1479717.899154869839549 6892526.05790411029011,1479767.417136950884014 6892498.601620291359723,1479779.584359225351363 6892492.408255994319916) 215 residential 0 0 1 minorroads 3 0
509 LINESTRING (1479064.209539529168978 6890130.202399942092597,1479107.16804518038407 6890125.037674428895116) 216 residential 0 0 0 minorroads 3 0
510 LINESTRING (1479511.784170098369941 6889997.928235160186887,1479577.425587837351486 6890050.785533404909074) 218 unclassified 0 0 0 minorroads 3 0
511 LINESTRING (1478743.644287527073175 6890644.500005290843546,1478764.862280979752541 6890650.661292929202318,1478794.823132770834491 6890656.071581743657589,1478844.219815858406946 6890657.343689843080938,1478888.745877755107358 6890655.642436888068914,1478931.480446802219376 6890650.891191814094782,1478963.578027048613876 6890644.591964773833752,1479008.439993852749467 6890630.675441741943359,1479056.194475160446018 6890605.585912075825036,1479095.672632720787078 6890583.837629308924079,1479133.965792407980189 6890555.943512021563947,1479203.460785916773602 6890490.040212746709585,1479266.862837587017566 6890414.650566106662154) 235 residential 0 0 0 minorroads 3 0
512 LINESTRING (1479383.543140193447471 6891577.667022745124996,1479323.005610939580947 6891573.329098201356828,1479299.119039598386735 6891575.842948182485998,1479238.852100410265848 6891583.553114917129278,1479171.10194629477337 6891595.187356659211218,1479150.145212217466906 6891598.774201380088925) 236 residential 0 0 0 minorroads 3 0
513 LINESTRING (1479596.926733975531533 6891723.011840671300888,1479465.550591580104083 6891589.531181692145765,1479434.777969588991255 6891585.561131720431149) 285 residential 0 0 0 minorroads 3 0
514 LINESTRING (1478721.138658590381965 6890619.165207961574197,1478727.371560799656436 6890630.690768297761679,1478735.050720260944217 6890638.997764837928116,1478743.644287527073175 6890644.500005290843546) 289 residential 0 0 0 minorroads 3 0
515 LINESTRING (1478553.951320560649037 6891315.418398878537118,1478529.78482845518738 6891312.260860466398299,1478502.221964489435777 6891308.628160036168993,1478489.158995784586295 6891306.911441416479647) 296 unclassified 0 0 0 minorroads 3 0
516 LINESTRING (1478598.850610133260489 6891319.848151468671858,1478619.014235399430618 6891314.222825936973095,1478629.520594513742253 6891309.455863785929978,1478638.123492472805083 6891299.891292298212647,1478656.850191182689741 6891252.574420961551368) 318 unclassified 0 0 0 minorroads 3 0
517 LINESTRING (1478362.989379487698898 6891563.457646118476987,1478372.702629790874198 6891539.468841813504696,1478383.955444257706404 6891522.730370282195508,1478405.789263379527256 6891501.899299177341163,1478420.401126943761483 6891493.03959580976516,1478439.109164268011227 6891484.793029486201704,1478451.080442011589184 6891482.585771531797945,1478466.158840178279206 6891481.390173728577793,1478478.036811004159972 6891474.906357950530946,1478487.899352376582101 6891463.640165685676038,1478507.064593604533002 6891401.454134074039757,1478520.276853378862143 6891359.056933037005365,1478529.78482845518738 6891312.260860466398299) 320 unclassified 0 0 1 minorroads 3 0
518 LINESTRING (1478237.248975021298975 6891675.033351420424879,1478264.074714324669912 6891662.709210627712309) 322 unclassified 0 0 1 minorroads 3 0
519 LINESTRING (1478917.605707900365815 6892380.08537070825696,1478763.248071275651455 6892276.22604011092335,1478747.908413741970435 6892253.584117701277137,1478739.464137542527169 6892228.489522617310286) 323 residential 0 0 1 minorroads 3 0
520 LINESTRING (1478079.187053699046373 6892810.37622603494674,1478145.453627796843648 6892613.685621440410614,1478151.313302329974249 6892587.37880960572511,1478163.71379190729931 6892357.366506541147828,1478160.606671495363116 6892351.387868744321167,1478139.976511632790789 6892311.59171611443162) 330 residential 0 0 0 minorroads 3 0
521 LINESTRING (1478763.248071275651455 6892276.22604011092335,1478726.867703434312716 6892307.789936803281307) 335 residential 0 0 1 minorroads 3 0
522 LINESTRING (1478755.606234583305195 6889945.040633909404278,1478753.161593299126253 6889966.633935891091824,1478748.785498783690855 6889984.227385916747153,1478740.005317673785612 6890001.008630651049316,1478657.895228676730767 6890098.125983302481472) 338 residential 0 0 0 minorroads 3 0
523 LINESTRING (1477786.39927157945931 6890262.126246342435479,1478094.340097397565842 6890523.819417727179825,1478155.810695839114487 6890564.786856304854155) 346 unclassified 0 0 0 minorroads 3 0
524 LINESTRING (1477842.131494486937299 6889810.838566199876368,1477906.373308435780928 6889868.935817634686828,1478137.494547579903156 6890058.632166887633502,1478153.804597075795755 6890076.363747696392238,1478161.362457540817559 6890099.060841219499707,1478176.627469539875165 6890170.079709811136127,1478184.745171522023156 6890192.792393619194627,1478195.494128623511642 6890209.911240221001208,1478209.71410313132219 6890228.547376076690853,1478261.070231520570815 6890273.49803611356765,1478292.038798042573035 6890286.525038770399988) 432 residential 0 0 0 minorroads 3 0
525 LINESTRING (1478726.867703434312716 6892307.789936803281307,1478725.262824423145503 6892320.069077261723578,1478849.314373653382063 6892600.225598565302789) 449 residential 0 0 1 minorroads 3 0
526 LINESTRING (1477170.004431890556589 6892330.416682093404233,1477226.473779457621276 6892480.77271568775177) 497 residential 0 0 0 minorroads 3 0
527 LINESTRING (1477206.375469039194286 6890495.557677546516061,1477167.625105448300019 6890527.559048051945865,1477202.689845727290958 6890575.867871635593474) 504 residential 0 0 1 minorroads 3 0
528 LINESTRING (1477056.785815992159769 6892691.840049274265766,1477047.42713198508136 6892531.960020915605128,1477034.205541517818347 6892466.163161252625287,1477014.965654755244032 6892407.817188702523708,1477005.485671751899645 6892378.107815207913518,1476984.137048612581566 6892331.842353134416044,1476956.555523263756186 6892281.284839883446693,1476909.892732914770022 6892184.90758672170341) 523 residential 0 0 0 minorroads 3 0
529 LINESTRING (1476392.496534616453573 6892429.171826844103634,1476550.259873797185719 6892335.797441869974136,1476622.861987715121359 6892298.960004699416459,1476700.521336662117392 6892264.85141708701849,1476909.892732914770022 6892184.90758672170341,1477091.430675133131444 6892112.736543129198253,1477219.41977636096999 6892066.212010371498764,1477229.84215924795717 6892055.54283092636615) 525 residential 0 0 0 minorroads 3 0
530 LINESTRING (1477005.485671751899645 6892378.107815207913518,1477065.827256471849978 6892358.362946599721909,1477125.282425462966785 6892342.404590574093163,1477170.004431890556589 6892330.416682093404233) 526 residential 0 0 0 minorroads 3 0
531 LINESTRING (1477226.473779457621276 6892480.77271568775177,1477166.915972861694172 6892497.804454318247736,1477136.208665715297684 6892506.573284320533276,1477105.706633787136525 6892515.296133446507156,1477047.42713198508136 6892531.960020915605128) 527 residential 0 0 0 minorroads 3 0
532 LINESTRING (1477091.430675133131444 6892112.736543129198253,1477170.004431890556589 6892330.416682093404233) 528 residential 0 0 0 minorroads 3 0
533 LINESTRING (1477226.473779457621276 6892480.77271568775177,1477255.268294758396223 6892486.061595555394888,1477275.814478393411264 6892495.91885052062571) 529 residential 0 0 0 minorroads 3 0
534 LINESTRING (1477275.814478393411264 6892495.91885052062571,1477328.626194727374241 6892664.521173093467951) 530 residential 0 0 0 minorroads 3 0
535 LINESTRING (1477459.5917866777163 6892447.751787870191038,1477537.027199015021324 6892540.912850533612072,1477573.267606480047107 6892584.466056008823216,1477587.123683996265754 6892602.264529967680573) 531 residential 0 0 0 minorroads 3 0
536 LINESTRING (1477275.814478393411264 6892495.91885052062571,1477459.5917866777163 6892447.751787870191038) 532 residential 0 0 0 minorroads 3 0
537 LINESTRING (1476599.497935119783506 6892427.807458454743028,1476729.035931204212829 6892369.20115651935339,1476956.555523263756186 6892281.284839883446693) 533 residential 0 0 0 minorroads 3 0
538 LINESTRING (1476699.578936775680631 6892648.255601234734058,1476829.256893242476508 6892551.184088567271829,1477014.965654755244032 6892407.817188702523708) 534 residential 0 0 0 minorroads 3 0
539 LINESTRING (1477131.048793075839058 6890631.24252425506711,1476933.564698341768235 6890379.676385825499892) 536 residential 0 0 0 minorroads 3 0
540 LINESTRING (1477050.235670255264267 6890288.333494927734137,1476933.564698341768235 6890379.676385825499892,1476902.820068429457024 6890398.910633538849652,1476831.654881067806855 6890456.920177238993347) 537 residential 0 0 1 minorroads 3 0
541 LINESTRING (1476942.736768513685092 6890783.32936832588166,1476752.110732350964099 6890533.904162514954805,1476753.948878661962226 6890517.596921934746206,1476575.592702392954379 6890272.946304704993963,1476409.226465250365436 6890059.260510915890336,1476395.724954024655744 6890059.306487303227186,1476182.322698862291873 6889785.015997536480427) 552 residential 0 0 1 minorroads 3 0
542 LINESTRING (1475786.729353038361296 6891662.356654640287161,1475992.471110128099099 6891500.68837027810514,1476100.436546466313303 6891415.663224364630878,1476197.223813875345513 6891340.402848524972796,1476278.139574306318536 6891277.49736415874213,1476321.676582857733592 6891244.343429019674659,1476489.871635615592822 6891115.576251862570643,1476493.678557923762128 6891113.246475487947464,1476512.825137766078115 6891098.624078639782965,1476574.920892572263256 6891049.53041878528893,1476642.055221018847078 6890998.321897276677191,1476664.887424173066393 6890986.290011228993535,1476689.865686475299299 6890974.840577159076929,1476942.736768513685092 6890783.32936832588166,1477029.446888633305207 6890709.37768148444593,1477131.048793075839058 6890631.24252425506711,1477191.548999560764059 6890584.63460551109165,1477202.689845727290958 6890575.867871635593474,1477245.125832630088553 6890544.065551890060306) 553 residential 0 0 0 minorroads 3 0
543 LINESTRING (1476209.33505200385116 6889063.703335772268474,1476378.08994627604261 6889279.645944504998624,1476389.286776594119146 6889290.434032781980932,1476403.721357013098896 6889290.434032781980932,1476463.493769522989169 6889363.667758987285197,1476927.490417897468433 6889968.91740414686501,1477296.220701646525413 6890447.448577187024057,1477305.336787663633004 6890453.180579769425094) 554 unclassified 0 0 0 minorroads 3 0
544 LINESTRING (1477029.446888633305207 6890709.37768148444593,1476831.654881067806855 6890456.920177238993347,1476647.672297562239692 6890213.635398782789707) 559 residential 0 0 0 minorroads 3 0
545 LINESTRING (1479591.626900956500322 6890520.325010627508163,1479593.922251174226403 6890511.037251781672239,1479600.099169231951237 6890495.251151624135673,1479608.85135826584883 6890481.411518443375826,1479619.36704807030037 6890469.027902306057513,1479629.257581518730149 6890462.728817746974528,1479643.738815393997356 6890454.146131407469511,1479658.985166010214016 6890448.720652269199491,1479858.307407052256167 6890380.24345064163208,1480100.522838903823867 6890293.513651255518198) 67 tertiary 0 0 0 mainroads 4 0
546 LINESTRING (1477367.992383987177163 6890698.603015801869333,1477349.881510943174362 6890675.812269823625684,1477245.125832630088553 6890544.065551890060306) 76 tertiary 0 0 0 mainroads 4 0
547 LINESTRING (1477245.125832630088553 6890544.065551890060306,1477206.375469039194286 6890495.557677546516061,1477050.235670255264267 6890288.333494927734137,1476863.48187124566175 6890045.559557152912021,1476700.614643579581752 6889836.354716989211738,1476482.229798923013732 6889550.532479927875102,1476148.77886136691086 6889111.926746366545558,1476140.558521774364635 6889102.134934161789715,1476127.560867911204696 6889083.470761761069298,1476121.029383563203737 6889075.579109120182693) 98 tertiary 0 0 0 mainroads 4 0
548 LINESTRING (1477440.221270225942135 6890807.515166061930358,1477433.064629515865818 6890796.72504198551178,1477425.628068044548854 6890779.620272696949542,1477416.483989951433614 6890762.960017169825733) 140 tertiary 0 0 0 mainroads 4 0
549 LINESTRING (1477601.352989191422239 6891019.243627357296646,1477589.045806534821168 6891029.896104246377945,1477529.049457415007055 6891078.468512326478958,1477462.521623944398016 6891132.436495768837631) 65 secondary 0 0 0 mainroads 5 0
550 LINESTRING (1478347.248502201633528 6892208.147168586961925,1478342.172605789732188 6892190.916759766638279,1478325.657281069783494 6892141.203251630999148) 66 secondary 0 0 1 mainroads 5 0
551 LINESTRING (1479405.974123598309234 6890464.384051165543497,1479414.754304702393711 6890467.663866545073688,1479438.323632521787658 6890477.058859107084572,1479453.616636599646881 6890482.744903990067542) 68 secondary 0 0 1 mainroads 5 0
552 LINESTRING (1478942.192081137793139 6890130.999331175349653,1478922.700265695340931 6890097.880774687975645,1478913.39756584004499 6890080.455656515434384) 69 secondary 0 0 1 mainroads 5 0
553 LINESTRING (1478371.433655687142164 6890928.767115697264671,1478421.474156513577327 6890821.386014446616173,1478431.82189386873506 6890796.433831455186009,1478464.609945313073695 6890729.379055060446262,1478502.968419844750315 6890668.378852861002088,1478530.932503562653437 6890635.120143613778055,1478590.24771217443049 6890558.411064649000764,1478600.64210298541002 6890542.839440878480673,1478604.346387683181092 6890537.306617256253958,1478629.184689603513107 6890499.098052786663175,1478658.809636487159878 6890449.410331619903445,1478680.783415985293686 6890415.018393527716398) 70 secondary 0 0 1 mainroads 5 0
554 LINESTRING (1479356.241535600507632 6892244.984189610928297,1479354.879254579078406 6892263.487076595425606) 71 secondary 0 0 0 mainroads 5 0
555 LINESTRING (1478687.930726005230099 6892209.189578847959638,1478735.713199388701469 6892210.431273595429957,1478922.243061791639775 6892224.595805050805211) 72 secondary 0 0 1 mainroads 5 0
556 LINESTRING (1478357.316318792523816 6892236.261633796617389,1478331.460971454158425 6892240.814530819654465,1478302.573149230098352 6892246.517152946442366,1478272.724265742348507 6892252.940272497013211,1478243.276602006983012 6892261.908121032640338,1478210.040677348850295 6892275.42889619525522,1478139.976511632790789 6892311.59171611443162,1478016.484803919447586 6892382.200895741581917,1477743.403443159302697 6892544.331485021859407,1477660.07103352015838 6892595.227919272147119,1477634.187694100197405 6892612.566507063806057,1477623.578697375254706 6892624.202238139696419,1477615.778238917700946 6892632.756580822169781,1477604.963966968702152 6892661.623721974901855,1477604.609400675399229 6892681.859910343773663) 73 secondary 0 0 1 mainroads 5 0
557 LINESTRING (1478512.980252289446071 6892501.529672888107598,1478525.371411173837259 6892530.396342795342207,1478531.641636149259284 6892551.858618092723191,1478539.078197620576248 6892576.92356213927269,1478543.603583205491304 6892616.000502363778651,1478545.647004743106663 6892654.541068081744015,1478545.684327509021387 6892718.913729729130864,1478543.836850505322218 6892759.263800947926939,1478540.533785562496632 6892805.838337119668722,1478537.08142954739742 6892857.456974725238979) 74 secondary 0 0 1 mainroads 5 0
558 LINESTRING (1478185.743555557215586 6892242.623426643200219,1478266.323411077726632 6892206.675530795939267,1478294.147534419083968 6892193.936677500605583) 75 secondary 0 0 1 mainroads 5 0
559 LINESTRING (1477462.521623944398016 6891132.436495768837631,1477504.994933616137132 6891184.151682637631893,1477516.453023307025433 6891195.61674244236201,1477529.674613774055615 6891209.641537031158805,1477544.967617851914838 6891218.546911101788282,1477559.924717016518116 6891225.87354295141995,1477576.020160598680377 6891231.130941885523498,1477592.899382304633036 6891232.878299727104604,1477611.047578108729795 6891232.878299727104604,1477626.340582186589018 6891228.111385807394981,1477641.6242555687204 6891222.363503010012209,1477687.951141010504216 6891192.24466432724148,1477698.952026794664562 6891185.101994454860687) 77 secondary 0 0 0 mainroads 5 0
560 LINESTRING (1478086.567631015786901 6891649.909905299544334,1478125.196695613209158 6891674.772766153328121,1478142.915679592173547 6891681.685942734591663,1478159.589626074302942 6891686.315168510191143,1478175.087905370397493 6891688.721753821708262,1478194.67302773357369 6891689.365553838200867,1478206.467022337485105 6891687.633425346575677) 78 secondary 0 0 1 mainroads 5 0
561 LINESTRING (1478237.248975021298975 6891675.033351420424879,1478242.875382254831493 6891699.988261526450515) 79 secondary 0 0 1 mainroads 5 0
562 LINESTRING (1478347.248502201633528 6892208.147168586961925,1478371.750899214530364 6892203.548301403410733) 80 secondary 0 0 1 mainroads 5 0
563 LINESTRING (1478371.750899214530364 6892203.548301403410733,1478382.453202857170254 6892232.153297962620854) 81 secondary 0 0 1 mainroads 5 0
564 LINESTRING (1478357.316318792523816 6892236.261633796617389,1478347.248502201633528 6892208.147168586961925) 82 secondary 0 0 1 mainroads 5 0
565 LINESTRING (1478382.453202857170254 6892232.153297962620854,1478357.316318792523816 6892236.261633796617389) 83 secondary 0 0 1 mainroads 5 0
566 LINESTRING (1479591.626900956500322 6890520.325010627508163,1479585.384668057085946 6890546.502448085695505) 84 secondary 0 0 0 mainroads 5 0
567 LINESTRING (1478242.875382254831493 6891699.988261526450515,1478212.02811472909525 6891713.140204788185656) 85 secondary 0 0 1 mainroads 5 0
568 LINESTRING (1478913.39756584004499 6890080.455656515434384,1478902.919198798481375 6890060.471222716383636,1478901.482272242428735 6890051.766362176276743,1478896.611651054350659 6890025.77444030251354,1478895.202716574305668 6890003.031577592715621,1478891.041227969806641 6889935.293782743625343) 86 secondary 0 0 1 mainroads 5 0
569 LINESTRING (1478206.467022337485105 6891687.633425346575677,1478237.248975021298975 6891675.033351420424879) 87 secondary 0 0 1 mainroads 5 0
570 LINESTRING (1478891.041227969806641 6889935.293782743625343,1478923.241445826832205 6889993.42258417326957,1478944.664714500773698 6890030.004252052865922,1478948.424983350094408 6890035.276194448582828,1478965.164244676940143 6890062.325604433193803) 88 secondary 0 0 1 mainroads 5 0
571 LINESTRING (1480004.127460559597239 6892298.699399212375283,1479952.398104491410777 6892295.096912450157106,1479897.916194301797077 6892292.076956707052886,1479756.929439219413325 6892285.025287828408182,1479744.82753178384155 6892283.798911259509623,1479593.00784336659126 6892275.26026960555464,1479563.980060763191432 6892273.619992980733514,1479551.467602882767096 6892272.914827428758144,1479354.879254579078406 6892263.487076595425606,1479238.124306440819055 6892256.75735551957041) 89 secondary 0 0 1 mainroads 5 0
572 LINESTRING (1477166.010895744198933 6890934.453480053693056,1477233.434475639369339 6890900.503951973281801,1477338.096847037784755 6890853.449989835731685,1477440.221270225942135 6890807.515166061930358) 90 secondary 0 0 1 mainroads 5 0
573 LINESTRING (1478922.690935002407059 6892238.254484030418098,1478922.243061791639775 6892224.595805050805211) 91 secondary 0 0 0 mainroads 5 0
574 LINESTRING (1477743.403443159302697 6892544.331485021859407,1477711.763066816842183 6892498.678270866163075) 93 secondary 0 0 0 mainroads 5 0
575 LINESTRING (1478394.097906388808042 6892344.934010887518525,1478418.469673712505028 6892336.287995646707714) 94 secondary 0 0 0 mainroads 5 0
576 LINESTRING (1478206.467022337485105 6891687.633425346575677,1478203.621161298360676 6891671.952314448542893,1478190.950081655522808 6891606.959570964798331,1478184.297298308229074 6891568.669280803762376,1478181.7500194106251 6891550.612513891421258,1478178.904158371733502 6891520.431132415309548,1478177.205972440075129 6891489.069593496620655) 95 secondary 0 0 1 mainroads 5 0
577 LINESTRING (1478739.464137542527169 6892228.489522617310286,1478735.713199388701469 6892210.431273595429957) 96 secondary 0 0 1 mainroads 5 0
578 LINESTRING (1478544.135432646842673 6892221.683182909153402,1478529.290301782777533 6892221.10065860580653,1478515.340917346067727 6892220.410827253945172,1478479.884288007859141 6892219.751655120402575,1478450.119380745105445 6892221.514557450078428,1478435.358226108597592 6892223.185482617467642,1478397.102389190113172 6892229.700561141595244,1478382.453202857170254 6892232.153297962620854) 99 secondary 0 0 1 mainroads 5 0
579 LINESTRING (1478371.750899214530364 6892203.548301403410733,1478390.356298925122246 6892200.773652814328671,1478423.946789876557887 6892198.397573292255402,1478426.568714311579242 6892198.351584662683308,1478451.742921142140403 6892197.86103930324316,1478527.237549557816237 6892200.804311908781528) 100 secondary 0 0 1 mainroads 5 0
580 LINESTRING (1478472.802292829845101 6892429.708376270718873,1478484.279043906368315 6892448.686919055879116) 101 secondary 0 0 1 mainroads 5 0
581 LINESTRING (1478431.579295878997073 6892449.652710394002497,1478394.097906388808042 6892344.934010887518525,1478379.915254652500153 6892302.271228101104498,1478363.931779373902828 6892254.166644357144833,1478357.316318792523816 6892236.261633796617389) 103 secondary 0 0 1 mainroads 5 0
582 LINESTRING (1478382.453202857170254 6892232.153297962620854,1478389.077994128456339 6892251.89785656798631,1478418.469673712505028 6892336.287995646707714,1478423.265649365726858 6892349.165043009445071,1478442.53352820710279 6892385.251545143313706,1478472.802292829845101 6892429.708376270718873) 104 secondary 0 0 1 mainroads 5 0
583 LINESTRING (1480128.794835455948487 6890683.199713693931699,1480037.745943589601666 6890661.297954847104847,1479908.067987125832587 6890628.069927993230522,1479700.842650018632412 6890575.729933591559529,1479627.876639111666009 6890557.491479728370905,1479585.384668057085946 6890546.502448085695505) 105 secondary 0 0 1 mainroads 5 0
584 LINESTRING (1479285.906779821496457 6890425.80800533015281,1479266.862837587017566 6890414.650566106662154) 106 secondary 0 0 1 mainroads 5 0
585 LINESTRING (1479220.367999695939943 6892255.622961183078587,1479175.095482441131026 6892253.338843335397542,1478949.302068391814828 6892240.109368146397173,1478922.690935002407059 6892238.254484030418098,1478739.464137542527169 6892228.489522617310286) 108 secondary 0 0 1 mainroads 5 0
586 LINESTRING (1478973.058010046370327 6890074.815872622653842,1478987.24999247584492 6890117.681394563056529,1478991.019592018099502 6890132.409286628477275,1478995.115765775088221 6890146.44755226187408,1479000.21032356726937 6890161.589289834722877,1479007.926805797265843 6890178.493510303087533,1479018.778400514973328 6890192.562507837079465,1479037.449115067487583 6890212.026194254867733,1479094.002438864903525 6890258.861840659752488,1479124.859037083573639 6890282.417699187062681,1479175.655323958257213 6890321.176968595944345,1479186.796170124784112 6890329.437667407095432) 111 secondary 0 0 1 mainroads 5 0
587 LINESTRING (1479233.776204001158476 6892239.772116457112134,1479356.241535600507632 6892244.984189610928297,1479565.510294239735231 6892254.902467562817037,1479746.880284008570015 6892264.08493363391608,1479758.142429168568924 6892264.774768739938736,1479997.623968284577131 6892279.721210523508489) 113 secondary 0 0 1 mainroads 5 0
588 LINESTRING (1479173.966468716738746 6890346.066372577100992,1479186.796170124784112 6890329.437667407095432) 114 secondary 0 0 0 mainroads 5 0
589 LINESTRING (1479078.233569500269368 6890275.796917401254177,1479094.002438864903525 6890258.861840659752488) 116 secondary 0 0 0 mainroads 5 0
590 LINESTRING (1477871.81242551933974 6890936.997784550301731,1477872.456243261462077 6890928.291974918916821,1477877.485486214514822 6890906.496837940067053,1477884.352875475771725 6890890.617998971603811,1477892.591876451391727 6890882.540647934190929,1477899.328636026475579 6890876.057315123267472,1477917.271556612337008 6890861.695908572524786) 117 secondary 0 0 0 mainroads 5 0
591 LINESTRING (1478191.472600403940305 6891373.802427344955504,1478196.94038587808609 6891352.28198526147753,1478203.341240539913997 6891334.992099165916443,1478208.361152797238901 6891321.442249881103635,1478221.190854205284268 6891283.076680599711835,1478240.664008267689496 6891229.552189072594047,1478281.392478548688814 6891130.99570990819484,1478329.772116212407127 6891020.117283202707767) 118 secondary 0 0 1 mainroads 5 0
592 LINESTRING (1478420.186521029798314 6891416.536923290230334,1478405.378712934441864 6891441.123156609944999,1478385.07512729219161 6891463.931400388479233) 119 secondary 0 0 1 mainroads 5 0
593 LINESTRING (1478385.07512729219161 6891463.931400388479233,1478355.739431857131422 6891480.838359414599836,1478325.330706852255389 6891498.09790275990963,1478305.652277571614832 6891510.099898357875645,1478287.214830313343555 6891523.757363410666585,1478269.365216647740453 6891538.748412380926311,1478261.592750268988311 6891547.424226494506001,1478253.922921500634402 6891557.556240336969495,1478246.822264939546585 6891571.428382882848382,1478241.718376454431564 6891583.645085142925382,1478236.801101807504892 6891598.774201380088925,1478234.319137751823291 6891611.496783165261149,1478233.152801261516288 6891624.955150639638305,1478233.227446796139702 6891641.785805906169116,1478234.375121903605759 6891657.788756710477173,1478237.248975021298975 6891675.033351420424879) 121 secondary 0 0 1 mainroads 5 0
594 LINESTRING (1478922.243061791639775 6892224.595805050805211,1478942.052120761480182 6892225.622887848876417,1479174.98351413779892 6892237.625969672575593,1479215.245449822163209 6892238.729702232405543) 122 secondary 0 0 1 mainroads 5 0
595 LINESTRING (1478436.51523190876469 6891092.385810512118042,1478442.458882669685408 6891118.810350452549756,1478447.432141468161717 6891137.770471206866205,1478455.363229612121359 6891162.769696334376931,1478465.543014509370551 6891191.432300264947116,1478473.483433340443298 6891211.542166809551418,1478480.826687894295901 6891235.974496131762862,1478485.594671468948945 6891257.954459356144071,1478487.899352376582101 6891275.734668834134936,1478489.158995784586295 6891289.759603191167116,1478489.158995784586295 6891306.911441416479647) 123 secondary 0 0 1 mainroads 5 0
596 LINESTRING (1478739.464137542527169 6892228.489522617310286,1478695.637877542292699 6892227.661724239587784) 124 secondary 0 0 1 mainroads 5 0
597 LINESTRING (1479563.980060763191432 6892273.619992980733514,1479565.510294239735231 6892254.902467562817037) 126 secondary 0 0 0 mainroads 5 0
598 LINESTRING (1478942.192081137793139 6890130.999331175349653,1478922.401683553820476 6890133.711963083595037,1478910.029186052503064 6890135.275175113230944,1478897.096847034059465 6890139.121904042549431,1478884.817656453233212 6890149.711912300437689,1478838.360141325276345 6890218.141173175536096,1478809.602948790416121 6890263.490247231908143,1478795.187029757071286 6890294.724398334510624,1478786.481494184816256 6890326.46442789491266,1478781.480243310332298 6890359.43066562525928,1478776.385685515357181 6890382.649645018391311,1478763.472007882548496 6890417.455250608734787,1478747.693807828007266 6890450.713059439323843) 127 secondary 0 0 1 mainroads 5 0
599 LINESTRING (1478680.783415985293686 6890415.018393527716398,1478708.486240330385044 6890367.231622180901468,1478737.150125944754109 6890321.376206131651998,1478779.343514857813716 6890266.785306516103446,1478790.773612475488335 6890251.980539125390351,1478894.400277064414695 6890106.524382934905589,1478899.942708073183894 6890099.612560700625181,1478913.39756584004499 6890080.455656515434384) 128 secondary 0 0 1 mainroads 5 0
600 LINESTRING (1478809.602948790416121 6890263.490247231908143,1478790.773612475488335 6890251.980539125390351) 129 secondary 0 0 1 mainroads 5 0
601 LINESTRING (1478747.693807828007266 6890450.713059439323843,1478714.336584170814604 6890522.455372669734061,1478696.636261577485129 6890557.292236343957484,1478687.492183484369889 6890575.28546657320112,1478674.457206855295226 6890599.087476109154522,1478663.092424082104117 6890614.521270107477903,1478635.884126409655437 6890651.596215098164976,1478600.660764371277764 6890704.365850842557847,1478580.217218346660957 6890739.310790088959038,1478575.94376144465059 6890746.238489062525332,1478525.688654698198661 6890826.290629548951983,1478502.744483237853274 6890866.248027193360031,1478484.400342902867123 6890899.676290327683091,1478466.102856026496738 6890932.568242912180722,1478451.155087549006566 6890967.130994181148708) 130 secondary 0 0 1 mainroads 5 0
602 LINESTRING (1478212.02811472909525 6891713.140204788185656,1478199.170421248069033 6891718.367265134118497,1478187.143159347353503 6891720.421301508322358,1478175.936998336343095 6891718.750480834394693,1478161.875645596301183 6891715.209568447433412,1478141.842650016769767 6891706.65620210301131,1478116.659112496068701 6891686.514439879916608,1478086.567631015786901 6891649.909905299544334) 131 secondary 0 0 1 mainroads 5 0
603 LINESTRING (1479186.796170124784112 6890329.437667407095432,1479194.130093982676044 6890335.261541805230081,1479279.664546919055283 6890398.466176299378276,1479297.47683781851083 6890409.209787493571639) 132 secondary 0 0 1 mainroads 5 0
604 LINESTRING (1478086.567631015786901 6891649.909905299544334,1478075.426784849492833 6891635.39383159019053,1478052.874502453953028 6891606.26979230903089,1478037.180278623942286 6891587.247253092937171,1478002.040892810327932 6891541.829398297704756,1477825.784122222103179 6891305.424640764482319,1477691.104914883850142 6891132.620425897650421,1477677.911316492594779 6891115.560924383811653,1477601.352989191422239 6891019.243627357296646,1477547.608203666983172 6890950.087170991115272,1477456.633957332465798 6890828.666303563863039,1477454.497228882741183 6890826.259975696913898,1477452.211209358181804 6890823.685052404180169,1477440.221270225942135 6890807.515166061930358) 133 secondary 0 0 0 mainroads 5 0
605 LINESTRING (1479627.876639111666009 6890557.491479728370905,1479634.464107617270201 6890532.50946301408112) 134 secondary 0 0 0 mainroads 5 0
606 LINESTRING (1478016.484803919447586 6892382.200895741581917,1477995.042873862665147 6892323.962841073982418) 136 secondary 0 0 0 mainroads 5 0
607 LINESTRING (1478472.802292829845101 6892429.708376270718873,1478431.579295878997073 6892449.652710394002497) 137 secondary 0 0 0 mainroads 5 0
608 LINESTRING (1476901.859007160179317 6891178.373176074586809,1476933.797965641599149 6891127.102523874491453,1476969.217272213893011 6891077.533540516160429,1477002.779771094908938 6891043.859300371259451,1477030.258658833103254 6891020.699720491655171,1477070.79118458321318 6890988.573769110254943,1477117.099408636335284 6890959.789270952343941,1477166.010895744198933 6890934.453480053693056) 139 secondary 0 0 0 mainroads 5 0
609 LINESTRING (1477342.883491998305544 6890867.014377377927303,1477338.096847037784755 6890853.449989835731685) 141 secondary 0 0 0 mainroads 5 0
610 LINESTRING (1477452.211209358181804 6890823.685052404180169,1477342.883491998305544 6890867.014377377927303,1477317.485348558053374 6890876.701050061732531,1477166.010895744198933 6890934.453480053693056) 142 secondary 0 0 1 mainroads 5 0
611 LINESTRING (1477801.412354895845056 6891105.552087247371674,1477825.746799453394488 6891083.940398719161749,1477842.486060780240223 6891060.520138014107943,1477854.112102926243097 6891041.897400882095098,1477860.41031997743994 6891025.880348713137209,1477868.43471504189074 6891004.698037818074226,1477870.207546508172527 6890978.105273565277457) 144 secondary 0 0 0 mainroads 5 0
612 LINESTRING (1478212.02811472909525 6891713.140204788185656,1478206.467022337485105 6891687.633425346575677) 145 secondary 0 0 1 mainroads 5 0
613 LINESTRING (1478325.657281069783494 6892141.203251630999148,1478321.449139009229839 6892126.425690860487521,1478318.136743376497179 6892116.154995526187122,1478308.647429679986089 6892080.483592945151031,1478266.19278139132075 6891904.336327421478927,1478249.052300312556326 6891837.149678730405867,1478217.355939821107313 6891730.72214855439961,1478215.956336030969396 6891726.108225850388408,1478212.02811472909525 6891713.140204788185656) 146 secondary 0 0 1 mainroads 5 0
614 LINESTRING (1478185.743555557215586 6892242.623426643200219,1478218.251686245668679 6892235.403175389394164,1478245.870534363202751 6892229.562594718299806,1478299.018155604368076 6892218.111389826983213,1478347.248502201633528 6892208.147168586961925) 147 secondary 0 0 1 mainroads 5 0
615 LINESTRING (1479585.384668057085946 6890546.502448085695505,1479467.789957643020898 6890509.550598309375346) 148 secondary 0 0 1 mainroads 5 0
616 LINESTRING (1479591.626900956500322 6890520.325010627508163,1479634.464107617270201 6890532.50946301408112) 149 secondary 0 0 1 mainroads 5 0
617 LINESTRING (1478973.058010046370327 6890074.815872622653842,1478972.078287394251674 6890093.298440041951835,1478970.389432155527174 6890104.179573393426836,1478967.524909733561799 6890114.463024233467877,1478959.080633534118533 6890122.340371028520167,1478942.192081137793139 6890130.999331175349653) 150 secondary 0 0 1 mainroads 5 0
618 LINESTRING (1478965.164244676940143 6890062.325604433193803,1478973.058010046370327 6890074.815872622653842) 151 secondary 0 0 1 mainroads 5 0
619 LINESTRING (1478913.39756584004499 6890080.455656515434384,1478927.160336438566446 6890063.367736498825252,1478940.176651681773365 6890058.325657619163394,1478952.801077865762636 6890058.877374304458499,1478965.164244676940143 6890062.325604433193803) 152 secondary 0 0 1 mainroads 5 0
620 LINESTRING (1478242.875382254831493 6891699.988261526450515,1478246.253092732280493 6891712.113187463954091,1478248.763048860942945 6891721.111089956946671,1478265.091759745730087 6891789.477083542384207,1478290.042029966600239 6891901.331847446970642,1478313.816633009817451 6892003.132225465960801,1478335.35186998709105 6892086.538675913587213,1478348.993341592140496 6892131.4230787018314,1478366.684333492536098 6892186.885094705037773,1478371.750899214530364 6892203.548301403410733) 153 secondary 0 0 1 mainroads 5 0
621 LINESTRING (1477711.763066816842183 6892498.678270866163075,1477867.380346852121875 6892398.006031540222466,1477903.396817710250616 6892373.278902645222843,1477936.726049288874492 6892354.607134696096182,1477974.254092237679288 6892334.525068153627217,1477995.042873862665147 6892323.962841073982418,1478115.819350223056972 6892267.411472347564995,1478185.743555557215586 6892242.623426643200219) 154 secondary 0 0 1 mainroads 5 0
622 LINESTRING (1478512.00052963453345 6892854.268168974667788,1478514.146588779985905 6892802.557567667216063,1478515.00501243583858 6892781.048631047829986,1478514.333202617941424 6892738.414194788783789,1478511.673955417005345 6892685.2786047719419,1478511.56198711367324 6892666.652103416621685,1478509.882462567882612 6892647.565733219496906,1478505.338415597099811 6892630.104427010752261,1478498.247089728945866 6892607.768114305101335,1478458.563656944548711 6892511.739540040493011,1478431.579295878997073 6892449.652710394002497) 155 secondary 0 0 1 mainroads 5 0
623 LINESTRING (1477587.123683996265754 6892602.264529967680573,1477695.331718327244744 6892512.33741554338485,1477711.763066816842183 6892498.678270866163075) 156 secondary 0 0 1 mainroads 5 0
624 LINESTRING (1478115.819350223056972 6892267.411472347564995,1478139.976511632790789 6892311.59171611443162) 157 secondary 0 0 0 mainroads 5 0
625 LINESTRING (1478489.158995784586295 6891306.911441416479647,1478483.047392571577802 6891339.299239296466112,1478476.786498283268884 6891360.712351007387042,1478468.631473538232967 6891378.140244230628014,1478458.498342099832371 6891397.361552857793868,1478446.163167367456481 6891415.663224364630878,1478431.457996882498264 6891431.757693529129028,1478410.566577647114173 6891449.216396995820105,1478385.07512729219161 6891463.931400388479233) 158 secondary 0 0 1 mainroads 5 0
626 LINESTRING (1478294.147534419083968 6892193.936677500605583,1478305.512317192507908 6892186.823776624165475,1478311.166716501815245 6892179.726211540400982,1478316.130644607590511 6892167.67722771782428,1478325.657281069783494 6892141.203251630999148) 159 secondary 0 0 1 mainroads 5 0
627 LINESTRING (1479634.464107617270201 6890532.50946301408112,1479915.066006073495373 6890602.474631934426725,1480044.492033854592592 6890635.825165513902903,1480127.133972293231636 6890656.025601936504245) 160 secondary 0 0 1 mainroads 5 0
628 LINESTRING (1479266.862837587017566 6890414.650566106662154,1479180.236693697748706 6890350.648851290345192,1479173.966468716738746 6890346.066372577100992,1479161.817907822318375 6890337.253920855000615,1479078.233569500269368 6890275.796917401254177) 161 secondary 0 0 1 mainroads 5 0
629 LINESTRING (1479467.789957643020898 6890509.550598309375346,1479446.292043434455991 6890501.872114131227136,1479396.176897070370615 6890481.549454870633781) 162 secondary 0 0 1 mainroads 5 0
630 LINESTRING (1479453.616636599646881 6890482.744903990067542,1479477.671160398516804 6890489.641729325987399,1479591.626900956500322 6890520.325010627508163) 163 secondary 0 0 1 mainroads 5 0
631 LINESTRING (1479078.233569500269368 6890275.796917401254177,1479020.719184436369687 6890226.708281797356904,1478981.269018949009478 6890181.160181148909032,1478961.497282745083794 6890155.520330861210823,1478951.065569168189541 6890141.650631228461862,1478942.192081137793139 6890130.999331175349653) 164 secondary 0 0 1 mainroads 5 0
632 LINESTRING (1478662.672542944317684 6890646.814319248311222,1478692.838669959222898 6890659.106249583885074,1478720.354880469152704 6890669.221817328594625,1478746.378180262632668 6890677.222320823930204,1478774.342263983329758 6890683.613533364608884,1478827.965750514063984 6890691.230884444899857,1478891.339810111327097 6890693.790438639931381,1478955.012451852904633 6890686.755498230457306,1478996.935250700218603 6890678.03463292773813,1479037.234509153524414 6890665.926593106240034,1479067.913824223913252 6890655.213292057625949,1479097.352157269604504 6890641.112831750884652,1479130.522767085814849 6890623.793821963481605,1479163.77735312958248 6890603.80803756415844,1479240.186389355920255 6890541.674635590054095,1479271.705466702114791 6890510.700072621926665,1479303.32718165894039 6890476.185262273997068,1479403.389521929202601 6890361.407724624499679,1479517.373254568781704 6890228.70063394960016,1479567.199149484280497 6890173.895804021507502) 683 rail 0 0 0 railways 7 0
633 LINESTRING (1476778.273992526577786 6891183.002112032845616,1476810.838107366813347 6891118.825677935034037,1476844.288637944497168 6891066.17594079952687,1476886.575333778047934 6891009.372855611145496,1476930.149665095610544 6890957.382903834804893,1476992.422703049844131 6890898.036294349469244,1477053.594719349872321 6890849.986093406565487,1477124.750576021615416 6890812.741637612693012,1477186.743693214608356 6890783.666558920405805,1477242.522569580934942 6890762.929363554343581,1477299.747703199042007 6890745.947280360385776,1477363.233731099637225 6890724.581786209717393,1477492.921018256340176 6890688.380124446004629,1477610.926279115257785 6890655.443191071972251,1477670.204164955532178 6890644.070861050859094,1477770.350481458939612 6890631.3498101439327,1477885.024685293668881 6890629.909114081412554,1477979.656562864314765 6890634.936224867589772,1478114.718328571645543 6890651.703501258045435,1478209.443513062782586 6890670.325334578752518,1478311.623920405516401 6890696.625873879529536,1478387.155871592927724 6890721.531766928732395,1478441.24589272052981 6890743.985453568398952) 684 rail 0 0 0 railways 7 0
634 LINESTRING (1479267.721261245664209 6890576.89474381506443,1479349.710051246453077 6890499.956325806677341) 685 light_rail 0 0 0 railways 7 0
635 LINESTRING (1480035.058704312890768 6891629.36974533367902,1479728.956024808576331 6891543.530838788487017,1479512.717239294666797 6891494.143226150423288,1479401.821965686744079 6891469.265595769509673,1479333.754568046657369 6891453.922129524871707,1479271.490860788151622 6891437.490397951565683,1479207.566290363902226 6891415.111414563842118) 686 light_rail 0 0 0 railways 7 0
636 LINESTRING (1476557.509821424959227 6892224.91772651206702,1476579.56757715344429 6892197.033244075253606,1476602.661039686063305 6892155.474967340938747,1476614.604325356660411 6892127.820666904561222,1476626.193044736748561 6892100.902270716615021,1476640.860892452765256 6892073.416780357249081,1476659.326331784250215 6892043.785288944840431,1476691.171983344946057 6891992.432471443898976,1476760.032489801989868 6891879.840651011094451,1476778.273992526577786 6891853.275649514980614,1476800.042496806709096 6891828.059673327021301,1476826.420362893491983 6891804.192709765397012,1476842.833050002809614 6891792.113631258718669,1476896.139293009182438 6891750.480804309248924,1476928.358172246254981 6891725.740338440053165,1476937.716856256127357 6891718.275293369777501,1476958.085756740299985 6891704.908741282299161,1476967.575070433784276 6891697.474372724071145,1477252.002552584279329 6891480.071950710378587,1477319.762037389911711 6891425.979008984751999,1477450.111803674371913 6891326.285858543589711) 687 rail 0 0 0 railways 7 0
637 LINESTRING (1479344.55950930272229 6890482.33109465893358,1479381.891607720637694 6890430.850314672105014,1479559.622627633390948 6890217.144998343661427,1479616.707800869364291 6890150.324937810190022,1479735.832744759973139 6890003.951099094934762,1479757.517272809520364 6889977.315668813884258,1479906.463108111871406 6889794.287592766806483,1479968.549532222328708 6889699.85574609786272,1480013.924687087535858 6889632.978685894981027,1480063.200071178842336 6889572.814326574094594,1480595.105495428200811 6888922.40596410445869,1480676.674404293997213 6888823.617269230075181,1481192.549699805909768 6888190.108256537467241,1481629.319389119045809 6887662.561815643683076,1481736.099827584112063 6887530.067787102423608,1481774.91550601972267 6887482.558607625775039,1481844.793057894799858 6887399.016058546490967,1481868.278409486636519 6887371.761121637187898) 688 light_rail 0 0 0 railways 7 0
638 LINESTRING (1479315.839639539364725 6890486.729735681787133,1479082.600333325797692 6890751.342306513339281,1478999.1466246873606 6890835.195578991435468,1478910.113162280060351 6890921.118885340169072,1478875.048422001069412 6890958.17991707008332,1478845.218199896393344 6890996.482626908458769,1478808.305982613703236 6891048.641432393342257,1478761.083350750152022 6891124.619469199329615) 689 rail 0 0 0 railways 7 0
639 LINESTRING (1476557.509821424959227 6892224.91772651206702,1476576.040575603721663 6892207.426679218187928,1476622.861987715121359 6892172.689970703795552,1476647.1591095039621 6892154.43256404530257,1476668.713007867103443 6892134.718903675675392,1476686.254708698019385 6892114.39211630821228,1476697.955396381672472 6892099.200712250545621,1476709.628091989317909 6892081.188741613179445,1476879.773259358713403 6891804.805861446075141,1476894.207839777693152 6891782.165266772732139,1476907.783996538026258 6891763.433556890115142,1476948.400498515926301 6891721.019118160009384,1476956.704814333235845 6891716.067971306852996,1476966.007514191325754 6891708.173734177835286,1477005.746931127505377 6891679.095416892319918,1477256.22935602767393 6891486.632411575876176,1477326.153561364393681 6891432.983940120786428,1477454.375929886475205 6891332.524308172985911) 690 rail 0 0 0 railways 7 0
640 LINESTRING (1478578.537693798076361 6892046.973773205652833,1478584.938548462698236 6892094.35663787741214,1478595.808804563246667 6892162.1739446753636,1478606.221856760093942 6892214.478280032984912,1478616.578924805158749 6892272.623563419096172,1478646.530445903539658 6892364.080981981940567,1478711.369424138218164 6892514.636937133036554,1478787.84377520903945 6892676.55557119846344,1478826.81807540403679 6892755.92172808945179,1478854.548891827696934 6892815.098086142912507,1478923.894594261655584 6892997.93432189617306,1478943.321094862185419 6893067.721645668148994,1478958.240871261106804 6893144.040726294741035,1478968.271365088876337 6893217.554868974722922,1478973.869780246401206 6893291.606290957890451,1478974.466944529442117 6893364.12521836720407) 691 rail 0 0 0 railways 7 0
641 LINESTRING (1479276.548095814418048 6891179.446108014322817,1479307.358040571212769 6891231.606100558303297,1479339.17570005916059 6891279.306043236516416,1479366.542619493789971 6891318.974463047459722,1479402.260508207604289 6891358.597094771452248,1479431.306952188257128 6891389.360332677140832,1479472.697901599807665 6891421.380589242093265,1479515.283179575111717 6891449.063115849159658,1479565.827537767123431 6891472.499836646020412,1479622.035625964170322 6891492.334498732350767,1479731.885862075258046 6891519.496109201572835,1480048.737498683854938 6891593.869114982895553) 692 light_rail 0 0 0 railways 7 0
642 LINESTRING (1478602.097690927330405 6891164.808263186365366,1478585.890279041836038 6891284.364215715788305,1478582.717843782622367 6891342.10424639005214,1478565.502717171795666 6891616.09531166497618,1478560.296191073488444 6891715.332197420299053,1478556.013403475517407 6891851.006974860094488,1478567.415509017417207 6891960.501914793625474,1478578.537693798076361 6892046.973773205652833) 693 rail 0 0 0 railways 7 0
643 LINESTRING (1475827.439161936519668 6888429.393967813812196,1475897.979192936560139 6888504.029522120021284,1476023.309046963695437 6888628.280639900825918,1476225.150574827333912 6888800.601991452276707,1476400.138371311826631 6888947.490241937339306,1476464.28687833994627 6889000.647103982046247,1476631.903428197605535 6889142.129735194146633,1476745.103382710367441 6889237.949506449513137,1476791.197000852320343 6889272.33640996273607,1476838.662230708403513 6889305.65077849291265,1477053.790663880994543 6889449.851177944801748,1477102.916756902821362 6889486.154534038156271,1477127.755058822920546 6889504.834965611808002,1477167.513137144735083 6889537.935754880309105,1477506.179931489285082 6889826.255522099323571,1477606.680814286228269 6889910.988007251173258,1477636.93091752869077 6889934.542846583761275,1477663.88728651846759 6889953.79135469160974,1477695.201088640838861 6889973.530318510718644,1477754.889524928759784 6890008.701961868442595,1477817.227877719327807 6890043.245416264049709,1477908.538028964074329 6890093.375067686662078,1477952.914799788501114 6890118.462998975068331,1478006.174389333231375 6890147.750230991281569,1478042.330820570699871 6890171.137181520462036,1478075.501430386910215 6890194.033776975236833,1478102.308508307440206 6890215.076020252890885,1478166.429023256991059 6890265.697170505300164,1478183.560173645848408 6890279.046004079282284) 695 rail 0 0 0 railways 7 0
644 LINESTRING (1478598.449390378547832 6890845.709869343787432,1478556.414623227668926 6890825.447648616507649) 696 rail 0 0 0 railways 7 0
645 LINESTRING (1478927.88813040801324 6890978.978924939408898,1479441.859964764444157 6891217.979787161573768,1479558.960148505866528 6891274.753690734505653,1479694.432464661076665 6891336.67816798388958,1479814.882366804173216 6891392.165357237681746,1480077.364061532309279 6891515.142887800931931) 697 rail 0 0 0 railways 7 0
646 LINESTRING (1478569.785504766972736 6890803.361579650081694,1478595.75282041169703 6890816.082902735099196) 700 rail 0 0 0 railways 7 0
647 LINESTRING (1478850.574017061386257 6890963.099942809902132,1478627.402527447091416 6890858.032757756300271) 703 rail 0 0 0 railways 7 0
648 LINESTRING (1478183.560173645848408 6890279.046004079282284,1478405.86390891415067 6890456.521695459261537,1478453.245162542676553 6890498.408369177952409,1478496.56756518012844 6890547.360726167447865,1478533.153208245523274 6890597.539500389248133) 704 rail 0 0 0 railways 7 0
649 LINESTRING (1478343.516225425293669 6890759.5421401290223,1478223.607503416249529 6890749.472439081408083,1478071.965098144253716 6890723.922736717388034,1477935.876956322928891 6890680.27232330199331,1477861.231420873198658 6890651.795460822060704) 705 rail 0 0 0 railways 7 0
650 LINESTRING (1479207.566290363902226 6891415.111414563842118,1479145.39589002286084 6891388.195404731668532,1479060.327971686143428 6891345.599010691978037,1478962.775587541749701 6891295.568845461122692,1478908.82552679348737 6891268.132091694511473,1478785.175197315169498 6891204.261530964635313,1478658.75365233537741 6891138.674794974736869) 708 light_rail 0 0 0 railways 7 0
651 LINESTRING (1478183.560173645848408 6890279.046004079282284,1478275.262213947018608 6890340.70227038115263,1478305.01779051986523 6890362.756416314281523,1478420.541087323101237 6890454.559939289465547,1478460.187197338789701 6890491.067073968239129,1478510.171714016469195 6890538.195547109469771,1478530.773881800472736 6890556.893749584443867,1478551.954552487237379 6890575.162854988127947) 709 rail 0 0 0 railways 7 0
652 LINESTRING (1478575.831793141085654 6891339.988995048217475,1478579.592061987845227 6891283.046025006100535,1478593.50412365840748 6891161.252267209812999) 710 rail 0 0 0 railways 7 0
653 LINESTRING (1477781.108769256155938 6890678.065286220051348,1477905.421577859437093 6890735.141912166029215,1478103.250908190850168 6890828.69695742521435,1478294.856667005689815 6890931.571979558095336,1478411.714252757374197 6890990.995472802780569,1478613.145230175927281 6891098.501459069550037,1478665.191829765914008 6891124.772744154557586) 713 light_rail 0 0 0 railways 7 0
654 LINESTRING (1478604.868906431598589 6891027.229151873849332,1478611.251099710585549 6890982.580821967683733,1478613.247867786558345 6890914.635521415621042,1478611.652319462504238 6890865.451023075729609,1478607.640121933305636 6890811.484831825830042,1478591.227434826781973 6890756.093610955402255) 714 rail 0 0 0 railways 7 0
655 LINESTRING (1478625.956270195310935 6890829.907785100862384,1478861.276320709846914 6890948.416510410606861) 715 rail 0 0 0 railways 7 0
656 LINESTRING (1479616.707800869364291 6890150.324937810190022,1479664.443620794219896 6890101.926717818714678,1479699.98422635695897 6890058.524888642132282,1479734.657077576732263 6890015.874237441457808,1479788.523162097437307 6889964.457745274528861) 718 light_rail 0 0 0 railways 7 0
657 LINESTRING (1478782.273352124495432 6891113.062545800581574,1478812.280857374193147 6891067.999899725429714,1478834.945108078885823 6891038.540714574977756,1478859.28888332657516 6891009.74071024172008,1478876.867906926199794 6890991.439962794072926,1478897.348775716731325 6890970.962793939746916,1478936.528351138578728 6890935.541706578806043,1478983.667006774339825 6890894.219856407493353,1479029.200783401727676 6890851.304213112220168,1479066.794141192454845 6890814.289654764346778,1479101.980180467711762 6890775.926505616866052,1479143.14719326980412 6890729.808203851804137,1479181.440352956997231 6890681.77433499135077,1479267.721261245664209 6890576.89474381506443,1479344.55950930272229 6890482.33109465893358) 719 light_rail 0 0 0 railways 7 0
658 LINESTRING (1479735.832744759973139 6890003.951099094934762,1479699.98422635695897 6890058.524888642132282,1479669.062313296599314 6890105.972662986256182,1479632.952535520773381 6890164.209978073835373) 720 light_rail 0 0 0 railways 7 0
659 LINESTRING (1478572.827310339780524 6890796.249909016303718,1478594.185264169238508 6890806.013130874373019) 723 rail 0 0 0 railways 7 0
660 LINESTRING (1478714.065994105068967 6891217.213403515517712,1478673.654767348431051 6891300.887601297348738,1478632.870312915416434 6891389.360332677140832,1478605.372763794381171 6891470.307910224422812,1478585.83429489005357 6891564.484644450247288,1478578.593677949858829 6891611.80335165001452,1478569.23499394278042 6891715.255554312840104,1478573.153884557308629 6891842.852014512754977,1478573.49912015767768 6891933.752698284573853,1478578.537693798076361 6892046.973773205652833) 724 rail 0 0 0 railways 7 0
661 LINESTRING (1478438.502669292036444 6890750.315412051975727,1478385.625638116383925 6890728.62804473284632,1478310.177663156529889 6890703.384942455217242,1478208.071901348652318 6890677.774079982191324,1478114.541045426623896 6890658.554491711780429,1477979.628570788539946 6890640.561075114645064,1477885.481889200396836 6890636.698779699392617,1477771.03162196977064 6890638.5839474638924,1477672.135618184227496 6890651.933400171808898,1477611.794033464044333 6890663.01453560963273,1477495.402982309227809 6890694.725365828722715,1477367.273920707637444 6890730.942382912151515,1477302.826831534970552 6890753.058906504884362,1477244.845911874435842 6890771.420418604277074,1477189.309633497847244 6890792.32623135112226,1477128.520175561308861 6890819.209592456929386,1477058.07345147873275 6890859.25891683716327,1476996.164310513529927 6890906.328240063972771,1476934.367137851659209 6890964.709297677502036,1476892.463000384392217 6891013.940385126508772,1476850.120320399058983 6891069.716567330062389,1476816.053964158287272 6891122.121087796986103,1476784.497564045945182 6891185.623133247718215) 727 rail 0 0 0 railways 7 0
662 LINESTRING (1477785.139628168661147 6890619.962187672965229,1477670.577392631676048 6890570.948082859627903,1477610.665019739652053 6890546.318531366065145,1477551.331149747828022 6890517.719532645307481) 728 rail 0 0 0 railways 7 0
663 LINESTRING (1478598.971909126965329 6890754.806160444393754,1478614.376881508156657 6890813.262752261944115,1478617.549316764576361 6890865.542985087260604,1478618.976912630489096 6890914.083746002987027,1478617.614631609292701 6890981.584552413783967,1478611.950901604257524 6891032.133892551995814) 730 rail 0 0 0 railways 7 0
664 LINESTRING (1478624.789933702209964 6890819.929957416839898,1478866.398870577802882 6890942.408266056329012) 731 rail 0 0 0 railways 7 0
665 LINESTRING (1478565.502717171795666 6891616.09531166497618,1478561.677133480552584 6891537.138942591845989) 735 rail 0 0 0 railways 7 0
666 LINESTRING (1478595.276955124922097 6890826.290629548951983,1478565.344095406820998 6890811.423524235375226) 736 rail 0 0 0 railways 7 0
667 LINESTRING (1476576.040575603721663 6892207.426679218187928,1476618.149988292017952 6892167.615909783169627,1476640.273058862425387 6892146.093342563137412,1476655.827322310302407 6892126.916231859475374,1476670.784421477932483 6892106.114253824576735,1476680.329719322966412 6892090.386338596232235,1476691.657179324654862 6892070.780140379443765,1476829.630120918620378 6891846.576929586008191,1476847.059853446204215 6891819.168952871114016,1476865.683914539869875 6891793.661837009713054,1476884.354629097972065 6891773.197953407652676,1476901.187197342514992 6891757.54733301512897,1476948.400498515926301 6891721.019118160009384) 737 rail 0 0 0 railways 7 0
668 LINESTRING (1476937.716856256127357 6891718.275293369777501,1476957.72185975429602 6891707.821176195517182,1476966.875268540112302 6891701.980978826992214,1477005.746931127505377 6891679.095416892319918) 739 rail 0 0 0 railways 7 0
669 LINESTRING (1477252.002552584279329 6891480.071950710378587,1477286.414144428446889 6891458.857786803506315,1477326.153561364393681 6891432.983940120786428) 741 rail 0 0 0 railways 7 0
670 LINESTRING (1478855.416646176483482 6890957.168323368765414,1478625.368436602409929 6890839.900952127762139) 742 rail 0 0 0 railways 7 0
671 LINESTRING (1477256.22935602767393 6891486.632411575876176,1477286.414144428446889 6891458.857786803506315,1477319.762037389911711 6891425.979008984751999) 743 rail 0 0 0 railways 7 0
672 LINESTRING (1478430.310321775265038 6890777.137325343675911,1478363.717173459939659 6890762.914036750793457) 746 rail 0 0 0 railways 7 0
673 LINESTRING (1478932.544145682128146 6890972.940003331750631,1479191.92805068846792 6891093.642660211771727,1479300.29470678162761 6891144.070084678940475,1479955.859791199443862 6891450.764536706730723,1480073.361194689990953 6891504.167875309474766,1480081.059015537146479 6891508.153213307261467) 747 rail 0 0 0 railways 7 0
674 LINESTRING (1478614.35822012508288 6895547.603960990905762,1478615.365934853209183 6895453.089168295264244,1478618.7716374094598 6895322.46029799990356,1478627.934376885648817 6895235.953195017762482,1478677.928224253468215 6894754.545370802283287,1478689.899502002634108 6894669.838488157838583,1478708.728838320123032 6894564.201485143043101,1478728.612542824819684 6894486.274192513898015,1478750.604983708821237 6894401.156126040033996,1478775.648560852976516 6894316.60630351677537,1478799.17123521049507 6894234.572051984257996,1478819.176238714251667 6894162.305936777964234,1478835.234359527472407 6894088.062495077960193,1478888.839184675598517 6893836.372824227437377,1478909.506667304085568 6893747.121864621527493,1478924.529081313405186 6893665.614724689163268,1478939.710117084905505 6893584.200404370203614,1478951.018915706546977 6893509.088375779800117,1478957.755675281397998 6893436.798119088634849,1478962.271730176173151 6893365.505077449604869,1478961.907833192963153 6893291.146342131309211,1478955.684261673595756 6893219.30265864636749,1478946.036326214903966 6893145.742505932226777,1478932.404185302788392 6893069.54605878982693,1478912.567134257173166 6893000.47927956096828,1478842.764227916719392 6892818.547498689033091,1478815.686559933237731 6892760.919507294893265,1478777.505368549609557 6892681.10871759429574,1478695.451263701310381 6892523.329134689643979,1478630.239057793281972 6892371.377998174168169,1478598.673326985212043 6892274.539774225093424,1478586.73937200778164 6892214.110370276495814,1478576.382303962484002 6892165.36247589904815,1478565.717323085758835 6892097.821070521138608,1478557.963518089847639 6892049.073881317861378,1478550.666917 6892009.018629167228937,1478547.363852057838812 6891970.695765716023743,1478545.954917574767023 6891928.402865662239492,1478544.294054409023374 6891850.393819660879672,1478547.634442123584449 6891714.841681536287069,1478555.74281340977177 6891610.715033587068319,1478561.677133480552584 6891537.138942591845989,1478566.193188372533768 6891473.710761290974915,1478575.831793141085654 6891339.988995048217475) 749 rail 0 0 0 railways 7 0
675 LINESTRING (1477556.565667921910062 6890511.175188716500998,1477614.798516265349463 6890538.701317588798702,1477682.334064466878772 6890563.668027113191783,1477739.55919808219187 6890579.638179088011384,1477786.753837872762233 6890589.339832002297044,1477886.918815756216645 6890608.05347993876785,1477979.441956950351596 6890621.326249268837273,1478115.203524554148316 6890637.250536070205271,1478210.255283262813464 6890657.389669657684863,1478313.182145957835019 6890686.479618338868022,1478388.508821921423078 6890711.523420327343047,1478445.080807101679966 6890735.663021787069738) 750 rail 0 0 0 railways 7 0
676 LINESTRING (1478347.229840818792582 6891012.392329533584416,1478476.030712238047272 6891063.922815636731684) 751 light_rail 0 0 0 railways 7 0
677 LINESTRING (1478094.470727083971724 6890836.620984894223511,1478107.888262082124129 6890843.119612865149975,1478290.601871486520395 6890940.323774167336524,1478460.821684390539303 6891029.313666300848126,1478546.72936500585638 6891074.130857136100531,1478570.382669050013646 6891085.365848724730313,1478660.983687705593184 6891132.375185729004443,1478788.133026657626033 6891198.023180870339274,1478968.12207401660271 6891290.617960623465478,1479014.626242603408173 6891313.885613084770739,1479051.445152965839952 6891332.922833372838795,1479137.968659247271717 6891374.814073477871716,1479237.54580354061909 6891417.272669827565551,1479286.979809394106269 6891432.999268201179802) 753 light_rail 0 0 0 railways 7 0
678 LINESTRING (1477521.612895943690091 6890502.255271850153804,1477475.761875794501975 6890473.181315985508263,1477442.637919437140226 6890448.153582629747689,1477408.198335519991815 6890419.110474707558751,1477351.449067191453651 6890359.875120709650218,1477284.827926800120622 6890281.743360051885247,1477035.661129459738731 6889969.653018221259117,1477000.447098108474165 6889923.002958968281746,1476967.005898226518184 6889873.855176855809987,1476902.036290308227763 6889765.446070476435125,1476666.398996269330382 6889354.24341909494251,1476618.523215968394652 6889274.71162486448884,1476574.892900496488437 6889215.837150192819536,1476535.629348847083747 6889162.648217984475195,1476495.936585372779518 6889113.780909334309399,1476444.403173832688481 6889058.600589515641332,1476398.720106138614938 6889012.645371961407363,1476350.088539789430797 6888967.02753147855401,1476127.411576841957867 6888777.08111983910203,1476049.882857584161684 6888709.813339100219309,1475992.648393273120746 6888654.528531948104501,1475915.940774908289313 6888571.127032433636487,1475859.518080794485286 6888503.707749617286026,1475810.438641237094998 6888443.337326082400978) 754 rail 0 0 0 railways 7 0
679 LINESTRING (1478087.146133915986866 6890851.273559163324535,1478099.686583872418851 6890857.588275128975511,1478284.284993046661839 6890953.198585663922131,1478356.989744574995711 6890988.497132927179337,1478420.373134867986664 6891017.419679494574666) 755 light_rail 0 0 0 railways 7 0
680 LINESTRING (1477405.483104167273268 6890465.763412615284324,1477442.693903588689864 6890498.193800956942141,1477484.448749980889261 6890527.267847270704806,1477538.921329480595887 6890561.752224069088697,1477579.621807685820386 6890584.404708518646657,1477683.612369260750711 6890631.518402252346277) 757 light_rail 0 0 0 railways 7 0
681 LINESTRING (1478638.020854862174019 6891161.880697418935597,1478549.817824034951627 6891106.839593932963908,1478476.030712238047272 6891063.922815636731684) 758 light_rail 0 0 0 railways 7 0
682 LINESTRING (1477654.761869808426127 6890641.77187445666641,1477570.934933496639132 6890599.225414553657174,1477528.592253511305898 6890576.43495028745383,1477478.915649668080732 6890539.130456198938191,1477438.289816997246817 6890504.661502741277218,1477401.172324493527412 6890470.315307054668665) 759 light_rail 0 0 0 railways 7 0
683 LINESTRING (1478908.82552679348737 6891268.132091694511473,1478968.12207401660271 6891290.617960623465478) 760 light_rail 0 0 0 railways 7 0
684 LINESTRING (1477344.973566989181563 6890408.949243260547519,1477311.504375034244731 6890367.109013764187694,1476949.016324184834957 6889894.743330676108599,1476911.338990163756534 6889833.412309887818992,1476874.352127346210182 6889766.059066688641906,1476800.67698385566473 6889633.913489734753966,1476653.438665177905932 6889368.648105666041374,1476600.757578530581668 6889286.419145964086056,1476556.250178016955033 6889229.536690140143037) 761 light_rail 0 0 0 railways 7 0
685 LINESTRING (1478951.550765147898346 6891271.872068259865046,1479014.626242603408173 6891313.885613084770739) 762 light_rail 0 0 0 railways 7 0
686 LINESTRING (1478665.191829765914008 6891124.772744154557586,1478570.382669050013646 6891085.365848724730313) 764 light_rail 0 0 0 railways 7 0
687 LINESTRING (1478613.145230175927281 6891098.501459069550037,1478512.373757313471287 6891032.731658027507365,1478391.186730505200103 6890953.244567170739174) 766 light_rail 0 0 0 railways 7 0
688 LINESTRING (1475352.861508915899321 6893202.392042903229594,1475384.884443622082472 6893185.496794159524143,1475415.40513693029061 6893166.639162816107273,1475452.914518496021628 6893139.104034236632288,1475485.021429432556033 6893109.6065957788378,1475514.525077319936827 6893077.932231985032558,1475539.596646539866924 6893046.978557553142309,1475559.415036202641204 6893018.186688029207289,1475577.078036027029157 6892989.057638514786959,1475610.024709239369258 6892929.052129200659692,1475653.543056407710537 6892853.762252791784704,1475678.120098955230787 6892816.385866651311517,1475710.124372278340161 6892775.744226446375251,1475739.320107336854562 6892744.73039329610765,1475768.805093838367611 6892714.682502984069288,1475840.838035549037158 6892642.246086311526597,1475907.869726384989917 6892584.328083496540785,1475976.898185294354334 6892529.445871927775443,1476109.086097889812663 6892446.571376527659595,1476194.667204285040498 6892393.790303630754352,1476235.65693393885158 6892368.557302054949105,1476273.334267959930003 6892339.721872925758362,1476309.854596180841327 6892310.288686713203788,1476343.585047514177859 6892278.724780205637217,1476371.26921047619544 6892251.223352207802236,1476396.396763845114037 6892220.564123103395104,1476441.333376189693809 6892160.288419598713517,1476485.271604493027553 6892090.876877398230135,1476503.046572620980442 6892057.520307081751525,1476521.353390193078667 6892020.162952153012156,1476548.636333400150761 6891949.31168732047081,1476565.347602651221678 6891885.28242499101907,1476579.390294005395845 6891822.020113877020776,1476596.904002760536969 6891745.790226866491139,1476612.318305834662169 6891669.8369763167575,1476641.18746667006053 6891532.141924168914557,1476660.623297963757068 6891452.527270408347249,1476674.292761641787365 6891406.190494714304805,1476690.145607233978808 6891361.524732173420489,1476706.138413205510005 6891325.274218517355621,1476725.210347512969747 6891292.150741980411112,1476789.237555547850206 6891203.280561587773263,1476851.547916265204549 6891125.75370395090431,1476899.52633417956531 6891059.339930346235633,1476944.845504887402058 6891000.314440655522048,1476973.220139053184539 6890965.077150264754891,1476999.598005142761394 6890935.066565403714776,1477026.824964198283851 6890910.297954620793462,1477054.87302414374426 6890884.992973770014942,1477130.479620868572965 6890828.405745735391974,1477242.401270584436134 6890777.627784022130072,1477373.040288320509717 6890737.992688745260239,1477489.468662241240963 6890705.561333095654845) 767 light_rail 0 0 0 railways 7 0
689 LINESTRING (1478411.714252757374197 6890990.995472802780569,1478512.373757313471287 6891032.731658027507365,1478671.266110216034576 6891093.428076104260981) 768 light_rail 0 0 0 railways 7 0
690 LINESTRING (1477489.468662241240963 6890705.561333095654845,1477590.081513338722289 6890676.256742395460606,1477641.279019968351349 6890665.849960001185536,1477684.806697827065364 6890661.926345975138247,1477737.515776550164446 6890662.217551639303565,1477788.27474065637216 6890666.984130036085844,1477827.081088401842862 6890675.505737031809986,1477872.446912571322173 6890688.977864359505475,1477922.702019314747304 6890709.776175797916949,1478339.364067516522482 6890923.509914490394294,1478391.186730505200103 6890953.244567170739174,1478671.266110216034576 6891093.428076104260981,1478812.467471212381497 6891164.624332321807742,1478920.47023032233119 6891225.199124677106738,1478966.713139536324888 6891258.153720107860863,1479043.168829224305227 6891308.045701892115176,1479111.833391147432849 6891342.71736282389611,1479235.297106784768403 6891399.41550721321255) 769 light_rail 0 0 0 railways 7 0
691 LINESTRING (1478460.821684390539303 6891029.313666300848126,1478493.917648672126234 6891050.955862689763308,1478535.485881229164079 6891075.832198646850884) 770 light_rail 0 0 0 railways 7 0
692 LINESTRING (1478546.72936500585638 6891074.130857136100531,1478493.917648672126234 6891050.955862689763308,1478458.08779165497981 6891036.594143707305193) 772 light_rail 0 0 0 railways 7 0
693 LINESTRING (1478560.296191073488444 6891715.332197420299053,1478571.828926299000159 6891609.948612500913441,1478579.424109532730654 6891563.518959445878863,1478599.410451650619507 6891468.039343643933535,1478627.72910166461952 6891387.229740903712809,1478666.022261348785833 6891297.469495555385947,1478708.467578947311267 6891213.902627007104456) 773 rail 0 0 0 railways 7 0
694 LINESTRING (1478749.074750232277438 6891229.766776816919446,1478697.252087243599817 6891335.283329210244119,1478680.839400137076154 6891369.265349286608398,1478665.275805993471295 6891403.860634117387235,1478650.579966201679781 6891440.893235126510262,1478636.807864910224453 6891480.31720149051398,1478625.71367220277898 6891516.50710129737854,1478615.524556615622714 6891556.452601296827197,1478606.27784091187641 6891606.162493411451578,1478598.524035915965214 6891650.400417221710086,1478592.160504020052031 6891714.366494299843907,1478591.815268416889012 6891798.812305805273354,1478593.541446424322203 6891856.908596065826714,1478596.872503443155438 6891908.797062506899238,1478605.195480649126694 6892008.037561585195363,1478619.499431378906593 6892103.09436908364296,1478629.772523196646944 6892163.722221702337265,1478641.538525721756741 6892218.479299768805504,1478655.889129913412035 6892270.998617016710341,1478670.920874612871557 6892319.547864924184978,1478688.173323994968086 6892364.908794411458075,1478723.713929563527927 6892447.276557306759059,1478779.240877247182652 6892575.543838411569595,1478816.097110378323123 6892663.448042929172516,1478871.092208620626479 6892789.173881882801652,1478923.194792367983609 6892912.464073054492474,1478951.923992824042216 6892984.013724349439144,1478964.156529946019873 6893022.080790019594133,1478974.028402008581907 6893060.37800376676023,1478982.360709904693067 6893100.990420570597053,1478987.305976627394557 6893130.380508157424629) 774 light_rail 0 0 0 railways 7 0
695 LINESTRING (1478162.239542582305148 6890271.275784828700125,1478102.308508307440206 6890215.076020252890885) 775 rail 0 0 0 railways 7 0
696 LINESTRING (1477639.31024397094734 6890001.207860252819955,1477597.219492668518797 6889960.565124080516398,1477572.390521438326687 6889934.420244771055877,1477555.05409582844004 6889916.489749496802688,1477065.258084264583886 6889497.847038632258773,1477030.715862737037241 6889473.036882025189698,1476963.954761966597289 6889426.634892208501697,1476919.242086228914559 6889398.606871547177434) 776 rail 0 0 0 railways 7 0
697 LINESTRING (1477532.455159971257672 6889929.485523279756308,1477564.646047132555395 6889952.427406344562769,1477596.025164099410176 6889970.817740640603006,1477639.31024397094734 6890001.207860252819955) 777 rail 0 0 0 railways 7 0
698 LINESTRING (1478526.565739739919081 6890602.627896940335631,1478491.594306378625333 6890551.6980971544981,1478448.131943361833692 6890503.527355609461665,1478399.733644315274432 6890460.41455677524209,1478162.239542582305148 6890271.275784828700125,1478101.907288549700752 6890224.102898960933089,1478071.293288323795423 6890200.317325276322663,1478038.579882414080203 6890177.742551427334547,1478001.96624727291055 6890154.355581684969366,1477949.630396228516474 6890124.501278791576624,1477904.553823507856578 6890099.152794464491308,1477813.999458313919604 6890050.080562806688249,1477751.007957082940266 6890014.740159252658486,1477691.636764322407544 6889979.752393233589828,1477660.929457176011056 6889961.024882393889129,1477632.35887848213315 6889940.381760180927813,1477601.996806936105713 6889916.796253352425992,1477500.964074700837955 6889831.695906238630414,1477162.465232811402529 6889543.621135639958084,1477122.604516879189759 6889510.397727609612048,1477098.494008928304538 6889492.268960924819112,1477048.098941802745685 6889454.93884819932282,1476833.278421464608982 6889311.933632552623749,1476738.459930056007579 6889246.285711977630854,1476692.198359458940104 6889212.803027050569654,1476648.502729142317548 6889177.5735699608922,1476570.432829750468954 6889112.309837851673365,1476404.710410355357453 6888972.559274631552398) 778 rail 0 0 0 railways 7 0
699 LINESTRING (1477852.236633849330246 6890212.394012399949133,1478308.479477224871516 6890605.202749434858561,1478362.784104266436771 6890650.676619523204863,1478396.178650686750188 6890676.946441259235144,1478453.133194239344448 6890714.128961123526096) 779 rail 0 0 0 railways 7 0
700 LINESTRING (1482784.748301694169641 6886965.537159140221775,1482693.28885937994346 6886972.002020028419793,1482596.454938515089452 6886983.813426220789552,1482487.295173607533798 6887003.177429282106459,1482381.643748866859823 6887039.102067950181663,1482275.889686515787616 6887083.636586944572628,1482198.407620716840029 6887123.973706754855812,1482126.533300768584013 6887170.745409660041332,1482052.44760683295317 6887226.985180730931461,1481981.702300606062636 6887286.71834568399936,1481968.443387370323762 6887300.031594241969287,1481893.564584620529786 6887373.415718881413341,1481786.998752072220668 6887491.950112945400178,1481743.732333586551249 6887544.959467724896967,1481636.671974362805486 6887667.648355164565146,1481197.382998225279152 6888196.696677305735648,1480772.771200496470556 6888722.807162684388459,1480690.84772533737123 6888841.269510939717293,1480527.495301691815257 6889044.931987857446074,1480432.555511289509013 6889146.512319353409111,1480354.168368370272219 6889229.996406652964652,1480070.375373274553567 6889577.472987326793373,1480025.877303453860804 6889645.238416977226734,1479985.932611293857917 6889713.004417773336172,1479958.108487955294549 6889763.959554866887629,1479928.418226227164268 6889811.788715708069503,1479883.397637658054009 6889871.648361132480204,1479800.475778460968286 6889970.710463566705585,1479752.823934766696766 6890021.713210099376738,1479702.307568650459871 6890079.44417324475944,1479632.952535520773381 6890164.209978073835373,1479578.181373882573098 6890234.309874192811549,1479501.660369355697185 6890327.797787746414542,1479399.125395719893277 6890440.429178510792553,1479372.187688112957403 6890474.959161611273885,1479349.710051246453077 6890499.956325806677341,1479267.189411807339638 6890593.876469925045967,1479186.413611755473539 6890685.71328535862267,1479147.700570930493996 6890733.747177755460143,1479106.981431342195719 6890780.861746666021645,1479071.1049208662007 6890819.224919372238219,1479033.035697785904631 6890855.687729027122259,1478987.819164683111012 6890899.323767800815403,1478941.10039018210955 6890940.752934218384326,1478905.223879706114531 6890974.625996216200292,1478886.235921626212075 6890995.65495538059622,1478870.345753268105909 6891016.116859840229154,1478849.874215167714283 6891047.476553818210959,1478830.513029411667958 6891078.085327141918242,1478803.090125825256109 6891124.665451684966683) 780 light_rail 0 0 0 railways 7 0
701 LINESTRING (1477856.34213829645887 6890206.462946793064475,1478312.584981674794108 6890600.190983732230961,1478372.161449659382924 6890649.036674340255558,1478398.940535501111299 6890670.218048175796866,1478437.774875319562852 6890694.98591932002455) 781 rail 0 0 0 railways 7 0
702 LINESTRING (1482783.740586966043338 6886947.980951749719679,1482690.806895327055827 6886951.780197567306459,1482595.2606099487748 6886967.00783793721348,1482485.121122389100492 6886988.62378338817507,1482377.426276116399094 6887024.134725640527904,1482269.460839775390923 6887069.113434969447553,1482189.804722755216062 6887109.159404909238219,1482114.440724022919312 6887154.138589794747531,1482034.290080333128572 6887211.098286444321275,1481972.978103650966659 6887259.325908213853836,1481901.262405461864546 6887325.861504116095603,1481730.342790664173663 6887524.123379080556333,1481461.170989822829142 6887854.10595522634685,1481188.752108187647536 6888186.614863532595336,1480670.170912018744275 6888817.763843473047018,1480055.054377123713493 6889565.443227421492338,1479862.077006594510749 6889808.447867930866778,1479841.60546849691309 6889834.730262932367623,1479692.510342122521251 6890026.310829350724816,1479549.928038716083393 6890208.225407693535089,1479413.634621670935303 6890373.821827123872936,1479315.839639539364725 6890486.729735681787133) 782 rail 0 0 0 railways 7 0
703 LINESTRING (1477861.343389173736796 6890200.087439280003309,1478318.509971052641049 6890594.719426577910781,1478390.477597918594256 6890656.393440401181579,1478437.774875319562852 6890694.98591932002455,1478455.288584077497944 6890709.31637466698885) 783 rail 0 0 0 railways 7 0
704 LINESTRING (1480071.877614675322548 6891532.785711640492082,1479083.878638119669631 6891071.034723062068224,1478918.445470173377544 6890994.888592929579318) 784 rail 0 0 0 railways 7 0
705 LINESTRING (1477866.363301434088498 6890193.696611104533076,1478323.520552617264912 6890589.707667414098978,1478345.643623190466315 6890607.563031607307494,1478390.477597918594256 6890656.393440401181579) 785 rail 0 0 0 railways 7 0
706 LINESTRING (1479235.297106784768403 6891399.41550721321255,1479323.42549207736738 6891429.473809752613306,1479404.817117797909304 6891454.412629490718246,1479515.861682475078851 6891481.696737250313163,1479730.990115647669882 6891529.674072655849159,1480047.17927313153632 6891600.766893580555916) 786 light_rail 0 0 0 railways 7 0
707 LINESTRING (1477872.288290809141472 6890185.972451457753778,1478330.359949802746996 6890582.412268224172294,1478408.961698635946959 6890650.630639746785164,1478459.636686514364555 6890694.801999206654727,1478463.210341525729746 6890697.438187943771482) 787 rail 0 0 0 railways 7 0
708 LINESTRING (1478805.488113650586456 6894342.55076818075031,1478857.320107331965119 6894072.714029368944466,1478926.292582089779899 6893755.217427032999694,1478940.615194202633575 6893690.161840692162514,1478969.521677806740627 6893554.241368629038334,1478978.189890613080934 6893508.015132857486606,1478983.816297846613452 6893465.484164356254041,1478989.190776400035247 6893405.965717462822795,1478991.168883087579161 6893344.040629624389112,1478990.7023484937381 6893285.075020092539489,1478985.887711454415694 6893222.721581661142409,1478980.597209128318354 6893177.72376514505595,1478972.638128911377862 6893132.434905360452831,1478968.709907609736547 6893107.061603565700352,1478959.323231523856521 6893066.157863318920135,1478950.49639695812948 6893030.804198566824198,1478937.797325239283964 6892990.912695890292525,1478857.497390477219597 6892791.243522559292614,1478802.642252611462027 6892668.445764632895589,1478757.547018504701555 6892584.742001041769981,1478697.793267377885059 6892455.217510379850864,1478660.498491725884378 6892373.738798955455422,1478642.947460204828531 6892327.228085407055914,1478624.09013180853799 6892263.195812923833728,1478611.559012545039877 6892213.55850566457957,1478604.887567814672366 6892161.637413104996085,1478597.898879556916654 6892089.83448248077184,1478592.841644530883059 6892002.932946247048676,1478584.938548462698236 6891893.805323468521237,1478581.840758743695915 6891800.866362730972469,1478581.532845909241587 6891711.040184433571994,1478585.181146452436224 6891648.944210037589073,1478590.415664629545063 6891604.461039665155113,1478597.721596408868209 6891552.206658062525094,1478605.596700401278213 6891511.44878276437521,1478616.131051591597497 6891471.442193754017353,1478628.074337264988571 6891433.029924367554486,1478641.19329012138769 6891395.13899090141058,1478656.962159483227879 6891360.574399496428668,1478672.087211105972528 6891325.688071240670979,1478697.252087243599817 6891275.382129811681807,1478725.31880857469514 6891220.416887637227774) 788 light_rail 0 0 0 railways 7 0
709 LINESTRING (1477882.775988540612161 6890173.665918780490756,1478339.476035819854587 6890570.105128699913621,1478400.685374894412234 6890626.399334325455129,1478459.636686514364555 6890694.801999206654727) 789 rail 0 0 0 railways 7 0
710 LINESTRING (1477908.538028964074329 6890093.375067686662078,1477813.999458313919604 6890050.080562806688249) 790 rail 0 0 0 railways 7 0
711 LINESTRING (1477877.298872376326472 6890180.041405342519283,1478334.922658159164712 6890576.036462583579123,1478373.15050300443545 6890608.819805517792702,1478408.961698635946959 6890650.630639746785164) 791 rail 0 0 0 railways 7 0
712 LINESTRING (1478441.880379769485444 6890723.922736717388034,1478448.113281978992745 6890727.11069754883647) 792 rail 0 0 0 railways 7 0
713 LINESTRING (1477872.288290809141472 6890238.830985979177058,1478303.935430257115513 6890611.578578202985227,1478358.687930509448051 6890655.504497475922108,1478392.194445233326405 6890681.43714867066592,1478448.794422489590943 6890719.355371965095401) 793 rail 0 0 0 railways 7 0
714 LINESTRING (1478374.52211471600458 6890689.882137652486563,1478441.880379769485444 6890723.922736717388034) 794 rail 0 0 0 railways 7 0
715 LINESTRING (1477881.404376826249063 6890257.972941686399281,1478297.543906279606745 6890617.050146820954978,1478351.223376962356269 6890659.979866296984255,1478385.718945034081116 6890686.908764844760299,1478441.880379769485444 6890723.922736717388034) 795 rail 0 0 0 railways 7 0
716 LINESTRING (1477639.31024397094734 6890001.207860252819955,1477650.339121833909303 6890011.138695799745619,1477667.871491971891373 6890027.245678919367492,1477711.333854988683015 6890056.072814892046154,1477872.288290809141472 6890185.972451457753778) 796 rail 0 0 0 railways 7 0
717 LINESTRING (1477711.333854988683015 6890056.072814892046154,1477765.601159261539578 6890092.271629626862705,1477877.298872376326472 6890180.041405342519283) 797 rail 0 0 0 railways 7 0
718 LINESTRING (1477765.601159261539578 6890092.271629626862705,1477828.779274330707267 6890136.347967855632305,1477882.775988540612161 6890173.665918780490756) 798 rail 0 0 0 railways 7 0
719 LINESTRING (1477667.871491971891373 6890027.245678919367492,1477709.663661133032292 6890068.854257536120713,1477866.363301434088498 6890193.696611104533076) 799 rail 0 0 0 railways 7 0
720 LINESTRING (1477709.663661133032292 6890068.854257536120713,1477738.43018435779959 6890100.348186734132469,1477861.343389173736796 6890200.087439280003309) 800 rail 0 0 0 railways 7 0
721 LINESTRING (1477738.43018435779959 6890100.348186734132469,1477767.485959034180269 6890134.800081231631339,1477856.34213829645887 6890206.462946793064475) 801 rail 0 0 0 railways 7 0
722 LINESTRING (1477767.485959034180269 6890134.800081231631339,1477796.280474334955215 6890170.96859906706959,1477852.236633849330246 6890212.394012399949133) 802 rail 0 0 0 railways 7 0
723 LINESTRING (1477796.280474334955215 6890170.96859906706959,1477825.522862849291414 6890206.815438941121101,1477872.288290809141472 6890238.830985979177058) 803 rail 0 0 0 railways 7 0
724 LINESTRING (1477825.522862849291414 6890206.815438941121101,1477854.522653371095657 6890233.896077645942569,1477881.404376826249063 6890257.972941686399281) 804 rail 0 0 0 railways 7 0
725 LINESTRING (1477335.922795813763514 6889793.260820533148944,1477382.669562393333763 6889831.527330902405083,1477414.291277347132564 6889860.415065491572022,1477448.665546425385401 6889897.256655850447714,1477629.102466995362192 6890037.329800856299698,1477696.330102362437174 6890102.263879836536944,1477741.44399785483256 6890151.443709483370185,1477774.763898740522563 6890185.328771825879812,1477834.890877549303696 6890236.608744276687503,1478292.505332639208063 6890623.870454665273428,1478342.340558242052794 6890664.056745544075966,1478374.52211471600458 6890689.882137652486563) 805 rail 0 0 0 railways 7 0
726 LINESTRING (1477335.922795813763514 6889793.260820533148944,1477374.542529721045867 6889835.496514805592597,1477399.390162334311754 6889867.6638342756778,1477427.400899513624609 6889893.532643830403686,1477590.072182645788416 6890022.694035316817462,1477621.115394705208018 6890055.337192909792066,1477774.763898740522563 6890185.328771825879812) 806 rail 0 0 0 railways 7 0
727 LINESTRING (1478113.020142643013969 6890567.867468994110823,1478206.914895548252389 6890612.88133230060339,1478324.761534644989297 6890666.15649242606014) 807 rail 0 0 0 railways 7 0
728 LINESTRING (1478632.758344612084329 6890816.420094702392817,1478872.753071786370128 6890934.054974609985948) 808 rail 0 0 0 railways 7 0
729 LINESTRING (1477627.702863208018243 6890097.421008551493287,1477642.613308914005756 6890109.068425429053605,1477684.3868166890461 6890145.849852683022618,1477714.636919934535399 6890174.52415706217289,1477745.222928084433079 6890205.788614028133452,1477770.891661590430886 6890232.807946092449129,1478127.641336897388101 6890537.229985372163355,1478178.017742637079209 6890574.044024353846908,1478255.014612456317991 6890619.533044742420316) 809 rail 0 0 0 railways 7 0
730 LINESTRING (1477633.282616982702166 6890089.78889452945441,1477648.622274519409984 6890102.432460854761302,1477690.694364438997582 6890138.202367076650262,1477719.246281747007743 6890165.696567691862583,1477750.653390789870173 6890198.846054994501173,1477777.712397390045226 6890226.217856734059751,1478134.965930065372959 6890527.988186067901552,1478179.100102899828926 6890562.058752524666488,1478255.014612456317991 6890619.533044742420316) 810 rail 0 0 0 railways 7 0
731 LINESTRING (1478119.13174585881643 6890559.131406237371266,1478211.729532587574795 6890605.67787111364305,1478274.851663501933217 6890634.675673317164183) 811 rail 0 0 0 railways 7 0
732 LINESTRING (1478578.658992794342339 6890784.938687206245959,1478592.291133706457913 6890793.812937114387751) 814 rail 0 0 0 railways 7 0
733 LINESTRING (1478576.662224721163511 6890790.042529220692813,1478592.869636606657878 6890797.951191720552742) 816 rail 0 0 0 railways 7 0
734 LINESTRING (1478255.014612456317991 6890619.533044742420316,1478274.851663501933217 6890634.675673317164183,1478324.761534644989297 6890666.15649242606014,1478374.52211471600458 6890689.882137652486563) 819 rail 0 0 0 railways 7 0
735 LINESTRING (1478624.575327788246796 6890811.791369803249836,1478632.758344612084329 6890816.420094702392817) 821 rail 0 0 0 railways 7 0
736 LINESTRING (1478624.575327788246796 6890812.481080299243331,1478632.758344612084329 6890816.420094702392817) 823 rail 0 0 0 railways 7 0
737 LINESTRING (1479311.071655961917713 6890483.128060797229409,1479409.174550930503756 6890368.840857767499983,1479522.103915374726057 6890231.44395041000098,1479567.199149484280497 6890173.895804021507502,1479618.872521397890523 6890109.175704349763691,1479907.088264473713934 6889740.297941270284355,1480050.090449015144259 6889560.462758839130402,1480664.171277103479952 6888813.320146127603948,1481185.187783869216219 6888181.696536475792527,1481455.404622207395732 6887849.387007832527161,1481725.210910100489855 6887521.289062367752194,1481896.998279252555221 6887321.387990654446185,1481969.926967390812933 6887255.449916490353644,1482031.50020344578661 6887206.440996480174363,1482112.350649032043293 6887148.7459767004475,1482187.733309147180989 6887103.322546837851405,1482267.604032081319019 6887064.410267961211503,1482375.364193198736757 6887018.619642356410623,1482484.141399736981839 6886983.154683265835047,1482594.028958613984287 6886961.53875251673162,1482690.424336957978085 6886945.468548243865371,1482783.236729600699618 6886939.279460026882589) 824 rail 0 0 0 railways 7 0
738 LINESTRING (1479076.507391492836177 6891028.424682137556374,1479191.92805068846792 6891093.642660211771727) 825 rail 0 0 0 railways 7 0
739 LINESTRING (1478938.59976474638097 6890964.157518833875656,1479076.507391492836177 6891028.424682137556374,1479885.31042950367555 6891405.531389341689646,1479995.26330322236754 6891461.448241677135229,1480073.361194689990953 6891504.167875309474766) 827 rail 0 0 0 railways 7 0
740 LINESTRING (1475815.159971352899447 6888439.460763610899448,1475864.211418837308884 6888499.693255602382123,1475920.802065403433517 6888566.576213048771024,1475997.071141253225505 6888649.85508313588798,1476055.490603434853256 6888704.557588589377701,1476132.328851491678506 6888770.982559802941978,1476354.128729394637048 6888961.802259580232203,1476403.460097637493163 6889007.343453120440245,1476449.217810868984088 6889054.064817779697478,1476500.732561023207381 6889108.907986088655889,1476539.548239458817989 6889157.376847730018198,1476580.500646346947178 6889211.990862969309092,1476624.84009440545924 6889271.003225136548281,1476671.465561988530681 6889351.255216074176133,1476907.158840176416561 6889762.457714626565576,1476971.960495642386377 6889870.391702450811863,1477004.384650106076151 6889919.784666567109525,1477040.15852296887897 6889966.741212910972536,1477288.289613505359739 6890277.007661812007427,1477353.996346088824794 6890353.8979682167992,1477413.740766525734216 6890414.619913823902607,1477448.021728683495894 6890442.958000471815467,1477480.277930689277127 6890466.284504777751863,1477526.68879235861823 6890495.281804216094315) 828 rail 0 0 0 railways 7 0
741 LINESTRING (1475804.159085565945134 6888448.485649089328945,1475830.975494176382199 6888481.704669660888612,1475911.042161641409621 6888576.367373092100024,1475986.294192070141435 6888660.810877257026732,1476043.97652958938852 6888715.605394661426544,1476111.773337163729593 6888773.20439646858722,1476344.24752664193511 6888971.976985700428486,1476393.14968305407092 6889017.380325557664037,1476438.403538923012093 6889064.254984210245311,1476487.604277476668358 6889117.994917658157647,1476533.557935239281505 6889174.907231950201094,1476567.698937014909461 6889219.606819932349026,1476608.427407295908779 6889281.208990493789315,1476659.587591157061979 6889363.897621073760092,1476806.275399013189599 6889630.894533473998308,1476879.651960362214595 6889764.051504278555512,1476916.340241038240492 6889830.99095484893769,1476954.605408649425954 6889891.371798135340214,1477316.729562512831762 6890362.909676750190556,1477349.396314963698387 6890405.439559964463115) 829 light_rail 0 0 0 railways 7 0
742 LINESTRING (1478755.951470183674246 6891121.998467871919274,1478802.306347704026848 6891043.660044934600592,1478839.731753036612645 6890992.834741913713515,1478870.849610630888492 6890954.65466683357954,1478904.841321337036788 6890917.057202836498618,1478994.527932184981182 6890830.566843283362687,1479078.056286355247721 6890746.790252956561744,1479311.071655961917713 6890483.128060797229409) 831 rail 0 0 0 railways 7 0
743 LINESTRING (1478476.030712238047272 6891063.922815636731684,1478281.896335911471397 6890962.59414563048631,1477896.856002663495019 6890755.863709062337875,1477714.347668485715985 6890670.003475363366306) 832 light_rail 0 0 0 railways 7 0
744 LINESTRING (1478476.030712238047272 6891063.922815636731684,1478633.626098963664845 6891126.550733875483274) 833 light_rail 0 0 0 railways 7 0
745 LINESTRING (1478633.626098963664845 6891126.550733875483274,1478535.485881229164079 6891075.832198646850884,1478458.08779165497981 6891036.594143707305193,1478420.373134867986664 6891017.419679494574666,1478287.233491696184501 6890945.580986365675926,1478057.745123639237136 6890824.282802382484078,1478049.450138514628634 6890819.79201518651098) 834 light_rail 0 0 0 railways 7 0
746 LINESTRING (1479207.566290363902226 6891415.111414563842118,1479099.610184715595096 6891375.703095939941704,1478899.448181400541216 6891294.403931108303368,1478781.23764532036148 6891236.143100920133293,1478638.020854862174019 6891161.880697418935597) 835 light_rail 0 0 0 railways 7 0
747 LINESTRING (1478638.020854862174019 6891161.880697418935597,1478347.229840818792582 6891012.392329533584416,1478274.310483370674774 6890973.691036481410265,1477887.81456218380481 6890777.459188850596547,1477799.630192739423364 6890730.620521273463964,1477771.712762480368838 6890717.776719653978944,1477743.422104542376474 6890708.212852067314088,1477709.010512698208913 6890701.438452739268541,1477673.143332915147766 6890694.740692501887679,1477614.537256892537698 6890691.997217950411141,1477570.645682045025751 6890694.648732445202768,1477526.22225776175037 6890703.461575921624899,1477450.475700660608709 6890727.95366817060858,1477383.070782145252451 6890752.73704397585243,1477250.239051808137447 6890804.419134659692645,1477138.028150640428066 6890855.948287741281092,1477061.32986296294257 6890902.18992966786027,1477035.62380669103004 6890922.253091386519372,1477009.283263367367908 6890945.443041983060539,1476980.022213472751901 6890972.051025399938226,1476950.705179423559457 6891005.096546770073473,1476903.846444540657103 6891063.493649013340473,1476855.672082100762054 6891129.723526864312589,1476793.529673835728317 6891209.472932793200016,1476732.255019919481128 6891296.519170454703271,1476712.110056042205542 6891330.976191231049597,1476696.051935228751972 6891364.161139542236924,1476680.646962850354612 6891407.355425265617669,1476666.734901179792359 6891453.354988979175687,1476646.729897676035762 6891533.07694885134697,1476618.121996216243133 6891670.986616539768875,1476602.045214017154649 6891746.771262445487082,1476585.455243762582541 6891822.893856970593333,1476570.768734660698101 6891886.907293429598212,1476553.786875346908346 6891951.166504768654704,1476526.279995532939211 6892021.971798327751458,1476508.187783877598122 6892059.191198166459799,1476490.170217757113278 6892094.923823652788997,1476446.866476502502337 6892164.733967241831124,1476401.873880009399727 6892224.289213199168444,1476348.166417250875384 6892284.197483622469008,1476315.499664797214791 6892317.447686146944761,1476280.761498738545924 6892349.870215245522559,1476244.129202214302495 6892379.34953604824841,1476205.294862395850942 6892409.380842979066074,1476120.198951980331913 6892465.657269499264657,1475994.131973290815949 6892548.271348089911044,1475918.823958713328466 6892599.934322696179152,1475847.500149589264765 6892656.135431186296046,1475775.420554416952655 6892722.209795576520264,1475745.310411553597078 6892752.058416236191988,1475710.488269264576957 6892789.52648729365319,1475659.496037861565128 6892857.211681927554309,1475614.400803754804656 6892932.133648023940623,1475582.536490808241069 6892991.587262314744294,1475563.931091094622388 6893021.605525500141084,1475543.394238155335188 6893050.612043621018529,1475518.527944159228355 6893081.657719410024583,1475488.809690357884392 6893114.466613277792931,1475455.89100922155194 6893143.642111292108893,1475418.689540492836386 6893171.989819569513202,1475387.095817609224468 6893190.74014341738075,1475353.1974138233345 6893208.371313671581447) 836 light_rail 0 0 0 railways 7 0
748 LINESTRING (1478658.75365233537741 6891138.674794974736869,1478633.626098963664845 6891126.550733875483274) 837 light_rail 0 0 0 railways 7 0
749 LINESTRING (1478665.191829765914008 6891124.772744154557586,1478792.53711324906908 6891190.098797177895904,1478951.550765147898346 6891271.872068259865046,1479057.696716560982168 6891325.611431846395135,1479110.443118050228804 6891347.499672620557249,1479235.297106784768403 6891399.41550721321255) 838 light_rail 0 0 0 railways 7 0
750 LINESTRING (1478557.963518089847639 6892049.073881317861378,1478556.050726244226098 6892008.252170108258724,1478555.892104479251429 6891960.287307545542717,1478556.013403475517407 6891851.006974860094488) 839 rail 0 0 0 railways 7 0
751 LINESTRING (1478566.193188372533768 6891473.710761290974915,1478566.314487369032577 6891421.901743350550532,1478564.35504206456244 6891386.677933054976165,1478562.041030463995412 6891340.556127598509192,1478559.988278241828084 6891280.026449425145984,1478552.421087084105238 6891228.617199691012502,1478536.680209795245901 6891184.841425079852343,1478515.882097477559 6891146.093319251202047,1478490.17604120564647 6891115.22371987067163,1478460.448456714395434 6891086.806626409292221,1478416.528889790875837 6891054.77237503696233,1478271.417968872701749 6890980.772209639661014,1477885.407243662746623 6890784.019076376222074,1477796.569725786335766 6890736.781874912790954,1477769.296113269403577 6890724.014697107486427,1477741.248053323943168 6890714.527455672621727,1477707.312326766550541 6890707.385210207663476,1477672.322232022183016 6890701.285185849294066,1477614.070722295902669 6890697.269594454206526,1477572.231899673352018 6890700.074377545155585,1477526.175604302901775 6890708.120891856960952,1477455.775533676613122 6890734.314267538487911,1477389.107739823870361 6890759.603447327390313,1477324.548682353226468 6890788.141999081708491,1477257.99285680684261 6890813.109483245760202,1477200.954337026691064 6890839.057969767600298,1477139.474407889414579 6890870.033797833137214,1477067.376151334261522 6890914.604867226444185,1477017.195690128253773 6890957.275613599456847,1476964.794524239376187 6891008.238637273199856,1476915.929690593155101 6891070.344990382902324,1476870.666504034306854 6891132.22191062476486,1476788.761690261075273 6891251.961311405524611,1476754.90060923830606 6891323.971348975785077,1476738.030718227848411 6891370.399618566036224,1476719.761223427485675 6891450.917817885056138,1476702.368813663022593 6891509.915959592908621,1476623.253876777132973 6891838.284014022909105,1476608.446068681776524 6891899.1704620430246,1476585.417920996667817 6891971.646170520223677,1476560.598280456615612 6892035.553486871533096,1476540.061427514301613 6892081.755926453508437,1476514.971196911530569 6892126.241737992502749,1476469.894624190637842 6892196.55802833661437,1476420.703216326888651 6892263.563724930398166,1476371.01728179352358 6892312.496171937324107,1476327.321651474107057 6892356.41605613194406,1476278.49414059962146 6892398.205320552922785,1476225.598448038101196 6892436.177632182836533,1476038.051540214335546 6892556.212400928139687,1476025.800341709284112 6892564.613368845544755) 840 rail 0 0 0 railways 7 0
752 LINESTRING (1478564.35504206456244 6891386.677933054976165,1478557.991510165855289 6891469.69478405546397,1478557.17973996582441 6891485.973299608565867) 841 rail 0 0 0 railways 7 0
753 LINESTRING (1479372.187688112957403 6890474.959161611273885,1479284.45119188237004 6890585.155705378390849,1479257.214902134146541 6890621.678759607486427,1479238.068322289036587 6890653.343446989543736,1479217.820720798335969 6890695.077879380434752,1479200.521617954364046 6890742.973886811174452,1479189.595377702033147 6890782.241162405349314,1479182.326768688624725 6890823.608417795971036,1479178.603822610806674 6890869.190812314860523,1479179.844804635737091 6890923.985054980032146,1479185.153968344675377 6890968.203897933475673,1479195.361745317699388 6891013.066729949787259,1479215.254780515097082 6891069.072816937230527) 842 light_rail 0 0 0 railways 7 0
754 LINESTRING (1479618.872521397890523 6890109.175704349763691,1479692.510342122521251 6890026.310829350724816) 843 rail 0 0 0 railways 7 0
755 LINESTRING (1479213.220689673209563 6891123.270649696700275,1479083.878638119669631 6891071.034723062068224) 844 rail 0 0 0 railways 7 0
756 LINESTRING (1479300.29470678162761 6891144.070084678940475,1479441.859964764444157 6891217.979787161573768) 845 rail 0 0 0 railways 7 0
757 LINESTRING (1479384.009674790082499 6891203.495148631744087,1479558.960148505866528 6891274.753690734505653) 846 rail 0 0 0 railways 7 0
758 LINESTRING (1480034.237603422952816 6891507.38680200651288,1479869.214985921513289 6891429.1672482220456,1479384.009674790082499 6891203.495148631744087,1479213.220689673209563 6891123.270649696700275,1478922.187077639857307 6890988.451151218265295) 847 rail 0 0 0 railways 7 0
759 LINESTRING (1476931.73588272370398 6891636.221568983048201,1476803.457530052866787 6891734.431683016009629,1476778.572574671125039 6891759.448092334903777,1476760.209772950038314 6891782.226581771858037,1476741.193822791567072 6891808.684046884998679,1476723.484169505303726 6891841.487745635211468,1476712.809857935877517 6891868.19066839851439,1476703.031292790779844 6891897.499604214914143,1476694.307095838477835 6891943.869869998656213) 848 rail 0 0 0 railways 7 0
760 LINESTRING (1476934.208516089478508 6891653.941301063634455,1476814.523730684537441 6891746.801919807679951,1476788.603068495867774 6891772.722762719728053,1476773.235418886179104 6891792.128960026428103,1476754.74198747612536 6891818.172579637728631,1476737.676151934778318 6891848.401065579615533,1476720.880906458944082 6891883.688214769586921,1476708.900298016844317 6891916.369587530381978,1476699.78421199973673 6891943.992502459324896) 849 rail 0 0 0 railways 7 0
761 LINESTRING (1476935.00162490340881 6891674.266924197785556,1476822.473480205750093 6891761.793384700082242,1476799.939859193284065 6891783.790114367380738,1476785.346657011890784 6891800.345184058882296,1476766.722595915198326 6891824.54937045276165,1476723.736098188208416 6891895.798088805750012,1476711.624860059702769 6891917.672553083859384,1476699.78421199973673 6891943.992502459324896) 850 rail 0 0 0 railways 7 0
762 LINESTRING (1476691.171983344946057 6891992.432471443898976,1476706.772900257259607 6891960.961787490174174,1476716.439497095998377 6891939.271154,1476729.035931204212829 6891916.139652455225587,1476782.090245527913794 6891832.382406485266984,1476799.4173404420726 6891808.806677283719182,1476812.181727005401626 6891794.474261927418411,1476832.625273029785603 6891774.68484057392925,1476935.253553586313501 6891694.699898800812662) 851 rail 0 0 0 railways 7 0
763 LINESTRING (1478630.015121186384931 6891858.76339219789952,1478635.520229423418641 6891908.122586939483881,1478636.070740247843787 6891978.06907045096159,1478638.916601286735386 6892047.004431717097759,1478643.134074043016881 6892094.463943293318152,1478650.887879036134109 6892145.250223226845264,1478658.464400883996859 6892179.312314847484231,1478671.471385437063873 6892218.341333535499871,1478691.635010700207204 6892270.921968608163297,1478834.935777385951951 6892617.579527481459081) 1 motorway 0 0 1 motorways 9 0
764 LINESTRING (1478313.583365709986538 6891281.068739344365895,1478311.064078888390213 6891244.052202273160219,1478311.791872860630974 6891206.913214413449168,1478314.357813141075894 6891179.61471161711961,1478320.152172832516953 6891150.063152204267681,1478327.019562090979889 6891118.93297032918781,1478335.622460052836686 6891089.810801983810961,1478345.895551870344207 6891061.240524603053927,1478354.07856869418174 6891040.180739216506481) 2 motorway 0 0 1 motorways 9 0
765 LINESTRING (1478376.7148273200728 6891043.997246447019279,1478366.012523674638942 6891069.379364733584225,1478349.170624737394974 6891124.496849230490625,1478341.099576216889545 6891155.581069990992546,1478337.404622212052345 6891183.400629828684032,1478334.409470103681087 6891212.032651987858117,1478334.120218652067706 6891244.757277576252818,1478336.770135160302743 6891278.29440912604332) 3 motorway 0 0 1 motorways 9 0
766 LINESTRING (1478997.037888313643634 6890015.629031332209706,1479043.672686586854979 6889994.847840843722224,1479081.350020605139434 6889979.614465416409075,1479123.524748138152063 6889968.564922427758574,1479170.215530562913045 6889961.760495744645596,1479209.572389130014926 6889960.028739424422383,1479277.229236325016245 6889958.00580330286175,1479339.371644590049982 6889955.538434940390289,1479394.28276660759002 6889949.515607272274792,1479445.900154372444376 6889934.450895222835243,1479482.691072656074539 6889919.309585420414805,1479513.939559936523438 6889901.930829749442637,1479538.787192549789324 6889886.636329824104905,1479557.066018043085933 6889872.138764577917755,1479576.044645432848483 6889857.028222269378603,1479623.267277299193665 6889818.424440407194197,1479929.099366740556434 6889533.936068938113749) 6 motorway 0 0 1 motorways 9 0
767 LINESTRING (1479942.302295821951702 6889547.176416218280792,1479792.936579379020259 6889681.205510908737779,1479634.277493779081851 6889834.561687532812357,1479584.358291943091899 6889878.774539081379771,1479537.527549138991162 6889912.305973013862967,1479500.783284314209595 6889934.512196131981909,1479450.145619201473892 6889955.569085474126041,1479395.169182339450344 6889971.124246567487717,1479341.666994804749265 6889978.327139240689576,1479278.190297594293952 6889979.032103547826409,1479243.788036443060264 6889981.116346220485866,1479210.038923726649955 6889982.848107086494565,1479169.683681121794507 6889986.541509824804962,1479130.242846327135339 6889994.863166186027229,1479095.224759506992996 6890005.008548954501748,1479058.321872920030728 6890019.537004569545388,1479016.87493935925886 6890040.272282585501671) 8 motorway 0 0 1 motorways 9 0
768 LINESTRING (1478777.253439866937697 6890329.912772791460156,1478754.393244634149596 6890382.84888407215476,1478729.78821000806056 6890439.463628521189094,1478709.120727382134646 6890476.890270238742232,1478688.985094192204997 6890512.937716416083276,1478670.454340018797666 6890542.195732670836151,1478633.747397957136855 6890586.473781661130488,1478588.71747869788669 6890651.550235321745276,1478534.739425873849541 6890732.521037810482085,1478511.935214792611077 6890776.462944713421166,1478472.820954215712845 6890853.679894518107176,1478458.908892544917762 6890873.620319033972919,1478415.84774928027764 6890956.907761368900537) 18 motorway 0 0 1 motorways 9 0
769 LINESTRING (1478394.163221230730414 6890950.225115459412336,1478448.831745258299634 6890845.265387403778732,1478487.684746459824964 6890764.078874094411731,1478528.161288061179221 6890690.694451033137739,1478570.830542263807729 6890627.870682856999338,1478588.708148004952818 6890605.53993255738169,1478636.835856985999271 6890548.770754639059305,1478661.664828216191381 6890514.378391520120203,1478677.918893560534343 6890487.618659947998822,1478693.202566948253661 6890460.874343669973314,1478710.613638089969754 6890427.81573298573494,1478734.294934212695807 6890372.963567573577166,1478758.974614370847121 6890316.165379947982728) 20 motorway 0 0 1 motorways 9 0
770 LINESTRING (1477398.289140685694292 6890680.900715908035636,1477271.680981867713854 6890519.972504733130336,1476953.084505865816027 6890110.692934914492071,1476865.413324474124238 6889991.261711636558175) 32 motorway 0 0 1 motorways 9 0
771 LINESTRING (1476973.733327108668163 6890098.677702718414366,1477006.950590386521071 6890149.282794474624097,1477137.477639816235751 6890317.958516811951995,1477307.492177499225363 6890529.505495676770806,1477414.468560495181009 6890666.92282354272902) 44 motorway 0 0 1 motorways 9 0
772 LINESTRING (1476882.217900645453483 6889977.560873750597239,1476973.733327108668163 6890098.677702718414366) 49 motorway 0 0 1 motorways 9 0
773 LINESTRING (1478361.561783624347299 6891449.124428308568895,1478345.746260801097378 6891406.083198485895991,1478336.760804470162839 6891379.550418416969478) 53 motorway 0 0 1 motorways 9 0
774 LINESTRING (1478843.389384278329089 6893924.490144995972514,1478859.260891250800341 6893860.031164361163974,1478879.54581551020965 6893775.931677811779082,1478890.938590359175578 6893720.826675555668771,1478904.066873905947432 6893655.58737968839705,1478915.562286365544423 6893583.970421583391726,1478926.843092911178246 6893487.393564508296549,1478932.180248695891351 6893415.977419194765389,1478936.435044218087569 6893333.093783299438655,1478934.214339534984902 6893251.146226578392088,1478925.770063341362402 6893158.988803039304912,1478919.71444427408278 6893114.221312643960118,1478911.20485323574394 6893073.302204750478268,1478903.451048239832744 6893044.080968570895493,1478888.521941148210317 6892996.8458161521703,1478859.027623953763396 6892921.984570599161088,1478827.620514913694933 6892843.919889785349369,1478773.241242334712297 6892718.913729729130864,1478735.255995481973514 6892636.665826476179063,1478681.044675360899419 6892531.377474130131304,1478640.75474760052748 6892447.521837593987584,1478616.914829715620726 6892391.18421838991344,1478585.778310738503933 6892312.450182654894888,1478550.256366555579007 6892207.533986137248576,1478535.308598081115633 6892151.82655640784651,1478521.71377993770875 6892092.363823323510587,1478508.650811232859269 6892023.658011235296726,1478497.593941294122487 6891948.391943287104368,1478489.672183843096718 6891879.334796157665551,1478479.958933542715386 6891808.776019685901701,1478470.609580228338018 6891754.910796630196273,1478462.314595098374411 6891717.861420435830951,1478450.408632193692029 6891673.592468312941492,1478431.31803650339134 6891617.70479725766927,1478396.617193207610399 6891531.804702173918486) 57 motorway 0 0 1 motorways 9 0
775 LINESTRING (1478357.829506850801408 6891368.391655500978231,1478371.993497204268351 6891403.906618202105165,1478390.850825597764924 6891440.249455007724464) 61 motorway 0 0 1 motorways 9 0
776 LINESTRING (1477495.477627843851224 6890800.066300450824201,1477451.250148088904098 6890745.763359077274799) 64 motorway 0 0 1 motorways 9 0
777 LINESTRING (1478967.31030381959863 6890667.658501483500004,1478973.720489174127579 6890696.33466696832329) 206 service 0 1 0 minorroads 10 1
778 LINESTRING (1479327.960208358010277 6889996.932087614201009,1479283.12623362406157 6889933.470080768689513) 208 footway 0 1 0 minorroads 10 1
779 LINESTRING (1478931.601745795924217 6891332.723570773378015,1479038.970017851097509 6891272.239934901706874) 252 footway 0 1 0 minorroads 10 1
780 LINESTRING (1479334.09980364702642 6891680.858200660906732,1479344.391556847607717 6891681.793242639862001) 260 footway 0 1 0 minorroads 10 1
781 LINESTRING (1478994.415963881416246 6892026.73918299935758,1479007.749522649217397 6892003.975329895503819) 268 footway 0 1 0 minorroads 10 1
782 LINESTRING (1478550.844200145918876 6890545.552211744710803,1478684.179787848610431 6890636.959331315010786) 290 path 0 1 0 minorroads 10 1
783 LINESTRING (1478483.35530540603213 6892391.046249195933342,1478493.69371206802316 6892418.992724485695362,1478523.77586285257712 6892467.619516485370696) 329 service 0 1 1 minorroads 10 1
784 LINESTRING (1478314.525765596190467 6891576.70133616309613,1478278.31335021276027 6891560.652561791241169,1478215.200549985514954 6891534.686417824588716) 376 service 0 1 1 minorroads 10 1
785 LINESTRING (1478215.228542061522603 6891874.245591463521123,1478297.571898355614394 6891853.750844960100949,1478291.20836645970121 6891823.66029835306108) 378 footway 0 1 0 minorroads 10 1
786 LINESTRING (1477112.210126065183431 6890858.29331654496491,1477075.419207778759301 6890879.996360674500465,1477069.279612489743158 6890889.912954720668495,1477083.490256302058697 6890932.47628013510257) 501 footway 0 1 0 minorroads 10 1
787 LINESTRING (1477502.205056728795171 6890571.39254963491112,1477519.588135797530413 6890535.436799609102309) 541 service 0 1 0 minorroads 10 1
788 LINESTRING (1477221.817764186300337 6890863.182627168484032,1477209.725187440868467 6890834.291289354674518,1477200.338511357782409 6890838.981335008516908,1477183.972477710107341 6890800.265549850650132,1477192.883288506418467 6890795.897391020320356,1477188.460540529107675 6890785.490453751757741) 556 footway 0 1 0 minorroads 10 1
789 LINESTRING (1477943.453478170791641 6891735.30541658680886,1477934.290738694835454 6891718.244636114686728) 570 footway 0 1 0 minorroads 10 1
790 LINESTRING (1477770.406465607928112 6892066.840511322021484,1477790.178201811853796 6892050.76009990926832) 583 footway 0 1 0 minorroads 10 1
791 LINESTRING (1477118.508343119407073 6891093.428076104260981,1477088.584814094239846 6891117.76808157004416) 613 footway 0 1 0 minorroads 10 1
792 LINESTRING (1478304.32731931633316 6891039.64428252261132,1478336.73281239438802 6891063.202428812161088,1478362.868080493994057 6891085.381176148541272,1478384.421978857368231 6891108.402995181269944,1478394.816369665553793 6891123.469907105900347) 23 motorway_link 0 1 1 motorways 13 1
793 LINESTRING (1478416.715503631858155 6890979.362105399370193,1478402.775449885288253 6891019.994664833880961,1478396.486563521204516 6891050.220149672590196) 29 motorway_link 0 1 1 motorways 13 1
794 LINESTRING (1478444.334351749392226 6890965.598274794407189,1478436.291295301867649 6890993.279232017695904,1478432.251105696661398 6891019.442882195115089,1478432.932246207259595 6891054.266572091728449) 30 motorway_link 0 1 1 motorways 13 1
795 LINESTRING (1477430.918570373440161 6890653.711285330355167,1477490.821612572530285 6890732.214502855204046) 34 motorway_link 0 1 1 motorways 13 1
796 LINESTRING (1478402.159624219173566 6891432.263520221225917,1478419.636010205605999 6891465.801433998160064,1478516.63788352557458 6891599.647920207120478,1478542.959765463601798 6891648.515012176707387) 55 motorway_link 0 1 1 motorways 13 1
797 LINESTRING (1478395.805423010606319 6891558.521924624219537,1478375.240577995311469 6891530.716394937597215,1478359.005174034042284 6891515.434124372899532,1478339.886586264939979 6891502.06790954247117,1478316.951745497528464 6891488.686388740316033,1478294.97796599916182 6891479.136932187713683,1478269.187933499692008 6891469.572158829309046) 58 motorway_link 0 1 1 motorways 13 1
798 LINESTRING (1478350.271646386012435 6891029.512921379879117,1478380.699032773729414 6890977.676111518405378) 60 motorway_link 0 1 1 motorways 13 1
799 LINESTRING (1479445.853500913595781 6890008.594684292562306,1479466.810234990902245 6889974.786993312649429,1479481.711350003723055 6889943.24758021812886,1479491.517907224595547 6889916.918854899704456,1479498.478603403549641 6889887.111409046687186) 172 residential 0 1 0 minorroads 13 1
800 LINESTRING (1478553.951320560649037 6891315.418398878537118,1478598.850610133260489 6891319.848151468671858) 317 unclassified 0 1 0 minorroads 13 1
801 LINESTRING (1477416.483989951433614 6890762.960017169825733,1477397.141465578228235 6890736.030863894149661,1477367.992383987177163 6890698.603015801869333) 135 tertiary 0 1 0 mainroads 14 1
802 LINESTRING (1478177.205972440075129 6891489.069593496620655,1478177.317940743407235 6891468.652469684369862,1478178.577584154205397 6891445.077807144261897,1478182.907025211025029 6891420.261640835553408,1478186.732608902268112 6891397.361552857793868,1478191.472600403940305 6891373.802427344955504) 92 secondary 0 1 1 mainroads 15 1
803 LINESTRING (1478695.637877542292699 6892227.661724239587784,1478544.135432646842673 6892221.683182909153402) 97 secondary 0 1 1 mainroads 15 1
804 LINESTRING (1478527.237549557816237 6892200.804311908781528,1478681.837784175062552 6892208.622385010123253,1478687.930726005230099 6892209.189578847959638) 102 secondary 0 1 1 mainroads 15 1
805 LINESTRING (1479238.124306440819055 6892256.75735551957041,1479220.367999695939943 6892255.622961183078587) 107 secondary 0 1 1 mainroads 15 1
806 LINESTRING (1479396.176897070370615 6890481.549454870633781,1479348.459738528588787 6890459.663571572862566,1479285.906779821496457 6890425.80800533015281) 109 secondary 0 1 1 mainroads 15 1
807 LINESTRING (1479215.245449822163209 6892238.729702232405543,1479233.776204001158476 6892239.772116457112134) 110 secondary 0 1 1 mainroads 15 1
808 LINESTRING (1479297.47683781851083 6890409.209787493571639,1479361.448061698814854 6890444.184096252545714,1479405.974123598309234 6890464.384051165543497) 112 secondary 0 1 1 mainroads 15 1
809 LINESTRING (1478329.772116212407127 6891020.117283202707767,1478371.433655687142164 6890928.767115697264671) 120 secondary 0 1 1 mainroads 15 1
810 LINESTRING (1478451.155087549006566 6890967.130994181148708,1478439.454399868380278 6891002.920075045898557,1478435.899406239856035 6891020.515792922116816,1478432.932246207259595 6891054.266572091728449,1478436.51523190876469 6891092.385810512118042) 125 secondary 0 1 1 mainroads 15 1
811 LINESTRING (1478484.279043906368315 6892448.686919055879116,1478512.980252289446071 6892501.529672888107598) 138 secondary 0 1 1 mainroads 15 1
812 LINESTRING (1478441.24589272052981 6890743.985453568398952,1478569.785504766972736 6890803.361579650081694) 698 rail 0 1 0 railways 17 1
813 LINESTRING (1478556.414623227668926 6890825.447648616507649,1478501.363540833583102 6890799.943685433827341,1478430.310321775265038 6890777.137325343675911) 699 rail 0 1 0 railways 17 1
814 LINESTRING (1478627.402527447091416 6890858.032757756300271,1478598.449390378547832 6890845.709869343787432) 701 rail 0 1 0 railways 17 1
815 LINESTRING (1478595.75282041169703 6890816.082902735099196,1478625.956270195310935 6890829.907785100862384) 702 rail 0 1 0 railways 17 1
816 LINESTRING (1477861.231420873198658 6890651.795460822060704,1477785.139628168661147 6890619.962187672965229) 706 rail 0 1 0 railways 17 1
817 LINESTRING (1478533.153208245523274 6890597.539500389248133,1478563.608586709247902 6890651.657521475106478,1478583.986817886354402 6890702.90981500223279,1478598.971909126965329 6890754.806160444393754) 707 rail 0 1 0 railways 17 1
818 LINESTRING (1478551.954552487237379 6890575.162854988127947,1478588.605510394554585 6890603.547487018629909,1478617.885221674805507 6890622.138555723242462,1478642.714192904997617 6890636.468881220556796,1478662.672542944317684 6890646.814319248311222) 711 rail 0 1 0 railways 17 1
819 LINESTRING (1478591.227434826781973 6890756.093610955402255,1478577.12875931779854 6890705.745253457687795,1478556.750528137898073 6890657.573588914237916,1478526.565739739919081 6890602.627896940335631) 712 rail 0 1 0 railways 17 1
820 LINESTRING (1478593.50412365840748 6891161.252267209812999,1478604.868906431598589 6891027.229151873849332) 716 rail 0 1 0 railways 17 1
821 LINESTRING (1478861.276320709846914 6890948.416510410606861,1478927.88813040801324 6890978.978924939408898) 717 rail 0 1 0 railways 17 1
822 LINESTRING (1478445.080807101679966 6890735.663021787069738,1478572.827310339780524 6890796.249909016303718) 721 rail 0 1 0 railways 17 1
823 LINESTRING (1478725.31880857469514 6891220.416887637227774,1478753.684112047543749 6891165.635952131822705,1478782.273352124495432 6891113.062545800581574) 722 light_rail 0 1 0 railways 17 1
824 LINESTRING (1478565.344095406820998 6890811.423524235375226,1478438.502669292036444 6890750.315412051975727) 725 rail 0 1 0 railways 17 1
825 LINESTRING (1478761.083350750152022 6891124.619469199329615,1478714.065994105068967 6891217.213403515517712) 726 rail 0 1 0 railways 17 1
826 LINESTRING (1478594.185264169238508 6890806.013130874373019,1478624.789933702209964 6890819.929957416839898) 729 rail 0 1 0 railways 17 1
827 LINESTRING (1478611.950901604257524 6891032.133892551995814,1478602.097690927330405 6891164.808263186365366) 732 rail 0 1 0 railways 17 1
828 LINESTRING (1478625.368436602409929 6890839.900952127762139,1478595.276955124922097 6890826.290629548951983) 733 rail 0 1 0 railways 17 1
829 LINESTRING (1478918.445470173377544 6890994.888592929579318,1478850.574017061386257 6890963.099942809902132) 738 rail 0 1 0 railways 17 1
830 LINESTRING (1478922.187077639857307 6890988.451151218265295,1478855.416646176483482 6890957.168323368765414) 740 rail 0 1 0 railways 17 1
831 LINESTRING (1478363.717173459939659 6890762.914036750793457,1478343.516225425293669 6890759.5421401290223) 744 rail 0 1 0 railways 17 1
832 LINESTRING (1478866.398870577802882 6890942.408266056329012,1478932.544145682128146 6890972.940003331750631) 745 rail 0 1 0 railways 17 1
833 LINESTRING (1477526.68879235861823 6890495.281804216094315,1477556.565667921910062 6890511.175188716500998) 748 rail 0 1 0 railways 17 1
834 LINESTRING (1477551.331149747828022 6890517.719532645307481,1477521.612895943690091 6890502.255271850153804) 752 rail 0 1 0 railways 17 1
835 LINESTRING (1478803.090125825256109 6891124.665451684966683,1478749.074750232277438 6891229.766776816919446) 771 light_rail 0 1 0 railways 17 1
836 LINESTRING (1478455.288584077497944 6890709.31637466698885,1478485.305420020362362 6890732.873553024604917,1478551.777269339188933 6890776.279022733680904) 812 rail 0 1 0 railways 17 1
837 LINESTRING (1478463.210341525729746 6890697.438187943771482,1478515.826113325776532 6890741.441210155375302,1478545.09649391612038 6890764.354756650514901,1478578.658992794342339 6890784.938687206245959) 813 rail 0 1 0 railways 17 1
838 LINESTRING (1478448.113281978992745 6890727.11069754883647,1478488.795098801376298 6890745.211595254950225,1478551.777269339188933 6890776.279022733680904,1478576.662224721163511 6890790.042529220692813) 815 rail 0 1 0 railways 17 1
839 LINESTRING (1478448.794422489590943 6890719.355371965095401,1478488.795098801376298 6890745.211595254950225) 817 rail 0 1 0 railways 17 1
840 LINESTRING (1478453.133194239344448 6890714.128961123526096,1478485.305420020362362 6890732.873553024604917) 818 rail 0 1 0 railways 17 1
841 LINESTRING (1478592.291133706457913 6890793.812937114387751,1478624.575327788246796 6890811.791369803249836) 820 rail 0 1 0 railways 17 1
842 LINESTRING (1478592.869636606657878 6890797.951191720552742,1478624.575327788246796 6890812.481080299243331) 822 rail 0 1 0 railways 17 1
843 LINESTRING (1478872.753071786370128 6890934.054974609985948,1478938.59976474638097 6890964.157518833875656) 826 rail 0 1 0 railways 17 1
844 LINESTRING (1478708.467578947311267 6891213.902627007104456,1478755.951470183674246 6891121.998467871919274) 830 rail 0 1 0 railways 17 1
845 LINESTRING (1478556.050726244226098 6890567.974754032678902,1478593.896012717625126 6890597.156338127329946,1478621.766789517831057 6890615.134331055916846,1478643.236711653415114 6890627.472192604094744,1478666.591433558845893 6890639.610827658325434) 852 rail 0 1 0 railways 17 1
846 LINESTRING (1477451.250148088904098 6890745.763359077274799,1477398.289140685694292 6890680.900715908035636) 24 motorway 0 1 1 motorways 19 1
847 LINESTRING (1478390.850825597764924 6891440.249455007724464,1478416.4169214903377 6891479.535464659333229,1478439.883611699100584 6891511.923958003520966,1478473.362134346971288 6891559.089072591625154,1478503.668221738422289 6891600.536967532709241,1478542.959765463601798 6891648.515012176707387,1478591.927236720221117 6891731.335294630378485,1478610.709919579094276 6891779.927269681356847,1478623.922179353423417 6891826.787379971705377,1478630.015121186384931 6891858.76339219789952) 25 motorway 0 1 1 motorways 19 1
848 LINESTRING (1478354.07856869418174 6891040.180739216506481,1478380.699032773729414 6890977.676111518405378,1478394.163221230730414 6890950.225115459412336) 26 motorway 0 1 1 motorways 19 1
849 LINESTRING (1478415.84774928027764 6890956.907761368900537,1478376.7148273200728 6891043.997246447019279) 27 motorway 0 1 1 motorways 19 1
850 LINESTRING (1477414.468560495181009 6890666.92282354272902,1477470.023500254843384 6890738.375857715494931) 33 motorway 0 1 1 motorways 19 1
851 LINESTRING (1478336.770135160302743 6891278.29440912604332,1478342.517841390101239 6891313.25717099942267,1478349.375899961218238 6891340.387520620599389,1478357.829506850801408 6891368.391655500978231) 52 motorway 0 1 1 motorways 19 1
852 LINESTRING (1478336.760804470162839 6891379.550418416969478,1478326.310429504606873 6891342.334165048785508,1478318.892529421718791 6891313.10389244556427,1478313.583365709986538 6891281.068739344365895) 54 motorway 0 1 1 motorways 19 1
853 LINESTRING (1478396.617193207610399 6891531.804702173918486,1478382.845091919181868 6891499.554082627408206,1478361.561783624347299 6891449.124428308568895) 56 motorway 0 1 1 motorways 19 1

87
benchmark/data/roads.xml Normal file
View file

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE Map[]>
<Map
srs="+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over"
font-directory="../../fonts/dejavu-fonts-ttf-2.37/ttf/DejaVuSans.ttf"
background-color="#dfd8c9">
<Style name="marking" filter-mode="first">
<Rule>
<Filter>([class] = 'railways')</Filter>
<LineSymbolizer stroke="#ffffff" stroke-width="1.8" stroke-dasharray="5, 5" clip="false" />
</Rule>
</Style>
<Style name="fill" filter-mode="first">
<Rule>
<Filter>([class] = 'minorroads')</Filter>
<LineSymbolizer stroke-width="2.5" stroke="#ffffff" stroke-linecap="round" clip="false" />
</Rule>
<Rule>
<Filter>([class] = 'mainroads')</Filter>
<LineSymbolizer stroke-width="4" stroke="#ff9999" stroke-linecap="round" clip="false" />
</Rule>
<Rule>
<Filter>([class] = 'motorways')</Filter>
<LineSymbolizer stroke-width="6" stroke="#ff6666" stroke-linecap="round" clip="false" />
</Rule>
<Rule>
<Filter>([class] = 'railways')</Filter>
<LineSymbolizer stroke-width="3" stroke="#333333" stroke-linecap="round" clip="false" />
</Rule>
</Style>
<Style name="bridge" filter-mode="first">
<Rule>
<Filter>([class] = 'railways') and ([bridge] = 1)</Filter>
<LineSymbolizer stroke-width="6" stroke="#ffffff" clip="false" />
</Rule>
</Style>
<Style name="casing" filter-mode="first">
<Rule>
<Filter>([class] = 'railways') and ([bridge] = 1)</Filter>
<LineSymbolizer stroke-width="8" stroke="#333333" clip="false" />
</Rule>
<Rule>
<Filter>([class] = 'minorroads')</Filter>
<LineSymbolizer stroke-width="3" stroke="#a69269" clip="false" />
</Rule>
<Rule>
<Filter>([class] = 'mainroads')</Filter>
<LineSymbolizer stroke-width="5" stroke="#ff0000" clip="false" />
</Rule>
<Rule>
<Filter>([class] = 'motorways')</Filter>
<LineSymbolizer stroke-width="8" stroke="#990000" clip="false" />
</Rule>
</Style>
<Style name="labels">
<Rule>
<TextSymbolizer
halo-rasterizer="fast"
placement="line"
face-name="DejaVu Sans Book"
halo-radius="2"
allow-overlap="false"
clip="false"
>[type]</TextSymbolizer>
</Rule>
</Style>
<Layer name="layer"
srs="+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over">
<!--
<StyleName>casing</StyleName>
<StyleName>bridge</StyleName>
<StyleName>fill</StyleName>
<StyleName>marking</StyleName>
-->
<StyleName>labels</StyleName>
<Datasource>
<!--
ogr2ogr -f CSV tests/visual_tests/data/roads.csv -lco GEOMETRY=AS_WKT tests/visual_tests/data/grouped-rendering.sqlite roads -sql "SELECT fid,geometry, type, tunnel, bridge, oneway, class, z_order, CAST((z_order / 10.0) AS INTEGER) AS z FROM roads ORDER BY z_order"
-->
<Parameter name="file">./roads.csv</Parameter>
<Parameter name="extent">1477001.12245,6890242.37746,1480004.49012,6892244.62256</Parameter>
<Parameter name="type">csv</Parameter>
</Datasource>
</Layer>
</Map>

Binary file not shown.

View file

@ -0,0 +1,302 @@
#ifndef MAPNIK_BENCH_FRAMEWORK_HPP
#define MAPNIK_BENCH_FRAMEWORK_HPP
// mapnik
#include <mapnik/mapnik.hpp>
#include <mapnik/debug.hpp>
#include <mapnik/params.hpp>
#include <mapnik/value/types.hpp>
#include <mapnik/safe_cast.hpp>
#include "../test/cleanup.hpp"
// stl
#include <chrono>
#include <cmath> // log10, round
#include <cstdio> // snprintf
#include <iomanip>
#include <iostream>
#include <thread>
#include <mutex>
#include <vector>
namespace benchmark {
template<typename T>
using milliseconds = std::chrono::duration<T, std::milli>;
template<typename T>
using seconds = std::chrono::duration<T>;
class test_case
{
protected:
mapnik::parameters params_;
std::size_t threads_;
std::size_t iterations_;
public:
test_case(mapnik::parameters const& params)
: params_(params)
, threads_(mapnik::safe_cast<std::size_t>(*params.get<mapnik::value_integer>("threads", 0)))
, iterations_(mapnik::safe_cast<std::size_t>(*params.get<mapnik::value_integer>("iterations", 0)))
{}
std::size_t threads() const { return threads_; }
std::size_t iterations() const { return iterations_; }
mapnik::parameters const& params() const { return params_; }
virtual bool validate() const = 0;
virtual bool operator()() const = 0;
};
// gathers --long-option values in 'params';
// returns the index of the first non-option argument,
// or negated index of an ill-formed option argument
inline int parse_args(int argc, char** argv, mapnik::parameters& params)
{
for (int i = 1; i < argc; ++i)
{
const char* opt = argv[i];
if (opt[0] != '-')
{
// non-option argument, return its index
return i;
}
if (opt[1] != '-')
{
// we only accept --long-options, but instead of throwing,
// just issue a warning and let the caller decide what to do
std::clog << argv[0] << ": invalid option '" << opt << "'\n";
return -i; // negative means ill-formed option #i
}
if (opt[2] == '\0')
{
// option-list terminator '--'
return i + 1;
}
// take option name without the leading '--'
std::string key(opt + 2);
size_t eq = key.find('=');
if (eq != std::string::npos)
{
// one-argument form '--foo=bar'
params[key.substr(0, eq)] = key.substr(eq + 1);
}
else if (i + 1 < argc)
{
// two-argument form '--foo' 'bar'
params[key] = std::string(argv[++i]);
}
else
{
// missing second argument
std::clog << argv[0] << ": missing option '" << opt << "' value\n";
return -i; // negative means ill-formed option #i
}
}
return argc; // there were no non-option arguments
}
inline void handle_common_args(mapnik::parameters const& params)
{
if (auto severity = params.get<std::string>("log"))
{
if (*severity == "debug")
mapnik::logger::set_severity(mapnik::logger::debug);
else if (*severity == "warn")
mapnik::logger::set_severity(mapnik::logger::warn);
else if (*severity == "error")
mapnik::logger::set_severity(mapnik::logger::error);
else if (*severity == "none")
mapnik::logger::set_severity(mapnik::logger::none);
else
std::clog << "ignoring option --log='" << *severity << "' (allowed values are: debug, warn, error, none)\n";
}
}
inline int handle_args(int argc, char** argv, mapnik::parameters& params)
{
int res = parse_args(argc, argv, params);
handle_common_args(params);
return res;
}
#define BENCHMARK(test_class, name) \
int main(int argc, char** argv) \
{ \
mapnik::setup(); \
try \
{ \
mapnik::parameters params; \
benchmark::handle_args(argc, argv, params); \
test_class test_runner(params); \
auto result = run(test_runner, name); \
testing::run_cleanup(); \
return result; \
} \
catch (std::exception const& ex) \
{ \
std::clog << ex.what() << "\n"; \
testing::run_cleanup(); \
return -1; \
} \
}
struct big_number_fmt
{
int w;
double v;
const char* u;
big_number_fmt(int width, double value, int base = 1000)
: w(width)
, v(value)
, u("")
{
static const char* suffixes = "\0\0k\0M\0G\0T\0P\0E\0Z\0Y\0\0";
u = suffixes;
while (v > 1 && std::log10(std::round(v)) >= width && u[2])
{
v /= base;
u += 2;
}
// adjust width for proper alignment without suffix
w += (u == suffixes);
}
};
template<typename T>
int run(T const& test_runner, std::string const& name)
{
try
{
if (!test_runner.validate())
{
std::clog << "test did not validate: " << name << "\n";
return 1;
}
// run test once before timing
// if it returns false then we'll abort timing
if (!test_runner())
{
return 2;
}
std::chrono::high_resolution_clock::time_point start;
std::chrono::high_resolution_clock::duration elapsed;
auto opt_min_duration = test_runner.params().template get<double>("min-duration", 0.0);
std::chrono::duration<double> min_seconds(*opt_min_duration);
auto min_duration = std::chrono::duration_cast<decltype(elapsed)>(min_seconds);
auto num_iters = test_runner.iterations();
auto num_threads = test_runner.threads();
auto total_iters = 0;
if (num_threads > 0)
{
std::mutex mtx_ready;
std::unique_lock<std::mutex> lock_ready(mtx_ready);
auto stub = [&](T const& test_copy) {
// workers will wait on this mutex until the main thread
// constructs all of them and starts measuring time
std::unique_lock<std::mutex> my_lock(mtx_ready);
my_lock.unlock();
test_copy();
};
std::vector<std::thread> tg;
tg.reserve(num_threads);
for (auto i = num_threads; i-- > 0;)
{
tg.emplace_back(stub, test_runner);
}
start = std::chrono::high_resolution_clock::now();
lock_ready.unlock();
// wait for all workers to finish
for (auto& t : tg)
{
if (t.joinable())
t.join();
}
elapsed = std::chrono::high_resolution_clock::now() - start;
// this is actually per-thread count, not total, but I think
// reporting average 'iters/thread/second' is more useful
// than 'iters/second' multiplied by the number of threads
total_iters += num_iters;
}
else
{
start = std::chrono::high_resolution_clock::now();
do
{
test_runner();
elapsed = std::chrono::high_resolution_clock::now() - start;
total_iters += num_iters;
} while (elapsed < min_duration);
}
char msg[200];
double dur_total = milliseconds<double>(elapsed).count();
auto elapsed_nonzero = std::max(elapsed, decltype(elapsed){1});
big_number_fmt itersf(4, total_iters);
big_number_fmt ips(5, total_iters / seconds<double>(elapsed_nonzero).count());
std::clog << std::left << std::setw(43) << name;
std::clog << std::resetiosflags(std::ios::adjustfield);
if (num_threads > 0)
{
std::clog << ' ' << std::setw(3) << num_threads << " worker" << (num_threads > 1 ? "s" : " ");
}
else
{
std::clog << " main thread";
}
std::snprintf(msg,
sizeof(msg),
" %*.0f%s iters %6.0f milliseconds %*.0f%s i/t/s\n",
itersf.w,
itersf.v,
itersf.u,
dur_total,
ips.w,
ips.v,
ips.u);
std::clog << msg;
return 0;
}
catch (std::exception const& ex)
{
std::clog << "test runner did not complete: " << ex.what() << "\n";
return 4;
}
}
struct sequencer
{
sequencer(int argc, char** argv)
: exit_code_(0)
{
benchmark::handle_args(argc, argv, params_);
}
int done() const { return exit_code_; }
template<typename Test, typename... Args>
sequencer& run(std::string const& name, Args&&... args)
{
// Test instance lifetime is confined to this function
Test test_runner(params_, std::forward<Args>(args)...);
// any failing test run will make exit code non-zero
exit_code_ |= benchmark::run(test_runner, name);
return *this; // allow chaining calls
}
protected:
mapnik::parameters params_;
int exit_code_;
};
} // namespace benchmark
#endif // MAPNIK_BENCH_FRAMEWORK_HPP

View file

@ -0,0 +1,35 @@
#ifndef MAPNIK_COMPARE_IMAGES_HPP
#define MAPNIK_COMPARE_IMAGES_HPP
#include <mapnik/image.hpp>
#include <mapnik/image_util.hpp>
#include <mapnik/image_reader.hpp>
namespace benchmark {
bool compare_images(std::string const& src_fn, std::string const& dest_fn)
{
std::unique_ptr<mapnik::image_reader> reader1(mapnik::get_image_reader(dest_fn, "png"));
if (!reader1.get())
{
throw mapnik::image_reader_exception("Failed to load: " + dest_fn);
}
std::unique_ptr<mapnik::image_reader> reader2(mapnik::get_image_reader(src_fn, "png"));
if (!reader2.get())
{
throw mapnik::image_reader_exception("Failed to load: " + src_fn);
}
const mapnik::image_any desc_any = reader1->read(0, 0, reader1->width(), reader1->height());
const mapnik::image_any src_any = reader2->read(0, 0, reader2->width(), reader2->height());
mapnik::image_rgba8 const& dest = mapnik::util::get<mapnik::image_rgba8>(desc_any);
mapnik::image_rgba8 const& src = mapnik::util::get<mapnik::image_rgba8>(src_any);
return compare(dest, src, 0, true) == 0;
}
} // namespace benchmark
#endif // MAPNIK_COMPARE_IMAGES_HPP

69
benchmark/run Executable file
View file

@ -0,0 +1,69 @@
#!/bin/bash
cd "$( dirname "${BASH_SOURCE[0]}" )"
cd ../
source ./localize.sh
BASE=./benchmark/out
function run {
local runner="$BASE/$1 --log=none"
local threads="$2"
local iters="$3"
shift 3
$runner --threads 0 --iterations $iters "$@"
if test $threads -gt 0; then
$runner --threads $threads --iterations $((iters/threads)) "$@"
fi
}
run test_getline 30 10000000
#run test_array_allocation 20 100000
#run test_png_encoding1 10 1000
#run test_png_encoding2 10 50
#run test_to_string1 10 100000
#run test_to_string2 10 100000
#run test_polygon_clipping 10 1000
#run test_polygon_clipping_rendering 10 100
run test_proj_transform1 10 100
run test_expression_parse 10 10000
run test_face_ptr_creation 10 1000
run test_font_registration 10 100
run test_offset_converter 10 1000
#run normalize_angle 0 1000000 --min-duration=0.2
# commented since this is really slow on travis
: '
./benchmark/out/test_rendering \
--name "text rendering" \
--map benchmark/data/roads.xml \
--extent 1477001.12245,6890242.37746,1480004.49012,6892244.62256 \
--width 600 \
--height 600 \
--iterations 20 \
--threads 10
'
./benchmark/out/test_rendering \
--name "gdal tiff rendering" \
--map benchmark/data/gdal-wgs.xml \
--extent -180.0,-120.0,180.0,120.0 \
--width 600 \
--height 600 \
--iterations 20 \
--threads 10
./benchmark/out/test_rendering \
--name "raster tiff rendering" \
--map benchmark/data/raster-wgs.xml \
--extent -180.0,-120.0,180.0,120.0 \
--width 600 \
--height 600 \
--iterations 20 \
--threads 10
./benchmark/out/test_quad_tree \
--iterations 10000 \
--threads 1
./benchmark/out/test_quad_tree \
--iterations 1000 \
--threads 10

View file

@ -1,914 +0,0 @@
#include <mapnik/graphics.hpp>
#include <mapnik/image_data.hpp>
#include <mapnik/image_util.hpp>
#include <mapnik/image_reader.hpp>
#include <mapnik/util/conversions.hpp>
// stl
#include <string>
#include <iostream>
#include <fstream>
#include <sstream>
#include <cstdio>
#include <set>
// boost
#include <boost/version.hpp>
#include <boost/shared_ptr.hpp>
#include <boost/make_shared.hpp>
#include <boost/bind.hpp>
#define BOOST_CHRONO_HEADER_ONLY
#include <boost/chrono/process_cpu_clocks.hpp>
#include <boost/chrono.hpp>
#include <boost/thread/thread.hpp>
using namespace boost::chrono;
using namespace mapnik;
static unsigned test_num = 1;
static bool dry_run = false;
static std::set<int> test_set;
typedef process_cpu_clock clock_type;
typedef clock_type::duration dur;
template <typename T>
void benchmark(T & test_runner, std::string const& name)
{
try {
bool should_run_test = true;
if (!test_set.empty())
{
should_run_test = test_set.find(test_num) != test_set.end();
}
if (should_run_test || dry_run)
{
if (!test_runner.validate())
{
std::clog << "test did not validate: " << name << "\n";
//throw std::runtime_error(std::string("test did not validate: ") + name);
}
if (dry_run)
{
std::clog << test_num << ") " << (test_runner.threads_ ? "threaded -> ": "")
<< name << "\n";
}
else
{
process_cpu_clock::time_point start;
dur elapsed;
if (test_runner.threads_ > 0)
{
boost::thread_group tg;
for (unsigned i=0;i<test_runner.threads_;++i)
{
tg.create_thread(test_runner);
//tg.create_thread(boost::bind(&T::operator(),&test_runner));
}
start = process_cpu_clock::now();
tg.join_all();
elapsed = process_cpu_clock::now() - start;
}
else
{
start = process_cpu_clock::now();
test_runner();
elapsed = process_cpu_clock::now() - start;
}
std::clog << test_num << ") " << (test_runner.threads_ ? "threaded -> ": "")
<< name << ": "
<< boost::chrono::duration_cast<milliseconds>(elapsed) << "\n";
}
}
}
catch (std::exception const& ex)
{
std::clog << "test runner did not complete: " << ex.what() << "\n";
}
test_num++;
}
bool compare_images(std::string const& src_fn,std::string const& dest_fn)
{
std::auto_ptr<mapnik::image_reader> reader1(mapnik::get_image_reader(dest_fn,"png"));
if (!reader1.get())
{
throw mapnik::image_reader_exception("Failed to load: " + dest_fn);
}
boost::shared_ptr<image_32> image_ptr1 = boost::make_shared<image_32>(reader1->width(),reader1->height());
reader1->read(0,0,image_ptr1->data());
std::auto_ptr<mapnik::image_reader> reader2(mapnik::get_image_reader(src_fn,"png"));
if (!reader2.get())
{
throw mapnik::image_reader_exception("Failed to load: " + src_fn);
}
boost::shared_ptr<image_32> image_ptr2 = boost::make_shared<image_32>(reader2->width(),reader2->height());
reader2->read(0,0,image_ptr2->data());
image_data_32 const& dest = image_ptr1->data();
image_data_32 const& src = image_ptr2->data();
unsigned int width = src.width();
unsigned int height = src.height();
if ((width != dest.width()) || height != dest.height()) return false;
for (unsigned int y = 0; y < height; ++y)
{
const unsigned int* row_from = src.getRow(y);
const unsigned int* row_to = dest.getRow(y);
for (unsigned int x = 0; x < width; ++x)
{
if (row_from[x] != row_to[x]) return false;
}
}
return true;
}
struct test1
{
unsigned iter_;
unsigned threads_;
explicit test1(unsigned iterations, unsigned threads=0) :
iter_(iterations),
threads_(threads)
{}
bool validate()
{
return true;
}
void operator()()
{
mapnik::image_data_32 im(256,256);
std::string out;
for (unsigned i=0;i<iter_;++i) {
out.clear();
out = mapnik::save_to_string(im,"png");
}
}
};
struct test2
{
unsigned iter_;
unsigned threads_;
boost::shared_ptr<image_32> im_;
explicit test2(unsigned iterations, unsigned threads=0) :
iter_(iterations),
threads_(threads),
im_()
{
std::string filename("./benchmark/data/multicolor.png");
std::auto_ptr<mapnik::image_reader> reader(mapnik::get_image_reader(filename,"png"));
if (!reader.get())
{
throw mapnik::image_reader_exception("Failed to load: " + filename);
}
im_ = boost::make_shared<image_32>(reader->width(),reader->height());
reader->read(0,0,im_->data());
}
bool validate()
{
std::string expected("./benchmark/data/multicolor-hextree-expected.png");
std::string actual("./benchmark/data/multicolor-hextree-actual.png");
mapnik::save_to_file(im_->data(),actual, "png8:m=h");
return compare_images(actual,expected);
}
void operator()()
{
std::string out;
for (unsigned i=0;i<iter_;++i) {
out.clear();
out = mapnik::save_to_string(im_->data(),"png8:m=h");
}
}
};
struct test3
{
unsigned iter_;
unsigned threads_;
double val_;
explicit test3(unsigned iterations, unsigned threads=0) :
iter_(iterations),
threads_(threads),
val_(-0.123) {}
bool validate()
{
std::ostringstream s;
s << val_;
return (s.str() == "-0.123");
}
void operator()()
{
std::string out;
for (unsigned i=0;i<iter_;++i) {
std::ostringstream s;
s << val_;
out = s.str();
}
}
};
struct test4
{
unsigned iter_;
unsigned threads_;
double val_;
explicit test4(unsigned iterations, unsigned threads=0) :
iter_(iterations),
threads_(threads),
val_(-0.123) {}
bool validate()
{
std::string s;
mapnik::util::to_string(s,val_);
return (s == "-0.123");
}
void operator()()
{
std::string out;
for (unsigned i=0;i<iter_;++i) {
out.clear();
mapnik::util::to_string(out,val_);
}
}
};
struct test5
{
unsigned iter_;
unsigned threads_;
double val_;
explicit test5(unsigned iterations, unsigned threads=0) :
iter_(iterations),
threads_(threads),
val_(-0.123) {}
bool validate()
{
std::string s;
to_string_impl(s,val_);
return (s == "-0.123");
}
bool to_string_impl(std::string &s , double val)
{
s.resize(s.capacity());
while (true)
{
size_t n2 = static_cast<size_t>(snprintf(&s[0], s.size()+1, "%g", val_));
if (n2 <= s.size())
{
s.resize(n2);
break;
}
s.resize(n2);
}
return true;
}
void operator()()
{
std::string out;
for (unsigned i=0;i<iter_;++i)
{
out.clear();
to_string_impl(out , val_);
}
}
};
#include <mapnik/box2d.hpp>
#include <mapnik/projection.hpp>
#include <mapnik/proj_transform.hpp>
struct test6
{
unsigned iter_;
unsigned threads_;
std::string src_;
std::string dest_;
mapnik::box2d<double> from_;
mapnik::box2d<double> to_;
bool defer_proj4_init_;
explicit test6(unsigned iterations,
unsigned threads,
std::string const& src,
std::string const& dest,
mapnik::box2d<double> from,
mapnik::box2d<double> to,
bool defer_proj) :
iter_(iterations),
threads_(threads),
src_(src),
dest_(dest),
from_(from),
to_(to),
defer_proj4_init_(defer_proj) {}
bool validate()
{
mapnik::projection src(src_,defer_proj4_init_);
mapnik::projection dest(dest_,defer_proj4_init_);
mapnik::proj_transform tr(src,dest);
mapnik::box2d<double> bbox = from_;
if (!tr.forward(bbox)) return false;
return ((std::fabs(bbox.minx() - to_.minx()) < .5) &&
(std::fabs(bbox.maxx() - to_.maxx()) < .5) &&
(std::fabs(bbox.miny() - to_.miny()) < .5) &&
(std::fabs(bbox.maxy() - to_.maxy()) < .5)
);
}
void operator()()
{
unsigned count=0;
for (int i=-180;i<180;++i)
{
for (int j=-85;j<85;++j)
{
mapnik::projection src(src_,defer_proj4_init_);
mapnik::projection dest(dest_,defer_proj4_init_);
mapnik::proj_transform tr(src,dest);
mapnik::box2d<double> box(i,j,i,j);
if (!tr.forward(box)) throw std::runtime_error("could not transform coords");
++count;
}
}
}
};
#include <mapnik/unicode.hpp>
#include <mapnik/expression.hpp>
#include <mapnik/expression_string.hpp>
struct test7
{
unsigned iter_;
unsigned threads_;
std::string expr_;
explicit test7(unsigned iterations,
unsigned threads,
std::string const& expr) :
iter_(iterations),
threads_(threads),
expr_(expr)
{}
bool validate()
{
mapnik::expression_ptr expr = mapnik::parse_expression(expr_,"utf-8");
return mapnik::to_expression_string(*expr) == expr_;
}
void operator()()
{
for (unsigned i=0;i<iter_;++i) {
mapnik::expression_ptr expr = mapnik::parse_expression(expr_,"utf-8");
}
}
};
#include <mapnik/expression_grammar.hpp>
struct test8
{
unsigned iter_;
unsigned threads_;
std::string expr_;
explicit test8(unsigned iterations,
unsigned threads,
std::string const& expr) :
iter_(iterations),
threads_(threads),
expr_(expr)
{}
bool validate()
{
transcoder tr("utf-8");
mapnik::expression_grammar<std::string::const_iterator> expr_grammar(tr);
mapnik::expression_ptr expr = mapnik::parse_expression(expr_,expr_grammar);
return mapnik::to_expression_string(*expr) == expr_;
}
void operator()()
{
transcoder tr("utf-8");
mapnik::expression_grammar<std::string::const_iterator> expr_grammar(tr);
for (unsigned i=0;i<iter_;++i) {
mapnik::expression_ptr expr = mapnik::parse_expression(expr_,expr_grammar);
}
}
};
#include <mapnik/rule_cache.hpp>
#if BOOST_VERSION >= 105300
#include <boost/container/vector.hpp>
#include <boost/move/utility.hpp>
class rule_cache_move
{
private:
BOOST_MOVABLE_BUT_NOT_COPYABLE(rule_cache_move)
public:
typedef std::vector<rule const*> rule_ptrs;
rule_cache_move()
: if_rules_(),
else_rules_(),
also_rules_() {}
rule_cache_move(BOOST_RV_REF(rule_cache_move) rhs) // move ctor
: if_rules_(boost::move(rhs.if_rules_)),
else_rules_(boost::move(rhs.else_rules_)),
also_rules_(boost::move(rhs.also_rules_))
{}
rule_cache_move& operator=(BOOST_RV_REF(rule_cache_move) rhs) // move assign
{
std::swap(if_rules_, rhs.if_rules_);
std::swap(else_rules_,rhs.else_rules_);
std::swap(also_rules_, rhs.also_rules_);
return *this;
}
void add_rule(rule const& r)
{
if (r.has_else_filter())
{
else_rules_.push_back(&r);
}
else if (r.has_also_filter())
{
also_rules_.push_back(&r);
}
else
{
if_rules_.push_back(&r);
}
}
rule_ptrs const& get_if_rules() const
{
return if_rules_;
}
rule_ptrs const& get_else_rules() const
{
return else_rules_;
}
rule_ptrs const& get_also_rules() const
{
return also_rules_;
}
private:
rule_ptrs if_rules_;
rule_ptrs else_rules_;
rule_ptrs also_rules_;
};
struct test9
{
unsigned iter_;
unsigned threads_;
unsigned num_rules_;
unsigned num_styles_;
std::vector<rule> rules_;
explicit test9(unsigned iterations,
unsigned threads,
unsigned num_rules,
unsigned num_styles) :
iter_(iterations),
threads_(threads),
num_rules_(num_rules),
num_styles_(num_styles),
rules_() {
mapnik::rule r("test");
for (unsigned i=0;i<num_rules_;++i) {
rules_.push_back(r);
}
}
bool validate()
{
return true;
}
void operator()()
{
for (unsigned i=0;i<iter_;++i) {
boost::container::vector<rule_cache_move> rule_caches;
for (unsigned i=0;i<num_styles_;++i) {
rule_cache_move rc;
for (unsigned i=0;i<num_rules_;++i) {
rc.add_rule(rules_[i]);
}
rule_caches.push_back(boost::move(rc));
}
}
}
};
#endif
class rule_cache_heap
{
public:
typedef std::vector<rule const*> rule_ptrs;
rule_cache_heap()
: if_rules_(),
else_rules_(),
also_rules_() {}
void add_rule(rule const& r)
{
if (r.has_else_filter())
{
else_rules_.push_back(&r);
}
else if (r.has_also_filter())
{
also_rules_.push_back(&r);
}
else
{
if_rules_.push_back(&r);
}
}
rule_ptrs const& get_if_rules() const
{
return if_rules_;
}
rule_ptrs const& get_else_rules() const
{
return else_rules_;
}
rule_ptrs const& get_also_rules() const
{
return also_rules_;
}
private:
rule_ptrs if_rules_;
rule_ptrs else_rules_;
rule_ptrs also_rules_;
};
struct test10
{
unsigned iter_;
unsigned threads_;
unsigned num_rules_;
unsigned num_styles_;
std::vector<rule> rules_;
explicit test10(unsigned iterations,
unsigned threads,
unsigned num_rules,
unsigned num_styles) :
iter_(iterations),
threads_(threads),
num_rules_(num_rules),
num_styles_(num_styles),
rules_() {
mapnik::rule r("test");
for (unsigned i=0;i<num_rules_;++i) {
rules_.push_back(r);
}
}
bool validate()
{
return true;
}
void operator()()
{
for (unsigned i=0;i<iter_;++i) {
boost::ptr_vector<rule_cache_heap> rule_caches;
for (unsigned i=0;i<num_styles_;++i) {
std::auto_ptr<rule_cache_heap> rc(new rule_cache_heap);
for (unsigned i=0;i<num_rules_;++i) {
rc->add_rule(rules_[i]);
}
rule_caches.push_back(rc);
}
}
}
};
#include <mapnik/wkt/wkt_factory.hpp>
#include "agg_conv_clipper.h"
#include "agg_path_storage.h"
#include <mapnik/geometry.hpp>
struct test11
{
unsigned iter_;
unsigned threads_;
std::string wkt_in_;
mapnik::box2d<double> extent_;
typedef agg::conv_clipper<mapnik::geometry_type, agg::path_storage> poly_clipper;
test11(unsigned iterations,
unsigned threads,
std::string wkt_in,
mapnik::box2d<double> const& extent)
: iter_(iterations),
threads_(threads),
wkt_in_(wkt_in),
extent_(extent) {
}
bool validate()
{
return true;
}
void operator()()
{
boost::ptr_vector<geometry_type> paths;
if (!mapnik::from_wkt(wkt_in_, paths))
{
throw std::runtime_error("Failed to parse WKT");
}
agg::path_storage ps;
ps.move_to(extent_.minx(), extent_.miny());
ps.line_to(extent_.minx(), extent_.maxy());
ps.line_to(extent_.maxx(), extent_.maxy());
ps.line_to(extent_.maxx(), extent_.miny());
ps.close_polygon();
for (unsigned i=0;i<iter_;++i) {
BOOST_FOREACH( geometry_type & geom, paths)
{
poly_clipper clipped(geom,ps,
agg::clipper_and,
agg::clipper_non_zero,
agg::clipper_non_zero,
1);
clipped.rewind(0);
unsigned cmd;
double x,y;
while ((cmd = geom.vertex(&x, &y)) != SEG_END) {}
}
}
}
};
#include <mapnik/polygon_clipper.hpp>
struct test12
{
unsigned iter_;
unsigned threads_;
std::string wkt_in_;
mapnik::box2d<double> extent_;
typedef mapnik::polygon_clipper<mapnik::geometry_type> poly_clipper;
test12(unsigned iterations,
unsigned threads,
std::string wkt_in,
mapnik::box2d<double> const& extent)
: iter_(iterations),
threads_(threads),
wkt_in_(wkt_in),
extent_(extent)
{
}
bool validate()
{
return true;
}
void operator()()
{
boost::ptr_vector<geometry_type> paths;
if (!mapnik::from_wkt(wkt_in_, paths))
{
throw std::runtime_error("Failed to parse WKT");
}
for (unsigned i=0;i<iter_;++i)
{
BOOST_FOREACH( geometry_type & geom, paths)
{
poly_clipper clipped(extent_, geom);
unsigned cmd;
double x,y;
while ((cmd = geom.vertex(&x, &y)) != SEG_END) {}
}
}
}
};
#include <mapnik/font_engine_freetype.hpp>
#include <boost/format.hpp>
struct test13
{
unsigned iter_;
unsigned threads_;
test13(unsigned iterations,
unsigned threads)
: iter_(iterations),
threads_(threads)
{}
bool validate()
{
return true;
}
void operator()()
{
mapnik::freetype_engine engine;
unsigned long count = 0;
for (unsigned i=0;i<iter_;++i)
{
BOOST_FOREACH( std::string const& name, mapnik::freetype_engine::face_names())
{
mapnik::face_ptr f = engine.create_face(name);
if (f) ++count;
}
}
}
};
int main( int argc, char** argv)
{
if (argc > 0) {
for (int i=0;i<argc;++i) {
std::string opt(argv[i]);
if (opt == "-d" || opt == "--dry-run") {
dry_run = true;
} else if (opt[0] != '-') {
int arg;
if (mapnik::util::string2int(opt,arg)) {
test_set.insert(arg);
}
}
}
}
try
{
std::cout << "starting benchmark…\n";
{
test1 runner(100);
benchmark(runner,"encoding blank image as png");
}
{
test2 runner(100);
benchmark(runner,"encoding multicolor image as png8:m=h");
}
{
test1 runner(10,10);
benchmark(runner,"encoding blank image as png");
}
{
test2 runner(10,10);
benchmark(runner,"encoding multicolor image as png8:m=h");
}
{
test3 runner(1000000);
benchmark(runner,"double to string conversion with std::ostringstream");
}
{
test4 runner(1000000);
benchmark(runner,"double to string conversion with mapnik::util_to_string");
}
{
test5 runner(1000000);
benchmark(runner,"double to string conversion with snprintf");
}
{
test3 runner(1000000,10);
benchmark(runner,"double to string conversion with std::ostringstream");
}
{
test4 runner(1000000,10);
benchmark(runner,"double to string conversion with mapnik::util_to_string");
}
{
test5 runner(1000000,10);
benchmark(runner,"double to string conversion with snprintf");
}
mapnik::box2d<double> from(-180,-80,180,80);
mapnik::box2d<double> to(-20037508.3427892476,-15538711.0963092316,20037508.3427892476,15538711.0963092316);
{
// echo -180 -60 | cs2cs -f "%.10f" +init=epsg:4326 +to +init=epsg:3857
test6 runner(100000000,100,
"+init=epsg:4326",
"+init=epsg:3857",
from,to,true);
benchmark(runner,"lonlat -> merc coord transformation (epsg)");
}
{
test6 runner(100000000,100,
"+init=epsg:3857",
"+init=epsg:4326",
to,from,true);
benchmark(runner,"merc -> lonlat coord transformation (epsg)");
}
{
test6 runner(100000000,100,
"+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs",
"+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
from,to,true);
benchmark(runner,"lonlat -> merc coord transformation (literal)");
}
{
test6 runner(100000000,100,
"+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
"+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs",
to,from,true);
benchmark(runner,"merc -> lonlat coord transformation (literal)");
}
{
test7 runner(10000,100,"([foo]=1)");
benchmark(runner,"expression parsing with grammer per parse");
}
{
test8 runner(10000,100,"([foo]=1)");
benchmark(runner,"expression parsing by re-using grammar");
}
{
#if BOOST_VERSION >= 105300
test9 runner(1000,10,200,50);
benchmark(runner,"rule caching using boost::move");
#else
std::clog << "not running: 'rule caching using boost::move'\n";
#endif
}
{
test10 runner(1000,10,200,50);
benchmark(runner,"rule caching using heap allocation");
}
{
std::string filename_("benchmark/data/polygon.wkt");
std::ifstream in(filename_.c_str(),std::ios_base::in | std::ios_base::binary);
if (!in.is_open())
throw std::runtime_error("could not open: '" + filename_ + "'");
std::string wkt_in( (std::istreambuf_iterator<char>(in) ),
(std::istreambuf_iterator<char>()) );
mapnik::box2d<double> clipping_box(0,0,40,40);
test11 runner(100000,10,wkt_in,clipping_box);
benchmark(runner,"clipping polygon with agg_conv_clipper");
}
{
std::string filename_("benchmark/data/polygon.wkt");
std::ifstream in(filename_.c_str(),std::ios_base::in | std::ios_base::binary);
if (!in.is_open())
throw std::runtime_error("could not open: '" + filename_ + "'");
std::string wkt_in( (std::istreambuf_iterator<char>(in) ),
(std::istreambuf_iterator<char>()) );
mapnik::box2d<double> clipping_box(0,0,40,40);
test12 runner(100000,10,wkt_in,clipping_box);
benchmark(runner,"clipping polygon with mapnik::polygon_clipper");
}
{
mapnik::freetype_engine::register_fonts("./fonts", true);
unsigned face_count = mapnik::freetype_engine::face_names().size();
test13 runner(1000,10);
benchmark(runner, (boost::format("font_engihe: created %ld faces in ") % (face_count * 1000 * 10)).str());
}
std::cout << "...benchmark done\n";
return 0;
}
catch (std::exception const& ex)
{
std::clog << "test error: " << ex.what() << "\n";
return -1;
}
}

65
benchmark/run_benchmarks Normal file
View file

@ -0,0 +1,65 @@
#!/bin/bash
BASE=.
function run {
local runner="$BASE/$1 --log=none"
local threads="$2"
local iters="$3"
shift 3
$runner --threads 0 --iterations $iters "$@"
if test $threads -gt 0; then
$runner --threads $threads --iterations $((iters/threads)) "$@"
fi
}
run test_getline 30 10000000
#run test_array_allocation 20 100000
#run test_png_encoding1 10 1000
#run test_png_encoding2 10 50
#run test_to_string1 10 100000
#run test_to_string2 10 100000
#run test_polygon_clipping 10 1000
#run test_polygon_clipping_rendering 10 100
run test_proj_transform1 10 100
run test_expression_parse 10 10000
run test_face_ptr_creation 10 1000
run test_font_registration 10 100
run test_offset_converter 10 1000
#run normalize_angle 0 1000000 --min-duration=0.2
# commented since this is really slow on travis
: '
$BASE/test_rendering \
--name "text rendering" \
--map benchmark/data/roads.xml \
--extent 1477001.12245,6890242.37746,1480004.49012,6892244.62256 \
--width 600 \
--height 600 \
--iterations 20 \
--threads 10
'
$BASE/test_rendering \
--name "gdal tiff rendering" \
--map benchmark/data/gdal-wgs.xml \
--extent -180.0,-120.0,180.0,120.0 \
--width 600 \
--height 600 \
--iterations 20 \
--threads 10
$BASE/test_rendering \
--name "raster tiff rendering" \
--map benchmark/data/raster-wgs.xml \
--extent -180.0,-120.0,180.0,120.0 \
--width 600 \
--height 600 \
--iterations 20 \
--threads 10
$BASE/test_quad_tree \
--iterations 10000 \
--threads 1
$BASE/test_quad_tree \
--iterations 1000 \
--threads 10

View file

@ -0,0 +1,72 @@
#include "bench_framework.hpp"
#include <mapnik/util/math.hpp>
template<typename T>
struct bench_func : benchmark::test_case
{
T (*const func_)(T);
T const value_;
bench_func(mapnik::parameters const& params, T (*func)(T), T value)
: test_case(params)
, func_(func)
, value_(value)
{}
bool validate() const { return true; }
bool operator()() const
{
for (auto i = this->iterations_; i-- > 0;)
{
func_(value_);
}
return true;
}
};
#define BENCH_FUNC1(func, value) run<bench_func<double>>(#func "(" #value ")", func, value)
int main(int argc, char** argv)
{
mapnik::setup();
return benchmark::sequencer(argc, argv)
.BENCH_FUNC1(mapnik::util::normalize_angle, +3)
.BENCH_FUNC1(mapnik::util::normalize_angle, +6)
.BENCH_FUNC1(mapnik::util::normalize_angle, +9)
.BENCH_FUNC1(mapnik::util::normalize_angle, +12)
.BENCH_FUNC1(mapnik::util::normalize_angle, +15)
.BENCH_FUNC1(mapnik::util::normalize_angle, +20)
.BENCH_FUNC1(mapnik::util::normalize_angle, +30)
.BENCH_FUNC1(mapnik::util::normalize_angle, +40)
.BENCH_FUNC1(mapnik::util::normalize_angle, +50)
.BENCH_FUNC1(mapnik::util::normalize_angle, +70)
.BENCH_FUNC1(mapnik::util::normalize_angle, +90)
.BENCH_FUNC1(mapnik::util::normalize_angle, +110)
.BENCH_FUNC1(mapnik::util::normalize_angle, +130)
.BENCH_FUNC1(mapnik::util::normalize_angle, +157)
.BENCH_FUNC1(mapnik::util::normalize_angle, +209)
.BENCH_FUNC1(mapnik::util::normalize_angle, +314)
.BENCH_FUNC1(mapnik::util::normalize_angle, +628)
.BENCH_FUNC1(mapnik::util::normalize_angle, +942)
.BENCH_FUNC1(mapnik::util::normalize_angle, -3)
.BENCH_FUNC1(mapnik::util::normalize_angle, -6)
.BENCH_FUNC1(mapnik::util::normalize_angle, -9)
.BENCH_FUNC1(mapnik::util::normalize_angle, -12)
.BENCH_FUNC1(mapnik::util::normalize_angle, -15)
.BENCH_FUNC1(mapnik::util::normalize_angle, -20)
.BENCH_FUNC1(mapnik::util::normalize_angle, -30)
.BENCH_FUNC1(mapnik::util::normalize_angle, -40)
.BENCH_FUNC1(mapnik::util::normalize_angle, -50)
.BENCH_FUNC1(mapnik::util::normalize_angle, -70)
.BENCH_FUNC1(mapnik::util::normalize_angle, -90)
.BENCH_FUNC1(mapnik::util::normalize_angle, -110)
.BENCH_FUNC1(mapnik::util::normalize_angle, -130)
.BENCH_FUNC1(mapnik::util::normalize_angle, -157)
.BENCH_FUNC1(mapnik::util::normalize_angle, -209)
.BENCH_FUNC1(mapnik::util::normalize_angle, -314)
.BENCH_FUNC1(mapnik::util::normalize_angle, -628)
.BENCH_FUNC1(mapnik::util::normalize_angle, -942)
.done();
}

View file

@ -0,0 +1,370 @@
#include "bench_framework.hpp"
#include <cstring>
#include <cstdlib>
#include <deque>
#include <stdexcept>
#include <array>
#include <valarray>
#include <boost/version.hpp>
#if BOOST_VERSION >= 105400
#include <boost/container/static_vector.hpp>
#endif
// http://stackoverflow.com/questions/17347254/why-is-allocation-and-deallocation-of-stdvector-slower-than-dynamic-array-on-m
#define FULL_ZERO_CHECK
inline void ensure_zero(uint8_t* data, uint32_t size)
{
#ifdef FULL_ZERO_CHECK
for (std::size_t i = 0; i < size; ++i)
{
if (data[i] != 0)
{
throw std::runtime_error("found non zero value");
}
}
#else
if (data[0] != 0)
{
throw std::runtime_error("found non zero value");
}
#endif
}
class test1 : public benchmark::test_case
{
public:
uint32_t size_;
std::vector<uint8_t> array_;
test1(mapnik::parameters const& params)
: test_case(params)
, size_(*params.get<mapnik::value_integer>("size", 256 * 256))
, array_(size_, 0)
{}
bool validate() const { return true; }
bool operator()() const
{
for (std::size_t i = 0; i < iterations_; ++i)
{
// NOTE: sizeof(uint8_t) == 1
uint8_t* data = (uint8_t*)malloc(sizeof(uint8_t) * size_);
memcpy(data, &array_[0], size_);
ensure_zero(data, size_);
free(data);
}
return true;
}
};
class test1b : public benchmark::test_case
{
public:
uint32_t size_;
std::vector<uint8_t> array_;
test1b(mapnik::parameters const& params)
: test_case(params)
, size_(*params.get<mapnik::value_integer>("size", 256 * 256))
, array_(size_, 0)
{}
bool validate() const { return true; }
bool operator()() const
{
for (std::size_t i = 0; i < iterations_; ++i)
{
// NOTE: sizeof(uint8_t) == 1
uint8_t* data = (uint8_t*)malloc(sizeof(uint8_t) * size_);
memset(data, 0, sizeof(uint8_t) * size_);
ensure_zero(data, size_);
free(data);
}
return true;
}
};
class test1c : public benchmark::test_case
{
public:
uint32_t size_;
std::vector<uint8_t> array_;
test1c(mapnik::parameters const& params)
: test_case(params)
, size_(*params.get<mapnik::value_integer>("size", 256 * 256))
, array_(size_, 0)
{}
bool validate() const { return true; }
bool operator()() const
{
for (std::size_t i = 0; i < iterations_; ++i)
{
uint8_t* data = static_cast<uint8_t*>(::operator new(sizeof(uint8_t) * size_));
std::fill(data, data + size_, 0);
ensure_zero(data, size_);
::operator delete(data);
}
return true;
}
};
class test2 : public benchmark::test_case
{
public:
uint32_t size_;
std::vector<uint8_t> array_;
test2(mapnik::parameters const& params)
: test_case(params)
, size_(*params.get<mapnik::value_integer>("size", 256 * 256))
, array_(size_, 0)
{}
bool validate() const { return true; }
bool operator()() const
{
for (std::size_t i = 0; i < iterations_; ++i)
{
uint8_t* data = static_cast<uint8_t*>(::operator new(sizeof(uint8_t) * size_));
memcpy(data, &array_[0], size_);
ensure_zero(data, size_);
::operator delete(data), data = 0;
}
return true;
}
};
class test3 : public benchmark::test_case
{
public:
uint32_t size_;
std::vector<uint8_t> array_;
test3(mapnik::parameters const& params)
: test_case(params)
, size_(*params.get<mapnik::value_integer>("size", 256 * 256))
, array_(size_, 0)
{}
bool validate() const { return true; }
bool operator()() const
{
for (std::size_t i = 0; i < iterations_; ++i)
{
std::vector<uint8_t> data(size_);
ensure_zero(&data[0], data.size());
}
return true;
}
};
class test3b : public benchmark::test_case
{
public:
uint32_t size_;
std::vector<uint8_t> array_;
test3b(mapnik::parameters const& params)
: test_case(params)
, size_(*params.get<mapnik::value_integer>("size", 256 * 256))
, array_(size_, 0)
{}
bool validate() const { return true; }
bool operator()() const
{
for (std::size_t i = 0; i < iterations_; ++i)
{
std::vector<uint8_t> data(0);
data.resize(size_, 0);
ensure_zero(&data[0], data.size());
}
return true;
}
};
class test3c : public benchmark::test_case
{
public:
uint32_t size_;
std::vector<uint8_t> array_;
test3c(mapnik::parameters const& params)
: test_case(params)
, size_(*params.get<mapnik::value_integer>("size", 256 * 256))
, array_(size_, 0)
{}
bool validate() const { return true; }
bool operator()() const
{
for (std::size_t i = 0; i < iterations_; ++i)
{
std::vector<uint8_t> data(0);
data.assign(size_, 0);
ensure_zero(&data[0], data.size());
}
return true;
}
};
class test3d : public benchmark::test_case
{
public:
uint32_t size_;
std::vector<uint8_t> array_;
test3d(mapnik::parameters const& params)
: test_case(params)
, size_(*params.get<mapnik::value_integer>("size", 256 * 256))
, array_(size_, 0)
{}
bool validate() const { return true; }
bool operator()() const
{
for (std::size_t i = 0; i < iterations_; ++i)
{
std::deque<uint8_t> data(size_);
for (std::size_t i = 0; i < size_; ++i)
{
if (data[i] != 0)
{
throw std::runtime_error("found non zero value");
}
}
}
return true;
}
};
class test4 : public benchmark::test_case
{
public:
uint32_t size_;
std::vector<uint8_t> array_;
test4(mapnik::parameters const& params)
: test_case(params)
, size_(*params.get<mapnik::value_integer>("size", 256 * 256))
, array_(size_, 0)
{}
bool validate() const { return true; }
bool operator()() const
{
for (std::size_t i = 0; i < iterations_; ++i)
{
uint8_t* data = (uint8_t*)calloc(size_, sizeof(uint8_t));
ensure_zero(data, size_);
free(data);
}
return true;
}
};
class test5 : public benchmark::test_case
{
public:
uint32_t size_;
std::vector<uint8_t> array_;
test5(mapnik::parameters const& params)
: test_case(params)
, size_(*params.get<mapnik::value_integer>("size", 256 * 256))
, array_(size_, 0)
{}
bool validate() const { return true; }
bool operator()() const
{
for (std::size_t i = 0; i < iterations_; ++i)
{
std::string data(array_.begin(), array_.end());
ensure_zero((uint8_t*)&data[0], size_);
}
return true;
}
};
class test5b : public benchmark::test_case
{
public:
uint32_t size_;
std::vector<char> array_;
test5b(mapnik::parameters const& params)
: test_case(params)
, size_(*params.get<mapnik::value_integer>("size", 256 * 256))
, array_(size_, 0)
{}
bool validate() const { return true; }
bool operator()() const
{
for (std::size_t i = 0; i < iterations_; ++i)
{
std::string data(&array_[0], array_.size());
ensure_zero((uint8_t*)&data[0], size_);
}
return true;
}
};
// C++14 dynarray<T>
// http://isocpp.org/blog/2013/04/trip-report-iso-c-spring-2013-meeting
// http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20130909/088700.html
// http://stackoverflow.com/questions/17303902/any-alternative-to-stddynarray-presently-available
class test6 : public benchmark::test_case
{
public:
uint32_t size_;
std::vector<uint8_t> array_;
test6(mapnik::parameters const& params)
: test_case(params)
, size_(*params.get<mapnik::value_integer>("size", 256 * 256))
, array_(size_, 0)
{}
bool validate() const { return true; }
bool operator()() const
{
for (std::size_t i = 0; i < iterations_; ++i)
{
std::valarray<uint8_t> data(static_cast<uint8_t>(0), static_cast<size_t>(size_));
ensure_zero(&data[0], size_);
}
return true;
}
};
#if BOOST_VERSION >= 105400
// http://i42.co.uk/stuff/vecarray.htm
// http://www.boost.org/doc/libs/1_54_0/doc/html/boost/container/static_vector.html
class test7 : public benchmark::test_case
{
public:
uint32_t size_;
std::vector<uint8_t> array_;
test7(mapnik::parameters const& params)
: test_case(params)
, size_(*params.get<mapnik::value_integer>("size", 256 * 256))
, array_(size_, 0)
{}
bool validate() const { return true; }
bool operator()() const
{
for (std::size_t i = 0; i < iterations_; ++i)
{
boost::container::static_vector<uint8_t, 256 * 256> data(size_, 0);
ensure_zero(&data[0], size_);
}
return true;
}
};
#endif
int main(int argc, char** argv)
{
mapnik::setup();
return benchmark::sequencer(argc, argv)
.run<test4>("calloc")
.run<test1>("malloc/memcpy")
.run<test1b>("malloc/memset")
.run<test1c>("operator new/std::fill")
.run<test2>("operator new/memcpy")
.run<test3>("vector(N)")
.run<test3b>("vector/resize")
.run<test3c>("vector/assign")
.run<test3d>("deque(N)")
.run<test5>("std::string range")
.run<test5b>("std::string &[0]")
.run<test6>("valarray")
#if BOOST_VERSION >= 105400
.run<test7>("static_vector")
#endif
.done();
}

View file

@ -0,0 +1,44 @@
#include "bench_framework.hpp"
#include <mapnik/unicode.hpp>
#include <mapnik/attribute.hpp>
#include <mapnik/expression.hpp>
#include <mapnik/expression_string.hpp>
class test : public benchmark::test_case
{
std::string expr_;
public:
test(mapnik::parameters const& params)
: test_case(params)
, expr_("((([mapnik::geometry_type]=2) and ([oneway]=1)) and ([class]='path'))")
{}
bool validate() const
{
mapnik::expression_ptr expr = mapnik::parse_expression(expr_);
std::string result = mapnik::to_expression_string(*expr);
bool ret = (result == expr_);
if (!ret)
{
std::clog << result << " != " << expr_ << "\n";
}
return ret;
}
bool operator()() const
{
for (std::size_t i = 0; i < iterations_; ++i)
{
mapnik::expression_ptr expr = mapnik::parse_expression(expr_);
}
return true;
}
};
int main(int argc, char** argv)
{
mapnik::setup();
mapnik::parameters params;
benchmark::handle_args(argc, argv, params);
test test_runner(params);
return run(test_runner, "expr parsing");
}

View file

@ -0,0 +1,74 @@
#include "bench_framework.hpp"
#include <mapnik/font_engine_freetype.hpp>
#include <boost/format.hpp>
class test : public benchmark::test_case
{
public:
test(mapnik::parameters const& params)
: test_case(params)
{}
bool validate() const
{
std::size_t count = 0;
std::size_t expected_count = mapnik::freetype_engine::face_names().size();
mapnik::freetype_engine::font_file_mapping_type font_file_mapping;
mapnik::freetype_engine::font_memory_cache_type font_cache;
mapnik::font_library library;
for (std::string const& name : mapnik::freetype_engine::face_names())
{
mapnik::face_ptr f = mapnik::freetype_engine::create_face(name,
library,
font_file_mapping,
font_cache,
mapnik::freetype_engine::get_mapping(),
mapnik::freetype_engine::get_cache());
if (f)
++count;
}
return count == expected_count;
}
bool operator()() const
{
std::size_t expected_count = mapnik::freetype_engine::face_names().size();
for (unsigned i = 0; i < iterations_; ++i)
{
std::size_t count = 0;
mapnik::freetype_engine::font_file_mapping_type font_file_mapping;
mapnik::freetype_engine::font_memory_cache_type font_cache;
mapnik::font_library library;
for (std::string const& name : mapnik::freetype_engine::face_names())
{
mapnik::face_ptr f = mapnik::freetype_engine::create_face(name,
library,
font_file_mapping,
font_cache,
mapnik::freetype_engine::get_mapping(),
mapnik::freetype_engine::get_cache());
if (f)
++count;
}
if (count != expected_count)
{
std::clog << "warning: face creation not working as expected\n";
}
}
return true;
}
};
int main(int argc, char** argv)
{
mapnik::setup();
mapnik::parameters params;
benchmark::handle_args(argc, argv, params);
bool success = mapnik::freetype_engine::register_fonts("./fonts", true);
if (!success)
{
std::clog << "warning, did not register any new fonts!\n";
return -1;
}
std::size_t face_count = mapnik::freetype_engine::face_names().size();
test test_runner(params);
return run(test_runner, (boost::format("font_engine: creating %ld faces") % (face_count)).str());
}

View file

@ -0,0 +1,24 @@
#include "bench_framework.hpp"
#include <mapnik/font_engine_freetype.hpp>
#include <boost/format.hpp>
class test : public benchmark::test_case
{
public:
test(mapnik::parameters const& params)
: test_case(params)
{}
bool validate() const { return mapnik::freetype_engine::register_fonts("./fonts", true); }
bool operator()() const
{
unsigned long count = 0;
for (unsigned i = 0; i < iterations_; ++i)
{
mapnik::freetype_engine::register_fonts("./fonts", true);
count++;
}
return true;
}
};
BENCHMARK(test, "font registration")

View file

@ -0,0 +1,125 @@
#include "bench_framework.hpp"
#include "../plugins/input/csv/csv_getline.hpp"
class test : public benchmark::test_case
{
public:
std::string line_data_;
test(mapnik::parameters const& params)
: test_case(params)
, line_data_("this is one line\nand this is a second line\nand a third line")
{
auto line_data = params.get<std::string>("line");
if (line_data)
{
line_data_ = *line_data;
}
}
bool validate() const
{
std::string first = line_data_.substr(line_data_.find_first_not_of('\n'));
char newline = '\n';
std::string csv_line;
std::stringstream s;
s << line_data_;
std::getline(s, csv_line, newline);
if (csv_line != first)
{
return true;
}
else
{
std::clog << "Error: the parsed line (" << csv_line << ") should be a subset of the original line ("
<< line_data_ << ") (ensure you pass a line with a \\n)\n";
}
return true;
}
bool operator()() const
{
char newline = '\n';
std::string csv_line;
std::stringstream s;
s << line_data_;
for (unsigned i = 0; i < iterations_; ++i)
{
std::getline(s, csv_line, newline);
}
return true;
}
};
class test2 : public benchmark::test_case
{
public:
std::string line_data_;
test2(mapnik::parameters const& params)
: test_case(params)
, line_data_("this is one line\nand this is a second line\nand a third line")
{
auto line_data = params.get<std::string>("line");
if (line_data)
{
line_data_ = *line_data;
}
}
bool validate() const
{
std::string first = line_data_.substr(line_data_.find_first_not_of('\n'));
char newline = '\n';
char quote = '"';
std::string csv_line;
std::stringstream s;
s << line_data_;
csv_utils::getline_csv(s, csv_line, newline, quote);
if (csv_line != first)
{
return true;
}
else
{
std::clog << "Error: the parsed line (" << csv_line << ") should be a subset of the original line ("
<< line_data_ << ") (ensure you pass a line with a \\n)\n";
}
return true;
}
bool operator()() const
{
char newline = '\n';
char quote = '"';
std::string csv_line;
std::stringstream s;
s << line_data_;
for (unsigned i = 0; i < iterations_; ++i)
{
csv_utils::getline_csv(s, csv_line, newline, quote);
}
return true;
}
};
int main(int argc, char** argv)
{
mapnik::setup();
int return_value = 0;
try
{
mapnik::parameters params;
benchmark::handle_args(argc, argv, params);
{
test test_runner(params);
return_value = return_value | run(test_runner, "std::getline");
}
{
test2 test_runner2(params);
return_value = return_value | run(test_runner2, "csv_utils::getline_csv");
}
}
catch (std::exception const& ex)
{
std::clog << ex.what() << "\n";
return -1;
}
return return_value;
}

View file

@ -0,0 +1,40 @@
#include "bench_framework.hpp"
#include <mapnik/marker_cache.hpp>
class test : public benchmark::test_case
{
std::vector<std::string> images_;
public:
test(mapnik::parameters const& params)
: test_case(params)
, images_{"./test/data/images/dummy.jpg",
"./test/data/images/dummy.jpeg",
"./test/data/images/dummy.png",
"./test/data/images/dummy.tif",
"./test/data/images/dummy.tiff",
//"./test/data/images/landusepattern.jpeg", // will fail since it is a png
//"./test/data/images/xcode-CgBI.png", // will fail since its an invalid png
"./test/data/svg/octocat.svg",
"./test/data/svg/place-of-worship-24.svg",
"./test/data/svg/point_sm.svg",
"./test/data/svg/point.svg",
"./test/data/svg/airfield-12.svg"}
{}
bool validate() const { return true; }
bool operator()() const
{
unsigned count = 0;
for (std::size_t i = 0; i < iterations_; ++i)
{
for (auto filename : images_)
{
auto marker = mapnik::marker_cache::instance().find(filename, true);
}
++count;
}
return (count == iterations_);
}
};
BENCHMARK(test, "marker cache")

View file

@ -0,0 +1,51 @@
#include "bench_framework.hpp"
#include <mapnik/map.hpp>
#include <mapnik/image_util.hpp>
#include <mapnik/load_map.hpp>
#include <mapnik/agg_renderer.hpp>
#include <mapnik/datasource_cache.hpp>
#include <mapnik/font_engine_freetype.hpp>
#include <stdexcept>
#include <mapnik/layer.hpp>
#include <mapnik/memory_datasource.hpp>
#include <mapnik/feature_type_style.hpp>
#include <memory>
class test : public benchmark::test_case
{
public:
test(mapnik::parameters const& params)
: test_case(params)
{}
bool validate() const { return true; }
bool operator()() const
{
mapnik::Map m(256, 256, "epsg:3857");
mapnik::parameters params;
params["type"] = "memory";
auto ds = std::make_shared<mapnik::memory_datasource>(params);
// add whitespace to trigger phony "reprojection"
mapnik::layer lay("layer", m.srs() + " ");
lay.set_datasource(ds);
lay.add_style("style");
m.add_layer(lay);
// dummy style to ensure that layer is processed
m.insert_style("style", mapnik::feature_type_style());
// dummy bbox, but "valid" because minx and miny are less
// with an invalid bbox then layer.visible() returns false
// and the initial rendering setup is not run
m.zoom_to_box(mapnik::box2d<double>(-1, -1, 0, 0));
for (unsigned i = 0; i < iterations_; ++i)
{
mapnik::image_rgba8 im(256, 256);
mapnik::agg_renderer<mapnik::image_rgba8> ren(m, im);
ren.apply();
}
return true;
}
};
BENCHMARK(test, "rendering with reprojection")

View file

@ -0,0 +1,81 @@
#include "bench_framework.hpp"
// boost
#include <boost/numeric/conversion/cast.hpp>
static double STEP_NUM = 0.0000000001;
static std::uint8_t START_NUM = 2;
class test_static : public benchmark::test_case
{
double step_;
std::uint8_t start_;
public:
test_static(mapnik::parameters const& params)
: test_case(params)
, step_(STEP_NUM)
, start_(START_NUM)
{}
bool validate() const { return true; }
bool operator()() const
{
double value_ = 0.0;
std::uint8_t x;
for (std::size_t i = 0; i < iterations_; ++i)
{
double c = static_cast<double>(start_) * value_;
if (c >= 256.0)
c = 255.0;
if (c < 0.0)
c = 0.0;
x = static_cast<std::uint8_t>(c);
value_ += step_;
}
return static_cast<double>(x) < (static_cast<double>(start_) * value_);
}
};
using boost::numeric::negative_overflow;
using boost::numeric::positive_overflow;
class test_numeric : public benchmark::test_case
{
double step_;
std::uint8_t start_;
public:
test_numeric(mapnik::parameters const& params)
: test_case(params)
, step_(STEP_NUM)
, start_(START_NUM)
{}
bool validate() const { return true; }
bool operator()() const
{
double value_ = 0.0;
std::uint8_t x;
for (std::size_t i = 0; i < iterations_; ++i)
{
try
{
x = boost::numeric_cast<std::uint8_t>(start_ * value_);
}
catch (negative_overflow&)
{
x = std::numeric_limits<std::uint8_t>::min();
}
catch (positive_overflow&)
{
x = std::numeric_limits<std::uint8_t>::max();
}
value_ += step_;
}
return static_cast<double>(x) < (static_cast<double>(start_) * value_);
}
};
int main(int argc, char** argv)
{
mapnik::setup();
return benchmark::sequencer(argc, argv).run<test_static>("static_cast").run<test_numeric>("numeric_cast").done();
}

View file

@ -0,0 +1,104 @@
#include "bench_framework.hpp"
// mapnik
#include <mapnik/global.hpp>
#include <mapnik/coord.hpp>
#include <mapnik/vertex.hpp>
#include <mapnik/offset_converter.hpp>
struct fake_path
{
using coord_type = std::tuple<double, double, unsigned>;
using cont_type = std::vector<coord_type>;
cont_type vertices_;
cont_type::iterator itr_;
fake_path(std::initializer_list<double> l)
: fake_path(l.begin(), l.size())
{}
fake_path(std::vector<double> const& v)
: fake_path(v.begin(), v.size())
{}
template<typename Itr>
fake_path(Itr itr, size_t sz)
{
size_t num_coords = sz >> 1;
vertices_.reserve(num_coords);
for (size_t i = 0; i < num_coords; ++i)
{
double x = *itr++;
double y = *itr++;
unsigned cmd = (i == 0) ? mapnik::SEG_MOVETO : mapnik::SEG_LINETO;
vertices_.push_back(std::make_tuple(x, y, cmd));
if (i == num_coords - 1)
cmd = mapnik::SEG_END;
vertices_.push_back(std::make_tuple(x, y, cmd));
}
itr_ = vertices_.begin();
}
unsigned vertex(double* x, double* y)
{
if (itr_ == vertices_.end())
{
return mapnik::SEG_END;
}
*x = std::get<0>(*itr_);
*y = std::get<1>(*itr_);
unsigned cmd = std::get<2>(*itr_);
++itr_;
return cmd;
}
void rewind(unsigned) { itr_ = vertices_.begin(); }
};
class test_offset : public benchmark::test_case
{
public:
test_offset(mapnik::parameters const& params)
: test_case(params)
{}
bool validate() const { return true; }
bool operator()() const
{
std::vector<double> path;
int mysize = 2500;
int x1 = 0;
path.reserve(mysize * 2);
for (int i = 0; i < mysize; i++)
{
path.push_back(i);
path.push_back(0);
}
fake_path fpath(path);
for (std::size_t i = 0; i < iterations_; ++i)
{
mapnik::offset_converter<fake_path> off_path(fpath);
off_path.set_offset(10);
unsigned cmd;
double x, y;
while ((cmd = off_path.vertex(&x, &y)) != mapnik::SEG_END)
{
x1++;
}
}
return x1 > 0;
}
};
int main(int argc, char** argv)
{
mapnik::setup();
mapnik::parameters params;
benchmark::handle_args(argc, argv, params);
int return_value = 0;
{
test_offset test_runner(params);
return_value = run(test_runner, "offset_test");
}
return return_value;
}

View file

@ -0,0 +1,26 @@
#include "bench_framework.hpp"
#include <mapnik/image_util.hpp>
class test : public benchmark::test_case
{
mapnik::image_rgba8 im_;
public:
test(mapnik::parameters const& params)
: test_case(params)
, im_(256, 256)
{}
bool validate() const { return true; }
bool operator()() const
{
std::string out;
for (std::size_t i = 0; i < iterations_; ++i)
{
out.clear();
out = mapnik::save_to_string(im_, "png8:m=h:z=1");
}
return true;
}
};
BENCHMARK(test, "encoding blank png")

View file

@ -0,0 +1,41 @@
#include "bench_framework.hpp"
#include "compare_images.hpp"
#include <memory>
class test : public benchmark::test_case
{
std::shared_ptr<mapnik::image_rgba8> im_;
public:
test(mapnik::parameters const& params)
: test_case(params)
{
std::string filename("./benchmark/data/multicolor.png");
std::unique_ptr<mapnik::image_reader> reader(mapnik::get_image_reader(filename, "png"));
if (!reader.get())
{
throw mapnik::image_reader_exception("Failed to load: " + filename);
}
im_ = std::make_shared<mapnik::image_rgba8>(reader->width(), reader->height());
reader->read(0, 0, *im_);
}
bool validate() const
{
std::string expected("./benchmark/data/multicolor-hextree-expected.png");
std::string actual("./benchmark/data/multicolor-hextree-actual.png");
mapnik::save_to_file(*im_, actual, "png8:m=h:z=1");
return benchmark::compare_images(actual, expected);
}
bool operator()() const
{
std::string out;
for (std::size_t i = 0; i < iterations_; ++i)
{
out.clear();
out = mapnik::save_to_string(*im_, "png8:m=h:z=1");
}
return true;
}
};
BENCHMARK(test, "encoding multicolor png")

View file

@ -0,0 +1,550 @@
#include "bench_framework.hpp"
#include "compare_images.hpp"
#include <mapnik/vertex.hpp>
#include <mapnik/transform_path_adapter.hpp>
#include <mapnik/view_transform.hpp>
#include <mapnik/wkt/wkt_factory.hpp>
#include <mapnik/projection.hpp>
#include <mapnik/proj_transform.hpp>
#include <mapnik/util/fs.hpp>
#include <mapnik/geometry.hpp>
#include <mapnik/vertex_adapters.hpp>
#include <mapnik/geometry.hpp>
#include <mapnik/geometry/boost_adapters.hpp>
#include <mapnik/geometry/envelope.hpp>
#include <mapnik/geometry/correct.hpp>
#include <mapnik/geometry/is_empty.hpp>
#include <mapnik/image_util.hpp>
#include <mapnik/color.hpp>
// boost geometry
#include <boost/geometry.hpp>
// agg
#include "agg_conv_clip_polygon.h"
// clipper
#include "agg_path_storage.h"
// rendering
#include "agg_basics.h"
#include "agg_rendering_buffer.h"
#include "agg_pixfmt_rgba.h"
#include "agg_rasterizer_scanline_aa.h"
#include "agg_scanline_u.h"
#include "agg_renderer_scanline.h"
// stl
#include <fstream>
#include <iostream>
#include <cstdlib>
void render(mapnik::geometry::multi_polygon<double> const& geom,
mapnik::box2d<double> const& extent,
std::string const& name)
{
using path_type =
mapnik::transform_path_adapter<mapnik::view_transform, mapnik::geometry::polygon_vertex_adapter<double>>;
using ren_base = agg::renderer_base<agg::pixfmt_rgba32_plain>;
using renderer = agg::renderer_scanline_aa_solid<ren_base>;
mapnik::image_rgba8 im(256, 256);
mapnik::fill(im, mapnik::color("white"));
mapnik::box2d<double> padded_extent(155, 134, 665, 466); // extent;
padded_extent.pad(10);
mapnik::view_transform tr(im.width(), im.height(), padded_extent, 0, 0);
agg::rendering_buffer buf(im.bytes(), im.width(), im.height(), im.row_size());
agg::pixfmt_rgba32_plain pixf(buf);
ren_base renb(pixf);
renderer ren(renb);
mapnik::proj_transform prj_trans(mapnik::projection("epsg:4326"), mapnik::projection("epsg:4326"));
ren.color(agg::rgba8(127, 127, 127, 255));
agg::rasterizer_scanline_aa<> ras;
for (auto const& poly : geom)
{
mapnik::geometry::polygon_vertex_adapter<double> va(poly);
path_type path(tr, va, prj_trans);
ras.add_path(path);
}
agg::scanline_u8 sl;
agg::render_scanlines(ras, sl, ren);
mapnik::save_to_file(im, name);
}
class test1 : public benchmark::test_case
{
std::string wkt_in_;
mapnik::box2d<double> extent_;
std::string expected_;
public:
using conv_clip = agg::conv_clip_polygon<mapnik::geometry::polygon_vertex_adapter<double>>;
test1(mapnik::parameters const& params, std::string const& wkt_in, mapnik::box2d<double> const& extent)
: test_case(params)
, wkt_in_(wkt_in)
, extent_(extent)
, expected_("./benchmark/data/polygon_clipping_agg")
{}
bool validate() const
{
mapnik::geometry::geometry<double> geom;
if (!mapnik::from_wkt(wkt_in_, geom))
{
throw std::runtime_error("Failed to parse WKT");
}
if (mapnik::geometry::is_empty(geom))
{
std::clog << "empty geom!\n";
return false;
}
if (!geom.is<mapnik::geometry::polygon<double>>())
{
std::clog << "not a polygon!\n";
return false;
}
mapnik::geometry::polygon<double> const& poly = mapnik::util::get<mapnik::geometry::polygon<double>>(geom);
mapnik::geometry::polygon_vertex_adapter<double> va(poly);
conv_clip clipped(va);
clipped.clip_box(extent_.minx(), extent_.miny(), extent_.maxx(), extent_.maxy());
clipped.rewind(0);
mapnik::geometry::polygon<double> poly2;
mapnik::geometry::linear_ring<double> ring;
// exterior ring
unsigned cmd;
double x, y, x0, y0;
while ((cmd = clipped.vertex(&x, &y)) != mapnik::SEG_END)
{
if (cmd == mapnik::SEG_MOVETO)
{
x0 = x;
y0 = y;
}
if (cmd == mapnik::SEG_CLOSE)
{
ring.emplace_back(x0, y0);
break;
}
ring.emplace_back(x, y);
}
poly2.push_back(std::move(ring));
// interior rings
ring.clear();
while ((cmd = clipped.vertex(&x, &y)) != mapnik::SEG_END)
{
if (cmd == mapnik::SEG_MOVETO)
{
x0 = x;
y0 = y;
}
else if (cmd == mapnik::SEG_CLOSE)
{
ring.emplace_back(x0, y0);
poly2.push_back(std::move(ring));
ring.clear();
continue;
}
ring.emplace_back(x, y);
}
std::string expect = expected_ + ".png";
std::string actual = expected_ + "_actual.png";
mapnik::geometry::multi_polygon<double> mp;
mp.emplace_back(poly2);
auto env = mapnik::geometry::envelope(mp);
if (!mapnik::util::exists(expect) || (std::getenv("UPDATE") != nullptr))
{
std::clog << "generating expected image: " << expect << "\n";
render(mp, env, expect);
}
render(mp, env, actual);
return benchmark::compare_images(actual, expect);
}
bool operator()() const
{
mapnik::geometry::geometry<double> geom;
if (!mapnik::from_wkt(wkt_in_, geom))
{
throw std::runtime_error("Failed to parse WKT");
}
if (mapnik::geometry::is_empty(geom))
{
std::clog << "empty geom!\n";
return false;
}
if (!geom.is<mapnik::geometry::polygon<double>>())
{
std::clog << "not a polygon!\n";
return false;
}
bool valid = true;
for (unsigned i = 0; i < iterations_; ++i)
{
unsigned count = 0;
mapnik::geometry::polygon<double> const& poly = mapnik::util::get<mapnik::geometry::polygon<double>>(geom);
mapnik::geometry::polygon_vertex_adapter<double> va(poly);
conv_clip clipped(va);
clipped.clip_box(extent_.minx(), extent_.miny(), extent_.maxx(), extent_.maxy());
unsigned cmd;
double x, y;
// NOTE: this rewind is critical otherwise
// agg_conv_adapter_vpgen will give garbage
// values for the first vertex
clipped.rewind(0);
while ((cmd = clipped.vertex(&x, &y)) != mapnik::SEG_END)
{
count++;
}
unsigned expected_count = 30;
if (count != expected_count)
{
std::clog << "test1: clipping failed: processed " << count << " verticies but expected "
<< expected_count << "\n";
valid = false;
}
}
return valid;
}
};
class test3 : public benchmark::test_case
{
std::string wkt_in_;
mapnik::box2d<double> extent_;
std::string expected_;
public:
test3(mapnik::parameters const& params, std::string const& wkt_in, mapnik::box2d<double> const& extent)
: test_case(params)
, wkt_in_(wkt_in)
, extent_(extent)
, expected_("./benchmark/data/polygon_clipping_boost")
{}
bool validate() const
{
mapnik::geometry::geometry<double> geom;
if (!mapnik::from_wkt(wkt_in_, geom))
{
throw std::runtime_error("Failed to parse WKT");
}
if (mapnik::geometry::is_empty(geom))
{
std::clog << "empty geom!\n";
return false;
}
if (!geom.is<mapnik::geometry::polygon<double>>())
{
std::clog << "not a polygon!\n";
return false;
}
mapnik::geometry::polygon<double>& poly = mapnik::util::get<mapnik::geometry::polygon<double>>(geom);
mapnik::geometry::correct(poly);
mapnik::geometry::linear_ring<double> bbox;
bbox.emplace_back(extent_.minx(), extent_.miny());
bbox.emplace_back(extent_.minx(), extent_.maxy());
bbox.emplace_back(extent_.maxx(), extent_.maxy());
bbox.emplace_back(extent_.maxx(), extent_.miny());
bbox.emplace_back(extent_.minx(), extent_.miny());
std::deque<mapnik::geometry::polygon<double>> result;
boost::geometry::intersection(bbox, poly, result);
std::string expect = expected_ + ".png";
std::string actual = expected_ + "_actual.png";
mapnik::geometry::multi_polygon<double> mp;
for (auto const& _geom : result)
{
// std::clog << boost::geometry::dsv(geom) << "\n";
mp.emplace_back(_geom);
}
mapnik::geometry::geometry<double> geom2(mp);
auto env = mapnik::geometry::envelope(geom2);
if (!mapnik::util::exists(expect) || (std::getenv("UPDATE") != nullptr))
{
std::clog << "generating expected image: " << expect << "\n";
render(mp, env, expect);
}
render(mp, env, actual);
return benchmark::compare_images(actual, expect);
}
bool operator()() const
{
mapnik::geometry::geometry<double> geom;
if (!mapnik::from_wkt(wkt_in_, geom))
{
throw std::runtime_error("Failed to parse WKT");
}
if (mapnik::geometry::is_empty(geom))
{
std::clog << "empty geom!\n";
return false;
}
if (!geom.is<mapnik::geometry::polygon<double>>())
{
std::clog << "not a polygon!\n";
return false;
}
mapnik::geometry::polygon<double>& poly = mapnik::util::get<mapnik::geometry::polygon<double>>(geom);
mapnik::geometry::correct(poly);
mapnik::geometry::linear_ring<double> bbox;
bbox.emplace_back(extent_.minx(), extent_.miny());
bbox.emplace_back(extent_.minx(), extent_.maxy());
bbox.emplace_back(extent_.maxx(), extent_.maxy());
bbox.emplace_back(extent_.maxx(), extent_.miny());
bbox.emplace_back(extent_.minx(), extent_.miny());
bool valid = true;
for (unsigned i = 0; i < iterations_; ++i)
{
std::deque<mapnik::geometry::polygon<double>> result;
boost::geometry::intersection(bbox, poly, result);
unsigned count = 0;
for (auto const& _geom : result)
{
mapnik::geometry::polygon_vertex_adapter<double> va(_geom);
unsigned cmd;
double x, y;
while ((cmd = va.vertex(&x, &y)) != mapnik::SEG_END)
{
++count;
}
unsigned expected_count = 29;
if (count != expected_count)
{
std::clog << "test3: clipping failed: processed " << count << " verticies but expected "
<< expected_count << "\n";
valid = false;
}
}
}
return valid;
}
};
/*
Commented out section because clipper moved out of mapnik core.
inline void process_polynode_branch(ClipperLib::PolyNode* polynode,
mapnik::geometry::multi_polygon<double> & mp)
{
mapnik::geometry::polygon<double> polygon;
mapnik::geometry::linear_ring<double> outer;
for (auto const& pt : polynode->Contour)
{
outer.emplace_back(static_cast<double>(pt.x),static_cast<double>(pt.y));
}
if (outer.front() != outer.back())
{
outer.emplace_back(outer.front().x, outer.front().y);
}
polygon.set_exterior_ring(std::move(outer));
for (auto * ring : polynode->Childs)
{
mapnik::geometry::linear_ring<double> inner;
for (auto const& pt : ring->Contour)
{
inner.emplace_back(static_cast<double>(pt.x),static_cast<double>(pt.y));
}
if (inner.front() != inner.back())
{
inner.emplace_back(inner.front().x, inner.front().y);
}
polygon.add_hole(std::move(inner));
}
mp.emplace_back(std::move(polygon));
for (auto * ring : polynode->Childs)
{
for (auto * sub_ring : ring->Childs)
{
process_polynode_branch(sub_ring, mp);
}
}
}
class test4 : public benchmark::test_case
{
std::string wkt_in_;
mapnik::box2d<double> extent_;
std::string expected_;
public:
test4(mapnik::parameters const& params,
std::string const& wkt_in,
mapnik::box2d<double> const& extent)
: test_case(params),
wkt_in_(wkt_in),
extent_(extent),
expected_("./benchmark/data/polygon_clipping_clipper") {}
bool validate() const
{
mapnik::geometry::geometry<double> geom;
if (!mapnik::from_wkt(wkt_in_, geom))
{
throw std::runtime_error("Failed to parse WKT");
}
if (mapnik::geometry::is_empty(geom))
{
std::clog << "empty geom!\n";
return false;
}
if (!geom.is<mapnik::geometry::polygon<double> >())
{
std::clog << "not a polygon!\n";
return false;
}
mapnik::geometry::polygon<double> & poly = mapnik::util::get<mapnik::geometry::polygon<double> >(geom);
mapnik::geometry::correct(poly);
ClipperLib::Clipper clipper;
mapnik::geometry::line_string<std::int64_t> path;
for (auto const& pt : poly.exterior_ring)
{
double x = pt.x;
double y = pt.y;
path.emplace_back(static_cast<ClipperLib::cInt>(x),static_cast<ClipperLib::cInt>(y));
}
double area = ClipperLib::Area(path);
if (area > 0)
{
std::reverse(path.begin(), path.end());
}
if (!clipper.AddPath(path, ClipperLib::ptSubject, true))
{
std::clog << "ptSubject ext failed!\n";
}
for (auto const& ring : poly.interior_rings)
{
path.clear();
for (auto const& pt : ring)
{
double x = pt.x;
double y = pt.y;
path.emplace_back(static_cast<ClipperLib::cInt>(x),static_cast<ClipperLib::cInt>(y));
}
area = ClipperLib::Area(path);
if (area < 0)
{
std::reverse(path.begin(), path.end());
}
if (!clipper.AddPath(path, ClipperLib::ptSubject, true))
{
std::clog << "ptSubject ext failed!\n";
}
}
std::cerr << "path size=" << path.size() << std::endl;
mapnik::geometry::line_string<std::int64_t> clip_box;
clip_box.emplace_back(static_cast<ClipperLib::cInt>(extent_.minx()),static_cast<ClipperLib::cInt>(extent_.miny()));
clip_box.emplace_back(static_cast<ClipperLib::cInt>(extent_.maxx()),static_cast<ClipperLib::cInt>(extent_.miny()));
clip_box.emplace_back(static_cast<ClipperLib::cInt>(extent_.maxx()),static_cast<ClipperLib::cInt>(extent_.maxy()));
clip_box.emplace_back(static_cast<ClipperLib::cInt>(extent_.minx()),static_cast<ClipperLib::cInt>(extent_.maxy()));
clip_box.emplace_back(static_cast<ClipperLib::cInt>(extent_.minx()),static_cast<ClipperLib::cInt>(extent_.miny()));
if (!clipper.AddPath( clip_box, ClipperLib::ptClip, true ))
{
std::clog << "ptClip failed!\n";
}
ClipperLib::PolyTree polygons;
clipper.Execute(ClipperLib::ctIntersection, polygons);// ClipperLib::pftNonZero);
clipper.Clear();
mapnik::geometry::multi_polygon<double> mp;
for (auto * polynode : polygons.Childs)
{
process_polynode_branch(polynode, mp);
}
std::string expect = expected_+".png";
std::string actual = expected_+"_actual.png";
//mapnik::geometry::geometry<double> geom2(mp);
auto env = mapnik::geometry::envelope(mp);
if (!mapnik::util::exists(expect) || (std::getenv("UPDATE") != nullptr))
{
std::clog << "generating expected image: " << expect << "\n";
render(mp,env,expect);
}
render(mp,env,actual);
return benchmark::compare_images(actual,expect);
}
bool operator()() const
{
mapnik::geometry::geometry<double> geom;
if (!mapnik::from_wkt(wkt_in_, geom))
{
throw std::runtime_error("Failed to parse WKT");
}
if (mapnik::geometry::is_empty(geom))
{
std::clog << "empty geom!\n";
return false;
}
if (!geom.is<mapnik::geometry::polygon<double> >())
{
std::clog << "not a polygon!\n";
return false;
}
mapnik::geometry::polygon<double> & poly = mapnik::util::get<mapnik::geometry::polygon<double> >(geom);
mapnik::geometry::correct(poly);
bool valid = true;
for (unsigned i=0;i<iterations_;++i)
{
std::deque<mapnik::geometry::polygon<double> > result;
boost::geometry::intersection(extent_,poly,result);
unsigned count = 0;
for (auto const& geom : result)
{
mapnik::geometry::polygon_vertex_adapter<double> va(geom);
unsigned cmd;
double x,y;
while ((cmd = va.vertex(&x, &y)) != mapnik::SEG_END) {
++count;
}
unsigned expected_count = 29;
if (count != expected_count) {
std::clog << "test3: clipping failed: processed " << count << " verticies but expected " <<
expected_count << "\n"; valid = false;
}
}
}
return valid;
}
};
*/
int main(int argc, char** argv)
{
mapnik::setup();
mapnik::parameters params;
benchmark::handle_args(argc, argv, params);
// polygon/rect clipping
// IN : POLYGON ((155 203, 233 454, 315 340, 421 446, 463 324, 559 466, 665 253, 528 178, 394 229, 329 138, 212 134,
// 183 228, 200 264, 155 203),(313 190, 440 256, 470 248, 510 305, 533 237, 613 263, 553 397, 455 262, 405 378, 343
// 287, 249 334, 229 191, 313 190)) RECT : POLYGON ((181 106, 181 470, 631 470, 631 106, 181 106)) OUT (expected)
// POLYGON ((181 286.6666666666667, 233 454, 315 340, 421 446, 463 324, 559 466, 631 321.3207547169811, 631
// 234.38686131386862, 528 178, 394 229, 329 138, 212 134, 183 228, 200 264, 181 238.24444444444444, 181
// 286.6666666666667),(313 190, 440 256, 470 248, 510 305, 533 237, 613 263, 553 397, 455 262, 405 378, 343 287, 249
// 334, 229 191, 313 190))
#if 0
mapnik::box2d<double> clipping_box(181,106,631,470);
std::string filename_("./benchmark/data/polygon.wkt");
std::ifstream in(filename_.c_str(),std::ios_base::in | std::ios_base::binary);
if (!in.is_open())
throw std::runtime_error("could not open: '" + filename_ + "'");
std::string wkt_in( (std::istreambuf_iterator<char>(in) ),
(std::istreambuf_iterator<char>()) );
int return_value = 0;
{
test1 test_runner(params,wkt_in,clipping_box);
return_value = return_value | run(test_runner,"clipping polygon with agg");
}
{
test3 test_runner(params,wkt_in,clipping_box);
return_value = return_value | run(test_runner,"clipping polygon with boost");
}
/*
{
test4 test_runner(params,wkt_in,clipping_box);
return_value = return_value | run(test_runner,"clipping polygon with clipper_tree");
}
*/
#endif
return 0; // return_value;
}

View file

@ -0,0 +1,59 @@
#include "bench_framework.hpp"
#include <mapnik/map.hpp>
#include <mapnik/load_map.hpp>
#include <mapnik/agg_renderer.hpp>
#include <mapnik/datasource_cache.hpp>
class test : public benchmark::test_case
{
std::string xml_;
mapnik::box2d<double> extent_;
public:
test(mapnik::parameters const& params, std::string const& xml, mapnik::box2d<double> const& extent)
: test_case(params)
, xml_(xml)
, extent_(extent)
{}
bool validate() const
{
mapnik::Map m(256, 256);
mapnik::load_map(m, xml_);
m.zoom_to_box(extent_);
mapnik::image_rgba8 im(m.width(), m.height());
mapnik::agg_renderer<mapnik::image_rgba8> ren(m, im);
ren.apply();
// mapnik::save_to_file(im.data(),"test.png");
return true;
}
bool operator()() const
{
mapnik::Map m(256, 256);
mapnik::load_map(m, xml_);
m.zoom_to_box(extent_);
for (unsigned i = 0; i < iterations_; ++i)
{
mapnik::image_rgba8 im(m.width(), m.height());
mapnik::agg_renderer<mapnik::image_rgba8> ren(m, im);
ren.apply();
}
return true;
}
};
int main(int argc, char** argv)
{
mapnik::setup();
mapnik::parameters params;
benchmark::handle_args(argc, argv, params);
mapnik::datasource_cache::instance().register_datasources("./plugins/input/");
mapnik::box2d<double> z1(-20037508.3428, -8317435.0606, 20037508.3428, 18399242.7298);
// bbox for 16/10491/22911.png
mapnik::box2d<double> z16(-13622912.929097254, 6026906.8062295765, -13621689.93664469, 6028129.79868214);
return benchmark::sequencer(argc, argv)
.run<test>("polygon clip render z1", "benchmark/data/polygon_rendering_clip.xml", z1)
.run<test>("polygon noclip render z1", "benchmark/data/polygon_rendering_no_clip.xml", z1)
.run<test>("polygon clip render z16", "benchmark/data/polygon_rendering_clip.xml", z16)
.run<test>("polygon noclip render z16", "benchmark/data/polygon_rendering_no_clip.xml", z16)
.done();
}

View file

@ -0,0 +1,77 @@
#include "bench_framework.hpp"
#include <mapnik/geometry/box2d.hpp>
#include <mapnik/projection.hpp>
#include <mapnik/proj_transform.hpp>
class test : public benchmark::test_case
{
std::string src_;
std::string dest_;
mapnik::box2d<double> from_;
mapnik::box2d<double> to_;
bool defer_proj_init_;
public:
test(mapnik::parameters const& params,
std::string const& src,
std::string const& dest,
mapnik::box2d<double> const& from,
mapnik::box2d<double> const& to,
bool defer_proj)
: test_case(params)
, src_(src)
, dest_(dest)
, from_(from)
, to_(to)
, defer_proj_init_(defer_proj)
{}
bool validate() const
{
mapnik::projection src(src_, defer_proj_init_);
mapnik::projection dest(dest_, defer_proj_init_);
mapnik::proj_transform tr(src, dest);
mapnik::box2d<double> bbox = from_;
if (!tr.forward(bbox))
return false;
return ((std::fabs(bbox.minx() - to_.minx()) < .5) && (std::fabs(bbox.maxx() - to_.maxx()) < .5) &&
(std::fabs(bbox.miny() - to_.miny()) < .5) && (std::fabs(bbox.maxy() - to_.maxy()) < .5));
}
bool operator()() const
{
mapnik::projection src(src_, defer_proj_init_);
mapnik::projection dest(dest_, defer_proj_init_);
mapnik::proj_transform tr(src, dest);
for (std::size_t i = 0; i < iterations_; ++i)
{
for (int j = -180; j < 180; j = j + 5)
{
for (int k = -85; k < 85; k = k + 5)
{
mapnik::box2d<double> box(j, k, j, k);
if (!tr.forward(box))
throw std::runtime_error("could not transform coords");
}
}
}
return true;
}
};
// echo -180 -60 | cs2cs -f "%.10f" epsg:4326 +to epsg:3857
int main(int argc, char** argv)
{
mapnik::setup();
mapnik::box2d<double> from(-180, -80, 180, 80);
mapnik::box2d<double> to(-20037508.3427892476, -15538711.0963092316, 20037508.3427892476, 15538711.0963092316);
std::string from_str("epsg:4326");
std::string to_str("epsg:3857");
std::string from_str2("+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs");
std::string to_str2("+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m "
"+nadgrids=@null +wktext +no_defs +over");
return benchmark::sequencer(argc, argv)
.run<test>("lonlat->merc epsg (internal)", from_str, to_str, from, to, true)
.run<test>("lonlat->merc literal (libproj)", from_str2, to_str2, from, to, true)
.run<test>("merc->lonlat epsg (internal)", to_str, from_str, to, from, true)
.run<test>("merc->lonlat literal (libproj)", to_str2, from_str2, to, from, true)
.done();
}

View file

@ -0,0 +1,52 @@
#include "bench_framework.hpp"
#include <mapnik/quad_tree.hpp>
#include <random>
using quad_tree_type = mapnik::quad_tree<std::size_t>;
class test : public benchmark::test_case
{
public:
test(mapnik::parameters const& params)
: test_case(params)
{}
bool validate() const { return true; }
bool operator()() const
{
std::random_device rd;
std::default_random_engine engine(rd());
std::uniform_int_distribution<int> uniform_dist(0, 2048);
quad_tree_type tree(mapnik::box2d<double>(0, 0, 2048, 2048));
// populate
for (size_t i = 0; i < iterations_; ++i)
{
int cx = uniform_dist(engine);
int cy = uniform_dist(engine);
int sx = 0.2 * uniform_dist(engine);
int sy = 0.2 * uniform_dist(engine);
mapnik::box2d<double> box(cx - sx, cy - sy, cx + sx, cy + sy);
tree.insert(i, box);
}
// bounding box query
std::size_t count = 0;
for (size_t i = 0; i < iterations_; ++i)
{
int cx = uniform_dist(engine);
int cy = uniform_dist(engine);
int sx = 0.4 * uniform_dist(engine);
int sy = 0.4 * uniform_dist(engine);
mapnik::box2d<double> box(cx - sx, cy - sy, cx + sx, cy + sy);
auto itr = tree.query_in_box(box);
auto end = tree.query_end();
for (; itr != end; ++itr)
{
++count;
}
}
return true;
}
};
BENCHMARK(test, "quad_tree creation")

View file

@ -0,0 +1,123 @@
#include "bench_framework.hpp"
#include <mapnik/map.hpp>
#include <mapnik/image_util.hpp>
#include <mapnik/load_map.hpp>
#include <mapnik/agg_renderer.hpp>
#include <mapnik/datasource_cache.hpp>
#include <mapnik/font_engine_freetype.hpp>
#include <stdexcept>
class test : public benchmark::test_case
{
std::string xml_;
mapnik::box2d<double> extent_;
mapnik::value_integer width_;
mapnik::value_integer height_;
double scale_factor_;
std::string preview_;
public:
test(mapnik::parameters const& params)
: test_case(params)
, xml_()
, extent_()
, width_(*params.get<mapnik::value_integer>("width", 256))
, height_(*params.get<mapnik::value_integer>("height", 256))
, scale_factor_(*params.get<mapnik::value_double>("scale_factor", 1.0))
, preview_(*params.get<std::string>("preview", ""))
{
const auto map = params.get<std::string>("map");
if (!map)
{
throw std::runtime_error("please provide a --map <path to xml> arg");
}
xml_ = *map;
const auto ext = params.get<std::string>("extent");
if (ext && !ext->empty())
{
if (!extent_.from_string(*ext))
throw std::runtime_error("could not parse `extent` string" + *ext);
}
/*
else
{
throw std::runtime_error("please provide a --extent=<minx,miny,maxx,maxy> arg");
}*/
}
bool validate() const
{
mapnik::Map m(width_, height_);
mapnik::load_map(m, xml_, true);
if (extent_.valid())
{
m.zoom_to_box(extent_);
}
else
{
m.zoom_all();
}
mapnik::image_rgba8 im(m.width(), m.height());
mapnik::agg_renderer<mapnik::image_rgba8> ren(m, im, scale_factor_);
ren.apply();
if (!preview_.empty())
{
std::clog << "preview available at " << preview_ << "\n";
mapnik::save_to_file(im, preview_);
}
return true;
}
bool operator()() const
{
if (!preview_.empty())
{
return false;
}
mapnik::Map m(width_, height_);
mapnik::load_map(m, xml_);
if (extent_.valid())
{
m.zoom_to_box(extent_);
}
else
{
m.zoom_all();
}
for (unsigned i = 0; i < iterations_; ++i)
{
mapnik::image_rgba8 im(m.width(), m.height());
mapnik::agg_renderer<mapnik::image_rgba8> ren(m, im, scale_factor_);
ren.apply();
}
return true;
}
};
int main(int argc, char** argv)
{
mapnik::setup();
int return_value = 0;
try
{
mapnik::parameters params;
benchmark::handle_args(argc, argv, params);
const auto name = params.get<std::string>("name");
if (!name)
{
std::clog << "please provide a name for this test\n";
return -1;
}
mapnik::freetype_engine::register_fonts("./fonts/", true);
mapnik::datasource_cache::instance().register_datasources("./plugins/input/");
{
test test_runner(params);
return_value = run(test_runner, *name);
}
}
catch (std::exception const& ex)
{
std::clog << ex.what() << "\n";
return -1;
}
return return_value;
}

View file

@ -0,0 +1,178 @@
#include "bench_framework.hpp"
#include <mapnik/map.hpp>
#include <mapnik/image_util.hpp>
#include <mapnik/load_map.hpp>
#include <mapnik/agg_renderer.hpp>
#include <mapnik/datasource_cache.hpp>
#include <mapnik/font_engine_freetype.hpp>
#include <mapnik/scale_denominator.hpp>
#include <mapnik/projection.hpp>
#include <mapnik/layer.hpp>
#include <mapnik/proj_transform.hpp>
#include <mapnik/datasource_cache.hpp>
#include <stdexcept>
template<typename Renderer>
void process_layers(Renderer& ren,
mapnik::request const& m_req,
mapnik::projection const& map_proj,
std::vector<mapnik::layer> const& layers,
double scale_denom)
{
unsigned layers_size = layers.size();
for (unsigned i = 0; i < layers_size; ++i)
{
mapnik::layer const& lyr = layers[i];
if (lyr.visible(scale_denom))
{
std::set<std::string> names;
mapnik::layer l(lyr);
ren.apply_to_layer(l,
ren,
map_proj,
m_req.scale(),
scale_denom,
m_req.width(),
m_req.height(),
m_req.extent(),
m_req.buffer_size(),
names);
}
}
}
class test : public benchmark::test_case
{
std::string xml_;
mapnik::box2d<double> extent_;
mapnik::value_integer width_;
mapnik::value_integer height_;
std::shared_ptr<mapnik::Map> m_;
double scale_factor_;
std::string preview_;
mutable mapnik::image_rgba8 im_;
public:
test(mapnik::parameters const& params)
: test_case(params)
, xml_()
, extent_()
, width_(*params.get<mapnik::value_integer>("width", 256))
, height_(*params.get<mapnik::value_integer>("height", 256))
, m_(new mapnik::Map(width_, height_))
, scale_factor_(*params.get<mapnik::value_double>("scale_factor", 2.0))
, preview_(*params.get<std::string>("preview", ""))
, im_(m_->width(), m_->height())
{
const auto map = params.get<std::string>("map");
if (!map)
{
throw std::runtime_error("please provide a --map=<path to xml> arg");
}
xml_ = *map;
auto ext = params.get<std::string>("extent");
mapnik::load_map(*m_, xml_, true);
if (ext && !ext->empty())
{
if (!extent_.from_string(*ext))
throw std::runtime_error("could not parse `extent` string" + *ext);
}
else
{
m_->zoom_all();
extent_ = m_->get_current_extent();
std::clog << "Defaulting to max extent " << extent_ << "\n";
std::clog << " (pass --extent=<minx,miny,maxx,maxy> to restrict bounds)\n";
}
}
bool validate() const
{
mapnik::request m_req(width_, height_, extent_);
mapnik::attributes variables;
m_req.set_buffer_size(m_->buffer_size());
mapnik::projection map_proj(m_->srs(), true);
double scale_denom = mapnik::scale_denominator(m_req.scale(), map_proj.is_geographic());
scale_denom *= scale_factor_;
mapnik::agg_renderer<mapnik::image_rgba8> ren(*m_, m_req, variables, im_, scale_factor_);
ren.start_map_processing(*m_);
std::vector<mapnik::layer> const& layers = m_->layers();
process_layers(ren, m_req, map_proj, layers, scale_denom);
ren.end_map_processing(*m_);
if (!preview_.empty())
{
std::clog << "preview available at " << preview_ << "\n";
mapnik::save_to_file(im_, preview_);
}
return true;
}
bool operator()() const
{
if (!preview_.empty())
{
return false;
}
for (unsigned i = 0; i < iterations_; ++i)
{
mapnik::request m_req(width_, height_, extent_);
mapnik::image_rgba8 im(m_->width(), m_->height());
mapnik::attributes variables;
m_req.set_buffer_size(m_->buffer_size());
mapnik::projection map_proj(m_->srs(), true);
double scale_denom = mapnik::scale_denominator(m_req.scale(), map_proj.is_geographic());
scale_denom *= scale_factor_;
mapnik::agg_renderer<mapnik::image_rgba8> ren(*m_, m_req, variables, im, scale_factor_);
ren.start_map_processing(*m_);
std::vector<mapnik::layer> const& layers = m_->layers();
process_layers(ren, m_req, map_proj, layers, scale_denom);
ren.end_map_processing(*m_);
bool diff = false;
mapnik::image_rgba8 const& dest = im;
mapnik::image_rgba8 const& src = im_;
for (unsigned int y = 0; y < height_; ++y)
{
const unsigned int* row_from = src.get_row(y);
const unsigned int* row_to = dest.get_row(y);
for (unsigned int x = 0; x < width_; ++x)
{
if (row_from[x] != row_to[x])
diff = true;
}
}
if (diff)
throw std::runtime_error("images differ");
}
return true;
}
};
int main(int argc, char** argv)
{
mapnik::setup();
int return_value = 0;
try
{
mapnik::parameters params;
benchmark::handle_args(argc, argv, params);
const auto name = params.get<std::string>("name");
if (!name)
{
std::clog << "please provide a name for this test\n";
return -1;
}
mapnik::freetype_engine::register_fonts("./fonts/", true);
mapnik::datasource_cache::instance().register_datasources("./plugins/input/");
{
test test_runner(params);
return_value = run(test_runner, *name);
}
}
catch (std::exception const& ex)
{
std::clog << ex.what() << "\n";
return -1;
}
return return_value;
}

View file

@ -0,0 +1,34 @@
#include "bench_framework.hpp"
#include <mapnik/util/conversions.hpp>
class test : public benchmark::test_case
{
std::string value_;
public:
test(mapnik::parameters const& params)
: test_case(params)
, value_("true")
{}
bool validate() const
{
bool result = false;
mapnik::util::string2bool(value_.data(), value_.data() + value_.size(), result);
if (!result)
return result;
mapnik::util::string2bool(value_, result);
return (result == true);
}
bool operator()() const
{
for (std::size_t i = 0; i < iterations_; ++i)
{
bool result = false;
mapnik::util::string2bool(value_, result);
mapnik::util::string2bool(value_.data(), value_.data() + value_.size(), result);
}
return true;
}
};
BENCHMARK(test, "string->bool")

View file

@ -0,0 +1,39 @@
#include "bench_framework.hpp"
#include <mapnik/util/conversions.hpp>
class test : public benchmark::test_case
{
std::string value_;
public:
test(mapnik::parameters const& params)
: test_case(params)
, value_("1.23456789")
{}
bool validate() const
{
double result = 0;
if (!mapnik::util::string2double(value_.data(), value_.data() + value_.size(), result))
return false;
if (result != 1.23456789)
return false;
result = 0;
if (!mapnik::util::string2double(value_, result))
return false;
if (result != 1.23456789)
return false;
return true;
}
bool operator()() const
{
for (std::size_t i = 0; i < iterations_; ++i)
{
double result = 0;
mapnik::util::string2double(value_, result);
mapnik::util::string2double(value_.data(), value_.data() + value_.size(), result);
}
return true;
}
};
BENCHMARK(test, "string->double")

View file

@ -0,0 +1,39 @@
#include "bench_framework.hpp"
#include <mapnik/util/conversions.hpp>
class test : public benchmark::test_case
{
std::string value_;
public:
test(mapnik::parameters const& params)
: test_case(params)
, value_("123456789")
{}
bool validate() const
{
mapnik::value_integer result = 0;
if (!mapnik::util::string2int(value_.data(), value_.data() + value_.size(), result))
return false;
if (result != 123456789)
return false;
result = 0;
if (!mapnik::util::string2int(value_, result))
return false;
if (result != 123456789)
return false;
return true;
}
bool operator()() const
{
for (std::size_t i = 0; i < iterations_; ++i)
{
mapnik::value_integer result = 0;
mapnik::util::string2int(value_, result);
mapnik::util::string2int(value_.data(), value_.data() + value_.size(), result);
}
return true;
}
};
BENCHMARK(test, "string->int")

View file

@ -0,0 +1,31 @@
#include "bench_framework.hpp"
#include <mapnik/util/conversions.hpp>
class test : public benchmark::test_case
{
double value_;
public:
test(mapnik::parameters const& params)
: test_case(params)
, value_(-0.1234)
{}
bool validate() const
{
std::string s;
mapnik::util::to_string(s, value_);
return (s == "-0.1234");
}
bool operator()() const
{
std::string out;
for (std::size_t i = 0; i < iterations_; ++i)
{
out.clear();
mapnik::util::to_string(out, value_);
}
return true;
}
};
BENCHMARK(test, "to_string double->string")

View file

@ -0,0 +1,32 @@
#include "bench_framework.hpp"
#include <sstream>
class test : public benchmark::test_case
{
double value_;
public:
test(mapnik::parameters const& params)
: test_case(params)
, value_(-0.1234)
{}
bool validate() const
{
std::ostringstream s;
s << value_;
return (s.str() == "-0.1234");
}
bool operator()() const
{
std::string out;
for (std::size_t i = 0; i < iterations_; ++i)
{
std::ostringstream s;
s << value_;
out = s.str();
}
return true;
}
};
BENCHMARK(test, "ostringstream double->string")

View file

@ -0,0 +1,124 @@
#include "bench_framework.hpp"
#include <mapnik/unicode.hpp>
#include <mapnik/util/from_u8string.hpp>
#include <mapnik/value.hpp>
#include <boost/locale.hpp>
#ifndef __linux__
#include <codecvt>
#endif
using mapnik::util::from_u8string;
#ifndef __linux__
class test : public benchmark::test_case
{
std::string utf8_;
public:
test(mapnik::parameters const& params)
: test_case(params)
, utf8_(from_u8string(u8"שלום"))
{}
bool validate() const
{
std::wstring_convert<std::codecvt_utf8<char32_t>, char32_t> utf32conv;
std::u32string utf32 = utf32conv.from_bytes(utf8_);
if (utf32.size() != 4)
return false;
if (utf32[0] != 0x5e9 && utf32[1] != 0x5dc && utf32[2] != 0x5d5 && utf32[3] != 0x5dd)
return false;
return true;
}
bool operator()() const
{
std::u32string utf32;
std::wstring_convert<std::codecvt_utf8<char32_t>, char32_t> utf32conv;
for (std::size_t i = 0; i < iterations_; ++i)
{
utf32 = utf32conv.from_bytes(utf8_);
}
return true;
}
};
#endif
class test2 : public benchmark::test_case
{
std::string utf8_;
public:
test2(mapnik::parameters const& params)
: test_case(params)
, utf8_(from_u8string(u8"שלום"))
{}
bool validate() const
{
std::u32string utf32 = boost::locale::conv::utf_to_utf<char32_t>(utf8_);
if (utf32.size() != 4)
return false;
if (utf32[0] != 0x5e9 && utf32[1] != 0x5dc && utf32[2] != 0x5d5 && utf32[3] != 0x5dd)
return false;
return true;
}
bool operator()() const
{
std::u32string utf32;
for (std::size_t i = 0; i < iterations_; ++i)
{
utf32 = boost::locale::conv::utf_to_utf<char32_t>(utf8_);
}
return true;
}
};
class test3 : public benchmark::test_case
{
std::string utf8_;
public:
test3(mapnik::parameters const& params)
: test_case(params)
, utf8_(from_u8string(u8"שלום"))
{}
bool validate() const
{
mapnik::transcoder tr_("utf-8");
mapnik::value_unicode_string utf32 = tr_.transcode(utf8_.data(), utf8_.size());
// std::u32string utf32 = boost::locale::conv::utf_to_utf<char32_t>(utf8_);
if (utf32.length() != 4)
return false;
if (utf32[0] != 0x5e9 && utf32[1] != 0x5dc && utf32[2] != 0x5d5 && utf32[3] != 0x5dd)
return false;
return true;
}
bool operator()() const
{
mapnik::transcoder tr_("utf-8");
mapnik::value_unicode_string utf32;
for (std::size_t i = 0; i < iterations_; ++i)
{
utf32 = tr_.transcode(utf8_.data(), utf8_.size());
}
return true;
}
};
int main(int argc, char** argv)
{
mapnik::setup();
mapnik::parameters params;
benchmark::handle_args(argc, argv, params);
int return_value = 0;
#ifndef __linux__
test test_runner(params);
return_value = return_value | run(test_runner, "utf encode std::codecvt");
#else
std::clog << "skipping 'utf encode std::codecvt' test since <codecvt> is not supported on __linux__\n";
#endif
test2 test_runner2(params);
return_value = return_value | run(test_runner2, "utf encode boost::locale");
test3 test_runner3(params);
return_value = return_value | run(test_runner3, "utf encode ICU");
return return_value;
}

13
benchmark/template.cpp Normal file
View file

@ -0,0 +1,13 @@
#include "bench_framework.hpp"
class test : public benchmark::test_case
{
public:
test(mapnik::parameters const& params)
: test_case(params)
{}
bool validate() const { return true; }
void operator()() const {}
};
BENCHMARK(test, "test name")

View file

@ -3,8 +3,8 @@ import random
im = mapnik.Image(256,256)
for x in xrange(0,im.width()):
for y in xrange(0,im.height()):
for x in range(im.width()):
for y in range(im.height()):
r = int(random.random() * 255)
g = random.random() * 255
b = random.random() * 255

View file

@ -1,207 +0,0 @@
#
# This file is part of Mapnik (c++ mapping toolkit)
#
# Copyright (C) 2006 Artem Pavlenko, Jean-Francois Doyon
#
# Mapnik is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
#
import os, re, sys, glob
from subprocess import Popen, PIPE
Import('env')
def call(cmd, silent=True):
stdin, stderr = Popen(cmd, shell=True, stdout=PIPE, stderr=PIPE).communicate()
if not stderr:
return stdin.strip()
elif not silent:
print stderr
def run_2to3(*args,**kwargs):
call('2to3 -w %s' % os.path.dirname(kwargs['target'][0].path))
def is_py3():
return 'True' in os.popen('''%s -c "import sys as s;s.stdout.write(str(s.version_info[0] == 3))"''' % env['PYTHON']).read().strip()
prefix = env['PREFIX']
target_path = os.path.normpath(env['PYTHON_INSTALL_LOCATION'] + os.path.sep + 'mapnik')
target_path_deprecated = os.path.normpath(env['PYTHON_INSTALL_LOCATION'] + os.path.sep + 'mapnik2')
libraries = ['mapnik',env['BOOST_PYTHON_LIB']]
# TODO - do solaris/fedora need direct linking too?
if env['PLATFORM'] == 'Darwin':
if not env['PYTHON_DYNAMIC_LOOKUP']:
if env['PNG']:
libraries.append('png')
if env['JPEG']:
libraries.append('jpeg')
libraries.append(env['ICU_LIB_NAME'])
libraries.append('boost_regex%s' % env['BOOST_APPEND'])
if env['THREADING'] == 'multi':
libraries.append('boost_thread%s' % env['BOOST_APPEND'])
##### Python linking on OS X is tricky ###
# Confounding problems are:
# 1) likelyhood of multiple python installs of the same major.minor version
# because apple supplies python built-in and many users may have installed
# further versions using macports
# 2) boost python directly links to a python version
# 3) the below will directly link _mapnik.so to a python version
# 4) _mapnik.so must link to the same python lib as boost_python.dylib otherwise
# python will Abort with a Version Mismatch error.
# See https://github.com/mapnik/mapnik/issues/453 for the seeds of a better approach
# for now we offer control over method of direct linking...
# The default below is to link against the python dylib in the form of
#/path/to/Python.framework/Python instead of -lpython
# http://developer.apple.com/mac/library/DOCUMENTATION/Darwin/Reference/ManPages/man1/ld.1.html
if env['PYTHON_DYNAMIC_LOOKUP']:
python_link_flag = '-undefined dynamic_lookup'
elif env['FRAMEWORK_PYTHON']:
if env['FRAMEWORK_SEARCH_PATH']:
# if the user has supplied a custom root path to search for
# a given Python framework, then use that to direct the linker
python_link_flag = '-F%s -framework Python -Z' % env['FRAMEWORK_SEARCH_PATH']
else:
# otherwise be as explicit as possible for linking to the same Framework
# as the executable we are building with (or is pointed to by the PYTHON variable)
# otherwise we may accidentally link against either:
# /System/Library/Frameworks/Python.framework/Python/Versions/
# or
# /Library/Frameworks/Python.framework/Python/Versions/
# See: https://github.com/mapnik/mapnik/issues/380
link_prefix = env['PYTHON_SYS_PREFIX']
if '.framework' in link_prefix:
python_link_flag = '-F%s -framework Python -Z' % os.path.dirname(link_prefix.split('.')[0])
elif '/System' in link_prefix:
python_link_flag = '-F/System/Library/Frameworks/ -framework Python -Z'
else:
# should we fall back to -lpython here?
python_link_flag = '-F/ -framework Python'
# if we are not linking to a framework then use the *nix standard approach
else:
# TODO - do we need to pass -L/?
python_link_flag = '-lpython%s' % env['PYTHON_VERSION']
elif env['PLATFORM'] == 'SunOS':
# make sure to explicitly link mapnik.so against
# libmapnik in its installed location
python_link_flag = '-R%s' % env['MAPNIK_LIB_BASE']
else:
# all other platforms we don't directly link python
python_link_flag = ''
if env['CUSTOM_LDFLAGS']:
linkflags = '%s %s' % (env['CUSTOM_LDFLAGS'], python_link_flag)
else:
linkflags = python_link_flag
paths = '''
"""Configuration paths of Mapnik fonts and input plugins (auto-generated by SCons)."""
from os.path import normpath,join,dirname
mapniklibpath = '%s'
mapniklibpath = normpath(join(dirname(__file__),mapniklibpath))
'''
paths += "inputpluginspath = join(mapniklibpath,'input')\n"
if env['SYSTEM_FONTS']:
paths += "fontscollectionpath = normpath('%s')\n" % env['SYSTEM_FONTS']
else:
paths += "fontscollectionpath = join(mapniklibpath,'fonts')\n"
paths += "__all__ = [mapniklibpath,inputpluginspath,fontscollectionpath]\n"
if not os.path.exists('mapnik'):
os.mkdir('mapnik')
file('mapnik/paths.py','w').write(paths % (env['MAPNIK_LIB_DIR']))
# force open perms temporarily so that `sudo scons install`
# does not later break simple non-install non-sudo rebuild
try:
os.chmod('mapnik/paths.py',0666)
except: pass
# install the shared object beside the module directory
sources = glob.glob('*.cpp')
py_env = env.Clone()
py_env.Append(CPPPATH = env['PYTHON_INCLUDES'])
if 'install' in COMMAND_LINE_TARGETS:
# install the core mapnik python files, including '__init__.py'
init_files = glob.glob('mapnik/*.py')
if 'mapnik/paths.py' in init_files:
init_files.remove('mapnik/paths.py')
init_module = env.Install(target_path, init_files)
env.Alias(target='install', source=init_module)
# install mapnik2 module which redirects to mapnik and issues DeprecatedWarning
init_mapnik2 = env.Install(target_path_deprecated, 'mapnik2/__init__.py')
env.Alias(target='install', source=init_mapnik2)
# fix perms and install the custom generated 'paths.py'
targetp = os.path.join(target_path,'paths.py')
env.Alias("install", targetp)
# use env.Command rather than env.Install
# to enable setting proper perms on `paths.py`
env.Command( targetp, 'mapnik/paths.py',
[
Copy("$TARGET","$SOURCE"),
Chmod("$TARGET", 0644),
])
if 'uninstall' not in COMMAND_LINE_TARGETS:
if env['HAS_CAIRO']:
py_env.Append(CPPPATH = env['CAIRO_CPPPATHS'])
py_env.Append(CPPDEFINES = '-DHAVE_CAIRO')
if env['PLATFORM'] == 'Darwin':
py_env.Append(LIBS=env['CAIRO_LINKFLAGS'])
if env['HAS_PYCAIRO']:
py_env.ParseConfig('pkg-config --cflags pycairo')
py_env.Append(CPPDEFINES = '-DHAVE_PYCAIRO')
libraries.append('boost_thread%s' % env['BOOST_APPEND'])
_mapnik = py_env.LoadableModule('mapnik/_mapnik', sources, LIBS=libraries, LDMODULEPREFIX='', LDMODULESUFFIX='.so',LINKFLAGS=linkflags)
Depends(_mapnik, env.subst('../../src/%s' % env['MAPNIK_LIB_NAME']))
if env['PLATFORM'] == 'SunOS' and env['PYTHON_IS_64BIT']:
# http://mail.python.org/pipermail/python-dev/2006-August/068528.html
cxx_module_path = os.path.join(target_path,'64')
else:
cxx_module_path = target_path
if 'uninstall' not in COMMAND_LINE_TARGETS:
pymapniklib = env.Install(cxx_module_path,_mapnik)
py_env.Alias(target='install',source=pymapniklib)
if 'install' in COMMAND_LINE_TARGETS:
if is_py3():
env.AddPostAction(pymapniklib, run_2to3)
env['create_uninstall_target'](env, target_path)
env['create_uninstall_target'](env, target_path_deprecated)

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,27 +0,0 @@
#
# This file is part of Mapnik (C++/Python mapping toolkit)
# Copyright (C) 2011 Artem Pavlenko
#
# Mapnik is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
# mapnik2 module (Deprecated)
import warnings
from mapnik import *
warnings.simplefilter("default")
msg=""" mapnik2 module has been deprecated,
please use 'import mapnik' """
warnings.warn(msg, DeprecationWarning)

View file

@ -1,52 +0,0 @@
/*****************************************************************************
*
* This file is part of Mapnik (c++ mapping toolkit)
*
* Copyright (C) 2012 Artem Pavlenko, Jean-Francois Doyon
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*****************************************************************************/
#include <boost/python.hpp>
#include <mapnik/value.hpp>
#include <mapnik/attribute.hpp>
#include <mapnik/building_symbolizer.hpp>
using namespace mapnik;
using mapnik::building_symbolizer;
using mapnik::color;
void export_building_symbolizer()
{
using namespace boost::python;
class_<building_symbolizer>("BuildingSymbolizer",
init<>("Default BuildingSymbolizer"))
.add_property("fill",make_function
(&building_symbolizer::get_fill,
return_value_policy<copy_const_reference>()),
&building_symbolizer::set_fill)
.add_property("fill_opacity",
&building_symbolizer::get_opacity,
&building_symbolizer::set_opacity)
.add_property("height",
make_function(&building_symbolizer::height,
return_value_policy<copy_const_reference>()),
&building_symbolizer::set_height,
"Set/get the building height")
;
}

View file

@ -1,94 +0,0 @@
/*****************************************************************************
*
* This file is part of Mapnik (c++ mapping toolkit)
*
* Copyright (C) 2006 Artem Pavlenko, Jean-Francois Doyon
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*****************************************************************************/
// boost
#include <boost/python.hpp>
//mapnik
#include <mapnik/color.hpp>
using mapnik::color;
struct color_pickle_suite : boost::python::pickle_suite
{
static boost::python::tuple
getinitargs(const color& c)
{
using namespace boost::python;
return boost::python::make_tuple(c.red(),c.green(),c.blue(),c.alpha());
}
};
void export_color ()
{
using namespace boost::python;
class_<color>("Color", init<int,int,int,int>(
( arg("r"), arg("g"), arg("b"), arg("a") ),
"Creates a new color from its RGB components\n"
"and an alpha value.\n"
"All values between 0 and 255.\n")
)
.def(init<int,int,int>(
( arg("r"), arg("g"), arg("b") ),
"Creates a new color from its RGB components.\n"
"All values between 0 and 255.\n")
)
.def(init<std::string>(
( arg("color_string") ),
"Creates a new color from its CSS string representation.\n"
"The string may be a CSS color name (e.g. 'blue')\n"
"or a hex color string (e.g. '#0000ff').\n")
)
.add_property("r",
&color::red,
&color::set_red,
"Gets or sets the red component.\n"
"The value is between 0 and 255.\n")
.add_property("g",
&color::green,
&color::set_green,
"Gets or sets the green component.\n"
"The value is between 0 and 255.\n")
.add_property("b",
&color::blue,
&color::set_blue,
"Gets or sets the blue component.\n"
"The value is between 0 and 255.\n")
.add_property("a",
&color::alpha,
&color::set_alpha,
"Gets or sets the alpha component.\n"
"The value is between 0 and 255.\n")
.def(self == self)
.def(self != self)
.def_pickle(color_pickle_suite())
.def("__str__",&color::to_string)
.def("to_hex_string",&color::to_hex_string,
"Returns the hexadecimal representation of this color.\n"
"\n"
"Example:\n"
">>> c = Color('blue')\n"
">>> c.to_hex_string()\n"
"'#0000ff'\n")
;
}

View file

@ -1,64 +0,0 @@
/*****************************************************************************
*
* This file is part of Mapnik (c++ mapping toolkit)
*
* Copyright (C) 2006 Artem Pavlenko, Jean-Francois Doyon
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*****************************************************************************/
// boost
#include <boost/python.hpp>
// mapnik
#include <mapnik/coord.hpp>
using mapnik::coord;
struct coord_pickle_suite : boost::python::pickle_suite
{
static boost::python::tuple
getinitargs(const coord<double,2>& c)
{
using namespace boost::python;
return boost::python::make_tuple(c.x,c.y);
}
};
void export_coord()
{
using namespace boost::python;
class_<coord<double,2> >("Coord",init<double, double>(
// class docstring is in mapnik/__init__.py, class _Coord
(arg("x"), arg("y")),
"Constructs a new point with the given coordinates.\n")
)
.def_pickle(coord_pickle_suite())
.def_readwrite("x", &coord<double,2>::x,
"Gets or sets the x/lon coordinate of the point.\n")
.def_readwrite("y", &coord<double,2>::y,
"Gets or sets the y/lat coordinate of the point.\n")
.def(self == self) // __eq__
.def(self + self) // __add__
.def(self + float())
.def(float() + self)
.def(self - self) // __sub__
.def(self - float())
.def(self * float()) //__mult__
.def(float() * self)
.def(self / float()) // __div__
;
}

View file

@ -1,185 +0,0 @@
/*****************************************************************************
*
* This file is part of Mapnik (c++ mapping toolkit)
*
* Copyright (C) 2006 Artem Pavlenko, Jean-Francois Doyon
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*****************************************************************************/
// boost
#include <boost/python.hpp>
#include <boost/python/detail/api_placeholder.hpp>
#include <boost/noncopyable.hpp>
// stl
#include <sstream>
#include <vector>
// mapnik
#include <mapnik/box2d.hpp>
#include <mapnik/coord.hpp>
#include <mapnik/query.hpp>
#include <mapnik/datasource.hpp>
#include <mapnik/datasource_cache.hpp>
#include <mapnik/feature_layer_desc.hpp>
#include <mapnik/memory_datasource.hpp>
using mapnik::datasource;
using mapnik::memory_datasource;
using mapnik::layer_descriptor;
using mapnik::attribute_descriptor;
namespace
{
//user-friendly wrapper that uses Python dictionary
using namespace boost::python;
boost::shared_ptr<mapnik::datasource> create_datasource(const dict& d)
{
mapnik::parameters params;
boost::python::list keys=d.keys();
for (int i=0; i<len(keys); ++i)
{
std::string key = extract<std::string>(keys[i]);
object obj = d[key];
extract<std::string> ex0(obj);
extract<mapnik::value_integer> ex1(obj);
extract<double> ex2(obj);
if (ex0.check())
{
params[key] = ex0();
}
else if (ex1.check())
{
params[key] = ex1();
}
else if (ex2.check())
{
params[key] = ex2();
}
}
return mapnik::datasource_cache::instance().create(params);
}
boost::python::dict describe(boost::shared_ptr<mapnik::datasource> const& ds)
{
boost::python::dict description;
mapnik::layer_descriptor ld = ds->get_descriptor();
description["type"] = ds->type();
description["name"] = ld.get_name();
description["geometry_type"] = ds->get_geometry_type();
description["encoding"] = ld.get_encoding();
return description;
}
boost::python::list fields(boost::shared_ptr<mapnik::datasource> const& ds)
{
boost::python::list flds;
if (ds)
{
layer_descriptor ld = ds->get_descriptor();
std::vector<attribute_descriptor> const& desc_ar = ld.get_descriptors();
std::vector<attribute_descriptor>::const_iterator it = desc_ar.begin();
std::vector<attribute_descriptor>::const_iterator end = desc_ar.end();
for (; it != end; ++it)
{
flds.append(it->get_name());
}
}
return flds;
}
boost::python::list field_types(boost::shared_ptr<mapnik::datasource> const& ds)
{
boost::python::list fld_types;
if (ds)
{
layer_descriptor ld = ds->get_descriptor();
std::vector<attribute_descriptor> const& desc_ar = ld.get_descriptors();
std::vector<attribute_descriptor>::const_iterator it = desc_ar.begin();
std::vector<attribute_descriptor>::const_iterator end = desc_ar.end();
for (; it != end; ++it)
{
unsigned type = it->get_type();
if (type == mapnik::Integer)
// this crashes, so send back strings instead
//fld_types.append(boost::python::object(boost::python::handle<>(&PyInt_Type)));
fld_types.append(boost::python::str("int"));
else if (type == mapnik::Float)
fld_types.append(boost::python::str("float"));
else if (type == mapnik::Double)
fld_types.append(boost::python::str("float"));
else if (type == mapnik::String)
fld_types.append(boost::python::str("str"));
else if (type == mapnik::Boolean)
fld_types.append(boost::python::str("bool"));
else if (type == mapnik::Geometry)
fld_types.append(boost::python::str("geometry"));
else if (type == mapnik::Object)
fld_types.append(boost::python::str("object"));
else
fld_types.append(boost::python::str("unknown"));
}
}
return fld_types;
}}
mapnik::parameters const& (mapnik::datasource::*params_const)() const = &mapnik::datasource::params;
void export_datasource()
{
using namespace boost::python;
enum_<mapnik::datasource::datasource_t>("DataType")
.value("Vector",mapnik::datasource::Vector)
.value("Raster",mapnik::datasource::Raster)
;
enum_<mapnik::datasource::geometry_t>("DataGeometryType")
.value("Point",mapnik::datasource::Point)
.value("LineString",mapnik::datasource::LineString)
.value("Polygon",mapnik::datasource::Polygon)
.value("Collection",mapnik::datasource::Collection)
;
class_<datasource,boost::shared_ptr<datasource>,
boost::noncopyable>("Datasource",no_init)
.def("type",&datasource::type)
.def("geometry_type",&datasource::get_geometry_type)
.def("describe",&describe)
.def("envelope",&datasource::envelope)
.def("features",&datasource::features)
.def("fields",&fields)
.def("field_types",&field_types)
.def("features_at_point",&datasource::features_at_point, (arg("coord"),arg("tolerance")=0))
.def("params",make_function(params_const,return_value_policy<copy_const_reference>()),
"The configuration parameters of the data source. "
"These vary depending on the type of data source.")
;
def("CreateDatasource",&create_datasource);
class_<memory_datasource, bases<datasource>, boost::noncopyable>("MemoryDatasource", init<>())
.def("add_feature",&memory_datasource::push,
"Adds a Feature:\n"
">>> ms = MemoryDatasource()\n"
">>> feature = Feature(1)\n"
">>> ms.add_feature(Feature(1))\n")
.def("num_features",&memory_datasource::size)
;
}

View file

@ -1,92 +0,0 @@
/*****************************************************************************
*
* This file is part of Mapnik (c++ mapping toolkit)
*
* Copyright (C) 2006 Artem Pavlenko, Jean-Francois Doyon
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*****************************************************************************/
#include <boost/python.hpp>
#include <boost/noncopyable.hpp>
#include <mapnik/datasource_cache.hpp>
namespace {
using namespace boost::python;
boost::shared_ptr<mapnik::datasource> create_datasource(const dict& d)
{
mapnik::parameters params;
boost::python::list keys=d.keys();
for (int i=0; i<len(keys); ++i)
{
std::string key = extract<std::string>(keys[i]);
object obj = d[key];
extract<std::string> ex0(obj);
extract<mapnik::value_integer> ex1(obj);
extract<double> ex2(obj);
if (ex0.check())
{
params[key] = ex0();
}
else if (ex1.check())
{
params[key] = ex1();
}
else if (ex2.check())
{
params[key] = ex2();
}
}
return mapnik::datasource_cache::instance().create(params);
}
void register_datasources(std::string const& path)
{
mapnik::datasource_cache::instance().register_datasources(path);
}
std::vector<std::string> plugin_names()
{
return mapnik::datasource_cache::instance().plugin_names();
}
std::string plugin_directories()
{
return mapnik::datasource_cache::instance().plugin_directories();
}
}
void export_datasource_cache()
{
using mapnik::datasource_cache;
class_<datasource_cache,
boost::noncopyable>("DatasourceCache",no_init)
.def("create",&create_datasource)
.staticmethod("create")
.def("register_datasources",&register_datasources)
.staticmethod("register_datasources")
.def("plugin_names",&plugin_names)
.staticmethod("plugin_names")
.def("plugin_directories",&plugin_directories)
.staticmethod("plugin_directories")
;
}

View file

@ -1,90 +0,0 @@
/*****************************************************************************
*
* This file is part of Mapnik (c++ mapping toolkit)
*
* Copyright (C) 2006 Artem Pavlenko, Jean-Francois Doyon
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*****************************************************************************/
#ifndef MAPNIK_PYTHON_BINDING_ENUMERATION_INCLUDED
#define MAPNIK_PYTHON_BINDING_ENUMERATION_INCLUDED
namespace mapnik {
template <typename EnumWrapper>
class enumeration_ :
public boost::python::enum_<typename EnumWrapper::native_type>
{
// some short cuts
typedef boost::python::enum_<typename EnumWrapper::native_type> base_type;
typedef typename EnumWrapper::native_type native_type;
public:
enumeration_() :
base_type( EnumWrapper::get_name().c_str() )
{
init();
}
enumeration_(const char * python_alias) :
base_type( python_alias )
{
init();
}
#if BOOST_VERSION >= 103500
enumeration_(const char * python_alias, const char * doc) :
base_type( python_alias, doc )
#else
enumeration_(const char * python_alias, const char * /*doc*/) :
// Boost.Python < 1.35.0 doesn't support
// docstrings for enums so we ignore it.
base_type( python_alias )
#endif
{
init();
}
private:
struct converter
{
static PyObject* convert(EnumWrapper const& v)
{
// Redirect conversion to a static method of our base class's
// base class. A free template converter will not work because
// the base_type::base typedef is protected.
// Lets hope MSVC agrees that this is legal C++
using namespace boost::python::converter;
return base_type::base::to_python(
registered<native_type>::converters.m_class_object
, static_cast<long>( v ));
}
};
void init() {
boost::python::implicitly_convertible<native_type, EnumWrapper>();
boost::python::to_python_converter<EnumWrapper, converter >();
for (unsigned i = 0; i < EnumWrapper::MAX; ++i)
{
// Register the strings already defined for this enum.
base_type::value( EnumWrapper::get_string( i ), native_type( i ) );
}
}
};
} // end of namespace mapnik
#endif // MAPNIK_PYTHON_BINDING_ENUMERATION_INCLUDED

View file

@ -1,293 +0,0 @@
/*****************************************************************************
*
* This file is part of Mapnik (c++ mapping toolkit)
*
* Copyright (C) 2006 Artem Pavlenko, Jean-Francois Doyon
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*****************************************************************************/
// boost
#include <boost/python.hpp>
// mapnik
#include <mapnik/box2d.hpp>
#include <mapnik/value_error.hpp>
using mapnik::coord;
using mapnik::box2d;
struct envelope_pickle_suite : boost::python::pickle_suite
{
static boost::python::tuple
getinitargs(const box2d<double>& e)
{
using namespace boost::python;
return boost::python::make_tuple(e.minx(),e.miny(),e.maxx(),e.maxy());
}
};
box2d<double> from_string(std::string const& s)
{
box2d<double> bbox;
bool success = bbox.from_string(s);
if (success)
{
return bbox;
}
else
{
std::stringstream ss;
ss << "Could not parse bbox from string: '" << s << "'";
throw mapnik::value_error(ss.str());
}
}
//define overloads here
void (box2d<double>::*width_p1)(double) = &box2d<double>::width;
double (box2d<double>::*width_p2)() const = &box2d<double>::width;
void (box2d<double>::*height_p1)(double) = &box2d<double>::height;
double (box2d<double>::*height_p2)() const = &box2d<double>::height;
void (box2d<double>::*expand_to_include_p1)(double,double) = &box2d<double>::expand_to_include;
void (box2d<double>::*expand_to_include_p2)(coord<double,2> const& ) = &box2d<double>::expand_to_include;
void (box2d<double>::*expand_to_include_p3)(box2d<double> const& ) = &box2d<double>::expand_to_include;
bool (box2d<double>::*contains_p1)(double,double) const = &box2d<double>::contains;
bool (box2d<double>::*contains_p2)(coord<double,2> const&) const = &box2d<double>::contains;
bool (box2d<double>::*contains_p3)(box2d<double> const&) const = &box2d<double>::contains;
//intersects
bool (box2d<double>::*intersects_p1)(double,double) const = &box2d<double>::intersects;
bool (box2d<double>::*intersects_p2)(coord<double,2> const&) const = &box2d<double>::intersects;
bool (box2d<double>::*intersects_p3)(box2d<double> const&) const = &box2d<double>::intersects;
// intersect
box2d<double> (box2d<double>::*intersect)(box2d<double> const&) const = &box2d<double>::intersect;
// re_center
void (box2d<double>::*re_center_p1)(double,double) = &box2d<double>::re_center;
void (box2d<double>::*re_center_p2)(coord<double,2> const& ) = &box2d<double>::re_center;
// clip
void (box2d<double>::*clip)(box2d<double> const&) = &box2d<double>::clip;
// pad
void (box2d<double>::*pad)(double) = &box2d<double>::pad;
// deepcopy
box2d<double> box2d_deepcopy(box2d<double> & obj, boost::python::dict memo)
{
// FIXME::ignore memo for now
box2d<double> result(obj);
return result;
}
void export_envelope()
{
using namespace boost::python;
class_<box2d<double> >("Box2d",
// class docstring is in mapnik/__init__.py, class _Coord
init<double,double,double,double>(
(arg("minx"),arg("miny"),arg("maxx"),arg("maxy")),
"Constructs a new envelope from the coordinates\n"
"of its lower left and upper right corner points.\n"))
.def(init<>("Equivalent to Box2d(0, 0, -1, -1).\n"))
.def(init<const coord<double,2>&, const coord<double,2>&>(
(arg("ll"),arg("ur")),
"Equivalent to Box2d(ll.x, ll.y, ur.x, ur.y).\n"))
.def("from_string",from_string)
.staticmethod("from_string")
.add_property("minx", &box2d<double>::minx,
"X coordinate for the lower left corner")
.add_property("miny", &box2d<double>::miny,
"Y coordinate for the lower left corner")
.add_property("maxx", &box2d<double>::maxx,
"X coordinate for the upper right corner")
.add_property("maxy", &box2d<double>::maxy,
"Y coordinate for the upper right corner")
.def("center", &box2d<double>::center,
"Returns the coordinates of the center of the bounding box.\n"
"\n"
"Example:\n"
">>> e = Box2d(0, 0, 100, 100)\n"
">>> e.center()\n"
"Coord(50, 50)\n")
.def("center", re_center_p1,
(arg("x"), arg("y")),
"Moves the envelope so that the given coordinates become its new center.\n"
"The width and the height are preserved.\n"
"\n "
"Example:\n"
">>> e = Box2d(0, 0, 100, 100)\n"
">>> e.center(60, 60)\n"
">>> e.center()\n"
"Coord(60.0,60.0)\n"
">>> (e.width(), e.height())\n"
"(100.0, 100.0)\n"
">>> e\n"
"Box2d(10.0, 10.0, 110.0, 110.0)\n"
)
.def("center", re_center_p2,
(arg("Coord")),
"Moves the envelope so that the given coordinates become its new center.\n"
"The width and the height are preserved.\n"
"\n "
"Example:\n"
">>> e = Box2d(0, 0, 100, 100)\n"
">>> e.center(Coord60, 60)\n"
">>> e.center()\n"
"Coord(60.0,60.0)\n"
">>> (e.width(), e.height())\n"
"(100.0, 100.0)\n"
">>> e\n"
"Box2d(10.0, 10.0, 110.0, 110.0)\n"
)
.def("clip", clip,
(arg("other")),
"Clip the envelope based on the bounds of another envelope.\n"
"\n "
"Example:\n"
">>> e = Box2d(0, 0, 100, 100)\n"
">>> c = Box2d(-50, -50, 50, 50)\n"
">>> e.clip(c)\n"
">>> e\n"
"Box2d(0.0,0.0,50.0,50.0\n"
)
.def("pad", pad,
(arg("padding")),
"Pad the envelope based on a padding value.\n"
"\n "
"Example:\n"
">>> e = Box2d(0, 0, 100, 100)\n"
">>> e.pad(10)\n"
">>> e\n"
"Box2d(-10.0,-10.0,110.0,110.0\n"
)
.def("width", width_p1,
(arg("new_width")),
"Sets the width to new_width of the envelope preserving its center.\n"
"\n "
"Example:\n"
">>> e = Box2d(0, 0, 100, 100)\n"
">>> e.width(120)\n"
">>> e.center()\n"
"Coord(50.0,50.0)\n"
">>> e\n"
"Box2d(-10.0, 0.0, 110.0, 100.0)\n"
)
.def("width", width_p2,
"Returns the width of this envelope.\n"
)
.def("height", height_p1,
(arg("new_height")),
"Sets the height to new_height of the envelope preserving its center.\n"
"\n "
"Example:\n"
">>> e = Box2d(0, 0, 100, 100)\n"
">>> e.height(120)\n"
">>> e.center()\n"
"Coord(50.0,50.0)\n"
">>> e\n"
"Box2d(0.0, -10.0, 100.0, 110.0)\n"
)
.def("height", height_p2,
"Returns the height of this envelope.\n"
)
.def("expand_to_include",expand_to_include_p1,
(arg("x"),arg("y")),
"Expands this envelope to include the point given by x and y.\n"
"\n"
"Example:\n",
">>> e = Box2d(0, 0, 100, 100)\n"
">>> e.expand_to_include(110, 110)\n"
">>> e\n"
"Box2d(0.0, 00.0, 110.0, 110.0)\n"
)
.def("expand_to_include",expand_to_include_p2,
(arg("p")),
"Equivalent to expand_to_include(p.x, p.y)\n"
)
.def("expand_to_include",expand_to_include_p3,
(arg("other")),
"Equivalent to:\n"
" expand_to_include(other.minx, other.miny)\n"
" expand_to_include(other.maxx, other.maxy)\n"
)
.def("contains",contains_p1,
(arg("x"),arg("y")),
"Returns True iff this envelope contains the point\n"
"given by x and y.\n"
)
.def("contains",contains_p2,
(arg("p")),
"Equivalent to contains(p.x, p.y)\n"
)
.def("contains",contains_p3,
(arg("other")),
"Equivalent to:\n"
" contains(other.minx, other.miny) and contains(other.maxx, other.maxy)\n"
)
.def("intersects",intersects_p1,
(arg("x"),arg("y")),
"Returns True iff this envelope intersects the point\n"
"given by x and y.\n"
"\n"
"Note: For points, intersection is equivalent\n"
"to containment, i.e. the following holds:\n"
" e.contains(x, y) == e.intersects(x, y)\n"
)
.def("intersects",intersects_p2,
(arg("p")),
"Equivalent to contains(p.x, p.y)\n")
.def("intersects",intersects_p3,
(arg("other")),
"Returns True iff this envelope intersects the other envelope,\n"
"This relationship is symmetric."
"\n"
"Example:\n"
">>> e1 = Box2d(0, 0, 100, 100)\n"
">>> e2 = Box2d(50, 50, 150, 150)\n"
">>> e1.intersects(e2)\n"
"True\n"
">>> e1.contains(e2)\n"
"False\n"
)
.def("intersect",intersect,
(arg("other")),
"Returns the overlap of this envelope and the other envelope\n"
"as a new envelope.\n"
"\n"
"Example:\n"
">>> e1 = Box2d(0, 0, 100, 100)\n"
">>> e2 = Box2d(50, 50, 150, 150)\n"
">>> e1.intersect(e2)\n"
"Box2d(50.0, 50.0, 100.0, 100.0)\n"
)
.def(self == self) // __eq__
.def(self != self) // __neq__
.def(self + self) // __add__
.def(self * float()) // __mult__
.def(float() * self)
.def(self / float()) // __div__
.def("__getitem__",&box2d<double>::operator[])
.def("valid",&box2d<double>::valid)
.def_pickle(envelope_pickle_suite())
.def("__deepcopy__", &box2d_deepcopy)
;
}

View file

@ -1,104 +0,0 @@
/*****************************************************************************
*
* This file is part of Mapnik (c++ mapping toolkit)
*
* Copyright (C) 2006 Artem Pavlenko, Jean-Francois Doyon
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*****************************************************************************/
// boost
#include <boost/python.hpp>
#include <boost/variant.hpp>
#include <boost/noncopyable.hpp>
// mapnik
#include <mapnik/feature.hpp>
#include <mapnik/expression.hpp>
#include <mapnik/expression_string.hpp>
#include <mapnik/expression_evaluator.hpp>
#include <mapnik/parse_path.hpp>
#include <mapnik/value.hpp>
using mapnik::Feature;
using mapnik::expression_ptr;
using mapnik::parse_expression;
using mapnik::to_expression_string;
using mapnik::path_expression_ptr;
// expression
expression_ptr parse_expression_(std::string const& wkt)
{
return parse_expression(wkt,"utf8");
}
std::string expression_to_string_(mapnik::expr_node const& expr)
{
return mapnik::to_expression_string(expr);
}
mapnik::value expression_evaluate_(mapnik::expr_node const& expr, mapnik::Feature const& f)
{
// will be auto-converted to proper python type by `mapnik_value_to_python`
return boost::apply_visitor(mapnik::evaluate<mapnik::Feature,mapnik::value>(f),expr);
}
bool expression_evaluate_to_bool_(mapnik::expr_node const& expr, mapnik::Feature const& f)
{
return boost::apply_visitor(mapnik::evaluate<mapnik::Feature,mapnik::value>(f),expr).to_bool();
}
// path expression
path_expression_ptr parse_path_(std::string const& path)
{
return mapnik::parse_path(path);
}
std::string path_to_string_(mapnik::path_expression const& expr)
{
return mapnik::path_processor_type::to_string(expr);
}
std::string path_evaluate_(mapnik::path_expression const& expr, mapnik::Feature const& f)
{
return mapnik::path_processor_type::evaluate(expr, f);
}
void export_expression()
{
using namespace boost::python;
class_<mapnik::expr_node ,boost::noncopyable>("Expression",
"TODO"
"",no_init)
.def("evaluate", &expression_evaluate_)
.def("to_bool", &expression_evaluate_to_bool_)
.def("__str__",&expression_to_string_);
;
def("Expression",&parse_expression_,(arg("expr")),"Expression string");
class_<mapnik::path_expression ,boost::noncopyable>("PathExpression",
"TODO"
"",no_init)
.def("evaluate", &path_evaluate_) // note: "pass" is a reserved word in Python
.def("__str__",&path_to_string_);
;
def("PathExpression",&parse_path_,(arg("expr")),"PathExpression string");
}

View file

@ -1,235 +0,0 @@
/*****************************************************************************
*
* This file is part of Mapnik (c++ mapping toolkit)
*
* Copyright (C) 2006 Artem Pavlenko, Jean-Francois Doyon
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*****************************************************************************/
// boost
#include <boost/python/suite/indexing/indexing_suite.hpp>
//#include <boost/python/suite/indexing/map_indexing_suite.hpp>
#include <boost/python/iterator.hpp>
#include <boost/python/call_method.hpp>
#include <boost/python/tuple.hpp>
#include <boost/python/to_python_converter.hpp>
#include <boost/python.hpp>
#include <boost/noncopyable.hpp>
// mapnik
#include <mapnik/feature.hpp>
#include <mapnik/feature_kv_iterator.hpp>
#include <mapnik/datasource.hpp>
#include <mapnik/wkb.hpp>
#include <mapnik/wkt/wkt_factory.hpp>
#include <mapnik/json/geojson_generator.hpp>
namespace {
using mapnik::Feature;
using mapnik::geometry_utils;
using mapnik::from_wkt;
using mapnik::context_type;
using mapnik::context_ptr;
using mapnik::feature_kv_iterator;
mapnik::geometry_type const& (mapnik::Feature::*get_geometry_by_const_ref)(unsigned) const = &mapnik::Feature::get_geometry;
boost::ptr_vector<mapnik::geometry_type> const& (mapnik::Feature::*get_paths_by_const_ref)() const = &mapnik::Feature::paths;
void feature_add_geometries_from_wkb(Feature &feature, std::string wkb)
{
geometry_utils::from_wkb(feature.paths(), wkb.c_str(), wkb.size());
}
void feature_add_geometries_from_wkt(Feature &feature, std::string wkt)
{
bool result = mapnik::from_wkt(wkt, feature.paths());
if (!result) throw std::runtime_error("Failed to parse WKT");
}
std::string feature_to_geojson(Feature const& feature)
{
std::string json;
mapnik::json::feature_generator g;
if (!g.generate(json,feature))
{
throw std::runtime_error("Failed to generate GeoJSON");
}
return json;
}
mapnik::value __getitem__(Feature const& feature, std::string const& name)
{
return feature.get(name);
}
mapnik::value __getitem2__(Feature const& feature, std::size_t index)
{
return feature.get(index);
}
void __setitem__(Feature & feature, std::string const& name, mapnik::value const& val)
{
feature.put_new(name,val);
}
boost::python::dict attributes(Feature const& f)
{
boost::python::dict attributes;
feature_kv_iterator itr = f.begin();
feature_kv_iterator end = f.end();
for ( ;itr!=end; ++itr)
{
attributes[boost::get<0>(*itr)] = boost::get<1>(*itr);
}
return attributes;
}
} // end anonymous namespace
struct UnicodeString_from_python_str
{
UnicodeString_from_python_str()
{
boost::python::converter::registry::push_back(
&convertible,
&construct,
boost::python::type_id<UnicodeString>());
}
static void* convertible(PyObject* obj_ptr)
{
if (!(
#if PY_VERSION_HEX >= 0x03000000
PyBytes_Check(obj_ptr)
#else
PyString_Check(obj_ptr)
#endif
|| PyUnicode_Check(obj_ptr)))
return 0;
return obj_ptr;
}
static void construct(
PyObject* obj_ptr,
boost::python::converter::rvalue_from_python_stage1_data* data)
{
char * value=0;
if (PyUnicode_Check(obj_ptr)) {
PyObject *encoded = PyUnicode_AsEncodedString(obj_ptr, "utf8", "replace");
if (encoded) {
#if PY_VERSION_HEX >= 0x03000000
value = PyBytes_AsString(encoded);
#else
value = PyString_AsString(encoded);
#endif
Py_DecRef(encoded);
}
} else {
#if PY_VERSION_HEX >= 0x03000000
value = PyBytes_AsString(obj_ptr);
#else
value = PyString_AsString(obj_ptr);
#endif
}
if (value == 0) boost::python::throw_error_already_set();
void* storage = (
(boost::python::converter::rvalue_from_python_storage<UnicodeString>*)
data)->storage.bytes;
new (storage) UnicodeString(value);
data->convertible = storage;
}
};
struct value_null_from_python
{
value_null_from_python()
{
boost::python::converter::registry::push_back(
&convertible,
&construct,
boost::python::type_id<mapnik::value_null>());
}
static void* convertible(PyObject* obj_ptr)
{
if (obj_ptr == Py_None) return obj_ptr;
return 0;
}
static void construct(
PyObject* obj_ptr,
boost::python::converter::rvalue_from_python_stage1_data* data)
{
if (obj_ptr != Py_None) boost::python::throw_error_already_set();
void* storage = (
(boost::python::converter::rvalue_from_python_storage<mapnik::value_null>*)
data)->storage.bytes;
new (storage) mapnik::value_null();
data->convertible = storage;
}
};
void export_feature()
{
using namespace boost::python;
using mapnik::Feature;
// Python to mapnik::value converters
// NOTE: order matters here. For example value_null must be listed before
// bool otherwise Py_None will be interpreted as bool (false)
implicitly_convertible<mapnik::value_unicode_string,mapnik::value>();
implicitly_convertible<mapnik::value_null,mapnik::value>();
implicitly_convertible<mapnik::value_integer,mapnik::value>();
implicitly_convertible<mapnik::value_double,mapnik::value>();
implicitly_convertible<mapnik::value_bool,mapnik::value>();
// http://misspent.wordpress.com/2009/09/27/how-to-write-boost-python-converters/
UnicodeString_from_python_str();
value_null_from_python();
class_<context_type,context_ptr,boost::noncopyable>
("Context",init<>("Default ctor."))
.def("push", &context_type::push)
;
class_<Feature,boost::shared_ptr<Feature>,
boost::noncopyable>("Feature",init<context_ptr,mapnik::value_integer>("Default ctor."))
.def("id",&Feature::id)
.def("__str__",&Feature::to_string)
.def("add_geometries_from_wkb", &feature_add_geometries_from_wkb)
.def("add_geometries_from_wkt", &feature_add_geometries_from_wkt)
.def("add_geometry", &Feature::add_geometry)
.def("num_geometries",&Feature::num_geometries)
.def("get_geometry", make_function(get_geometry_by_const_ref,return_value_policy<reference_existing_object>()))
.def("geometries",make_function(get_paths_by_const_ref,return_value_policy<reference_existing_object>()))
.def("envelope", &Feature::envelope)
.def("has_key", &Feature::has_key)
.add_property("attributes",&attributes)
.def("__setitem__",&__setitem__)
.def("__contains__",&__getitem__)
.def("__getitem__",&__getitem__)
.def("__getitem__",&__getitem2__)
.def("__len__", &Feature::size)
.def("context",&Feature::context)
.def("to_geojson",&feature_to_geojson)
;
}

View file

@ -1,87 +0,0 @@
/*****************************************************************************
*
* This file is part of Mapnik (c++ mapping toolkit)
*
* Copyright (C) 2006 Artem Pavlenko, Jean-Francois Doyon
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*****************************************************************************/
// boost
#include <boost/python.hpp>
#include <boost/noncopyable.hpp>
// mapnik
#include <mapnik/feature.hpp>
#include <mapnik/datasource.hpp>
namespace {
using namespace boost::python;
inline list features(mapnik::featureset_ptr const& itr)
{
list l;
while (true)
{
mapnik::feature_ptr fp = itr->next();
if (!fp)
{
break;
}
l.append(fp);
}
return l;
}
inline object pass_through(object const& o) { return o; }
inline mapnik::feature_ptr next(mapnik::featureset_ptr const& itr)
{
mapnik::feature_ptr f = itr->next();
if (!f)
{
PyErr_SetString(PyExc_StopIteration, "No more features.");
boost::python::throw_error_already_set();
}
return f;
}
}
void export_featureset()
{
using namespace boost::python;
using mapnik::Feature;
using mapnik::Featureset;
class_<Featureset,boost::shared_ptr<Featureset>,
boost::noncopyable>("Featureset",no_init)
.def("__iter__",pass_through)
.def("next",next)
.add_property("features",features,
"The list of features.\n"
"\n"
"Usage:\n"
">>> m.query_map_point(0, 10, 10)\n"
"<mapnik._mapnik.Featureset object at 0x1004d2938>\n"
">>> fs = m.query_map_point(0, 10, 10)\n"
">>> for f in fs.features:\n"
">>> print f\n"
"<mapnik.Feature object at 0x105e64140>\n"
)
;
}

View file

@ -1,49 +0,0 @@
/*****************************************************************************
*
* This file is part of Mapnik (c++ mapping toolkit)
*
* Copyright (C) 2006 Artem Pavlenko, Jean-Francois Doyon
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*****************************************************************************/
#include <boost/python.hpp>
#include <boost/noncopyable.hpp>
#include <mapnik/font_engine_freetype.hpp>
void export_font_engine()
{
using mapnik::freetype_engine;
using mapnik::singleton;
using mapnik::CreateStatic;
using namespace boost::python;
class_<singleton<freetype_engine,CreateStatic>,boost::noncopyable>("Singleton",no_init)
.def("instance",&singleton<freetype_engine,CreateStatic>::instance,
return_value_policy<reference_existing_object>())
.staticmethod("instance")
;
class_<freetype_engine,bases<singleton<freetype_engine,CreateStatic> >,
boost::noncopyable>("FontEngine",no_init)
.def("register_font",&freetype_engine::register_font)
.def("register_fonts",&freetype_engine::register_fonts)
.def("face_names",&freetype_engine::face_names)
.staticmethod("register_font")
.staticmethod("register_fonts")
.staticmethod("face_names")
;
}

View file

@ -1,56 +0,0 @@
/*****************************************************************************
*
* This file is part of Mapnik (c++ mapping toolkit)
*
* Copyright (C) 2011 Artem Pavlenko
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*****************************************************************************/
// boost
#include <boost/python.hpp>
//mapnik
#include <mapnik/font_set.hpp>
using mapnik::font_set;
void export_fontset ()
{
using namespace boost::python;
class_<font_set>("FontSet", init<std::string const&>("default fontset constructor")
)
.add_property("name",
make_function(&font_set::get_name,return_value_policy<copy_const_reference>()),
&font_set::set_name,
"Get/Set the name of the FontSet.\n"
)
.def("add_face_name",&font_set::add_face_name,
(arg("name")),
"Add a face-name to the fontset.\n"
"\n"
"Example:\n"
">>> fs = Fontset('book-fonts')\n"
">>> fs.add_face_name('DejaVu Sans Book')\n")
.add_property("names",make_function
(&font_set::get_face_names,
return_value_policy<reference_existing_object>()),
"List of face names belonging to a FontSet.\n"
)
;
}

View file

@ -1,40 +0,0 @@
/*****************************************************************************
*
* This file is part of Mapnik (c++ mapping toolkit)
*
* Copyright (C) 2006 Artem Pavlenko, Jean-Francois Doyon
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*****************************************************************************/
#include <boost/python.hpp>
#include <mapnik/gamma_method.hpp>
#include "mapnik_enumeration.hpp"
void export_gamma_method()
{
using namespace boost::python;
mapnik::enumeration_<mapnik::gamma_method_e>("gamma_method")
.value("POWER", mapnik::GAMMA_POWER)
.value("LINEAR",mapnik::GAMMA_LINEAR)
.value("NONE", mapnik::GAMMA_NONE)
.value("THRESHOLD", mapnik::GAMMA_THRESHOLD)
.value("MULTIPLY", mapnik::GAMMA_MULTIPLY)
;
}

View file

@ -1,312 +0,0 @@
/*****************************************************************************
*
* This file is part of Mapnik (c++ mapping toolkit)
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*****************************************************************************/
// boost
#include <boost/python.hpp>
#include <boost/python/def.hpp>
#include <boost/python/exception_translator.hpp>
#include <boost/python/manage_new_object.hpp>
#include <boost/python/iterator.hpp>
#include <boost/ptr_container/ptr_vector.hpp>
#include <boost/make_shared.hpp>
#include <boost/noncopyable.hpp>
// mapnik
#include <mapnik/geometry.hpp>
#include <mapnik/wkt/wkt_factory.hpp>
#include <mapnik/wkb.hpp>
#include <mapnik/json/geometry_parser.hpp>
#include <mapnik/json/geojson_generator.hpp>
#include <boost/version.hpp>
#if BOOST_VERSION >= 104700
#include <mapnik/util/geometry_to_wkb.hpp>
#include <mapnik/util/geometry_to_wkt.hpp>
#include <mapnik/util/geometry_to_svg.hpp>
#endif
namespace {
using mapnik::from_wkt;
using mapnik::geometry_type;
typedef boost::ptr_vector<geometry_type> path_type;
geometry_type const& getitem_impl(path_type & p, int key)
{
if (key >=0 && key < static_cast<int>(p.size()))
return p[key];
PyErr_SetString(PyExc_IndexError, "Index is out of range");
throw boost::python::error_already_set();
}
void add_wkt_impl(path_type& p, std::string const& wkt)
{
if (!mapnik::from_wkt(wkt , p))
throw std::runtime_error("Failed to parse WKT");
}
void add_wkb_impl(path_type& p, std::string const& wkb)
{
if (!mapnik::geometry_utils::from_wkb(p, wkb.c_str(), wkb.size()))
throw std::runtime_error("Failed to parse WKB");
}
void add_geojson_impl(path_type& p, std::string const& json)
{
if (!mapnik::json::from_geojson(json, p))
throw std::runtime_error("Failed to parse geojson geometry");
}
boost::shared_ptr<path_type> from_wkt_impl(std::string const& wkt)
{
boost::shared_ptr<path_type> paths = boost::make_shared<path_type>();
if (!mapnik::from_wkt(wkt, *paths))
throw std::runtime_error("Failed to parse WKT");
return paths;
}
boost::shared_ptr<path_type> from_wkb_impl(std::string const& wkb)
{
boost::shared_ptr<path_type> paths = boost::make_shared<path_type>();
if (!mapnik::geometry_utils::from_wkb(*paths, wkb.c_str(), wkb.size()))
throw std::runtime_error("Failed to parse WKB");
return paths;
}
boost::shared_ptr<path_type> from_geojson_impl(std::string const& json)
{
boost::shared_ptr<path_type> paths = boost::make_shared<path_type>();
if (! mapnik::json::from_geojson(json, *paths))
throw std::runtime_error("Failed to parse geojson geometry");
return paths;
}
mapnik::box2d<double> envelope_impl(path_type & p)
{
mapnik::box2d<double> b;
bool first = true;
BOOST_FOREACH(mapnik::geometry_type const& geom, p)
{
if (first)
{
b = geom.envelope();
first=false;
}
else
{
b.expand_to_include(geom.envelope());
}
}
return b;
}
}
inline std::string boost_version()
{
std::ostringstream s;
s << BOOST_VERSION/100000 << "." << BOOST_VERSION/100 % 1000 << "." << BOOST_VERSION % 100;
return s.str();
}
#if BOOST_VERSION >= 104700
PyObject* to_wkb( geometry_type const& geom, mapnik::util::wkbByteOrder byte_order)
{
mapnik::util::wkb_buffer_ptr wkb = mapnik::util::to_wkb(geom,byte_order);
if (wkb)
{
return
#if PY_VERSION_HEX >= 0x03000000
::PyBytes_FromStringAndSize
#else
::PyString_FromStringAndSize
#endif
((const char*)wkb->buffer(),wkb->size());
}
else
{
Py_RETURN_NONE;
}
}
#else
PyObject* to_wkb( geometry_type const& geom)
{
throw std::runtime_error("mapnik::to_wkb() requires at least boost 1.47 while your build was compiled against boost "
+ boost_version());
}
#endif
#if BOOST_VERSION >= 104700
PyObject* to_wkb2( path_type const& p, mapnik::util::wkbByteOrder byte_order)
{
mapnik::util::wkb_buffer_ptr wkb = mapnik::util::to_wkb(p,byte_order);
if (wkb)
{
return
#if PY_VERSION_HEX >= 0x03000000
::PyBytes_FromStringAndSize
#else
::PyString_FromStringAndSize
#endif
((const char*)wkb->buffer(),wkb->size());
}
else
{
Py_RETURN_NONE;
}
}
#else
PyObject* to_wkb2( path_type const& p)
{
throw std::runtime_error("mapnik::to_wkb() requires at least boost 1.47 while your build was compiled against boost "
+ boost_version());
}
#endif
std::string to_wkt( geometry_type const& geom)
{
#if BOOST_VERSION >= 104700
std::string wkt; // Use Python String directly ?
bool result = mapnik::util::to_wkt(wkt,geom);
if (!result)
{
throw std::runtime_error("Generate WKT failed");
}
return wkt;
#else
throw std::runtime_error("mapnik::to_wkt() requires at least boost 1.47 while your build was compiled against boost "
+ boost_version());
#endif
}
std::string to_wkt2( path_type const& geom)
{
#if BOOST_VERSION >= 104700
std::string wkt; // Use Python String directly ?
bool result = mapnik::util::to_wkt(wkt,geom);
if (!result)
{
throw std::runtime_error("Generate WKT failed");
}
return wkt;
#else
throw std::runtime_error("mapnik::to_wkt() requires at least boost 1.47 while your build was compiled against boost "
+ boost_version());
#endif
}
std::string to_geojson( path_type const& geom)
{
std::string json;
mapnik::json::geometry_generator g;
if (!g.generate(json,geom))
{
throw std::runtime_error("Failed to generate GeoJSON");
}
return json;
}
std::string to_svg( geometry_type const& geom)
{
#if BOOST_VERSION >= 104700
std::string svg; // Use Python String directly ?
bool result = mapnik::util::to_svg(svg,geom);
if (!result)
{
throw std::runtime_error("Generate SVG failed");
}
return svg;
#else
throw std::runtime_error("mapnik::to_svg() requires at least boost 1.47 while your build was compiled against boost "
+ boost_version());
#endif
}
/*
// https://github.com/mapnik/mapnik/issues/1437
std::string to_svg2( path_type const& geom)
{
#if BOOST_VERSION >= 104700
std::string svg; // Use Python String directly ?
bool result = mapnik::util::to_svg(svg,geom);
if (!result)
{
throw std::runtime_error("Generate WKT failed");
}
return svg;
#else
throw std::runtime_error("mapnik::to_svg() requires at least boost 1.47 while your build was compiled against boost "
+ boost_version());
#endif
}*/
void export_geometry()
{
using namespace boost::python;
enum_<mapnik::eGeomType>("GeometryType")
.value("Point",mapnik::Point)
.value("LineString",mapnik::LineString)
.value("Polygon",mapnik::Polygon)
;
#if BOOST_VERSION >= 104700
enum_<mapnik::util::wkbByteOrder>("wkbByteOrder")
.value("XDR",mapnik::util::wkbXDR)
.value("NDR",mapnik::util::wkbNDR)
;
#endif
using mapnik::geometry_type;
class_<geometry_type, std::auto_ptr<geometry_type>, boost::noncopyable>("Geometry2d",no_init)
.def("envelope",&geometry_type::envelope)
// .def("__str__",&geometry_type::to_string)
.def("type",&geometry_type::type)
.def("to_wkb",&to_wkb)
.def("to_wkt",&to_wkt)
.def("to_svg",&to_svg)
// TODO add other geometry_type methods
;
class_<path_type, boost::shared_ptr<path_type>, boost::noncopyable>("Path")
.def("__getitem__", getitem_impl,return_value_policy<reference_existing_object>())
.def("__len__", &path_type::size)
.def("envelope",envelope_impl)
.def("add_wkt",add_wkt_impl)
.def("add_wkb",add_wkb_impl)
.def("add_geojson",add_geojson_impl)
.def("to_wkt",&to_wkt2)
//.def("to_svg",&to_svg2)
.def("to_wkb",&to_wkb2)
.def("from_wkt",from_wkt_impl)
.def("from_wkb",from_wkb_impl)
.def("from_geojson",from_geojson_impl)
.def("to_geojson",to_geojson)
.staticmethod("from_wkt")
.staticmethod("from_wkb")
.staticmethod("from_geojson")
;
}

View file

@ -1,82 +0,0 @@
/*****************************************************************************
*
* This file is part of Mapnik (c++ mapping toolkit)
*
* Copyright (C) 2011 Artem Pavlenko
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*****************************************************************************/
// boost
#include <boost/python.hpp>
#include <boost/python/module.hpp>
#include <boost/python/def.hpp>
// mapnik
#include <mapnik/grid/grid.hpp>
#include "python_grid_utils.hpp"
using namespace boost::python;
// help compiler see template definitions
static dict (*encode)( mapnik::grid const&, std::string const& , bool, unsigned int) = mapnik::grid_encode;
bool painted(mapnik::grid const& grid)
{
return grid.painted();
}
mapnik::grid::value_type get_pixel(mapnik::grid const& grid, int x, int y)
{
if (x < static_cast<int>(grid.width()) && y < static_cast<int>(grid.height()))
{
mapnik::grid::data_type const & data = grid.data();
return data(x,y);
}
PyErr_SetString(PyExc_IndexError, "invalid x,y for grid dimensions");
boost::python::throw_error_already_set();
return 0;
}
void export_grid()
{
class_<mapnik::grid,boost::shared_ptr<mapnik::grid> >(
"Grid",
"This class represents a feature hitgrid.",
init<int,int,std::string,unsigned>(
( boost::python::arg("width"), boost::python::arg("height"),boost::python::arg("key")="__id__", boost::python::arg("resolution")=1 ),
"Create a mapnik.Grid object\n"
))
.def("painted",&painted)
.def("width",&mapnik::grid::width)
.def("height",&mapnik::grid::height)
.def("view",&mapnik::grid::get_view)
.def("get_pixel",&get_pixel)
.def("clear",&mapnik::grid::clear)
.def("encode",encode,
( boost::python::arg("encoding")="utf", boost::python::arg("features")=true,boost::python::arg("resolution")=4 ),
"Encode the grid as as optimized json\n"
)
.add_property("key",
make_function(&mapnik::grid::get_key,return_value_policy<copy_const_reference>()),
&mapnik::grid::set_key,
"Get/Set key to be used as unique indentifier for features\n"
"The value should either be __id__ to refer to the feature.id()\n"
"or some globally unique integer or string attribute field\n"
)
;
}

View file

@ -1,51 +0,0 @@
/*****************************************************************************
*
* This file is part of Mapnik (c++ mapping toolkit)
*
* Copyright (C) 2011 Artem Pavlenko
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*****************************************************************************/
// boost
#include <boost/python.hpp>
#include <boost/python/module.hpp>
#include <boost/python/def.hpp>
// mapnik
#include <string>
#include <mapnik/grid/grid_view.hpp>
#include <mapnik/grid/grid.hpp>
#include "python_grid_utils.hpp"
using namespace boost::python;
// help compiler see template definitions
static dict (*encode)( mapnik::grid_view const&, std::string const& , bool, unsigned int) = mapnik::grid_encode;
void export_grid_view()
{
class_<mapnik::grid_view,
boost::shared_ptr<mapnik::grid_view> >("GridView",
"This class represents a feature hitgrid subset.",no_init)
.def("width",&mapnik::grid_view::width)
.def("height",&mapnik::grid_view::height)
.def("encode",encode,
( boost::python::arg("encoding")="utf",boost::python::arg("add_features")=true,boost::python::arg("resolution")=4 ),
"Encode the grid as as optimized json\n"
)
;
}

View file

@ -1,300 +0,0 @@
/*****************************************************************************
*
* This file is part of Mapnik (c++ mapping toolkit)
*
* Copyright (C) 2006 Artem Pavlenko, Jean-Francois Doyon
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*****************************************************************************/
// boost
#include <boost/python.hpp>
#include <boost/python/module.hpp>
#include <boost/python/def.hpp>
#include <boost/make_shared.hpp>
// mapnik
#include <mapnik/graphics.hpp>
#include <mapnik/palette.hpp>
#include <mapnik/image_util.hpp>
#include <mapnik/image_reader.hpp>
#include <mapnik/image_compositing.hpp>
// cairo
#if defined(HAVE_CAIRO) && defined(HAVE_PYCAIRO)
#include <mapnik/cairo_context.hpp>
#include <pycairo.h>
#endif
using mapnik::image_32;
using mapnik::image_reader;
using mapnik::get_image_reader;
using mapnik::type_from_filename;
using mapnik::save_to_file;
using mapnik::save_to_string;
using namespace boost::python;
// output 'raw' pixels
PyObject* tostring1( image_32 const& im)
{
int size = im.width() * im.height() * 4;
return
#if PY_VERSION_HEX >= 0x03000000
::PyBytes_FromStringAndSize
#else
::PyString_FromStringAndSize
#endif
((const char*)im.raw_data(),size);
}
// encode (png,jpeg)
PyObject* tostring2(image_32 const & im, std::string const& format)
{
std::string s = save_to_string(im, format);
return
#if PY_VERSION_HEX >= 0x03000000
::PyBytes_FromStringAndSize
#else
::PyString_FromStringAndSize
#endif
(s.data(),s.size());
}
PyObject* tostring3(image_32 const & im, std::string const& format, mapnik::rgba_palette const& pal)
{
std::string s = save_to_string(im, format, pal);
return
#if PY_VERSION_HEX >= 0x03000000
::PyBytes_FromStringAndSize
#else
::PyString_FromStringAndSize
#endif
(s.data(),s.size());
}
void save_to_file1(mapnik::image_32 const& im, std::string const& filename)
{
save_to_file(im,filename);
}
void save_to_file2(mapnik::image_32 const& im, std::string const& filename, std::string const& type)
{
save_to_file(im,filename,type);
}
void save_to_file3(mapnik::image_32 const& im, std::string const& filename, std::string const& type, mapnik::rgba_palette const& pal)
{
save_to_file(im,filename,type,pal);
}
bool painted(mapnik::image_32 const& im)
{
return im.painted();
}
bool is_solid(mapnik::image_32 const& im)
{
if (im.width() > 0 && im.height() > 0)
{
mapnik::image_data_32 const & data = im.data();
mapnik::image_data_32::pixel_type const* first_row = data.getRow(0);
mapnik::image_data_32::pixel_type const first_pixel = first_row[0];
for (unsigned y = 0; y < im.height(); ++y)
{
mapnik::image_data_32::pixel_type const * row = data.getRow(y);
for (unsigned x = 0; x < im.width(); ++x)
{
if (first_pixel != row[x])
{
return false;
}
}
}
}
return true;
}
unsigned get_pixel(mapnik::image_32 const& im, int x, int y)
{
if (x < static_cast<int>(im.width()) && y < static_cast<int>(im.height()))
{
mapnik::image_data_32 const & data = im.data();
return data(x,y);
}
PyErr_SetString(PyExc_IndexError, "invalid x,y for image dimensions");
boost::python::throw_error_already_set();
return 0;
}
void set_pixel(mapnik::image_32 & im, unsigned x, unsigned y, mapnik::color const& c)
{
im.setPixel(x, y, c.rgba());
}
boost::shared_ptr<image_32> open_from_file(std::string const& filename)
{
boost::optional<std::string> type = type_from_filename(filename);
if (type)
{
std::auto_ptr<image_reader> reader(get_image_reader(filename,*type));
if (reader.get())
{
boost::shared_ptr<image_32> image_ptr = boost::make_shared<image_32>(reader->width(),reader->height());
reader->read(0,0,image_ptr->data());
return image_ptr;
}
throw mapnik::image_reader_exception("Failed to load: " + filename);
}
throw mapnik::image_reader_exception("Unsupported image format:" + filename);
}
boost::shared_ptr<image_32> fromstring(std::string const& str)
{
std::auto_ptr<image_reader> reader(get_image_reader(str.c_str(),str.size()));
if (reader.get())
{
boost::shared_ptr<image_32> image_ptr = boost::make_shared<image_32>(reader->width(),reader->height());
reader->read(0,0,image_ptr->data());
return image_ptr;
}
throw mapnik::image_reader_exception("Failed to load image from buffer" );
}
boost::shared_ptr<image_32> frombuffer(PyObject * obj)
{
void const* buffer=0;
Py_ssize_t buffer_len;
if (PyObject_AsReadBuffer(obj, &buffer, &buffer_len) == 0)
{
std::auto_ptr<image_reader> reader(get_image_reader(reinterpret_cast<char const*>(buffer),buffer_len));
if (reader.get())
{
boost::shared_ptr<image_32> image_ptr = boost::make_shared<image_32>(reader->width(),reader->height());
reader->read(0,0,image_ptr->data());
return image_ptr;
}
}
throw mapnik::image_reader_exception("Failed to load image from buffer" );
}
void blend (image_32 & im, unsigned x, unsigned y, image_32 const& im2, float opacity)
{
im.set_rectangle_alpha2(im2.data(),x,y,opacity);
}
void composite(image_32 & dst, image_32 & src, mapnik::composite_mode_e mode, float opacity)
{
mapnik::composite(dst.data(),src.data(),mode,opacity,0,0,false);
}
#if defined(HAVE_CAIRO) && defined(HAVE_PYCAIRO)
boost::shared_ptr<image_32> from_cairo(PycairoSurface* py_surface)
{
mapnik::cairo_surface_ptr surface(py_surface->surface, mapnik::cairo_surface_closer());
boost::shared_ptr<image_32> image_ptr = boost::make_shared<image_32>(surface);
return image_ptr;
}
#endif
void export_image()
{
using namespace boost::python;
// NOTE: must match list in include/mapnik/image_compositing.hpp
enum_<mapnik::composite_mode_e>("CompositeOp")
.value("clear", mapnik::clear)
.value("src", mapnik::src)
.value("dst", mapnik::dst)
.value("src_over", mapnik::src_over)
.value("dst_over", mapnik::dst_over)
.value("src_in", mapnik::src_in)
.value("dst_in", mapnik::dst_in)
.value("src_out", mapnik::src_out)
.value("dst_out", mapnik::dst_out)
.value("src_atop", mapnik::src_atop)
.value("dst_atop", mapnik::dst_atop)
.value("xor", mapnik::_xor)
.value("plus", mapnik::plus)
.value("minus", mapnik::minus)
.value("multiply", mapnik::multiply)
.value("screen", mapnik::screen)
.value("overlay", mapnik::overlay)
.value("darken", mapnik::darken)
.value("lighten", mapnik::lighten)
.value("color_dodge", mapnik::color_dodge)
.value("color_burn", mapnik::color_burn)
.value("hard_light", mapnik::hard_light)
.value("soft_light", mapnik::soft_light)
.value("difference", mapnik::difference)
.value("exclusion", mapnik::exclusion)
.value("contrast", mapnik::contrast)
.value("invert", mapnik::invert)
.value("grain_merge", mapnik::grain_merge)
.value("grain_extract", mapnik::grain_extract)
.value("hue", mapnik::hue)
.value("saturation", mapnik::saturation)
.value("color", mapnik::_color)
.value("value", mapnik::_value)
;
class_<image_32,boost::shared_ptr<image_32> >("Image","This class represents a 32 bit RGBA image.",init<int,int>())
.def("width",&image_32::width)
.def("height",&image_32::height)
.def("view",&image_32::get_view)
.def("painted",&painted)
.def("is_solid",&is_solid)
.add_property("background",make_function
(&image_32::get_background,return_value_policy<copy_const_reference>()),
&image_32::set_background, "The background color of the image.")
.def("set_grayscale_to_alpha",&image_32::set_grayscale_to_alpha, "Set the grayscale values to the alpha channel of the Image")
.def("set_color_to_alpha",&image_32::set_color_to_alpha, "Set a given color to the alpha channel of the Image")
.def("set_alpha",&image_32::set_alpha, "Set the overall alpha channel of the Image")
.def("blend",&blend)
.def("composite",&composite,
( arg("self"),
arg("image"),
arg("mode")=mapnik::src_over,
arg("opacity")=1.0f
))
.def("premultiply",&image_32::premultiply)
.def("demultiply",&image_32::demultiply)
.def("set_pixel",&set_pixel)
.def("get_pixel",&get_pixel)
.def("clear",&image_32::clear)
//TODO(haoyu) The method name 'tostring' might be confusing since they actually return bytes in Python 3
.def("tostring",&tostring1)
.def("tostring",&tostring2)
.def("tostring",&tostring3)
.def("save", &save_to_file1)
.def("save", &save_to_file2)
.def("save", &save_to_file3)
.def("open",open_from_file)
.staticmethod("open")
.def("frombuffer",&frombuffer)
.staticmethod("frombuffer")
.def("fromstring",&fromstring)
.staticmethod("fromstring")
#if defined(HAVE_CAIRO) && defined(HAVE_PYCAIRO)
.def("from_cairo",&from_cairo)
.staticmethod("from_cairo")
#endif
;
}

View file

@ -1,136 +0,0 @@
/*****************************************************************************
*
* This file is part of Mapnik (c++ mapping toolkit)
*
* Copyright (C) 2006 Artem Pavlenko, Jean-Francois Doyon
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*****************************************************************************/
#include <boost/python.hpp>
#include <mapnik/image_data.hpp>
#include <mapnik/image_view.hpp>
#include <mapnik/image_util.hpp>
#include <mapnik/palette.hpp>
#include <mapnik/image_view.hpp>
#include <sstream>
using mapnik::image_data_32;
using mapnik::image_view;
using mapnik::save_to_file;
// output 'raw' pixels
PyObject* view_tostring1(image_view<image_data_32> const& view)
{
std::ostringstream ss(std::ios::out|std::ios::binary);
for (unsigned i=0;i<view.height();i++)
{
ss.write(reinterpret_cast<const char*>(view.getRow(i)),
view.width() * sizeof(image_view<image_data_32>::pixel_type));
}
return
#if PY_VERSION_HEX >= 0x03000000
::PyBytes_FromStringAndSize
#else
::PyString_FromStringAndSize
#endif
((const char*)ss.str().c_str(),ss.str().size());
}
// encode (png,jpeg)
PyObject* view_tostring2(image_view<image_data_32> const & view, std::string const& format)
{
std::string s = save_to_string(view, format);
return
#if PY_VERSION_HEX >= 0x03000000
::PyBytes_FromStringAndSize
#else
::PyString_FromStringAndSize
#endif
(s.data(),s.size());
}
PyObject* view_tostring3(image_view<image_data_32> const & view, std::string const& format, mapnik::rgba_palette const& pal)
{
std::string s = save_to_string(view, format, pal);
return
#if PY_VERSION_HEX >= 0x03000000
::PyBytes_FromStringAndSize
#else
::PyString_FromStringAndSize
#endif
(s.data(),s.size());
}
bool is_solid(image_view<image_data_32> const& view)
{
if (view.width() > 0 && view.height() > 0)
{
mapnik::image_view<image_data_32>::pixel_type const* first_row = view.getRow(0);
mapnik::image_view<image_data_32>::pixel_type const first_pixel = first_row[0];
for (unsigned y = 0; y < view.height(); ++y)
{
mapnik::image_view<image_data_32>::pixel_type const * row = view.getRow(y);
for (unsigned x = 0; x < view.width(); ++x)
{
if (first_pixel != row[x])
{
return false;
}
}
}
}
return true;
}
void save_view1(image_view<image_data_32> const& view,
std::string const& filename)
{
save_to_file(view,filename);
}
void save_view2(image_view<image_data_32> const& view,
std::string const& filename,
std::string const& type)
{
save_to_file(view,filename,type);
}
void save_view3(image_view<image_data_32> const& view,
std::string const& filename,
std::string const& type,
mapnik::rgba_palette const& pal)
{
save_to_file(view,filename,type,pal);
}
void export_image_view()
{
using namespace boost::python;
class_<image_view<image_data_32> >("ImageView","A view into an image.",no_init)
.def("width",&image_view<image_data_32>::width)
.def("height",&image_view<image_data_32>::height)
.def("is_solid",&is_solid)
.def("tostring",&view_tostring1)
.def("tostring",&view_tostring2)
.def("tostring",&view_tostring3)
.def("save",&save_view1)
.def("save",&save_view2)
.def("save",&save_view3)
;
}

View file

@ -1,125 +0,0 @@
/*****************************************************************************
*
* This file is part of Mapnik (c++ mapping toolkit)
*
* Copyright (C) 2011 Artem Pavlenko
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*****************************************************************************/
#include <boost/python.hpp>
#include <boost/python/module.hpp>
#include <boost/python/def.hpp>
#include <boost/make_shared.hpp>
#include <boost/noncopyable.hpp>
#include <mapnik/label_collision_detector.hpp>
#include <mapnik/map.hpp>
#include <list>
using mapnik::label_collision_detector4;
using mapnik::box2d;
using mapnik::Map;
using boost::make_shared;
namespace
{
boost::shared_ptr<label_collision_detector4>
create_label_collision_detector_from_extent(box2d<double> const &extent)
{
return make_shared<label_collision_detector4>(extent);
}
boost::shared_ptr<label_collision_detector4>
create_label_collision_detector_from_map(Map const &m)
{
double buffer = m.buffer_size();
box2d<double> extent(-buffer, -buffer, m.width() + buffer, m.height() + buffer);
return make_shared<label_collision_detector4>(extent);
}
boost::python::list
make_label_boxes(boost::shared_ptr<label_collision_detector4> det)
{
boost::python::list boxes;
for (label_collision_detector4::query_iterator jtr = det->begin();
jtr != det->end(); ++jtr)
{
boxes.append<box2d<double> >(jtr->box);
}
return boxes;
}
}
void export_label_collision_detector()
{
using namespace boost::python;
// for overload resolution
void (label_collision_detector4::*insert_box)(box2d<double> const &) = &label_collision_detector4::insert;
class_<label_collision_detector4, boost::shared_ptr<label_collision_detector4>, boost::noncopyable>
("LabelCollisionDetector",
"Object to detect collisions between labels, used in the rendering process.",
no_init)
.def("__init__", make_constructor(create_label_collision_detector_from_extent),
"Creates an empty collision detection object with a given extent. Note "
"that the constructor from Map objects is a sensible default and usually "
"what you want to do.\n"
"\n"
"Example:\n"
">>> m = Map(size_x, size_y)\n"
">>> buf_sz = m.buffer_size\n"
">>> extent = mapnik.Box2d(-buf_sz, -buf_sz, m.width + buf_sz, m.height + buf_sz)\n"
">>> detector = mapnik.LabelCollisionDetector(extent)")
.def("__init__", make_constructor(create_label_collision_detector_from_map),
"Creates an empty collision detection object matching the given Map object. "
"The created detector will have the same size, including the buffer, as the "
"map object. This is usually what you want to do.\n"
"\n"
"Example:\n"
">>> m = Map(size_x, size_y)\n"
">>> detector = mapnik.LabelCollisionDetector(m)")
.def("extent", &label_collision_detector4::extent, return_value_policy<copy_const_reference>(),
"Returns the total extent (bounding box) of all labels inside the detector.\n"
"\n"
"Example:\n"
">>> detector.extent()\n"
"Box2d(573.252589209,494.789179821,584.261023823,496.83610261)")
.def("boxes", &make_label_boxes,
"Returns a list of all the label boxes inside the detector.")
.def("insert", insert_box,
"Insert a 2d box into the collision detector. This can be used to ensure that "
"some space is left clear on the map for later overdrawing, for example by "
"non-Mapnik processes.\n"
"\n"
"Example:\n"
">>> m = Map(size_x, size_y)\n"
">>> detector = mapnik.LabelCollisionDetector(m)"
">>> detector.insert(mapnik.Box2d(196, 254, 291, 389))")
;
}

View file

@ -1,379 +0,0 @@
/*****************************************************************************
*
* This file is part of Mapnik (c++ mapping toolkit)
*
* Copyright (C) 2006 Artem Pavlenko, Jean-Francois Doyon
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*****************************************************************************/
// boost
#include <boost/python.hpp>
#include <boost/python/detail/api_placeholder.hpp>
#include <boost/python/suite/indexing/vector_indexing_suite.hpp>
// mapnik
#include <mapnik/layer.hpp>
#include <mapnik/datasource.hpp>
#include <mapnik/datasource_cache.hpp>
using mapnik::layer;
using mapnik::parameters;
using mapnik::datasource_cache;
struct layer_pickle_suite : boost::python::pickle_suite
{
static boost::python::tuple
getinitargs(const layer& l)
{
return boost::python::make_tuple(l.name(),l.srs());
}
static boost::python::tuple
getstate(const layer& l)
{
boost::python::list s;
std::vector<std::string> const& style_names = l.styles();
for (unsigned i = 0; i < style_names.size(); ++i)
{
s.append(style_names[i]);
}
return boost::python::make_tuple(l.clear_label_cache(),l.min_zoom(),l.max_zoom(),l.queryable(),l.datasource()->params(),l.cache_features(),s);
}
static void
setstate (layer& l, boost::python::tuple state)
{
using namespace boost::python;
if (len(state) != 9)
{
PyErr_SetObject(PyExc_ValueError,
("expected 9-item tuple in call to __setstate__; got %s"
% state).ptr()
);
throw_error_already_set();
}
l.set_clear_label_cache(extract<bool>(state[0]));
l.set_min_zoom(extract<double>(state[1]));
l.set_max_zoom(extract<double>(state[2]));
l.set_queryable(extract<bool>(state[3]));
mapnik::parameters params = extract<parameters>(state[4]);
l.set_datasource(datasource_cache::instance().create(params));
boost::python::list s = extract<boost::python::list>(state[5]);
for (int i=0;i<len(s);++i)
{
l.add_style(extract<std::string>(s[i]));
}
l.set_cache_features(extract<bool>(state[6]));
}
};
std::vector<std::string> & (mapnik::layer::*_styles_)() = &mapnik::layer::styles;
void set_maximum_extent(mapnik::layer & l, boost::optional<mapnik::box2d<double> > const& box)
{
if (box)
{
l.set_maximum_extent(*box);
}
else
{
l.reset_maximum_extent();
}
}
void set_buffer_size(mapnik::layer & l, boost::optional<int> const& buffer_size)
{
if (buffer_size)
{
l.set_buffer_size(*buffer_size);
}
else
{
l.reset_buffer_size();
}
}
PyObject * get_buffer_size(mapnik::layer & l)
{
boost::optional<int> buffer_size = l.buffer_size();
if (buffer_size)
{
#if PY_VERSION_HEX >= 0x03000000
return PyLong_FromLong(*buffer_size);
#else
return PyInt_FromLong(*buffer_size);
#endif
}
else
{
Py_RETURN_NONE;
}
}
void export_layer()
{
using namespace boost::python;
class_<std::vector<std::string> >("Names")
.def(vector_indexing_suite<std::vector<std::string>,true >())
;
class_<layer>("Layer", "A Mapnik map layer.", init<std::string const&,optional<std::string const&> >(
"Create a Layer with a named string and, optionally, an srs string.\n"
"\n"
"The srs can be either a Proj.4 epsg code ('+init=epsg:<code>') or\n"
"of a Proj.4 literal ('+proj=<literal>').\n"
"If no srs is specified it will default to '+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs'\n"
"\n"
"Usage:\n"
">>> from mapnik import Layer\n"
">>> lyr = Layer('My Layer','+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs')\n"
">>> lyr\n"
"<mapnik._mapnik.Layer object at 0x6a270>\n"
))
.def_pickle(layer_pickle_suite())
.def("envelope",&layer::envelope,
"Return the geographic envelope/bounding box."
"\n"
"Determined based on the layer datasource.\n"
"\n"
"Usage:\n"
">>> from mapnik import Layer\n"
">>> lyr = Layer('My Layer','+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs')\n"
">>> lyr.envelope()\n"
"box2d(-1.0,-1.0,0.0,0.0) # default until a datasource is loaded\n"
)
.def("visible", &layer::visible,
"Return True if this layer's data is active and visible at a given scale.\n"
"\n"
"Otherwise returns False.\n"
"Accepts a scale value as an integer or float input.\n"
"Will return False if:\n"
"\tscale >= minzoom - 1e-6\n"
"\tor:\n"
"\tscale < maxzoom + 1e-6\n"
"\n"
"Usage:\n"
">>> from mapnik import Layer\n"
">>> lyr = Layer('My Layer','+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs')\n"
">>> lyr.visible(1.0/1000000)\n"
"True\n"
">>> lyr.active = False\n"
">>> lyr.visible(1.0/1000000)\n"
"False\n"
)
.add_property("active",
&layer::active,
&layer::set_active,
"Get/Set whether this layer is active and will be rendered (same as status property).\n"
"\n"
"Usage:\n"
">>> from mapnik import Layer\n"
">>> lyr = Layer('My Layer','+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs')\n"
">>> lyr.active\n"
"True # Active by default\n"
">>> lyr.active = False # set False to disable layer rendering\n"
">>> lyr.active\n"
"False\n"
)
.add_property("status",
&layer::active,
&layer::set_active,
"Get/Set whether this layer is active and will be rendered.\n"
"\n"
"Usage:\n"
">>> from mapnik import Layer\n"
">>> lyr = Layer('My Layer','+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs')\n"
">>> lyr.status\n"
"True # Active by default\n"
">>> lyr.status = False # set False to disable layer rendering\n"
">>> lyr.status\n"
"False\n"
)
.add_property("clear_label_cache",
&layer::clear_label_cache,
&layer::set_clear_label_cache,
"Get/Set whether to clear the label collision detector cache for this layer during rendering\n"
"\n"
"Usage:\n"
">>> lyr.clear_label_cache\n"
"False # False by default, meaning label positions from other layers will impact placement \n"
">>> lyr.clear_label_cache = True # set to True to clear the label collision detector cache\n"
)
.add_property("cache_features",
&layer::cache_features,
&layer::set_cache_features,
"Get/Set whether features should be cached during rendering if used between multiple styles\n"
"\n"
"Usage:\n"
">>> lyr.cache_features\n"
"False # False by default\n"
">>> lyr.cache_features = True # set to True to enable feature caching\n"
)
.add_property("datasource",
&layer::datasource,
&layer::set_datasource,
"The datasource attached to this layer.\n"
"\n"
"Usage:\n"
">>> from mapnik import Layer, Datasource\n"
">>> lyr = Layer('My Layer','+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs')\n"
">>> lyr.datasource = Datasource(type='shape',file='world_borders')\n"
">>> lyr.datasource\n"
"<mapnik.Datasource object at 0x65470>\n"
)
.add_property("buffer_size",
&get_buffer_size,
&set_buffer_size,
"Get/Set the size of buffer around layer in pixels.\n"
"\n"
"Usage:\n"
">>> print(l.buffer_size)\n"
"None # None by default\n"
">>> l.buffer_size = 2\n"
">>> l.buffer_size\n"
"2\n"
)
.add_property("maximum_extent",make_function
(&layer::maximum_extent,return_value_policy<copy_const_reference>()),
&set_maximum_extent,
"The maximum extent of the map.\n"
"\n"
"Usage:\n"
">>> m.maximum_extent = Box2d(-180,-90,180,90)\n"
)
.add_property("maxzoom",
&layer::max_zoom,
&layer::set_max_zoom,
"Get/Set the maximum zoom lever of the layer.\n"
"\n"
"Usage:\n"
">>> from mapnik import Layer\n"
">>> lyr = Layer('My Layer','+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs')\n"
">>> lyr.maxzoom\n"
"1.7976931348623157e+308 # default is the numerical maximum\n"
">>> lyr.maxzoom = 1.0/1000000\n"
">>> lyr.maxzoom\n"
"9.9999999999999995e-07\n"
)
.add_property("minzoom",
&layer::min_zoom,
&layer::set_min_zoom,
"Get/Set the minimum zoom lever of the layer.\n"
"\n"
"Usage:\n"
">>> from mapnik import Layer\n"
">>> lyr = Layer('My Layer','+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs')\n"
">>> lyr.minzoom # default is 0\n"
"0.0\n"
">>> lyr.minzoom = 1.0/1000000\n"
">>> lyr.minzoom\n"
"9.9999999999999995e-07\n"
)
.add_property("name",
make_function(&layer::name, return_value_policy<copy_const_reference>()),
&layer::set_name,
"Get/Set the name of the layer.\n"
"\n"
"Usage:\n"
">>> from mapnik import Layer\n"
">>> lyr = Layer('My Layer','+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs')\n"
">>> lyr.name\n"
"'My Layer'\n"
">>> lyr.name = 'New Name'\n"
">>> lyr.name\n"
"'New Name'\n"
)
.add_property("queryable",
&layer::queryable,
&layer::set_queryable,
"Get/Set whether this layer is queryable.\n"
"\n"
"Usage:\n"
">>> from mapnik import layer\n"
">>> lyr = layer('My layer','+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs')\n"
">>> lyr.queryable\n"
"False # Not queryable by default\n"
">>> lyr.queryable = True\n"
">>> lyr.queryable\n"
"True\n"
)
.add_property("srs",
make_function(&layer::srs,return_value_policy<copy_const_reference>()),
&layer::set_srs,
"Get/Set the SRS of the layer.\n"
"\n"
"Usage:\n"
">>> from mapnik import layer\n"
">>> lyr = layer('My layer','+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs')\n"
">>> lyr.srs\n"
"'+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs' # The default srs if not initialized with custom srs\n"
">>> # set to google mercator with Proj.4 literal\n"
"... \n"
">>> lyr.srs = '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over'\n"
)
.add_property("group_by",
make_function(&layer::group_by,return_value_policy<copy_const_reference>()),
&layer::set_group_by,
"Get/Set the optional layer group name.\n"
"\n"
"More details at https://github.com/mapnik/mapnik/wiki/Grouped-rendering:\n"
)
.add_property("styles",
make_function(_styles_,return_value_policy<reference_existing_object>()),
"The styles list attached to this layer.\n"
"\n"
"Usage:\n"
">>> from mapnik import layer\n"
">>> lyr = layer('My layer','+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs')\n"
">>> lyr.styles\n"
"<mapnik._mapnik.Names object at 0x6d3e8>\n"
">>> len(lyr.styles)\n"
"0\n # no styles until you append them\n"
"lyr.styles.append('My Style') # mapnik uses named styles for flexibility\n"
">>> len(lyr.styles)\n"
"1\n"
">>> lyr.styles[0]\n"
"'My Style'\n"
)
;
}

View file

@ -1,78 +0,0 @@
/*****************************************************************************
*
* This file is part of Mapnik (c++ mapping toolkit)
*
* Copyright (C) 2006 Artem Pavlenko, Jean-Francois Doyon
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*****************************************************************************/
#include <boost/python.hpp>
#include <mapnik/line_pattern_symbolizer.hpp>
#include <mapnik/parse_path.hpp>
#include <mapnik/image_util.hpp>
#include "mapnik_svg.hpp"
using mapnik::line_pattern_symbolizer;
using mapnik::path_processor_type;
using mapnik::path_expression_ptr;
using mapnik::guess_type;
using mapnik::parse_path;
namespace {
using namespace boost::python;
std::string get_filename(line_pattern_symbolizer const& t)
{
return path_processor_type::to_string(*t.get_filename());
}
void set_filename(line_pattern_symbolizer & t, std::string const& file_expr)
{
t.set_filename(parse_path(file_expr));
}
}
void export_line_pattern_symbolizer()
{
using namespace boost::python;
class_<line_pattern_symbolizer>("LinePatternSymbolizer",
init<path_expression_ptr>
("<image file expression>"))
.add_property("transform",
mapnik::get_svg_transform<line_pattern_symbolizer>,
mapnik::set_svg_transform<line_pattern_symbolizer>)
.add_property("filename",
&get_filename,
&set_filename)
.add_property("comp_op",
&line_pattern_symbolizer::comp_op,
&line_pattern_symbolizer::set_comp_op,
"Set/get the comp-op")
.add_property("clip",
&line_pattern_symbolizer::clip,
&line_pattern_symbolizer::set_clip,
"Set/get the line pattern geometry's clipping status")
.add_property("smooth",
&line_pattern_symbolizer::smooth,
&line_pattern_symbolizer::set_smooth,
"smooth value (0..1.0)")
;
}

View file

@ -1,80 +0,0 @@
/*****************************************************************************
*
* This file is part of Mapnik (c++ mapping toolkit)
*
* Copyright (C) 2006 Artem Pavlenko, Jean-Francois Doyon
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*****************************************************************************/
#include <boost/python.hpp>
#include "mapnik_enumeration.hpp"
#include <mapnik/line_symbolizer.hpp>
#include <mapnik/symbolizer_hash.hpp>
using namespace mapnik;
using mapnik::line_symbolizer;
using mapnik::stroke;
using mapnik::color;
std::size_t line_symbolizer_hash(line_symbolizer const& sym)
{
return symbolizer_hash::value(sym);
}
void export_line_symbolizer()
{
using namespace boost::python;
enumeration_<line_rasterizer_e>("line_rasterizer")
.value("FULL",RASTERIZER_FULL)
.value("FAST",RASTERIZER_FAST)
;
class_<line_symbolizer>("LineSymbolizer",
init<>("Default LineSymbolizer - 1px solid black"))
.def(init<stroke const&>("TODO"))
.def(init<color const& ,float>())
.add_property("rasterizer",
&line_symbolizer::get_rasterizer,
&line_symbolizer::set_rasterizer,
"Set/get the rasterization method of the line of the point")
.add_property("stroke",make_function
(&line_symbolizer::get_stroke,
return_value_policy<reference_existing_object>()),
&line_symbolizer::set_stroke)
.add_property("simplify_tolerance",
&line_symbolizer::simplify_tolerance,
&line_symbolizer::set_simplify_tolerance,
"simplification tolerance measure")
.add_property("offset",
&line_symbolizer::offset,
&line_symbolizer::set_offset,
"offset value")
.add_property("comp_op",
&line_symbolizer::comp_op,
&line_symbolizer::set_comp_op,
"Set/get the comp-op")
.add_property("clip",
&line_symbolizer::clip,
&line_symbolizer::set_clip,
"Set/get the line geometry's clipping status")
.add_property("smooth",
&line_symbolizer::smooth,
&line_symbolizer::set_smooth,
"smooth value (0..1.0)")
.def("__hash__", line_symbolizer_hash)
;
}

View file

@ -1,73 +0,0 @@
/*****************************************************************************
*
* This file is part of Mapnik (c++ mapping toolkit)
*
* Copyright (C) 2006 Artem Pavlenko, Jean-Francois Doyon
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*****************************************************************************/
#include <boost/python.hpp>
#include <boost/noncopyable.hpp>
#include <mapnik/debug.hpp>
#include <mapnik/utils.hpp>
#include "mapnik_enumeration.hpp"
void export_logger()
{
using mapnik::logger;
using mapnik::singleton;
using mapnik::CreateStatic;
using namespace boost::python;
class_<singleton<logger,CreateStatic>,boost::noncopyable>("Singleton",no_init)
.def("instance",&singleton<logger,CreateStatic>::instance,
return_value_policy<reference_existing_object>())
.staticmethod("instance")
;
enum_<mapnik::logger::severity_type>("severity_type")
.value("Debug", logger::debug)
.value("Warn", logger::warn)
.value("Error", logger::error)
.value("None", logger::none)
;
class_<logger,bases<singleton<logger,CreateStatic> >,
boost::noncopyable>("logger",no_init)
.def("get_severity", &logger::get_severity)
.def("set_severity", &logger::set_severity)
.def("get_object_severity", &logger::get_object_severity)
.def("set_object_severity", &logger::set_object_severity)
.def("clear_object_severity", &logger::clear_object_severity)
.def("get_format", &logger::get_format)
.def("set_format", &logger::set_format)
.def("str", &logger::str)
.def("use_file", &logger::use_file)
.def("use_console", &logger::use_console)
.staticmethod("get_severity")
.staticmethod("set_severity")
.staticmethod("get_object_severity")
.staticmethod("set_object_severity")
.staticmethod("clear_object_severity")
.staticmethod("get_format")
.staticmethod("set_format")
.staticmethod("str")
.staticmethod("use_file")
.staticmethod("use_console")
;
}

View file

@ -1,518 +0,0 @@
/*****************************************************************************
*
* This file is part of Mapnik (c++ mapping toolkit)
*
* Copyright (C) 2006 Artem Pavlenko, Jean-Francois Doyon
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*****************************************************************************/
// boost
#include <boost/python.hpp>
#include <boost/python/detail/api_placeholder.hpp>
#include <boost/python/suite/indexing/vector_indexing_suite.hpp>
#include <boost/python/iterator.hpp>
#include <boost/iterator/transform_iterator.hpp>
// mapnik
#include <mapnik/rule.hpp>
#include <mapnik/layer.hpp>
#include <mapnik/map.hpp>
#include <mapnik/projection.hpp>
#include <mapnik/ctrans.hpp>
#include <mapnik/feature_type_style.hpp>
//#include <mapnik/util/deepcopy.hpp>
#include "mapnik_enumeration.hpp"
using mapnik::color;
using mapnik::coord;
using mapnik::box2d;
using mapnik::layer;
using mapnik::Map;
std::vector<layer>& (Map::*layers_nonconst)() = &Map::layers;
std::vector<layer> const& (Map::*layers_const)() const = &Map::layers;
mapnik::parameters& (Map::*params_nonconst)() = &Map::get_extra_parameters;
mapnik::feature_type_style find_style(mapnik::Map const& m, std::string const& name)
{
boost::optional<mapnik::feature_type_style const&> style = m.find_style(name);
if (!style)
{
PyErr_SetString(PyExc_KeyError, "Invalid style name");
boost::python::throw_error_already_set();
}
return *style;
}
mapnik::font_set find_fontset(mapnik::Map const& m, std::string const& name)
{
boost::optional<mapnik::font_set const&> fontset = m.find_fontset(name);
if (!fontset)
{
PyErr_SetString(PyExc_KeyError, "Invalid font_set name");
boost::python::throw_error_already_set();
}
return *fontset;
}
// TODO - we likely should allow indexing by negative number from python
// for now, protect against negative values and kindly throw
mapnik::featureset_ptr query_point(mapnik::Map const& m, int index, double x, double y)
{
if (index < 0){
PyErr_SetString(PyExc_IndexError, "Please provide a layer index >= 0");
boost::python::throw_error_already_set();
}
unsigned idx = index;
return m.query_point(idx, x, y);
}
mapnik::featureset_ptr query_map_point(mapnik::Map const& m, int index, double x, double y)
{
if (index < 0){
PyErr_SetString(PyExc_IndexError, "Please provide a layer index >= 0");
boost::python::throw_error_already_set();
}
unsigned idx = index;
return m.query_map_point(idx, x, y);
}
// deepcopy
/*
mapnik::Map map_deepcopy(mapnik::Map & m, boost::python::dict memo)
{
// FIXME: ignore memo for now
mapnik::Map result;
mapnik::util::deepcopy(m, result);
return result;
}
*/
void set_maximum_extent(mapnik::Map & m, boost::optional<mapnik::box2d<double> > const& box)
{
if (box)
{
m.set_maximum_extent(*box);
}
else
{
m.reset_maximum_extent();
}
}
struct extract_style
{
typedef boost::python::tuple result_type;
result_type operator() (std::map<std::string, mapnik::feature_type_style>::value_type const& val) const
{
return boost::python::make_tuple(val.first,val.second);
}
};
typedef boost::transform_iterator<extract_style, Map::const_style_iterator> style_extract_iterator;
typedef std::pair<style_extract_iterator,style_extract_iterator> style_range;
style_range _styles_ (mapnik::Map const& m)
{
return style_range(
boost::make_transform_iterator<extract_style>(m.begin_styles(), extract_style()),
boost::make_transform_iterator<extract_style>(m.end_styles(), extract_style()));
}
void export_map()
{
using namespace boost::python;
// aspect ratio fix modes
mapnik::enumeration_<mapnik::aspect_fix_mode_e>("aspect_fix_mode")
.value("GROW_BBOX", mapnik::Map::GROW_BBOX)
.value("GROW_CANVAS",mapnik::Map::GROW_CANVAS)
.value("SHRINK_BBOX",mapnik::Map::SHRINK_BBOX)
.value("SHRINK_CANVAS",mapnik::Map::SHRINK_CANVAS)
.value("ADJUST_BBOX_WIDTH",mapnik::Map::ADJUST_BBOX_WIDTH)
.value("ADJUST_BBOX_HEIGHT",mapnik::Map::ADJUST_BBOX_HEIGHT)
.value("ADJUST_CANVAS_WIDTH",mapnik::Map::ADJUST_CANVAS_WIDTH)
.value("ADJUST_CANVAS_HEIGHT", mapnik::Map::ADJUST_CANVAS_HEIGHT)
;
class_<std::vector<layer> >("Layers")
.def(vector_indexing_suite<std::vector<layer> >())
;
class_<style_range>("StyleRange")
.def("__iter__",
boost::python::range(&style_range::first, &style_range::second))
;
class_<Map>("Map","The map object.",init<int,int,optional<std::string const&> >(
( arg("width"),arg("height"),arg("srs") ),
"Create a Map with a width and height as integers and, optionally,\n"
"an srs string either with a Proj.4 epsg code ('+init=epsg:<code>')\n"
"or with a Proj.4 literal ('+proj=<literal>').\n"
"If no srs is specified the map will default to '+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs'\n"
"\n"
"Usage:\n"
">>> from mapnik import Map\n"
">>> m = Map(600,400)\n"
">>> m\n"
"<mapnik._mapnik.Map object at 0x6a240>\n"
">>> m.srs\n"
"'+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs'\n"
))
.def("append_style",&Map::insert_style,
(arg("style_name"),arg("style_object")),
"Insert a Mapnik Style onto the map by appending it.\n"
"\n"
"Usage:\n"
">>> sty\n"
"<mapnik._mapnik.Style object at 0x6a330>\n"
">>> m.append_style('Style Name', sty)\n"
"True # style object added to map by name\n"
">>> m.append_style('Style Name', sty)\n"
"False # you can only append styles with unique names\n"
)
.def("append_fontset",&Map::insert_fontset,
(arg("fontset")),
"Add a FontSet to the map."
)
.def("buffered_envelope",
&Map::get_buffered_extent,
"Get the Box2d() of the Map given\n"
"the Map.buffer_size.\n"
"\n"
"Usage:\n"
">>> m = Map(600,400)\n"
">>> m.envelope()\n"
"Box2d(-1.0,-1.0,0.0,0.0)\n"
">>> m.buffered_envelope()\n"
"Box2d(-1.0,-1.0,0.0,0.0)\n"
">>> m.buffer_size = 1\n"
">>> m.buffered_envelope()\n"
"Box2d(-1.02222222222,-1.02222222222,0.0222222222222,0.0222222222222)\n"
)
.def("envelope",
make_function(&Map::get_current_extent,
return_value_policy<copy_const_reference>()),
"Return the Map Box2d object\n"
"and print the string representation\n"
"of the current extent of the map.\n"
"\n"
"Usage:\n"
">>> m.envelope()\n"
"Box2d(-0.185833333333,-0.96,0.189166666667,-0.71)\n"
">>> dir(m.envelope())\n"
"...'center', 'contains', 'expand_to_include', 'forward',\n"
"...'height', 'intersect', 'intersects', 'inverse', 'maxx',\n"
"...'maxy', 'minx', 'miny', 'width'\n"
)
.def("find_fontset",find_fontset,
(arg("name")),
"Find a fontset by name."
)
.def("find_style",
find_style,
(arg("name")),
"Query the Map for a style by name and return\n"
"a style object if found or raise KeyError\n"
"style if not found.\n"
"\n"
"Usage:\n"
">>> m.find_style('Style Name')\n"
"<mapnik._mapnik.Style object at 0x654f0>\n"
)
.add_property("styles", _styles_)
.def("pan",&Map::pan,
(arg("x"),arg("y")),
"Set the Map center at a given x,y location\n"
"as integers in the coordinates of the pixmap or map surface.\n"
"\n"
"Usage:\n"
">>> m = Map(600,400)\n"
">>> m.envelope().center()\n"
"Coord(-0.5,-0.5) # default Map center\n"
">>> m.pan(-1,-1)\n"
">>> m.envelope().center()\n"
"Coord(0.00166666666667,-0.835)\n"
)
.def("pan_and_zoom",&Map::pan_and_zoom,
(arg("x"),arg("y"),arg("factor")),
"Set the Map center at a given x,y location\n"
"and zoom factor as a float.\n"
"\n"
"Usage:\n"
">>> m = Map(600,400)\n"
">>> m.envelope().center()\n"
"Coord(-0.5,-0.5) # default Map center\n"
">>> m.scale()\n"
"-0.0016666666666666668\n"
">>> m.pan_and_zoom(-1,-1,0.25)\n"
">>> m.scale()\n"
"0.00062500000000000001\n"
)
.def("query_map_point",query_map_point,
(arg("layer_idx"),arg("pixel_x"),arg("pixel_y")),
"Query a Map Layer (by layer index) for features \n"
"intersecting the given x,y location in the pixel\n"
"coordinates of the rendered map image.\n"
"Layer index starts at 0 (first layer in map).\n"
"Will return a Mapnik Featureset if successful\n"
"otherwise will return None.\n"
"\n"
"Usage:\n"
">>> featureset = m.query_map_point(0,200,200)\n"
">>> featureset\n"
"<mapnik._mapnik.Featureset object at 0x23b0b0>\n"
">>> featureset.features\n"
">>> [<mapnik.Feature object at 0x3995630>]\n"
)
.def("query_point",query_point,
(arg("layer idx"),arg("x"),arg("y")),
"Query a Map Layer (by layer index) for features \n"
"intersecting the given x,y location in the coordinates\n"
"of map projection.\n"
"Layer index starts at 0 (first layer in map).\n"
"Will return a Mapnik Featureset if successful\n"
"otherwise will return None.\n"
"\n"
"Usage:\n"
">>> featureset = m.query_point(0,-122,48)\n"
">>> featureset\n"
"<mapnik._mapnik.Featureset object at 0x23b0b0>\n"
">>> featureset.features\n"
">>> [<mapnik.Feature object at 0x3995630>]\n"
)
.def("remove_all",&Map::remove_all,
"Remove all Mapnik Styles and layers from the Map.\n"
"\n"
"Usage:\n"
">>> m.remove_all()\n"
)
.def("remove_style",&Map::remove_style,
(arg("style_name")),
"Remove a Mapnik Style from the map.\n"
"\n"
"Usage:\n"
">>> m.remove_style('Style Name')\n"
)
.def("resize",&Map::resize,
(arg("width"),arg("height")),
"Resize a Mapnik Map.\n"
"\n"
"Usage:\n"
">>> m.resize(64,64)\n"
)
.def("scale", &Map::scale,
"Return the Map Scale.\n"
"Usage:\n"
"\n"
">>> m.scale()\n"
)
.def("scale_denominator", &Map::scale_denominator,
"Return the Map Scale Denominator.\n"
"Usage:\n"
"\n"
">>> m.scale_denominator()\n"
)
.def("view_transform",&Map::view_transform,
"Return the map ViewTransform object\n"
"which is used internally to convert between\n"
"geographic coordinates and screen coordinates.\n"
"\n"
"Usage:\n"
">>> m.view_transform()\n"
)
.def("zoom",&Map::zoom,
(arg("factor")),
"Zoom in or out by a given factor.\n"
"Positive number zooms in, negative number\n"
"zooms out.\n"
"\n"
"Usage:\n"
"\n"
">>> m.zoom(0.25)\n"
)
.def("zoom_all",&Map::zoom_all,
"Set the geographical extent of the map\n"
"to the combined extents of all active layers.\n"
"\n"
"Usage:\n"
">>> m.zoom_all()\n"
)
.def("zoom_to_box",&Map::zoom_to_box,
(arg("Boxd2")),
"Set the geographical extent of the map\n"
"by specifying a Mapnik Box2d.\n"
"\n"
"Usage:\n"
">>> extext = Box2d(-180.0, -90.0, 180.0, 90.0)\n"
">>> m.zoom_to_box(extent)\n"
)
//.def("__deepcopy__",&map_deepcopy)
.add_property("parameters",make_function(params_nonconst,return_value_policy<reference_existing_object>()),"TODO")
.add_property("aspect_fix_mode",
&Map::get_aspect_fix_mode,
&Map::set_aspect_fix_mode,
// TODO - how to add arg info to properties?
//(arg("aspect_fix_mode")),
"Get/Set aspect fix mode.\n"
"Usage:\n"
"\n"
">>> m.aspect_fix_mode = aspect_fix_mode.GROW_BBOX\n"
)
.add_property("background",make_function
(&Map::background,return_value_policy<copy_const_reference>()),
&Map::set_background,
"The background color of the map (same as background_color property).\n"
"\n"
"Usage:\n"
">>> m.background = Color('steelblue')\n"
)
.add_property("background_color",make_function
(&Map::background,return_value_policy<copy_const_reference>()),
&Map::set_background,
"The background color of the map.\n"
"\n"
"Usage:\n"
">>> m.background_color = Color('steelblue')\n"
)
.add_property("background_image",make_function
(&Map::background_image,return_value_policy<copy_const_reference>()),
&Map::set_background_image,
"The optional background image of the map.\n"
"\n"
"Usage:\n"
">>> m.background_image = '/path/to/image.png'\n"
)
.add_property("base",
make_function(&Map::base_path,return_value_policy<copy_const_reference>()),
&Map::set_base_path,
"The base path of the map where any files using relative \n"
"paths will be interpreted as relative to.\n"
"\n"
"Usage:\n"
">>> m.base_path = '.'\n"
)
.add_property("buffer_size",
&Map::buffer_size,
&Map::set_buffer_size,
"Get/Set the size of buffer around map in pixels.\n"
"\n"
"Usage:\n"
">>> m.buffer_size\n"
"0 # zero by default\n"
">>> m.buffer_size = 2\n"
">>> m.buffer_size\n"
"2\n"
)
.add_property("height",
&Map::height,
&Map::set_height,
"Get/Set the height of the map in pixels.\n"
"Minimum settable size is 16 pixels.\n"
"\n"
"Usage:\n"
">>> m.height\n"
"400\n"
">>> m.height = 600\n"
">>> m.height\n"
"600\n"
)
.add_property("layers",make_function
(layers_nonconst,return_value_policy<reference_existing_object>()),
"The list of map layers.\n"
"\n"
"Usage:\n"
">>> m.layers\n"
"<mapnik._mapnik.layers object at 0x6d458>"
">>> m.layers[0]\n"
"<mapnik._mapnik.layer object at 0x5fe130>\n"
)
.add_property("maximum_extent",make_function
(&Map::maximum_extent,return_value_policy<copy_const_reference>()),
&set_maximum_extent,
"The maximum extent of the map.\n"
"\n"
"Usage:\n"
">>> m.maximum_extent = Box2d(-180,-90,180,90)\n"
)
.add_property("srs",
make_function(&Map::srs,return_value_policy<copy_const_reference>()),
&Map::set_srs,
"Spatial reference in Proj.4 format.\n"
"Either an epsg code or proj literal.\n"
"For example, a proj literal:\n"
"\t'+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs'\n"
"and a proj epsg code:\n"
"\t'+init=epsg:4326'\n"
"\n"
"Note: using epsg codes requires the installation of\n"
"the Proj.4 'epsg' data file normally found in '/usr/local/share/proj'\n"
"\n"
"Usage:\n"
">>> m.srs\n"
"'+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs' # The default srs if not initialized with custom srs\n"
">>> # set to google mercator with Proj.4 literal\n"
"... \n"
">>> m.srs = '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over'\n"
)
.add_property("width",
&Map::width,
&Map::set_width,
"Get/Set the width of the map in pixels.\n"
"Minimum settable size is 16 pixels.\n"
"\n"
"Usage:\n"
">>> m.width\n"
"600\n"
">>> m.width = 800\n"
">>> m.width\n"
"800\n"
)
;
}

View file

@ -1,170 +0,0 @@
/*****************************************************************************
*
* This file is part of Mapnik (c++ mapping toolkit)
*
* Copyright (C) 2010 Artem Pavlenko
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*****************************************************************************/
#include <boost/python.hpp>
#include <mapnik/graphics.hpp>
#include <mapnik/expression_node.hpp>
#include <mapnik/value_error.hpp>
#include <mapnik/image_util.hpp>
#include <mapnik/markers_symbolizer.hpp>
#include <mapnik/parse_path.hpp>
#include "mapnik_svg.hpp"
#include "mapnik_enumeration.hpp"
#include <mapnik/marker_cache.hpp> // for known_svg_prefix_
using mapnik::markers_symbolizer;
using mapnik::symbolizer_with_image;
using mapnik::path_processor_type;
using mapnik::parse_path;
namespace {
using namespace boost::python;
std::string get_filename(mapnik::markers_symbolizer const& symbolizer)
{
return path_processor_type::to_string(*symbolizer.get_filename());
}
void set_filename(mapnik::markers_symbolizer & symbolizer, std::string const& file_expr)
{
symbolizer.set_filename(parse_path(file_expr));
}
void set_marker_type(mapnik::markers_symbolizer & symbolizer, std::string const& marker_type)
{
std::string filename;
if (marker_type == "ellipse")
{
filename = mapnik::marker_cache::instance().known_svg_prefix_ + "ellipse";
}
else if (marker_type == "arrow")
{
filename = mapnik::marker_cache::instance().known_svg_prefix_ + "arrow";
}
else
{
throw mapnik::value_error("Unknown marker-type: '" + marker_type + "'");
}
symbolizer.set_filename(parse_path(filename));
}
}
// https://github.com/mapnik/mapnik/issues/1367
PyObject* get_fill_opacity_impl(markers_symbolizer & sym)
{
boost::optional<float> fill_opacity = sym.get_fill_opacity();
if (fill_opacity)
return ::PyFloat_FromDouble(*fill_opacity);
Py_RETURN_NONE;
}
void export_markers_symbolizer()
{
using namespace boost::python;
mapnik::enumeration_<mapnik::marker_placement_e>("marker_placement")
.value("POINT_PLACEMENT",mapnik::MARKER_POINT_PLACEMENT)
.value("INTERIOR_PLACEMENT",mapnik::MARKER_INTERIOR_PLACEMENT)
.value("LINE_PLACEMENT",mapnik::MARKER_LINE_PLACEMENT)
;
mapnik::enumeration_<mapnik::marker_multi_policy_e>("marker_multi_policy")
.value("EACH",mapnik::MARKER_EACH_MULTI)
.value("WHOLE",mapnik::MARKER_WHOLE_MULTI)
.value("LARGEST",mapnik::MARKER_LARGEST_MULTI)
;
class_<markers_symbolizer>("MarkersSymbolizer",
init<>("Default Markers Symbolizer - circle"))
.def (init<mapnik::path_expression_ptr>("<path expression ptr>"))
.add_property("filename",
&get_filename,
&set_filename)
.add_property("marker_type",
&get_filename,
&set_marker_type)
.add_property("allow_overlap",
&markers_symbolizer::get_allow_overlap,
&markers_symbolizer::set_allow_overlap)
.add_property("spacing",
&markers_symbolizer::get_spacing,
&markers_symbolizer::set_spacing)
.add_property("max_error",
&markers_symbolizer::get_max_error,
&markers_symbolizer::set_max_error)
.add_property("opacity",
&markers_symbolizer::get_opacity,
&markers_symbolizer::set_opacity,
"Set/get the overall opacity")
.add_property("fill_opacity",
&get_fill_opacity_impl,
&markers_symbolizer::set_fill_opacity,
"Set/get the fill opacity")
.add_property("ignore_placement",
&markers_symbolizer::get_ignore_placement,
&markers_symbolizer::set_ignore_placement)
.add_property("transform",
&mapnik::get_svg_transform<markers_symbolizer>,
&mapnik::set_svg_transform<markers_symbolizer>)
.add_property("width",
make_function(&markers_symbolizer::get_width,
return_value_policy<copy_const_reference>()),
&markers_symbolizer::set_width,
"Set/get the marker width")
.add_property("height",
make_function(&markers_symbolizer::get_height,
return_value_policy<copy_const_reference>()),
&markers_symbolizer::set_height,
"Set/get the marker height")
.add_property("fill",
&markers_symbolizer::get_fill,
&markers_symbolizer::set_fill,
"Set/get the marker fill color")
.add_property("stroke",
&markers_symbolizer::get_stroke,
&markers_symbolizer::set_stroke,
"Set/get the marker stroke (outline)")
.add_property("placement",
&markers_symbolizer::get_marker_placement,
&markers_symbolizer::set_marker_placement,
"Set/get the marker placement")
.add_property("multi_policy",
&markers_symbolizer::get_marker_multi_policy,
&markers_symbolizer::set_marker_multi_policy,
"Set/get the marker multi geometry rendering policy")
.add_property("comp_op",
&markers_symbolizer::comp_op,
&markers_symbolizer::set_comp_op,
"Set/get the marker comp-op")
.add_property("clip",
&markers_symbolizer::clip,
&markers_symbolizer::set_clip,
"Set/get the marker geometry's clipping status")
.add_property("smooth",
&markers_symbolizer::smooth,
&markers_symbolizer::set_smooth,
"Set/get the marker geometry's smooth value")
;
}

View file

@ -1,59 +0,0 @@
/*****************************************************************************
*
* This file is part of Mapnik (c++ mapping toolkit)
*
* Copyright (C) 2011 Artem Pavlenko
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*****************************************************************************/
// boost
#include <boost/python.hpp>
#include <boost/make_shared.hpp>
#include <boost/noncopyable.hpp>
//mapnik
#include <mapnik/palette.hpp>
static boost::shared_ptr<mapnik::rgba_palette> make_palette( std::string const& palette, std::string const& format )
{
mapnik::rgba_palette::palette_type type = mapnik::rgba_palette::PALETTE_RGBA;
if (format == "rgb")
type = mapnik::rgba_palette::PALETTE_RGB;
else if (format == "act")
type = mapnik::rgba_palette::PALETTE_ACT;
else
throw std::runtime_error("invalid type passed for mapnik.Palette: must be either rgba, rgb, or act");
return boost::make_shared<mapnik::rgba_palette>(palette, type);
}
void export_palette ()
{
using namespace boost::python;
class_<mapnik::rgba_palette,
boost::shared_ptr<mapnik::rgba_palette>,
boost::noncopyable >("Palette",no_init)
//, init<std::string,std::string>(
// ( arg("palette"), arg("type")),
// "Creates a new color palette from a file\n"
// )
.def( "__init__", boost::python::make_constructor(make_palette))
.def("to_string", &mapnik::rgba_palette::to_string,
"Returns the palette as a string.\n"
)
;
}

View file

@ -1,225 +0,0 @@
/*****************************************************************************
*
* This file is part of Mapnik (c++ mapping toolkit)
*
* Copyright (C) 2011 Artem Pavlenko
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*****************************************************************************/
// boost
#include <boost/python.hpp>
#include <boost/make_shared.hpp>
// mapnik
#include <mapnik/debug.hpp>
#include <mapnik/params.hpp>
#include <mapnik/unicode.hpp>
#include <mapnik/value.hpp>
// stl
#include <iterator>
using mapnik::parameter;
using mapnik::parameters;
struct parameter_pickle_suite : boost::python::pickle_suite
{
static boost::python::tuple
getinitargs(const parameter& p)
{
using namespace boost::python;
return boost::python::make_tuple(p.first,p.second);
}
};
struct parameters_pickle_suite : boost::python::pickle_suite
{
static boost::python::tuple
getstate(const parameters& p)
{
using namespace boost::python;
dict d;
parameters::const_iterator pos=p.begin();
while(pos!=p.end())
{
d[pos->first] = pos->second;
++pos;
}
return boost::python::make_tuple(d);
}
static void setstate(parameters& p, boost::python::tuple state)
{
using namespace boost::python;
if (len(state) != 1)
{
PyErr_SetObject(PyExc_ValueError,
("expected 1-item tuple in call to __setstate__; got %s"
% state).ptr()
);
throw_error_already_set();
}
dict d = extract<dict>(state[0]);
boost::python::list keys = d.keys();
for (int i=0; i<len(keys); ++i)
{
std::string key = extract<std::string>(keys[i]);
object obj = d[key];
extract<std::string> ex0(obj);
extract<mapnik::value_integer> ex1(obj);
extract<double> ex2(obj);
extract<UnicodeString> ex3(obj);
// TODO - this is never hit - we need proper python string -> std::string to get invoked here
if (ex0.check())
{
p[key] = ex0();
}
else if (ex1.check())
{
p[key] = ex1();
}
else if (ex2.check())
{
p[key] = ex2();
}
else if (ex3.check())
{
std::string buffer;
mapnik::to_utf8(ex3(),buffer);
p[key] = buffer;
}
else
{
MAPNIK_LOG_DEBUG(bindings) << "parameters_pickle_suite: Could not unpickle key=" << key;
}
}
}
};
mapnik::value_holder get_params_by_key1(mapnik::parameters const& p, std::string const& key)
{
parameters::const_iterator pos = p.find(key);
if (pos != p.end())
{
// will be auto-converted to proper python type by `mapnik_params_to_python`
return pos->second;
}
return mapnik::value_null();
}
mapnik::value_holder get_params_by_key2(mapnik::parameters const& p, std::string const& key)
{
parameters::const_iterator pos = p.find(key);
if (pos == p.end())
{
PyErr_SetString(PyExc_KeyError, key.c_str());
boost::python::throw_error_already_set();
}
// will be auto-converted to proper python type by `mapnik_params_to_python`
return pos->second;
}
mapnik::parameter get_params_by_index(mapnik::parameters const& p, int index)
{
if (index < 0 || static_cast<unsigned>(index) > p.size())
{
PyErr_SetString(PyExc_IndexError, "Index is out of range");
throw boost::python::error_already_set();
}
parameters::const_iterator itr = p.begin();
std::advance(itr, index);
if (itr != p.end())
{
return *itr;
}
PyErr_SetString(PyExc_IndexError, "Index is out of range");
throw boost::python::error_already_set();
}
void add_parameter(mapnik::parameters & p, mapnik::parameter const& param)
{
p[param.first] = param.second;
}
mapnik::value_holder get_param(mapnik::parameter const& p, int index)
{
if (index == 0)
{
return p.first;
}
else if (index == 1)
{
return p.second;
}
else
{
PyErr_SetString(PyExc_IndexError, "Index is out of range");
throw boost::python::error_already_set();
}
}
boost::shared_ptr<mapnik::parameter> create_parameter(UnicodeString const& key, mapnik::value_holder const& value)
{
std::string key_utf8;
mapnik::to_utf8(key, key_utf8);
return boost::make_shared<mapnik::parameter>(key_utf8,value);
}
// needed for Python_Unicode to std::string (utf8) conversion
boost::shared_ptr<mapnik::parameter> create_parameter_from_string(UnicodeString const& key, UnicodeString const& ustr)
{
std::string key_utf8;
std::string ustr_utf8;
mapnik::to_utf8(key, key_utf8);
mapnik::to_utf8(ustr,ustr_utf8);
return boost::make_shared<mapnik::parameter>(key_utf8, ustr_utf8);
}
void export_parameters()
{
using namespace boost::python;
implicitly_convertible<std::string,mapnik::value_holder>();
implicitly_convertible<mapnik::value_null,mapnik::value_holder>();
implicitly_convertible<mapnik::value_integer,mapnik::value_holder>();
implicitly_convertible<mapnik::value_double,mapnik::value_holder>();
class_<parameter,boost::shared_ptr<parameter> >("Parameter",no_init)
.def("__init__", make_constructor(create_parameter),
"Create a mapnik.Parameter from a pair of values, the first being a string\n"
"and the second being either a string, and integer, or a float")
.def("__init__", make_constructor(create_parameter_from_string),
"Create a mapnik.Parameter from a pair of values, the first being a string\n"
"and the second being either a string, and integer, or a float")
.def_pickle(parameter_pickle_suite())
.def("__getitem__",get_param)
;
class_<parameters>("Parameters",init<>())
.def_pickle(parameters_pickle_suite())
.def("get",get_params_by_key1)
.def("__getitem__",get_params_by_key2)
.def("__getitem__",get_params_by_index)
.def("__len__",&parameters::size)
.def("append",add_parameter)
.def("iteritems",iterator<parameters>())
;
}

View file

@ -1,89 +0,0 @@
/*****************************************************************************
*
* This file is part of Mapnik (c++ mapping toolkit)
*
* Copyright (C) 2006 Artem Pavlenko, Jean-Francois Doyon
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*****************************************************************************/
#include <boost/python.hpp>
#include "mapnik_enumeration.hpp"
#include <mapnik/graphics.hpp>
#include <mapnik/image_util.hpp>
#include <mapnik/point_symbolizer.hpp>
#include <mapnik/parse_path.hpp>
#include "mapnik_svg.hpp"
using namespace mapnik;
using mapnik::point_symbolizer;
using mapnik::symbolizer_with_image;
using mapnik::path_processor_type;
using mapnik::parse_path;
namespace {
using namespace boost::python;
std::string get_filename(point_symbolizer const& t)
{
return path_processor_type::to_string(*t.get_filename());
}
void set_filename(point_symbolizer & t, std::string const& file_expr)
{
t.set_filename(parse_path(file_expr));
}
}
void export_point_symbolizer()
{
using namespace boost::python;
enumeration_<point_placement_e>("point_placement")
.value("CENTROID",CENTROID_POINT_PLACEMENT)
.value("INTERIOR",INTERIOR_POINT_PLACEMENT)
;
class_<point_symbolizer>("PointSymbolizer",
init<>("Default Point Symbolizer - 4x4 black square"))
.def (init<mapnik::path_expression_ptr>("<path expression ptr>"))
.add_property("filename",
&get_filename,
&set_filename)
.add_property("allow_overlap",
&point_symbolizer::get_allow_overlap,
&point_symbolizer::set_allow_overlap)
.add_property("opacity",
&point_symbolizer::get_opacity,
&point_symbolizer::set_opacity)
.add_property("ignore_placement",
&point_symbolizer::get_ignore_placement,
&point_symbolizer::set_ignore_placement)
.add_property("placement",
&point_symbolizer::get_point_placement,
&point_symbolizer::set_point_placement,
"Set/get the placement of the point")
.add_property("transform",
mapnik::get_svg_transform<point_symbolizer>,
mapnik::set_svg_transform<point_symbolizer>)
.add_property("comp_op",
&point_symbolizer::comp_op,
&point_symbolizer::set_comp_op,
"Set/get the comp-op")
;
}

View file

@ -1,96 +0,0 @@
/*****************************************************************************
*
* This file is part of Mapnik (c++ mapping toolkit)
*
* Copyright (C) 2006 Artem Pavlenko, Jean-Francois Doyon
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*****************************************************************************/
#include <boost/python.hpp>
#include <mapnik/image_util.hpp>
#include <mapnik/polygon_pattern_symbolizer.hpp>
#include "mapnik_enumeration.hpp"
#include <mapnik/parse_path.hpp>
#include "mapnik_svg.hpp"
using namespace mapnik;
using mapnik::polygon_pattern_symbolizer;
using mapnik::path_expression_ptr;
using mapnik::path_processor_type;
using mapnik::parse_path;
using mapnik::guess_type;
namespace {
using namespace boost::python;
std::string get_filename(polygon_pattern_symbolizer const& t)
{
return path_processor_type::to_string(*t.get_filename());
}
void set_filename(polygon_pattern_symbolizer & t, std::string const& file_expr)
{
t.set_filename(parse_path(file_expr));
}
}
void export_polygon_pattern_symbolizer()
{
using namespace boost::python;
enumeration_<pattern_alignment_e>("pattern_alignment")
.value("LOCAL",LOCAL_ALIGNMENT)
.value("GLOBAL",GLOBAL_ALIGNMENT)
;
class_<polygon_pattern_symbolizer>("PolygonPatternSymbolizer",
init<path_expression_ptr>("<path_expression_ptr>"))
.add_property("alignment",
&polygon_pattern_symbolizer::get_alignment,
&polygon_pattern_symbolizer::set_alignment,
"Set/get the alignment of the pattern")
.add_property("transform",
mapnik::get_svg_transform<polygon_pattern_symbolizer>,
mapnik::set_svg_transform<polygon_pattern_symbolizer>)
.add_property("filename",
&get_filename,
&set_filename)
.add_property("opacity",
&polygon_pattern_symbolizer::get_opacity,
&polygon_pattern_symbolizer::set_opacity)
.add_property("gamma",
&polygon_pattern_symbolizer::get_gamma,
&polygon_pattern_symbolizer::set_gamma)
.add_property("gamma_method",
&polygon_pattern_symbolizer::get_gamma_method,
&polygon_pattern_symbolizer::set_gamma_method,
"Set/get the gamma correction method of the polygon")
.add_property("comp_op",
&polygon_pattern_symbolizer::comp_op,
&polygon_pattern_symbolizer::set_comp_op,
"Set/get the pattern comp-op")
.add_property("clip",
&polygon_pattern_symbolizer::clip,
&polygon_pattern_symbolizer::set_clip,
"Set/get the pattern geometry's clipping status")
.add_property("smooth",
&polygon_pattern_symbolizer::smooth,
&polygon_pattern_symbolizer::set_smooth,
"Set/get the pattern geometry's smooth value")
;
}

View file

@ -1,76 +0,0 @@
/*****************************************************************************
*
* This file is part of Mapnik (c++ mapping toolkit)
*
* Copyright (C) 2006 Artem Pavlenko, Jean-Francois Doyon
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*****************************************************************************/
#include <boost/python.hpp>
#include <mapnik/polygon_symbolizer.hpp>
#include <mapnik/symbolizer_hash.hpp>
using namespace mapnik;
using mapnik::polygon_symbolizer;
using mapnik::color;
std::size_t polygon_symbolizer_hash(polygon_symbolizer const& sym)
{
return symbolizer_hash::value(sym);
}
void export_polygon_symbolizer()
{
using namespace boost::python;
class_<polygon_symbolizer>("PolygonSymbolizer",
init<>("Default PolygonSymbolizer - solid fill grey"))
.def(init<color const&>("TODO"))
.add_property("fill",make_function
(&polygon_symbolizer::get_fill,
return_value_policy<copy_const_reference>()),
&polygon_symbolizer::set_fill)
.add_property("fill_opacity",
&polygon_symbolizer::get_opacity,
&polygon_symbolizer::set_opacity)
.add_property("gamma",
&polygon_symbolizer::get_gamma,
&polygon_symbolizer::set_gamma)
.add_property("gamma_method",
&polygon_symbolizer::get_gamma_method,
&polygon_symbolizer::set_gamma_method,
"gamma correction method")
.add_property("comp_op",
&polygon_symbolizer::comp_op,
&polygon_symbolizer::set_comp_op,
"Set/get the polygon comp-op")
.add_property("clip",
&polygon_symbolizer::clip,
&polygon_symbolizer::set_clip,
"Set/get the polygon geometry's clipping status")
.add_property("smooth",
&polygon_symbolizer::smooth,
&polygon_symbolizer::set_smooth,
"Set/get the polygon geometry's smooth value")
.add_property("simplify_tolerance",
&polygon_symbolizer::simplify_tolerance,
&polygon_symbolizer::set_simplify_tolerance,
"simplfication tolerance measure")
.def("__hash__", polygon_symbolizer_hash)
;
}

View file

@ -1,137 +0,0 @@
/*****************************************************************************
*
* This file is part of Mapnik (c++ mapping toolkit)
*
* Copyright (C) 2009 Artem Pavlenko
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*****************************************************************************/
// mapnik
#include <mapnik/proj_transform.hpp>
#include <boost/noncopyable.hpp>
// boost
#include <boost/python.hpp>
using mapnik::proj_transform;
using mapnik::projection;
struct proj_transform_pickle_suite : boost::python::pickle_suite
{
static boost::python::tuple
getinitargs(const proj_transform& p)
{
using namespace boost::python;
return boost::python::make_tuple(p.source(),p.dest());
}
};
namespace {
mapnik::coord2d forward_transform_c(mapnik::proj_transform& t, mapnik::coord2d const& c)
{
double x = c.x;
double y = c.y;
double z = 0.0;
if (!t.forward(x,y,z)) {
std::ostringstream s;
s << "Failed to forward project "
<< c << " from " << t.source().params() << " to: " << t.dest().params();
throw std::runtime_error(s.str());
}
return mapnik::coord2d(x,y);
}
mapnik::coord2d backward_transform_c(mapnik::proj_transform& t, mapnik::coord2d const& c)
{
double x = c.x;
double y = c.y;
double z = 0.0;
if (!t.backward(x,y,z)) {
std::ostringstream s;
s << "Failed to back project "
<< c << " from " << t.dest().params() << " to: " << t.source().params();
throw std::runtime_error(s.str());
}
return mapnik::coord2d(x,y);
}
mapnik::box2d<double> forward_transform_env(mapnik::proj_transform& t, mapnik::box2d<double> const & box)
{
mapnik::box2d<double> new_box = box;
if (!t.forward(new_box)) {
std::ostringstream s;
s << "Failed to forward project "
<< box << " from " << t.source().params() << " to: " << t.dest().params();
throw std::runtime_error(s.str());
}
return new_box;
}
mapnik::box2d<double> backward_transform_env(mapnik::proj_transform& t, mapnik::box2d<double> const & box)
{
mapnik::box2d<double> new_box = box;
if (!t.backward(new_box)){
std::ostringstream s;
s << "Failed to back project "
<< box << " from " << t.dest().params() << " to: " << t.source().params();
throw std::runtime_error(s.str());
}
return new_box;
}
mapnik::box2d<double> forward_transform_env_p(mapnik::proj_transform& t, mapnik::box2d<double> const & box, unsigned int points)
{
mapnik::box2d<double> new_box = box;
if (!t.forward(new_box,points)) {
std::ostringstream s;
s << "Failed to forward project "
<< box << " from " << t.source().params() << " to: " << t.dest().params();
throw std::runtime_error(s.str());
}
return new_box;
}
mapnik::box2d<double> backward_transform_env_p(mapnik::proj_transform& t, mapnik::box2d<double> const & box, unsigned int points)
{
mapnik::box2d<double> new_box = box;
if (!t.backward(new_box,points)){
std::ostringstream s;
s << "Failed to back project "
<< box << " from " << t.dest().params() << " to: " << t.source().params();
throw std::runtime_error(s.str());
}
return new_box;
}
}
void export_proj_transform ()
{
using namespace boost::python;
class_<proj_transform, boost::noncopyable>("ProjTransform", init< projection const&, projection const& >())
.def_pickle(proj_transform_pickle_suite())
.def("forward", forward_transform_c)
.def("backward",backward_transform_c)
.def("forward", forward_transform_env)
.def("backward",backward_transform_env)
.def("forward", forward_transform_env_p)
.def("backward",backward_transform_env_p)
;
}

Some files were not shown because too many files have changed in this diff Show more