- Added a more proactive startup message regarding old v8 engines, as the new bundled mapshaper library will not work with libv8 < 8.1.307.30 (#140).
- Added pkgdown site at https://andyteucher.ca/rmapshaper/
- Setting
force_FC = TRUE
no longer adds armapshaperid
id column.force_FC
is also better respected across functions and methods; previously it was somewhat inconsistent (#151). - Added new argument
gj2008
, which ifTRUE
outputs geojson following the old (2008) specification. Polygon rings are CW and holes are CCW, which is the opposite of the default RFC 7946-compatible output. This is required by D3, and packages that depend on it, like plotly (#167, #168).
This is a fairly major release with much of the internal plumbing changed. I have tried to keep user-facing changes to a minimum, but please report any issues to https://github.com/ateucher/rmapshaper/issues.
- Switched to using the
geojsonsf
package instead ofgeojsonio
for object conversion (#118). - Updated the bundled mapshaper version to
v0.6.25
(#130). - Dropped support for
geojson_list
objects. This was a rarely-used class from thegeojsonio
package (#118). - Arguments
force_FC
,sys
, andsys_mem
are now passed toapply_mapshaper_commands
via...
rather than explicitly, so they are now documented in the...
section of each function. This may break some existing code if you were passing values to these arguments by position rather than by name, especially usingforce_FC
inms_simplify
as it was not at the end of the argument list. It may also change the class of the return value for some input classes and functions (such asms_lines
andms_innerlines
) asforce_FC
will inherit the defaultTRUE
for all functions. - Added
quiet
argument to silence mapshaper console messages when usingsys = TRUE
. This can be controlled globally withoptions("mapshaper.sys_quiet" = TRUE)
(#125). - Added ability to globally set the system memory when using the system mapshaper via
options("mapshaper.sys_mem"=X)
, whereX
is the amount of memory in GB.
- Fixed a long-standing issue where
units
columns insf
objects would cause failures; all numeric columns of class"units"
are now converted to numeric before running through mapshaper commands. (#116, thanks @Robinlovelace) - Added a default value for
force_FC
inapply_mapshaper_commands()
. The default value isTRUE
(#120, thanks @dblodgett-usgs) - Documentation fix in
check_sys_mapshaper()
- fixed description of return value (#117, thanks @dblodgett-usgs). - Included an example of setting memory allocation when using the system mapshaper in README (#114, thanks @baldeagle).
- Fixed a bug where functions would fail when there was a space in user's
tmpdir()
path andsys = TRUE
(#107) - Updated bundled mapshaper library to v 0.4.163, which fixed a bug in
ms_erase
(#110, #104, #112) - When
sys = TRUE
, now usesmapshaper-xl
in the system call, allowing larger memory use. Default 8GB can be specified in new argumentsys_mem
(#94, #112) - Internally switched to using
system2()
oversystem()
for flexibility
- Small fixes for compatibility with sf >= 0.9
- Add checks, a package startup message, and helpful errors for the case when
a user has an old version of
libv8
installed, as they do not support many aspects of modern JavaScript (ES6). This appears to only impactms_erase()
andms_clip()
. - Using
apply_mapshaper_commands()
no longer deletes a file when used on a local file (#99, #100)
- Added
rgdal
toSuggests
soms_clip
andms_erase
can transformSpatial*
objects when they have different CRSs. - When an input
sf
object is a tibble, the output is now now also a tibble, (#95, thanks @mdsumner) - Upgraded to
mapshaper
v0.4.107 - Bumped minimum version of V8 to 3.0
- Fixed a bug when using
sys = TRUE
would fail on Windows in some circumstances (#77) - Fixed an issue where running
rmapshaper
functions onsfc
objects failed withsf v0.7
- Added
sys
argument to allow the use of the systemmapshaper
if it's installed (#61)
- Upgraded to
mapshaper
v0.4.64 (#60) sf::st_read()
is now used throughout for reading from disk and from geojson strings, which allows for greater consistency and better performance.- Better handling of different column classes (#68, thanks @mdsumner)
- Avoid stackoverflow caused by adding special geojson classes (#71, ropensci/geojsonio#128)
- The name of the sf column is now properly retained (#70)
- Fixed issue where encoding/special characters were not preserved (#67)
- Fixed a bug where converting geojson objects to sf failed with sf >= 0.5-6 (#64)
- Methods for sf and sfc classes have been added (#46)
rmapshaperid
column is only retained if it is the only column, otherwise it's dropped.ms_innerlines
returns only the geometry forsf
andSpatial*DataFrame
classes. (#57)ms_dissolve
gains aweight
argument for generating weighted centroids of dissolved points. (#39)
- Added
snap_interval
toms_simplify()
(#43, @nikolai-b) - Bug-fix: Respect
drop_null_geometries
argument inms_simplify.geo_list()
(#45, @nikolai-b) - Add Kent Russell (@timelyportfolio) to authors list for his JavaScript expertise and advice
- Add Matthew Bloch (@mbloch) to authors list as mapshaper copyright holder
- Update mapshaper to version 0.3.41
- A V8 session is now launched once per function call and destroyed when the function exits, rather than created on package load and retained for the entire session (#49)
- Column classes are now restored after being sent through mapshaper functions (#46)
- Fixed a bug where very small values of
keep
inms_simplify()
were converted to scientific notation (#48) - Added
weighting
argument toms_simplify()
(#27) - Added
remove_slivers
argument inms_clip()
andms_erase()
- Initial release