Search packages, repositories and app categories

Package detailsv1.1.1

flutter_google_maps_webservices

Google maps web services for flutter (Geocoding, Places, Directions, Distance Matrix, Photos, Timezone, Static Map)

AndroidiOSWebmacOSWindowsLinux
30-day downloads
17.4K
Likes
27
Pub points
150

Install package

flutter pub add flutter_google_maps_webservices

Package Overview

Package selection guidance compiled from public package information, community data, and project usage.

A Flutter package that provides access to Google Maps Web Services, enabling developers to integrate geocoding, places search, directions, distance matrix, photo retrieval, timezone information, and static maps into their applications. It supports multiple platforms including Android, iOS, Web, macOS, Windows, and Linux. The package simplifies API interactions with clean Dart interfaces, making it easier to fetch map-related data without managing HTTP requests manually. Ideal for apps requiring location intelligence and map-based features.

Use cases

  • Geocoding addresses to coordinates
  • Searching nearby places
  • Calculating routes and travel directions
  • Fetching distance and duration between locations
  • Displaying static map images
  • Retrieving timezone details based on location

Key features

  • Supports all major Google Maps Web Services
  • Cross-platform compatibility
  • Simple, intuitive Dart API
  • Built-in error handling
  • Asynchronous request management
  • Lightweight and easy to integrate

Suitable for

  • Location-aware applications
  • Travel and navigation apps
  • Real estate and property finders
  • Delivery and logistics services
  • Tourism and discovery platforms
  • Any app needing map data integration

Considerations

  • Requires a Google Cloud Platform API key
  • Rate limits apply based on usage tier
  • Additional costs may incur with high usage
  • Internet connection required for all operations
  • API key must be secured in production environments

Original README

Original README snapshot from the linked source repository. Visit the repository for the latest content.

flutter_google_maps_webservices

Build Status codecov Star on Github Buy Me A Coffee

General Information

This is the Dart Library for Google Maps Webservices. You can find the Google Maps Platform Documentation here, but if you're new to this, you may want to start here.

API Key

To use this library you need a Web API key. Follow these steps to acquire the key relevant to your particular Dart application.

These keys are not to be used individually as Android or iOS API keys, but they are instead meant to be used in your Dart application.

Availables API

Usage

Geocoding
import "package:flutter_google_maps_webservices/geocoding.dart";

final geocoding = GoogleMapsGeocoding(apiKey: "<API_KEY>");
final geocoding = GoogleMapsGeocoding(apiKey: "<API_KEY>", httpClient: BrowserClient());
final geocoding = GoogleMapsGeocoding(baseUrl: "http://myProxy.com");

GeocodingResponse response = await geocoding.searchByAddress("1600 Amphitheatre Parkway, Mountain View, CA");
Places
import "package:flutter_google_maps_webservices/places.dart";

final places = GoogleMapsPlaces(apiKey: "<API_KEY>");
final places = GoogleMapsPlaces(apiKey: "<API_KEY>", httpClient: BrowserClient());
final places = GoogleMapsPlaces(baseUrl: "http://myProxy.com");

PlacesSearchResponse response = await places.searchNearbyWithRadius(Location(lat: 31.0424, lng: 42.421), 500);
PlacesSearchResponse response = await places.searchNearbyWithRankby(Location(lat: 31.0424, lng: 42.421), "distance");
PlacesSearchResponse response = await places.searchByText("123 Main Street");

PlacesDetailsResponse response = await places.getDetailsByPlaceId("PLACE_ID");
PlacesDetailsResponse response = await places.getDetailsByReference("REF");
Timezone
import "package:flutter_google_maps_webservices/timezone.dart";

final timezone = GoogleMapsTimezone(apiKey: "<API_KEY>");
final timezone = GoogleMapsTimezone(apiKey: "<API_KEY>", httpClient: BrowserClient());
final timezone = GoogleMapsTimezone(baseUrl: "http://myProxy.com");

TimezoneResponse response = await timezone.getByLocation(Location(lat: 31.0424, lng: 42.421));
TimezoneResponse response = await timezone.getByLocation(Location(lat: 31.0424, lng: 42.421), timestamp: DateTime.utc(2019, 4, 24));
TimezoneResponse response = await timezone.getByLocation(Location(lat: 31.0424, lng: 42.421), timestamp: DateTime.utc(2019, 4, 24), language: 'es');
Static Map

  StaticMap mapStatic = StaticMap(
    apiKey,
    markers: List.from([
      Location(lat: 23.721160, lng: 90.394435),
      Location(lat: 23.732322, lng: 90.385142),]
    ),
    path: Path(
      enc: 'svh~F`j}uOusC`bD',
      color: 'black',
    ),
    scale: 'false'
  )

  String url = mapStatic.getUrl();

  Image.network(url)


Proxy

In case of using a proxy the baseUrl can be set. The apiKey is not required in case the proxy sets it. (Not storing the apiKey in the app is good practice)

Feature Requests and Issues

Please file feature requests and bugs at the issue tracker.

Categories

Dependencies

Dependency list 3 items

Source repository

Projects using this package