length(n_segments) > 1
(#560)rnet_join()
(now recommended over rnet_merge()
) and line_segment()
(#552)line_segment()
now will use rsgeo::line_segmentize()
if availableline_segment()
becomes an S3 generic which now has methods for sf
and sfc
class objectsline_segment()
now works around {rsgeo} issue with line_segmentize()
returning fewer segments than requested (#552)urlchecker::check_urls()
line_midpoint()
: comparison of output with sf::st_point_on_surface()
rnet_merge()
and related changes, new contributor Zhao Wangline_segment()
is now vectorised (#518)dodgr
(#494)sp
, rgeos
and rgdal
(#332)sp
objects and associated packages will be dropped (#332)line_segment_sf()
(#482)route()
now runs batch routing when input is a linestring and opentripplanner
is installed (#459)route()
checks the CRS and gives an appropriate warning if it is projectedline_via()
now have correct CRScalc_catchment()
have been deprecated because the generate warningsroute()
function: it silently failed when pbapply
not installed. The package was promoted from Suggests to Imports (#460)styler
package, code in stplanr
now adheres to a consistent style (using arrow <-
assignment despite the maintainer's default of equals =
assignment - many =
had been introduced accidentally!)rnet_group()
groups route network elements (#403)overline()
now converts MULTILINESTRING
geometries to LINESTRINGS
automaticallysum_network_routes()
now returns a linestring for routes that start where they end (i.e. no travel) (#444)route_local()
fixed: the l
argument now works (#448)route_osrm()
function (#449)rnet_breakup_vertices()
is now way faster, thanks to Andrea Gilardi and others (#416)rnet_group()
is now a generic function that works with sfNetwork
objects (#455)route_osrm()
provides easy access to multi-modal routing (#449)route()
function's calculation of bbox attributes fixed (#452)sf
objects for toptail_buff()
line2points()
on some set-ups fixed (#418)mapshape()
, line_match()
and gclip()
functions deprecated, maintained alternatives can now be found in other packages.sp
objects updated for latest version of sp
(#364)sf
objects updated to support more recent CRS encoding (#393)od_aggregate()
, onewayid()
, gtfs2sldf()
, and od_radiation()
have been removedmapsapi
package (#410)quiet
argument in overline()
makes it less chattyroute()
failed when data.table
not installed (#408)SpatialLinesNetwork()
fixed thanks to Andrea Gilardi (#394)start
and end
arguments in short path calculations are numericdodgr
removed as Suggests until it's back on CRAN (#398)dplyr
code to prevent warnings when using the dev version (#395)route()
allowing you to save a list of raw outputs and use data.table
for faster performance if availableroute_rolling_*()
functions have been added:
route_rolling_gradient()
calculates a rolling gradient from elevation and distance data at the segment levelroute_rolling_average()
calculates the rolling average of valuesroute_rolling_diff()
calculates the rolling difference between each value and the nextgeo_toptail()
function now has sf
implementation (#390)cl
argument in route()
for parallel routing (#388)od_data_sample
in different ways: od_data_lines
and od_data_routes
route_graphhopper()
deprecated (#389)sp
and dplyr
code, sp_aggregate
and od_aggregate
, have been deprecatedroute_slope*()
functionsroute()
function calls when pbapply
was not installed has been fixed (#386)oneway()
has been deprecated in favour of faster and easier-to-maintain function od_oneway()
(also see the in-development od
package) (#387)dplyr
(#383)route_graphhopper()
should now work with a local graphhopper instance. See https://github.com/ropensci/stplanr/pull/369line2route()
function now works with routing functions that return sf
objectsroute()
function is now more resilient, providing a progress bar if you have pbapply
package installed, returning a result even if some routes failed, and telling you which routes failedreadr
, openxlsx
and lubridate
removedbuff_geo()
removeddestination
now works again as an argument in line2route()
(#368)overline()
now accepts sf
objects regardless of the name of the geometry columnline2points()
now works with sfc
objects (#361)od2line()
fails due to non-matching idsod2line()
in the vignette: https://docs.ropensci.org/stplanr/articles/stplanr-od.html#non-matching-idsroute_split()
, rnet_add_node()
and sln_add_node()
for adding new nodes to routes, route networks and sfNetwork
objects, closing #342line2points()
line_to_points()
function removed in favour of line2point()
.sln_clean_graph()
removes unconnected elements of sfNetwork
objects. Credit to Andrea Gilardi. See (#344).rnet_breakup_vertices()
and line2vertices()
for breaking up linestrings representing route networks into smaller segments, in preparation for routing. See (#282) (which these functions address) and PR (#347) for details.route_dodgr()
and associated examples fixed (#348)line_to_points()
depreciated in favour of od2line()
, the latter function name being more consistent with the package's other functionsline2pointsn()
now works with sf
objectsstplanr-od
vignette, thanks to Edward Leighod_to_odmatrix()
and odmatrix_to_od()
to convert between matrix forms of origin-destination dataod_oneway()
replaces onewayid()
, works better and is twice as fastod_id*()
functions provide a range of ways to convert origin-destination pair IDs into a single ID. See Stackoverflow and the issue trackerstplanr-od
provides detailed documentation on the package's OD data handling capabilitiesod_aggregate_from()
and od_aggregate_to()
provide easy ways to aggregate origin-destination pairs. See #303.overline2()
is now faster and better documented (#307)route_dodgr()
function, which provides an interface to the dodgr package, accepts wider range of inputssf
method for overline()
has been updated so it calls the much faster overline2()
functionroute_local()
sum_network_routes()
fixed. See #267dl_stats19()
are depreciated. They have been split-out into the new package stats19
route_dodgr()
has now been implementedoverline2()
has been added, thanks to Malcolm Morgan. This is faster than overline()
.od
functions, a new stplanr::od_coords2line()
function, and more support of sf
route_dodgr()
has been addedosm_net_example
, has been added for local routing purposes.citation("stplanr")
@maelle
: https://ropensci.github.io/stplanr/route_graphhopper()
has been fixed, see https://github.com/ropensci/stplanr/pull/297dplyr
[0.8.0]: https://github.com/ropensci/stplanr/pull/275install.packages()
installs suggested packages by defaultroute_local()
line2route()
: time_sleep
waits a period between each route requestdl_stats19()
, see #270line_via()
for identifying intermediary points on a transport networkSpatialLinesNetwork()
fixed (see #249)geo_length()
returns numeric vector of line lengths from sp or sf objects.?route_graphhopper
no longer mentions the depreciated 'bike2' profile - see #246?route_osrm
mentions that the public API only routes for cars - see #246introducing-stplanr
vignette to show new function and make more robustsf::st_length()
, used in SpatialLinesNetwork()
.sfNetwork
objects: now only plots the geometry by default.SpatialLinesNetwork()
and plot()
for spatial networks.sum_network_routes()
fixed (see #240).library(stplanr)
, making it less tied to sp. This is a continuation of the work to support sf and will make it easier for the package to work with alternative representations of geographic data.geo_select_aeq.sf()
was fixed by Jakub Nowosad in pull #238od_aggregate.sf()
was fixed making it much fastergeo_bb()
supercedes bb2poly()
. The new function can return polygons, points and matrix objects determined by the output
argument. It also allows bounding boxes to be extended in metres, and scaled in x and y dimensions.geo_code()
now uses nominatim by default to find locations on the maps.od_coords()
takes a wide range of input data types to return a consistent output representing OD data as a data frame of origin and destination coordinates. This is used behind the scenes to make other functions more modular.Plans for the next release
route()
function for routing. This is more flexible and user-friendly than the existing line2route()
and route_*()
functions it enhances.route_cyclestreet()
now also called (correctly) route_cyclestreets()
geo_code()
function replaces dependency on RGoogleMapsgoogle_dist()
fixedcombinations
added to sum_network_routes()
so it runs quicker - see pull/177.sum_network_routes()
, weightfield()
and find_network_nodes()
- see e.g. example(sum_network_routes)
for details.l_poly
added.SpatialLinesNetwork()
fixed._each()
dplyr functions replaced with equivalent _at
or _all
functions.vignette("stplanr-paper")
for details.introducing-stplanr
vignette has been updated. It now provides a more basic introduction for people new to R for spatial and transport data.line2route()
has been refactored to improve error detection and allow n_processes
arguments. Thanks @nikolai-b. See pull/151 for details.line_match()
function added, a wrapper around rgeos::gDistance()
, to find similar routes.od_aggregate()
and sp_aggregate()
have been added, to enable OD data to be aggregated to new geographic levels.#141
fixed: viaroute()
works again.bidirectional = TRUE
returns a different result in line_bearing()
now.onewayid()
is now a generic function, meaning it can handle spatial and non-spatial dataline2route()
allow you to specify variables to join-by - also has updated and more sensible defaultsod_id_order()
to put origin-destination ids in order, to identify 2 way duplicates (split out from onewayid()
)route_cyclestreet()
leading change_elev
and av_incline
being wrong now fixedNEW FEATURES
od2line()
. See example(od2line)
for an example.destinations
for showing how OD matrix with destinations can be converted to spatial datalist_output
allows the route information to be saved as a list, allowing save_raw = TRUE
(which does not return a Spatial
object) to be passed to the route_
function.BUG FIXES
line2route()
(#124) fixedNEW FEATURES
New function reproject()
is a simple wrapper around spTransform()
that uses crs_select_aeq()
to convert a spatial object in geographic (lat/lon) coordinates into on with projected coordinates, with units of 1 m.
This is useful for various spatial operations, such as finding the length and area of an object.
Implement gprojected()
, a function for performing GIS operations on a temporary, projected, version of spatial objects.
Addition of line_bearing()
to return the bearing of lines based on start and end points.
Addition of angle_diff()
for finding the angular difference between lines: are they roughly parallel or perpendicular?
BUG FIXES
line2df()
now works on lines with multiple vertices and is faster.
Fixes in the examples used to illustrate how od_dist()
works.
NEW FEATURES
Update to OSRM functions to support API v5.
New parameter byvars
in the overline()
function, to allow disaggregation of results by a grouping variable (see example(overline)
).
Faster implementation of od2line()
: od2line2()
.
Plan is to replace the original if no issues are found with new implementation.
New function od2odf()
which converts OD data into a dataframe of origins and destinations (feeds od2line2()
but also useful as self-standing function).
New argument new_proj
in buff_geo()
allows the results to be exported to any coordinate reference system (CRS).
New function gprojected()
generalises concept of buff_geo()
, building on crs_select_aeq()
to allow any GIS query to be conducted on a temporary projected version of spatial objects with geographical CRSs.
New function od_dist()
can quickly calculate Euclidean distances of OD pairs without converting to spatial objects.
BUG FIXES
Bug fix in onewayid()
so it captures all lines.
Various improvements to documentation and code.
NEW FEATURES
Interface to the Google Distance Matrix API with dist_google
.
New transport planning API added, with route_transportapi_public
(for testing).
Update to line2route
, allowing it to accept different routing funtions via the new argument route_fun
(for testing - tested with route_fun = route_cyclestreet
).
New functions for creating origin-destination data frames (point2odf
) and SpatialLinesDataFrames (points2flow
).
Addition of n_vertices
and is_linepoint
for identifying the number of vertices in spatial objects and whether the 'line' is really a point.
BUG FIXES
line2route
refactored, with 10 fold speed increases on large (1000+) batches of lines.NEW FEATURES
Addition of new class definition SpatialLinesNetwork
, methods for plot
and summary
and functions calc_network_routes
and find_network_nodes
allowing fast route calculations via igraph and other network analysis functions.
Functions for removing beginning and end of lines: toptail
and toptailgs
.
Helper functions buff_geo
, crs_select_aeq
and line2points
added.
Functionality for reading in the UK's stats19 data: read_stats19_*
functions download, unzip and re-categorise the data.
read_table
functions added for reading Australian OD data.
decode_gl
added to decode Google polylines and other functions for querying and reading data from OSRM services.
gtfs2sldf
added to import GTFS routes as SpatialLinesDataFrames.