Commit graph

1726 commits

Author SHA1 Message Date
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
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
8562d18cd0 geoson.input - throw an exception if input hasn't been fully consumed 2015-10-14 11:03:07 +01:00
Dane Springmeyer
324f70652b code cleanup / c++11 usage in plugins 2015-10-09 16:07:19 -07:00
Dane Springmeyer
5e8a009278 fix #3120 2015-10-09 15:27:34 -07:00
artemp
0bca3afa4e formatting 2015-10-09 12:49:33 +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
f7b125c90f use boolean_type (no functional change) [skip ci] 2015-10-07 17:53:32 -07:00
Dane Springmeyer
3bfd997b83 fix -Wsign-compare warning [skip ci] 2015-10-07 14:43:33 -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
b275bcb2c2 update to use latest grammar + use std:: qualifier for 'C' lib functions 2015-10-07 12:34:20 +01: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
d0cf7ad6f4 csv.input - implement get_geometry_type_impl for disk based index 2015-10-06 11:32:21 +01:00
artemp
2c8ad910d7 csv.input - remove redundant trim_copy 2015-10-06 10:00:42 +01:00
artemp
63c73b5057 add initial 'qoute' auto-detection + restore csv_test's 2015-10-05 16:56:33 +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
287028d3e4 fix rebase conflict 2015-10-05 15:25:17 +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
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
98ea1c5cd9 csv_utils::getline_csv - add 'quote' argument 2015-10-02 12:17:38 +01:00
Dane Springmeyer
336170c13c avoid excessive calling of std::ios::widen - refs #3101 2015-10-01 15:34:00 -07:00
Dane Springmeyer
3932cc51b3 add getline benchmark - refs #3101 2015-10-01 14:47:55 -07:00
Dane Springmeyer
2d59fca9f9 ensure consistent, ordered linking for plugins - closes #3105 2015-10-01 13:35:56 -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
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
4273e37278 Merge branch 'master' into csv-disk-index 2015-10-01 15:26:47 +01:00
Dane Springmeyer
d70725b218 fix variable shadowing in extract_bounding_box_grammar 2015-09-30 15:42:42 -07:00
Dane Springmeyer
d6b60188e8 avoid -Wshadow errors from boost when compiling csv plugin 2015-09-30 14:11:16 -07: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
49266fbd56 csv.input (disk-index) - add support for memory mapped files 2015-09-29 10:35:36 +01:00
artemp
21e6936f85 first cut at using csv_index_featureset 2015-09-25 17:50:24 +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
99617ad71c spatial_index<...> - use operator>> for reading Value's + update shape_index_featureset 2015-09-25 10:43:10 +01:00
artemp
2e0486440c remove shp_index.hpp and update shape.input 2015-09-24 11:37:27 +01:00
artemp
c362702e8b remove unused erroneous type def 2015-09-18 09:42:28 +01: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
artemp
5e0050d005 topojson - use separate local boolean to track first geometry 2015-09-10 15:35:25 +02:00
artemp
fc100be61e topojson : fix geometry index logic 2015-09-10 12:37:38 +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
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
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
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
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
6c3d9bb2a2 CSV plug-in - refactor and bring some sanity, sigh .. 2015-08-19 12:04:56 +02:00
artemp
318a8217a7 work-in-progress 2015-08-17 15:27:17 +02:00
artemp
f7d1cf82a9 Merge branch 'master' into large_csv 2015-08-13 13:28:35 +02: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
artemp
f9bd21eeb5 Merge branch 'svg-parser-errors' into large_csv 2015-07-31 11:18:55 +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
2048be7b30 move occi, osm, rasterlite to non-core repo 84b0bfecb3 - refs #2980 2015-07-16 11:46:10 -07: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
artemp
56678b8aad geojson.input - fix bug typo 2015-07-06 12:47:45 +02:00
artemp
9c7186e49e add `autodetect_newline' as a separate function 2015-06-19 13:30:00 +02:00
artemp
d893718343 Merge branch 'master' into large_csv 2015-06-18 13:06:28 +02:00
Dane Springmeyer
4fe3c87a84 tame a few more boost -Wsign-conversion warnings 2015-06-17 13:29:54 -07: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
Dane Springmeyer
b2c85e0c65 fix a slew of -Wsign-conversion, -Wconversion, -Wunused-argument warnings 2015-06-15 20:41:51 -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
artemp
b228da7bc3 remove unused grammar + remove stderr 2015-06-11 10:27:32 +01: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
cb832c0964 format 2015-06-10 11:41:28 +01:00
artemp
989af2ea42 use csv_grammar to parse csv lines 2015-06-09 15:22:37 +01:00
artemp
35ff68a7ec refactor - detect_separator free func 2015-06-09 10:17:55 +01: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
artemp
42e1adca84 c++11 - use std::bind 2015-06-03 14:00:14 +01:00
artemp
8fa314c418 follow up from be731f17ce - fix read_polyline (-fsanitize=address) 2015-06-02 17:50:10 +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
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
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
Blake Thompson
a08d4dcc72 Fix for rasterlite plugin compile 2015-05-26 18:21:57 -05:00
Dane Springmeyer
145781aec9 remove uneeded includes [skip ci] 2015-05-21 11:11:04 -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
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
093d857ddc Add support for 64 bit field types in GDAL 2.0 - closes #2685 2015-05-19 22:39:39 -07:00
Dane Springmeyer
f1e6be4572 silence boost warning in geojson_datasource 2015-05-15 14:43:42 -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
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
Dane Springmeyer
613766b104 drop obsolete and unsupported big endian support - refs #2806 2015-05-12 10:19:37 -07:00
artemp
a9ae6c111c Merge branch 'master' into fix-topojson 2015-05-12 09:42:29 +02: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
46246fdbf6 ensure topojson plugin id starts at 1 for consistency #753 2015-05-11 16:52:07 -07:00
Dane Springmeyer
23872dcd26 ensure topojson parser is robust to invalid arc index 2015-05-09 07:04:03 -07:00
Dane Springmeyer
f669a60a0f ensure topojson plugin id starts at 1 for consistency #753 2015-05-09 06:07:16 -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
artemp
470da20d53 fix remanining cAmEl case names 2015-05-04 12:49:11 +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
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
artemp
2768aa6a4a Merge branch 'mapnik-geometry' into mapnik-geometry-template 2015-04-22 12:13:29 +02: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
Dane Springmeyer
748fe3d228 fix polygon winding order for shapefiles + add test enforcing it 2015-04-14 15:35:32 +02: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
61f42b229d update to templated mapnik-geometry 2015-04-10 14:16:26 +02:00
Blake Thompson
87fb41907a Added template to geometries 2015-04-09 15:22:51 -05: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
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
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
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
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
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
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
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
9732369750 remove old typedef 2015-03-22 11:42:23 -07:00
Dane Springmeyer
537a392a09 update gdal plugin to new geometry 2015-03-21 21:13:58 -07:00
Dane Springmeyer
1994b1c25f update ogr plugin to new geometry 2015-03-21 20:08:07 -07: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
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
f627b8ace3 csv - use mapnik-geometry 2015-03-13 11:13:15 +01:00
artemp
317e9c497f Merge branch 'master' into mapnik-geometry 2015-03-09 14:59:45 +01: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
c1e947bff1 fully static geojson parsing grammars 2015-03-07 12:00:38 -08:00
Dane Springmeyer
051462e00f fix postgis error reporting - closes #2725 2015-03-06 14:01:22 -08:00
artemp
aa5ae6b843 update markers_symbolizer to work with mapnik-geometry (work-in-progress) 2015-03-05 15:07:23 +01:00
artemp
ae1da6ae12 topojson - correct multi_polygons 2015-03-04 18:39:11 +01:00
artemp
58f21f33ea remove slicing 2015-03-04 14:54:11 +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
78c72ee389 topojson.input - update to mapnik-geometry 2015-02-24 15:59:26 +01:00
artemp
0885dfb15a rename polygon3 -> polygon 2015-02-24 14:13:00 +01:00
artemp
367208ece1 generic geometry_type impl
remove geometry_type from mapnik::datasource
2015-02-24 11:17:26 +01: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
45a75fb876 Merge branch 'master' into mapnik-geometry 2015-02-23 10:06:43 +01: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
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
artemp
1c3dbdd3ab postgis.input + use mapnik-geometry 2015-02-19 16:05:09 +01:00
artemp
9fed6fd571 shape.input - fix multi-polygon handling 2015-02-19 14:32:45 +01: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
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
Dane Springmeyer
a2dabb370d fix build+link of oracle plugin 2015-02-16 23:09:16 -08: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
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
89a58c5879 Merge branch 'master' of github.com:mapnik/mapnik into release/image_data_any 2015-02-11 10:01:42 -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
41ed56df14 Merge branch 'master' of github.com:mapnik/mapnik into vertex_adapter 2015-02-09 18:16:57 -08:00
Dane Springmeyer
578f8a7c29 report proj4 string in extra metadata for ogr plugin - refs #2650 2015-02-09 15:46:00 -08:00
artemp
e19fdad3a6 implement vertex interface in vertex_adapter and make mapnik::geometry_type immutable 2015-02-06 16:45:51 +01: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
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
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
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
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
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
artemp
e3c96666c4 json - make feature_collection_grammar "on-feature" callback based 2015-01-29 12:33:18 +01:00
Dane Springmeyer
4b3f69e851 #2651 is fixed, remove workaround in postgis plugin 2015-01-28 18:18:09 -08:00
artemp
0d62e0f83c link to Oracle client library (libclntsh) to avoid missing symbols - ref #2659 2015-01-28 13:07:03 +01:00
Dane Springmeyer
1753d0ab47 require boost >= 1.56 for geojson/topojson plugins 2015-01-27 22:20:03 -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
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
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
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
Blake Thompson
31a0caf2e4 Merge branch 'master' into release/image_data_any 2015-01-25 14:09:29 -06:00
artemp
7f0e77d172 Merge branch 'master' into large-geojson 2015-01-23 18:12:33 +01: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
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
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
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
d6175adb1a Update README.md 2015-01-21 14:28:12 -08:00
artemp
9ba25cefe4 large_geojson - use 'C' style I/O for performance 2015-01-20 11:30:27 +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
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
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
0c280b5066 reduce verbosity 2015-01-16 16:41:38 +01:00
artemp
788fd8c80b large_geojson.input - initial implementation 2015-01-16 16:22:46 +01: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
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
artemp
5361d21beb move mapnik::noncopyable to mapnik::util::noncopyable where it belongs 2015-01-07 13:11:09 +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
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
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
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
artemp
1dfad4b10b raster.input - attempt getting bounding box from image_reader 2014-12-10 12:54:35 +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
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
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
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
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