Commit graph

1770 commits

Author SHA1 Message Date
artemp
5d48d98697 port latest changes from "raster_overzoom_quest" branch. 2017-05-12 15:37:12 +02:00
artemp
74f295c6c4 small formatting 2017-05-11 16:58:37 +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
333ef9fde1 update copyright year 2017-05-05 13:02:01 +02:00
Rinigus
9de7397043 add twkb support to sqlite plugin 2017-04-23 22:49:36 +03:00
artemp
c28bf77d5d Merge branch 'master' into geometry.hpp 2017-03-30 08:23:56 +01: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
1d06afeea2 Merge branch 'postgis-quoting' of https://github.com/lightmare/mapnik into lightmare-postgis-quoting 2017-03-14 12:29:32 +00:00
Peter Hicks
f776977982 Rename PostGIS' ST_Estimate_Extent to ST_EstimateExtent 2017-02-19 20:46:30 +00: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
6bbb391005 postgis: consistently quote parameters in sql 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
artemp
f13848e210 move box2.hpp and related files into geometry dir 2017-01-26 09:51: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
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
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
18f721fd17 TopoJSON - implement parsing using spirit::x3 2016-12-19 16:18:19 +01:00
artemp
d88bf9e1ef remove unused old headers 2016-11-29 10:48:48 +01:00
artemp
2fcd608ab3 remove spirit spirit::qi usage 2016-11-28 18:42:29 +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
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
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
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
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
fd36ac5279 Merge branch 'master' into geometry-refactor 2016-11-10 18:01:11 +01:00
artemp
83cc819c39 upgrade CSV parser to boost::spirit::x3 2016-10-14 14:24:44 +02:00
artemp
ce0f87fb71 merge spirit-x3 2016-10-13 17:00:11 +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
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
8e0e344b72 Merge branch 'master' into geometry-refactor 2016-09-05 09:41:52 +01: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
artemp
38bff90a99 Merge branch 'master' into geometry-refactor 2016-09-01 16:06:20 +01:00
artemp
af099a57ef topojson grammar - change interface + instantiate with Iterator = char const* to reduce binary size 2016-08-31 17:42:18 +01:00
Dane Springmeyer
f81583554a Merge branch 'master' of github.com:mapnik/mapnik into geometry-refactor 2016-08-22 16:19:17 -07:00
artemp
f3252d00f4 expose "num_features_to_query" datasource parameter (ref #3495) 2016-08-16 10:55:56 +01:00
artemp
046c9638e1 GeoJSON - ensure descriptors order is consistent ( ref #3494) 2016-08-15 12:21:02 +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
artemp
2864d90460 more explicit conversions to the target variant type 2016-07-25 13:45:35 +02:00
artemp
bab985dd04 always return am empty featureset instead of featureset_ptr() 2016-07-13 15:17:51 +01:00
artemp
dc74551dc0 always return am empty featureset instead of featureset_ptr() 2016-07-13 15:16:33 +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
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
67d2a0e141 Merge branch 'master' into geometry-refactor 2016-06-20 15:01:29 +01:00
artemp
7e6cc4cfac make get_overview_meta(band) standalone method 2016-06-13 11:14:59 +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
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
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
25217549f1 fix topojson parsing (work-in-progress) 2016-05-17 12:53:07 +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
6bd708af86 fix generic_json usage across grammars 2016-05-06 09:55:54 +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
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
artemp
caa03d78bd move geometry_adapters.hpp to geometry/boost_geometry_adapters.hpp 2016-04-11 15:14:52 +02: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
f8a8ec616a c++ style: use nullptr rather than NULL 2016-04-05 15:27:32 -04: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
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
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
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
04890c4915 topojson - move feature_generator into topojson_utils.hpp 2016-03-17 14:36:53 +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
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
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
artemp
1b207ae274 csv_util - move implementation details to .cpp 2016-03-11 16:49:26 +01: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
Mickey Rose
ec2c5ddbdc gdal: RAII + minor cleanup 2016-03-03 01:48:07 +01: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
Mickey Rose
d4566c28d2 gdal: only register drivers once
- refs #3339, #3093
2016-03-02 21:21:59 +01:00
Dane Springmeyer
72459b3140 Merge branch 'master' of github.com:mapnik/mapnik into faster-csv-compile 2016-03-02 11:10:23 -08: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
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
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
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
artemp
9fe049d8af CSV utils - strengthen quote detection logic + tests 2016-02-19 15:05:15 +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
f65c799475 shape.input - add 'update-cache' optional parameter (default:true) 2016-02-18 17:34:03 +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
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
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
5d1fd56cef csv_grammar: make csv_white_space_skipper a primitive_parser 2016-02-15 15:17:26 +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
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
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
Blake Thompson
b46f87b385 Merge branch 'master' into sanitize_errors
Conflicts:
	include/mapnik/json/positions_grammar.hpp
2016-01-07 08:34:52 -06: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
Blake Thompson
dfa62c88d8 fix for santize address errors 2015-12-27 21:40:10 -06:00
Dane Springmeyer
8e6e74dfa2 suppress -Wshadow warning from ogr 2015-12-03 10:22:02 -05: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
aee0149a1a GeoJSON - preserve feature ordering with both cache_features=true' and cache_features=false` (#3182) 2015-11-23 10:19:49 +00:00
Jiri Drbalek
7283b758a0 csv.input: fix warning 2015-11-23 08:54:13 +00:00
artemp
58998f8126 cleanup - remove unused vars 2015-11-20 17:45:10 +00:00
artemp
1eab1a3a28 CSV - change 'quote' auto-dection logic to handle mixed cases better 2015-11-20 17:10:55 +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
Dane Springmeyer
7608040906 centralize warning suppression 2015-11-07 17:53:09 -08:00
Dane Springmeyer
da624b9ef4 update test-data to pull in 9f471a25e3 -refs #3160 2015-11-04 13:57:14 -08:00
artemp
133ca16d3a GeoJSON.input - skip empty geometries (#3156) 2015-10-29 16:54:35 +00:00
artemp
3de31c50ab correct exceptions text 2015-10-29 14:08:08 +00:00
Dane Springmeyer
35dccd4653 remove unused variable [skip ci] 2015-10-23 12:05:56 -07:00
artemp
158729ffa4 remove unreachable code block 2015-10-23 14:24:08 +01:00
artemp
aeaadd423d geojson.input - print line number 2015-10-22 18:32:23 +01: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
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
artemp
c3ccff4f02 shape.input - add stream state check and calculate position limit 2015-10-21 16:33:12 +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
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
c952db979e use mapnik::value_integer for feature id's 2015-10-20 11:45:39 +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
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
8813e73cfc rename SHAPE_MEMORY_MAPPED_FILE to MAPNIK_MEMORY_MAPPED_FILE 2015-10-16 13:34:53 -07:00
artemp
4733c7ffc1 geojson.input - geometry_type for disk-index 2015-10-16 17:31:36 +01:00
artemp
942fb3c562 geojson.input - implement spatial disk index featureset 2015-10-16 13:15:20 +01: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
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