yandex_mapkit

Creator: coderz1093

Last updated:

Add to Cart

Description:

yandex mapkit

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
Features #

Working with Placemarks/Polylines/Polygons/Circles - adding, updating, removing, tap events, styling
Working with collections of map objects and clusters
Setting map bounds and limiting user interactions
Showing current user location
Address suggestions
Basic driving/bicycle/pedestrian routing
Basic address direct/reverse search
Working with geo objects
Support for both lite and full variants

Getting Started #
Generate your API Key #

Go to https://developer.tech.yandex.ru/services/
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)
}
}
copied to clipboard

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'
copied to clipboard

Specify your desired variant of native library.
Available options: lite and full. navikit variant is currently not supported.
Defaults to lite.

Include the following line right after ENV['COCOAPODS_DISABLE_STATS'] = 'true'
ENV['YANDEX_MAPKIT_VARIANT'] = '<YOUR_DESIRED_VARIANT>'
copied to clipboard
Setup for Android #

Specify your desired variant of native library.
Available options: lite and full. navikit variant is currently not supported.
Defaults to lite.

Add the following line to android/gradle.properties
yandexMapkit.variant=<YOUR_DESIRED_VARIANT>
copied to clipboard

Add dependency implementation 'com.yandex.android:maps.mobile:4.6.1-<YOUR_DESIRED_VARIANT>' to android/app/build.gradle

dependencies {
implementation 'com.yandex.android:maps.mobile:4.6.1-<YOUR_DESIRED_VARIANT>'
}
copied to clipboard

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
}
}
copied to clipboard
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
}
}
copied to clipboard

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" >
copied to clipboard
Usage #
For usage examples refer to example app

Additional remarks #
Language
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;
copied to clipboard

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.