- Replace deprecated
with_mock()
from testthat withwith_mocked_bindings()
in all test cases (closes #174). - Updated the test coverage GitHub Action workflow to use
actions/upload-artifact@v4
, fixing a deprecation issue. - Add support for configuring speed limits in
isoline()
androute()
requests via thespeed_limit
parameter. This sets&pedestrian[speed]=<LIMIT>
for pedestrian mode and&vehicle[speedCap]=<LIMIT>
for vehicle-based modes in API requests (refs #175). - Expand transport mode support in
isoline()
routing by enabling"bicycle"
,"scooter"
,"taxi"
,"bus"
, and"privateBus"
, in line with newly available API options.
- Prevent the consumption model from being added to the request when the transport mode is set to
"pedestrian"
inisoline()
androute()
functions (closes #167). - Adjust the rate limit in
route()
to 7 requests per second (RPS). Although HERE's documentation specifies a 10 RPS limit, it has been lowered to 5 RPS to avoid frequent 429 "Too Many Requests" errors.
Please note that there are breaking changes introduced in this major version release for the weather()
, flow()
, and incidents()
functions. Be sure to review the updated documentation to understand how these changes may affect your usage.
- Upgrade HERE Traffic API to v7 for
flow()
andincident()
requests (closes #158) - Upgrade HERE Destination Weather API to v3 for
weather()
. - Update description to create a new API key to the HERE Platform (closes #157).
- In addition to
sf
,data.frames
, the input for points and areas of interest now also allows forsfc
geometry columns. - Change the example data set of the package for the area of interest
aoi
from the country border of Switzerland to the districts of Zurich. This change was necessary because theflow()
andincident()
requests have a maximum allowed width and height of 1 degree for the bounding box of the input AOIs. - Replace GitHub actions with current versions from r-lib/actions.
- Bugfix: Fix decoding of polylines with NA value in
intermodal_route()
. - Bugfix: NAs introduced by coercion, do not convert
snowFall
column to numeric in weather observation request. - Bugfix: Remove
defunct.R
anddeprecated.R
to avoid NOTE (closes #162).
- Resubmit to CRAN due to since the package was archived on 2022-12-27 as email to the maintainer was temporarily not deliverable.
- Updated r-lib/actions in github action
R-CMD-check.yaml
andpkgdown.yaml
.
- Allow transport modes
"scooter"
,"taxi"
,"bus"
,"privateBus"
inroute()
androute_matrix()
. - Request tolls for routes with transport modes
"car"
,"truck"
,"taxi"
and"bus"
inroute()
. The new boolean parametervignettes
defines if vignettes should be in inlcuded in the total toll cost of routes (closes #151). - Add
set_currency()
to allow changing the currency used in toll requests to a currency code compliant to ISO 4217. The default currency is the current system locale setting. If the monetary formatting category"LC_MONETARY"
of the C locale is not set,"USD"
is set as default. - Set
aggregate = FALSE
as default inisoline()
(closes #153). - Bugfix: Reduced RPS from 5 to 4 in calls to the Weather API in
weather()
, due toStatus 429; Too Many Requests;
. - Bugfix: Do not convert columns
"visibility"
and"snowCover"
to numeric inweather(..., product = "observation")
, as they contain non numeric character values (NAs introduced by coercion
).
- Setting the arrival time is now supported by the Routing API, therefore
route(..., arrival = TRUE)
works. - Since
sapply
is not type safe, replace its use withvapply(..., FUN.VALUE = type)
. - Add endpoint URL (without parameters) of failing requests to the warning message and print error message of the response.
- RPS limit for weather and traffic endpoints.
- Changed workflow from git flow to trunc-based development. Removed develop branch. New features are merged directly into
master
and releases are tagged after CRAN has accepted the package submission, which triggers the documentation build. - Bugfix: Fix time / traffic independent requests in
isoline(..., traffic=FALSE)
(closes #147). - Bugfix: Explicitly cast linestring in function
.connection_summary
to avoid error inCPL_geos_union
(@panhypersebastos).
- Adjust URLs to GitHub account due to renaming munterfinger to @munterfi.
- Bugfix: Add
set_freemium
topic to index in pkgdown.
- Rename the rate-limit-related variable
HERE_RPS
toHERE_FREEMIUM
, and the functionhereR::set_rate_limit()
tohereR::set_freemium()
. Use theHERE_FREEMIUM
environment variable to determine a plan-specific size of sub-matrices in thehereR::route_matrix()
function (@szaboildi, #138). - Deprecate
hereR::set_rate_limit()
(closes #137). - Add option to use qualified queries in
geocode()
(closes #136).
- Add parameter to allow filtering transport modes in
connection()
(closes #130). - Bugfix: Swapped the origin and destination IDs in
route_matrix()
. Removed query optimization because switching the IDs results in reversed route information (closes #129). - Update outdated URLs in package documentation.
- Enable
optimize
parameter to chose from "balanced", "quality" and "performance" inisoline()
(closes #119). - Remove deprecated parameters in
route()
,route_matrix()
andisoline()
. - Add specific user-agent to the requests:
hereR/<version> R/<version> (<platform>)
. - Add option to deactivate rate limits
set_rate_limit(FALSE)
. - Bugfix: Add rate limits in RPS (requests per seconds) to async requests to the APIs; move dependency for requests from curl to crul package (closes #122).
- Bugfix:
isoline()
now handles multipart polygons (MULTIPOLYGON) if received by the API (closes #121). - Add area and feature avoidance in
route()
(closes #117).
- Use styler package and use
tyler::tidyverse_style()
to format the package. - All lintr issues are solved, except from line length issues (limit of 80 characters).
- Avoid drop of the
sfc
class of the geometry column when there is only one geometry/row in adata.table
(closes #111). - Return
queryScore
ingeocode()
results asscore
column (closes #109). - Silence sf messages of
sf::st_union
call inconnection(..., summary = TRUE)
. - Added section id to
route()
,intermodal_route()
andconnection()
.
- Update
route_matrix()
from Routing API v7.2 (calculatematrix) to Matrix Routing API v8 (see #87). - Update
isoline()
from Routing API v7.2 (calculateisoline) to Isoline Routing API v8 (see #87). - Update
route()
from Routing API v7.2 (calculateroute) to Routing API v8, which brings the elevation to the route geometries (closes #87). Note: Currently arrival time is not yet supported. - Return ISO state and country code in
geocode()
with the updated API v7.2 as it did with the previous API v6 (closes #98). - Deprecate parameters
mode
andtype
inroute()
,route_matrix()
andisoline()
, usetransport_mode
androuting_mode
instead. - Fix parsing of timezones in
connection()
andintermodal_route()
(closes #94). - Fix not conditional use of suggested packages in vignettes (closes #101).
- Fix issue with delimiter for POST requests by changing it from a space
" "
to a space pipe combination" | "
(closes #102). - Added contribution guidelines, code of conduct and issue templates.
- Send timezone offset in requests to the HERE APIs to avoid conversion to local timezone (closes #85).
- Added option to return alternative results in
geocode()
. The alternative locations are ranked according to the order from the Geocoder API (closes #83 and #81).
- Fix of the request generation for the Geocoder API: Removal of the
&
in front of theapiKey
argument (closes #73 and #74).
- Upgrade Geocoder API version used in
geocode()
from v6.2 to v7 (closes #52). Note: The argumentautocomplete
is defunct and the argumentaddresses
is deprecated, useaddress
instead. - Change default geometry in the return value of
geocode()
to position coordinates (display position) and return access coordinates (navigation position) as additional column in well-known text format (closes #53). - Consistent columns in the return value of
geocode()
andreverse_geocode()
independent of the input address level (closes #58). - Upgrade Geocoder API version used in
reverse_geocode()
from v6.2 to v7. Note: The argumentlandmarks
is defunct. - Replace Geocoder API Autocomplete v6.2 with Geocoder API Autosuggest v7. Note: The function
autocomplete()
is defunct, please useautosuggest()
. - Upgrade Public Transit API version used in
connection()
andstation()
from v3 to v8 (closes #62). Note: Now the geometries (LINESTRING) of the pedestrian sections are also included in the public transport routes returned byconnection()
. - Sign in to CodeFactor.io and add badge to track code quality.
- Defunct
set_proxy()
andunset_proxy()
. Use a global proxy configuration for R in~/.Renviron
instead.
- Change example and API mock data for
intermodal_route()
from Berlin to Switzerland, as the service is now also available there. - Force mapview to use 'classical' leaflet/htmlwidgets rendering (which embeds data directly in the html) and not the file format 'flatgeobuf' in vignette building (see #54).
- Temporarily deactivate all maps in the vignettes to solve the issues on CRAN (closes #54). With the next release of mapview >= v2.9.1 on CRAN the maps will be reactivated.
- Changed CI from Travis to GitHub actions.
- Added automated pkgdown page build after pull requests and commits on master.
- Extended test coverage on defunct function calls.
- Added
sf
argument togeocode()
function. IfTRUE
, the default, an {sf} object is returned, ifFALSE
a data.frame withlng
andlat
columns. (@dpprdan, #44) - Intermodal Routing API: Routes The new feature
intermodal_route()
adds support for requesting intermodal routes between given pairs of locations.
- Added
set_verbose()
function to define (for the current R session) if the hereR package should message information about the number of requests sent and data received (default =FALSE
). - Reactivate maps with multiple layers since the mapview issue #271 is fixed.
- lwgeom no longer exports
st_make_valid()
, but sf does. Thereforelwgeom
is moved from the package dependencies to the suggestions (see #38).
- Defunct the deprecated
traffic()
function, which has been replaced by the functionsflow()
andincident()
. - Recreated package test data, api mocks and examples with sf 0.9-0 (see #36).
- Increased the dependency on the sf package to version 0.9-0 due to a different CRS handling (for more information about the changes in sf, see here). Note: Older versions of the sf package are no longer supported.
- Temporarily deactivated maps with multiple layers until the mapview issue #271 is fixed.
- There are no more missing M:N route combinations in the the edge list returned by
route_matrix()
(see #30). - All lengths of
origin
anddestination
are now accepted as input inroute_matrix()
(see #31). - Added two new functions
flow()
andincident()
to access traffic flow and incidents from the Traffic API. Deprecated thetraffic()
function. - Reduced the dependent version of R from 3.5.0 to 3.3.0 as the package is still functional but runs on more systems.
- HERE has updated the authentication process and changed from APP_ID and APP_CODE to a single API_KEY. Therefore
set_auth()
andunset_auth()
are defunct and replaced byset_key()
andunset_key()
(see #23).
NOTE:.Deprecated()
was skipped because the API endpoints have also changed. After updating to a version greater than 0.2.1 the authentication must be adjusted. - Added a minimum jam factor filter to
traffic(..., product = "flow")
. Now it is possible to only retrieve flow information of severe congestion with a jam factor greater thanmin_jam_factor
, which speeds up requests. - Public Transit API: Transit route The new feature
connection()
implements requesting the most efficient and relevant transit connections between given pairs of locations. - Public Transit API: Find stations nearby The new feature
station()
retrieves nearby public transit stations with corresponding line information. - Package cosmetics: Renamed the
start
parameter toorigin
and unified the utilization of thedatetime
andarrival
parameters inroute()
,route_matrix()
,isoline()
andconnection()
. - Adjusted the handling of datetime objects in the requests: All
c("POSIXct", "POSIXt")
inputs for the requests (mostlydeparture
) are converted to UTC using.encode_datetime()
and the responses are parsed and returned in the input timezone (or if missing:Sys.timezone()
) using.parse_datetime()
(see #28). - Added
@import sf
to the package documentation to ensuresf
objects are handled correctly. - Added
departure
andarrival
datetime column to the return value ofroute()
,route_matrix()
andisoline()
. - Removed
data.table
object type from function return values. New: Puredata.frame
orsf, data.frame
because this integrates better with other packages (e.g. theoverline2()
function from thestplanr
package).
- Enhanced
traffic()
: Clarified thatfrom_dt
andto_dt
have no effect on the traffic flow (product = "flow"
). Traffic flow is always real-time. Detailed documentation of the variables in the return value. - Improved coverage of
testthat
. - Added an
id
column to the output ofgeocode()
and removed the id orderedrow.names
in order to be consistent with other functions of the package. Using theid
column the addresses to geocode can be joined to the coordinates after geocoding (see #9). - Added an
id
column also toautocomplete()
,reverse_geocode()
,route()
,isoline()
,traffic()
andweather()
. Using theid
column the result can be joined to the input. - Fixed the handling of failing requests in
.get_content()
. Theid
column is still in correct order, even if there are failing requests in a function call (see #17). - Added
rownames() <- NULL
to all functions before returning the result. - Renamed the
city
column in the returned object ofweather()
tostation
, as it stands for the name of the nearest meteorological station. - Test for empty geometries in the input POIs and AOIs and throw an error if some are found (see #16).
- Enhanced
geocode()
: In the case of empty responses the row names match the index of the geocoded addresses. Improved input checks. Option to use autocomplete by settingautocomplete = TRUE
. - Geocoder API: Autocomplete The new feature
autocomplete()
allows autocompleting addresses. - Geocoder API: Reverse geocode The new feature
reverse_geocode()
implements reverse geocoding POIs in order to retrieve suggestions for addresses or landmarks.
First release of the hereR package, an sf-based interface to the HERE REST APIs. The packages binds to the following HERE APIs:
- Geocoder API: Get coordinates (lng, lat) from addresses.
- Routing API: Routing directions, isolines and travel distance or time matrices, optionally incorporating the current traffic situation.
- Traffic API: Real-time traffic flow and incident information.
- Destination Weather API: Weather forecasts, reports on current weather conditions, astronomical information and weather alerts at a specific location.
Locations and routes are returned as sf
objects and tables as data.table
objects.