Commit graph

1753 commits

Author SHA1 Message Date
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
Raul Marin
caa2a88177 Fix build issue with MAPNIK_THREADSAFE disabled 2018-03-26 18:08:44 +02: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
Jiri Drbalek
4c444d0082 Respect raster_has_nodata 2018-02-14 13:56:04 +00:00
Artem Pavlenko
5732df452c support SCons 3 (initial attempt) 2017-11-16 11:59:55 +01:00
Artem Pavlenko
e9f912bba9 Reserve memory via size() of range method in protozero (10c631d7e4 ) 2017-09-20 10:07:43 +02:00
Artem Pavlenko
797e8c7553 Merge branch 'master' into bbox-index 2017-09-11 17:59:23 +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
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
Artem Pavlenko
b2f3fdb73b Merge branch 'master' into bbox-index 2017-09-11 10:47:50 +01:00
Dane Springmeyer
8689048ba6 port #3759 to master 2017-09-10 08:19:04 -07: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
2aa0ce9d74 New *.index format (bounding box per item) implementation 2017-08-18 11:16:44 +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
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
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
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
Blake Thompson
eb7ef5039c Fixes a bug assocaited with the raster plugin 2017-06-06 10:28:21 -05:00
artemp
62260dd3d4 raster.input - increase default tile size to 1024x1024 px. 2017-05-16 13:43:52 +02:00
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