maps 0.2.1 maps: ^0.2.1 copied to clipboard
A cross-platform geographic maps package. Supports Apple MapKit, Bing Maps, and Google Maps. Works in all platforms supported by Flutter, including browsers.
Overview #
Cross-platform geographic maps for Flutter applications.
This is an early-stage version and lots of things are still missing or broken.
Pull requests are welcome! The package is licensed under the Apache License 2.0.
Links #
Getting started #
1.Add dependency #
In pubspec.yaml:
dependencies:
maps: ^0.2.1
Add the following in ios/Runner/Info.plist
:
<key>io.flutter.embedded_views_preview</key>
<true/>
2.Use #
MapAppLauncher #
MapAppLauncher launches map applications.
The following implementations are available:
- MapAppLauncher.appleMaps launches Apple Maps (native application - the user must have an iOS device)
- MapAppLauncher.bingMaps launches Bing Maps (website)
- MapAppLauncher.googleMaps launches Google Maps (website or native application)
- MapAppLauncher.defaultInstance launches one of the above.
import 'package:maps/maps.dart';
Future<void> main() async {
// Use default map app
await MapAppLauncher.defaultInstance.launch(
query: 'Paris'
);
}
MapWidget #
MapWidget shows a map:
import 'package:flutter/material.dart';
import 'package:maps/maps.dart';
void main() {
runApp(const MaterialApp(
home: Scaffold(
body: MapWidget(
size: Size(300, 500),
camera: MapCamera(
query: 'Paris',
),
markers: [
MapMarker(
query: 'Eiffel Tower',
),
],
adapter: MapAdapter.platformSpecific(
ios: AppleNativeAdapter(),
// Bing Maps iframe API does not necessarily require API credentials
// so we use it in the example.
otherwise: BingMapsIframeAdapter(),
),
),
),
));
}
Assuming that you have enabled Flutter for Web, you can run:
flutter run -d chrome
Supported map providers #
Apple Maps APIs #
iOS #
- AppleMapsNativeAdapter enables you to use Apple MapKit. The current implementation depends on the Flutter package apple_maps_flutter, a package by a third-party developer.
- The adapter doesn't require API credentials.
- You need to edit
ios/Runner/Info.plist
(see "recommended configuration file changes").
Javascript #
- AppleMapsJsAdapter enables you to uses Apple MapKit JS.
- The adapter requires you to have API credentials (ECDSA P-256 key pair).
Images #
- AppleMapsStaticAdapter enables you to use Apple Maps Web Snapshots API.
- The adapter requires you to have API credentials (ECDSA P-256 key pair).
Bing Maps APIs #
Javascript #
- BingMapsJsAdapter enables you to use Bing Maps Javascript API.
- The adapter requires an API key, which you can get at Bing Maps API website.
Iframes #
- BingMapsIframeAdapter enables you to uses Bing Maps Custom Map URLs.
- Note that markers and many other features are unsupported by Bing Maps Custom Map URLs.
- The adapter does NOT necessarily require an API key.
Images #
- BingMapsStaticAdapter enables you to uses Bing Maps REST API for static maps.
- The adapter requires an API key, which you can get at Bing Maps API website.
Google Maps APIs #
Android / iOS native SDK #
Use the separate package maps_adapter_google_maps.
Javascript #
- GoogleMapsJsAdapter enables you to use Google Maps Javascript API.
- The adapter requires an API key, which you can get at Google Maps API website.
Iframes #
- GoogleMapsIframeAdapter enables you to use Google Maps Embed API.
- Note that markers and many other features are unsupported by Google Maps Embed API.
- The adapter requires an API key, which you can get at Google Maps API website.
Images #
- GoogleMapsStaticAdapter enables you to use Google Maps Static API.
- The adapter requires an API key, which you can get at Google Maps API website.
Contributing? #
- Pull requests are welcome.
- Please test your changes manually using the "example" application in the repository.