All locations are first converted to SpatialPoints
objects. The sp::over() function is then used to determine which
polygon from SPDF
each location falls in. The dataframe row associated
with each polygon is then associated with each location.
getSpatialData(
longitude,
latitude,
SPDF,
useBuffering = FALSE,
verbose = FALSE
)
Vector or dataframe of data.
Vector of longitudes in decimal degrees East.
Vector of latitudes in decimal degrees North.
Object of class SpatialPolygonsDataFrame.
Logical flag specifying the use of location buffering to find the nearest polygon if no target polygon is found.
Logical flag controlling detailed progress statements.
Occasionally for coastal locations the precise coordinates
lie outside the boundaries of a low resolution SpatialPolygonsDataFrame.
To account for this any location that remains unassociated after the first
pass is then buffered to create a small circle around the original location.
All polygons are then checked to see if there is any intersection with the
now larger buffered locations. Each point is then checked for an intersecting
polygon at the following radii: 1km, 2km, 5km, 10km, 20km, 50km, 100km, 200km.
If a buffered location is more than 200km away from any polygon, a value of
NA
(or data frame row with all NA
s) is returned for that
location.
Missing or invalid values in the incoming longitude
or latitude
vectors
result in NA
s at those positions in the returned vector or data frame.