tmaptools (version 1.0)

geocode_OSM: Geocodes a location using OpenStreetMap Nominatim

Description

Geocodes a location (based on a search query) to coordinates and a bounding box. Similar to geocode from the ggmap package. It uses OpenStreetMap Nominatim. For processing large amount of queries, please read the usage policy (http://wiki.openstreetmap.org/wiki/Nominatim_usage_policy).

Usage

geocode_OSM(q, projection = NULL, return.first.only = TRUE, details = FALSE, as.data.frame = NA, as.SPDF = FALSE, server = "http://nominatim.openstreetmap.org")

Arguments

q
a character (vector) that specifies a search query. For instance "India" or "CBS Weg 11, Heerlen, Netherlands".
projection
projection in which the coordinates and bounding box are returned. Either a CRS object or a character value. If it is a character, it can either be a PROJ.4 character string or a shortcut. See get_proj4 for a list of shortcut values. By default latitude longitude coordinates.
return.first.only
Only return the first result
details
provide output details, other than the point coordinates and bounding box
as.data.frame
Return the output as a data.frame. If FALSE, a list is returned with at least two items: "coords", a vector containing the coordinates, and "bbox", the corresponding bounding box. By default false, unless q contains multiple queries
as.SPDF
Return the output as SpatialPointsDataFrame. If TRUE, return.first.only will be set to TRUE.
server
OpenStreetMap Nominatim server name. Could also be a local OSM Nominatim server.

Value

If as.SPDF then a SpatialPointsDataFrame is returned. Else, if as.data.frame, then a data.frame is returned, else a list.

See Also

rev_geocode_OSM, bb

Examples

Run this code
## Not run: 
# if (require(tmap)) {
#     geocode_OSM("India")
#     geocode_OSM("CBS Weg 1, Heerlen")
#     geocode_OSM("CBS Weg 1, Heerlen", projection = "rd")
# 
#     data(metro)
# 
#     # sample 5 cities from the metro dataset
#     five_cities <- metro[sample(length(metro), 5), ]
# 
#     # obtain geocode locations from their long names
#     five_cities_geocode <- geocode_OSM(five_cities$name_long)
#     sp::coordinates(five_cities_geocode) <- ~lon+lat
# 
#     # change to interactive mode
#     current.mode <- tmap_mode("view")
# 
#     # plot metro coordinates in red and geocode coordinates in blue
#     # zoom in to see the differences
#     tm_shape(five_cities) +
#     	tm_dots(col = "blue") +
#     tm_shape(five_cities_geocode) +
#     	tm_dots(col = "red")
# 
#     # restore current mode
#     tmap_mode(current.mode)
# }
# ## End(Not run)

Run the code above in your browser using DataLab