yandex_mapkit 3.4.0 copy "yandex_mapkit: ^3.4.0" to clipboard
yandex_mapkit: ^3.4.0 copied to clipboard

A Flutter plugin for integrating Yandex.MapKit in Android and iOS applications.

yandex_mapkit #

A flutter plugin for displaying yandex maps on iOS and Android.

Android iOS
Support SDK 21+ iOS 12+

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 #

  1. Go to https://developer.tech.yandex.ru/services/
  2. Create a MapKit Mobile SDK key

Setup for iOS #

  • Specify your API key and locale in ios/Runner/AppDelegate.swift. It should be similar to the following
import UIKit
import Flutter
import YandexMapsMobile

@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
  override func application(
    _ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
  ) -> Bool {
    YMKMapKit.setLocale("YOUR_LOCALE") // Your preferred language. Not required, defaults to system language
    YMKMapKit.setApiKey("YOUR_API_KEY") // Your generated API key
    GeneratedPluginRegistrant.register(with: self)
    return super.application(application, didFinishLaunchingWithOptions: launchOptions)
  }
}
  • Uncomment platform :ios, '9.0' in ios/Podfile and change to platform :ios, '12.0'
# Uncomment this line to define a global platform for your project
platform :ios, '12.0'

Setup for Android #

  • Add dependency implementation 'com.yandex.android:maps.mobile:4.4.0-full' to android/app/build.gradle
dependencies {
    implementation 'com.yandex.android:maps.mobile:4.4.0-full'
}
  • Specify your API key and locale in your custom application class.
    If you don't have one the you can create it like so

android/app/src/main/.../MainApplication.java

import android.app.Application;

import com.yandex.mapkit.MapKitFactory;

public class MainApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        MapKitFactory.setLocale("YOUR_LOCALE"); // Your preferred language. Not required, defaults to system language
        MapKitFactory.setApiKey("YOUR_API_KEY"); // Your generated API key
    }
}

android/app/src/main/.../MainApplication.kt

import android.app.Application

import com.yandex.mapkit.MapKitFactory

class MainApplication: Application() {
  override fun onCreate() {
    super.onCreate()
    MapKitFactory.setLocale("YOUR_LOCALE") // Your preferred language. Not required, defaults to system language
    MapKitFactory.setApiKey("YOUR_API_KEY") // Your generated API key
  }
}
  • In your android/app/src/main/AndroidManifest.xml

Add permissions <uses-permission android:name="android.permission.INTERNET"/> and <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

Find application tag and replace android:name to the name of your custom application class prefixed by a dot .. In the end it should look like the following

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <application
      android:name=".MainApplication" >

Usage #

For usage examples refer to example app

image

Additional remarks #

YandexMapkit always works with one language only.
Due to native constraints after the application is launched it can't be changed.

Android

Hybrid Composition

By default android views are rendered using Hybrid Composition. To render the YandexMap widget on Android using Virtual Display(old composition), set AndroidYandexMap.useAndroidViewSurface to false. Place this anywhere in your code, before using YandexMap widget.

AndroidYandexMap.useAndroidViewSurface = false;

Features #

  • Working with Placemarks/Polylines/Polygons/Circles - adding, updating, removing, tap events, styling
  • Working with collections of map objects
  • Working with clusters
  • Moving around the map
  • Setting map bounds
  • Showing current user location
  • Styling the map
  • Address suggestions
  • Basic driving/bicycle routing
  • Basic address direct/reverse search
  • Workking with geo objects
  • Showing current traffic conditions
198
likes
130
pub points
96%
popularity

Publisher

unverified uploader

A Flutter plugin for integrating Yandex.MapKit in Android and iOS applications.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (LICENSE)

Dependencies

collection, equatable, flutter, flutter_plugin_android_lifecycle

More

Packages that depend on yandex_mapkit