[R-sig-Geo] Geocoding addresses restricted to one country

Mathias Moser m@tmo@er @end|ng |rom wu@@c@@t
Wed Feb 5 17:02:19 CET 2020


The Google API accepts two parameters which influence the selection of
matches [1]: "region" uses domains (.lr in case of Liberia) and
"bounds" uses a bounding box (long/lat coords) to prioritize certain
results. 

While geocode()/mutate_geocode() do not expose these explicitly they
can probably be added using the "inject" parameter as key-value pairs
(see help(geocode)).

Hth, Mathias

-- 
Mathias Moser

Institute for Economic Geography & GIScience
WU Vienna

[1] 
https://developers.google.com/maps/documentation/geocoding/intro#geocoding

On Wed, 2020-02-05 at 16:06 +0100, Melanie Graeser wrote:
> Dear users,
> 
> I am trying to geocode locations of firms in Liberia from a vector of
> addresses. My problem is that many addresses are not geocoded in
> Liberia, but instead all over the world. I would like to restrict the
> API geocoding response to only show results that are in Liberia. I am
> using the Google API and library(ggmap). My code is the following:
> 
> register_google(key = "myAPIkey")
> 
> test <- mutate_geocode(nec07, Address) # nec07 is my df of firms,
> Address is a vector of firm addresses
> 
> test1<-test %>% drop_na(lon) # dropping all NAs where geocoding
> returned no result to be able to create sf object to see if locations
> are correctly geocoded
> 
> test1_sf <- st_as_sf(test1, coords = c("lon", "lat"), crs = 4326)
> 
> mapview(test1_sf) # Only 2000 out of 5000 firms are geocoded in
> Liberia, the rest in other countries
> 
> I would be very grateful if you know of any options to restrict
> geocoding to return locations only in Liberia.
> 
> Many thanks in advance!
> 
> Melanie
> 
>



More information about the R-sig-Geo mailing list