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 SDK
key
Initializing for iOS
- Add
import YandexMapsMobile
toios/Runner/AppDelegate.swift
- Add
YMKMapKit.setApiKey("YOUR_API_KEY")
insidefunc application
inios/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 methodonCreate
inandroid/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
X
iOS SupportX
Android SupportX
Adding and removing PlacemarksX
Receiving Placemark tap eventsX
Moving around the mapX
Setting map boundsX
Showing current user locationX
Styling the mapX
Adding and removing PolylinesX
Adding and removing PolygonsX
Adding and removing CirclesX
Address suggestions