You can use newplaces
which is a R wrapper package to the Google Places API (New API released in the end of 2023).
In your example you can run the following:
# Install package from github:
remotes::install_github("aTnT/newplaces")
library(newplaces)
# Set your API key:
set_api_key(key = "YOUR_MAPS_API_KEY")
# Get restaurants within a 500 m radius around a location:
myPlaces <- text_search(textQuery = "restaurants", location = "bias", circle_center_latitude = 40.75797, circle_center_longitude = -73.98554, circle_radius = 500)
You can access a tibble dataframe with the places at myPlaces$places
:
myPlaces$places
# A tbl_json: 20 x 77 tibble with a "JSON" attribute
..JSON document.id name id nationalPhoneNumber internationalPhoneNu…¹ formattedAddress rating googleMapsUri
<chr> <int> <chr> <chr> <chr> <chr> <chr> <dbl> <chr>
1 "{\"n… 1 plac… ChIJ… (212) 221-3800 +1 212-221-3800 200 W 44th St, … 4.5 https://maps…
2 "{\"n… 2 plac… ChIJ… (212) 302-2000 +1 212-302-2000 1515 Broadway @… 4.4 https://maps…
3 "{\"n… 3 plac… ChIJ… <NA> <NA> 229 W 43rd St, … 4.8 https://maps…
4 "{\"n… 4 plac… ChIJ… (212) 343-3355 +1 212-343-3355 1501 Broadway, … 4.4 https://maps…
5 "{\"n… 5 plac… ChIJ… (212) 918-1330 +1 212-918-1330 1567 Broadway, … 4 https://maps…
6 "{\"n… 6 plac… ChIJ… (332) 249-8600 +1 332-249-8600 1440 Broadway, … 4.3 https://maps…
7 "{\"n… 7 plac… ChIJ… (212) 333-3254 +1 212-333-3254 2 Times Sq, New… 4.1 https://maps…
8 "{\"n… 8 plac… ChIJ… (212) 581-6464 +1 212-581-6464 326 W 46th St, … 4.4 https://maps…
9 "{\"n… 9 plac… ChIJ… (212) 921-2400 +1 212-921-2400 620 8th Ave, Ne… 4.2 https://maps…
10 "{\"n… 10 plac… ChIJ… (212) 354-5013 +1 212-354-5013 136 W 46th St, … 4.6 https://maps…
11 "{\"n… 11 plac… ChIJ… (646) 434-2448 +1 646-434-2448 575 7th Ave, Ne… 4.5 https://maps…
12 "{\"n… 12 plac… ChIJ… <NA> <NA> 135 W 50th St, … 3.9 https://maps…
13 "{\"n… 13 plac… ChIJ… (917) 565-9044 +1 917-565-9044 132 W 43rd St, … 4.4 https://maps…
14 "{\"n… 14 plac… ChIJ… (646) 435-0135 +1 646-435-0135 691 8th Ave, Ne… 4.4 https://maps…
15 "{\"n… 15 plac… ChIJ… (212) 869-3965 +1 212-869-3965 67 W 44th St, N… 4.2 https://maps…
16 "{\"n… 16 plac… ChIJ… (212) 597-5126 +1 212-597-5126 121 W 45th St, … 4.4 https://maps…
17 "{\"n… 17 plac… ChIJ… (212) 997-1270 +1 212-997-1270 36 W 48th St, N… 4.2 https://maps…
18 "{\"n… 18 plac… ChIJ… (212) 265-5400 +1 212-265-5400 155 W 43rd St, … 4.2 https://maps…
19 "{\"n… 19 plac… ChIJ… (212) 398-7440 +1 212-398-7440 151 W 46th St, … 4.3 https://maps…
20 "{\"n… 20 plac… ChIJ… (212) 997-4540 +1 212-997-4540 254 W 47th St, … 4.4 https://maps…
# ℹ abbreviated name: ¹internationalPhoneNumber
# ℹ 68 more variables: websiteUri <chr>, utcOffsetMinutes <dbl>, adrFormatAddress <chr>, businessStatus <chr>,
# priceLevel <chr>, userRatingCount <dbl>, iconMaskBaseUri <chr>, iconBackgroundColor <chr>, takeout <lgl>,
# delivery <lgl>, dineIn <lgl>, curbsidePickup <lgl>, reservable <lgl>, servesBreakfast <lgl>,
# servesLunch <lgl>, servesDinner <lgl>, servesBeer <lgl>, servesWine <lgl>, servesBrunch <lgl>,
# servesVegetarianFood <lgl>, primaryType <chr>, shortFormattedAddress <chr>, outdoorSeating <lgl>,
# liveMusic <lgl>, menuForChildren <lgl>, servesCocktails <lgl>, servesDessert <lgl>, servesCoffee <lgl>, …
You could also use the function argument includedType
the specify a business type if your textQuery
specifies something else.
More info at https://github.com/aTnT/newplaces
name=YOURNAME
part stands for? API name? – Pus