yandex_mapkit
A flutter plugin for displaying yandex maps on iOS and Android.
Disclaimer: This project uses Yandex Mapkit which belongs to Yandex
When using Mapkit refer to these terms of use
Getting Started
Generate your API Key
- Go to https://developer.tech.yandex.com
- Create a
MapKit mobile SDKkey
Initializing for iOS
- Add
import YandexMapsMobiletoios/Runner/AppDelegate.swift - Add
YMKMapKit.setApiKey("YOUR_API_KEY")insidefunc applicationinios/Runner/AppDelegate.swift - Specify your API key in the application delegate
ios/Runner/AppDelegate.swift - For Flutter version less than 1.22 add
<key>io.flutter.embedded_views_preview</key> <true/>inside<dict>tag inios/Runner/Info.plist - Uncomment
platform :ios, '9.0'inios/Podfile
ios/Runner/AppDelegate.swift:
For Swift 4.0 and lesser
import UIKit
import Flutter
import YandexMapsMobile
@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
override func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?
) -> Bool {
YMKMapKit.setApiKey("YOUR_API_KEY")
GeneratedPluginRegistrant.register(with: self)
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
}
}
For Swift 4.2 and greater
import UIKit
import Flutter
import YandexMapsMobile
@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
override func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
YMKMapKit.setApiKey("YOUR_API_KEY")
GeneratedPluginRegistrant.register(with: self)
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
}
}
Initializing for Android
- Add dependency
implementation 'com.yandex.android:maps.mobile:4.0.0-full'toandroid/app/build.gradle - Add permissions
<uses-permission android:name="android.permission.INTERNET"/>and<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>toandroid/app/src/main/AndroidManifest.xml - Add
import com.yandex.mapkit.MapKitFactory;toandroid/app/src/main/.../MainActivity.java - Add
MapKitFactory.setApiKey("YOUR_API_KEY");inside methodonCreateinandroid/app/src/main/.../MainActivity.java - Specify your API key in the application delegate
android/app/src/main/.../MainActivity.java
android/app/build.gradle:
dependencies {
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
implementation 'com.yandex.android:maps.mobile:4.0.0-full'
}
For Java projects
android/app/src/main/.../MainActivity.java:
import androidx.annotation.NonNull;
import io.flutter.embedding.android.FlutterActivity;
import io.flutter.embedding.engine.FlutterEngine;
import io.flutter.plugins.GeneratedPluginRegistrant;
import com.yandex.mapkit.MapKitFactory;
public class MainActivity extends FlutterActivity {
@Override
public void configureFlutterEngine(@NonNull FlutterEngine flutterEngine) {
MapKitFactory.setApiKey("YOUR_API_KEY");
super.configureFlutterEngine(flutterEngine);
}
}
For Kotlin projects
android/app/src/main/.../MainActivity.kt
import androidx.annotation.NonNull
import io.flutter.embedding.android.FlutterActivity
import io.flutter.embedding.engine.FlutterEngine
import io.flutter.plugins.GeneratedPluginRegistrant
import com.yandex.mapkit.MapKitFactory
class MainActivity: FlutterActivity() {
override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) {
MapKitFactory.setApiKey("YOUR_API_KEY")
super.configureFlutterEngine(flutterEngine)
}
}
Usage
For usage examples refer to example app

Features
XiOS SupportXAndroid SupportXAdding and removing PlacemarksXReceiving Placemark tap eventsXMoving around the mapXSetting map boundsXShowing current user locationXStyling the mapXAdding and removing PolylinesXAdding and removing PolygonsXAdding and removing CirclesXAddress suggestions