A comprehensive Rust library to interact with the Google Places API, providing modules for Place Search, Place Details, Photos, and more. This library is designed to make working with the Google Places API intuitive and efficient for developers.
This library is a work in progress. Some features may not be fully implemented or could be subject to breaking changes. Use it at your own risk.
- Place Details
- Place Photos [TODO]
- Nearby Search
- Find Place Search
- Text Search
- Configurable parameters: language, input types, location bias, and more
Add the following to your project
cargo add google_places_api
To start using the library, initialize the GooglePlacesAPI
instance:
use google_places_api::GooglePlacesAPI;
let api = GooglePlacesAPI::new(); // API key is loaded from the `GOOGLE_PLACES_API_KEY` environment variable.
use google_places_api::models::Location;
use google_places_api::GooglePlacesAPI;
use google_places_api::place_search::NearbySearchResult;
#[tokio::main]
async fn main() {
let api = GooglePlacesAPI::new();
let mut place_search = api.place_search();
let result: NearbySearchResult = place_search
.nearby_search() // San Francisco coordinates with a 1.5 km radius
.with_location(Location::new(37.7749, -122.4194))
.with_radius(1500)
.execute()
.await
.unwrap();
println!("Nearby Places: {:?}", result.display());
}
use google_places_api::GooglePlacesAPI;
use google_places_api::models::PlaceDetailsResult;
#[tokio::main]
async fn main() {
let api = GooglePlacesAPI::new();
let place_search = api.place_search();
let result: PlaceDetailsResult = place_search
.place_details() // Replace with a valid Place ID
.with_place_id("ChIJVXealLU_xkcRja_At0z9AGY")
.execute()
.await
.unwrap();
println!("Place Details: {:?}", result.display());
}
use google_places_api::GooglePlacesAPI;
use google_places_api::place_search::FindPlaceSearchResult;
#[tokio::main]
async fn main() {
let api = GooglePlacesAPI::new();
let mut place_search = api.place_search();
let result: FindPlaceSearchResult = place_search
.find_place()
.with_input("Googleplex")
.with_input_type("textquery")
.execute()
.await
.unwrap();
println!("Find Place Result: {:?}", result.display());
}
This library relies on the GOOGLE_PLACES_API_KEY
environment variable. Ensure it is set before running your application.
export GOOGLE_PLACES_API_KEY=your_api_key_here
- Find Place Search: Search for a place by text query or phone number.
- Nearby Search: Search for places near a specific location.
- Text Search: Search for places using a free-text query.
- Fetch detailed information about a specific place using its Place ID.
- Retrieve photos of a place using a photo reference.
Contributions are welcome! Please follow the guidelines below:
- Fork the repository.
- Create a feature branch.
- Commit your changes.
- Open a pull request.
This project is licensed under the MIT License. See the LICENSE
file for details.
For support or questions, please open an issue in the GitHub repository.
This library is not an official Google product and is not affiliated with or endorsed by Google.