Giter Club home page Giter Club logo

yandex_mapkit's Introduction

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

  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'
  • 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>'

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>
  • Add dependency implementation 'com.yandex.android:maps.mobile:4.5.1-<YOUR_DESIRED_VARIANT>' to android/app/build.gradle
dependencies {
    implementation 'com.yandex.android:maps.mobile:4.5.1-<YOUR_DESIRED_VARIANT>'
}
  • 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

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;

yandex_mapkit's People

Contributors

cream-cheeze avatar dcrow avatar elisar4 avatar goolpe avatar ilagent avatar ishokov-dzhafar avatar just-kip avatar lazydev96 avatar r-i-c-o avatar ryufitreet avatar saske06 avatar starikovvm avatar tatianabelova avatar tumist76 avatar umcherrel avatar vanyasem avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

yandex_mapkit's Issues

Map is not working in release mode

I set my api key and in debug mode everything works fine on Android. But when I build in release mode map screen become gray and not working at all. Any suggestions?

Map crash

Guys,
Please have a look at the video:
https://drive.google.com/file/d/1dr1Ffqe2qroXqC5b4gzpsBYljNZvALFg/view

I slightly modified example app to demo the crash.

There are no crash reports. Profiler says the app consumes roughly 30MB memory.
I checked native code and didn't found any issues, everything seems to be correct.

If I add objects on map, e.g. custom placemark icons crashes occur more often.
Any ideas on what goes wrong or how to overcome the issue are greatly appreciated.

Not works on Android 4.1.2?

I have tried run example in physical Android 4.1.2 and it shows white space with logging:
E/PlatformViewsController(12075): Trying to use platform views with API 16, required API level is: 20

are some method deprecated?

I want to use YandexSearch, Camera tracking but it does not give me any suggestions. So, I can't add it to my project. are they deprecated?

But they are showing in the last changelog of yandex_mapkit.

API_KEY Problem with Kotlin

Hi. I have added my API key to my app. But your example only contains Java version of adding API Key. How can I add Kotlin version?

package com.example.courier_map

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("MY API KEY IS HERE")
        GeneratedPluginRegistrant.registerWith(flutterEngine)
    }
}

I have done this version, but it does not work. It gives the following view:
error image

?> I have granted permissions.

How can I solve it?

Блокировка поворота карты, направление Placemark

    1. Иногда нужно сделать запрет на поворот карты, не нашел как это сделать через апи плагина.
  1. В официальном API у Placemark есть свойства direction и rotationType, которые позволяют сохранять направление объекта при повороте карты.

Add support for binary images as Placemark icon

Right now we can only use assets images as Placemark icons, however, it is common use case when you want to change color of icon before adding to map, or just use dynamic icons preloaded from server-side.
It will be great to have ability to use binary images as Placemark icon instead of just assets path

Empty grid in example app on iOS

I launched the application from the example with my appKey. On iOS Simulator and real device the widget is working, but the map is not displayed. However works on android.

Снимок экрана 2019-03-28 в 14 09 52

При запуске приложения в Visula Studio Code(Flutter) выводит "Exited(1)" в консоли

При попытке запуска приложения выводит Exited(1) и никакой ошибки не выводиться. Не знаю почему это происходит, это произошло когда добавил Yandex MapKit в проект, а до этого запускался спокойно. Данный код снизу уже отдельный проект для теста.

android/app/build.gradle:

dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'com.yandex.android:mapkit:3.4.0'
implementation 'com.yandex.android:search:3.4.0'
}

android/app/src/main/AndroidManifest.xml:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.yandex_mapkit_example">
<!-- io.flutter.app.FlutterApplication is an android.app.Application that
     calls FlutterMain.startInitialization(this); in its onCreate method.
     In most cases you can leave this as-is, but you if you want to provide
     additional functionality it is fine to subclass or reimplement
     FlutterApplication and put your custom class here. -->
     **<uses-permission android:name="android.permission.INTERNET">
     <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION">**
<application
    android:name="io.flutter.app.FlutterApplication"
    android:label="yandex_mapkit_example"
    android:icon="@mipmap/ic_launcher">
    <activity
        android:name=".MainActivity"
        android:launchMode="singleTop"
        android:theme="@style/LaunchTheme"
        android:configChanges="orientation|keyboardHidden|keyboard
        |screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
        android:hardwareAccelerated="true"
        android:windowSoftInputMode="adjustResize">
        <!-- Specifies an Android theme to apply to this Activity as soon as
             the Android process has started. This theme is visible to the user
             while the Flutter UI initializes. After that, this theme continues
             to determine the Window background behind the Flutter UI. -->
        <meta-data
          android:name="io.flutter.embedding.android.NormalTheme"
          android:resource="@style/NormalTheme"
          />
        <!-- Displays an Android View that continues showing the launch screen
             Drawable until Flutter paints its first frame, then this splash
             screen fades out. A splash screen is useful to avoid any visual
             gap between the end of Android's launch screen and the painting of
             Flutter's first frame. -->
        <meta-data
          android:name="io.flutter.embedding.android.SplashScreenDrawable"
          android:resource="@drawable/launch_background"
          />
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>
    <!-- Don't delete the meta-data below.
         This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
    <meta-data
        android:name="flutterEmbedding"
        android:value="2" />
</application>
</manifest>

MainActivity.Kt:
package com.example.yandex_mapkit_example

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) {
    GeneratedPluginRegistrant.registerWith(flutterEngine);
    MapKitFactory.setApiKey("My-Api-Key")
}
}

Использование в приложении:

 import 'package:flutter/material.dart';
 import 'package:yandex_mapkit/yandex_mapkit.dart';

void main() {
runApp(MaterialApp(
home: MapScreen(),
));
}

class MapScreen extends StatefulWidget {
MapScreen({Key key}) : super(key: key);

@override
_MapScreenState createState() => _MapScreenState();
}

class _MapScreenState extends State<MapScreen> {
@override
Widget build(BuildContext context) {
return YandexMap();
}
}

Что нужно сделать, чтобы решить данную проблему?

при попытке собрать приложение для ios выдает ошибку

когда ввожу команду pod install выходит следующая ошибка(менял deployment target до последней версии но ошибка остается):

[!] CocoaPods could not find compatible versions for pod "yandex_mapkit":
In Podfile:
yandex_mapkit (from .symlinks/plugins/yandex_mapkit/ios)

Specs satisfying the yandex_mapkit (from .symlinks/plugins/yandex_mapkit/ios) dependency were found, but they required a higher minimum deployment target.

Do not run on Android

java.lang.UnsatisfiedLinkError: Couldn't load c++_shared
at com.yandex.runtime.Runtime.loadLibrary(Runtime.java:124)
at com.yandex.runtime.Runtime.init(Runtime.java:99)
at com.yandex.mapkit.MapKitFactory.initialize(MapKitFactory.java:25)
at com.yandex.mapkit.search.SearchFactory.initialize(SearchFactory.java:14)
at com.unact.yandexmapkit.YandexSearch.(YandexSearch.java:37)
at com.unact.yandexmapkit.YandexSearch.registerWith(YandexSearch.java:45)
at com.unact.yandexmapkit.YandexMapkitPlugin.registerWith(YandexMapkitPlugin.java:21)
at io.flutter.plugins.GeneratedPluginRegistrant.registerWith(GeneratedPluginRegistrant.java:20)
at kz.kunde_app.MainActivity.configureFlutterEngine(MainActivity.kt:11)
at io.flutter.embedding.android.FlutterActivityAndFragmentDelegate.onAttach(FlutterActivityAndFragmentDelegate.java:181)
at io.flutter.embedding.android.FlutterActivity.onCreate(FlutterActivity.java:410)
at android.app.Activity.performCreate(Activity.java:7802)
at android.app.Activity.performCreate(Activity.java:7791)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1300)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3246)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3410)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2017)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7397)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:935)

Memory leak on iOS

Hello! I found a problem, which does not allow me (I think, many other developers can have this problem too) to use Yandex MapKit on iOS and publish the app with this SDK at the AppStore because reviewers often stumble on crushes of the app at review and reject the app by this purpose.
I research this situation and compared memory usage on iOS with Google Maps (Native view too), and found, that YM used more and more memory until the memory is overflow and the app crashes.
This is two links Yandex MapKit Video Example on iPhone 6S and Google Maps Video Example on iPhone 6S, and information about my environment:

yandex_mapkit version is 0.3.10

flutter doctor --verbose

[✓] Flutter (Channel stable, 1.20.3, on Mac OS X 10.15.6 19G2021, locale ru-RU)
    • Flutter version 1.20.3 at /Users/alphamikle/Development/flutter
    • Framework revision 216dee60c0 (8 days ago), 2020-09-01 12:24:47 -0700
    • Engine revision d1bc06f032
    • Dart version 2.9.2

 
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.0)
    • Android SDK at /Users/alphamikle/Library/Android/sdk
    • Platform android-30, build-tools 30.0.0
    • Java binary at: /Users/alphamikle/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/193.6626763/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 11.7)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.7, Build version 11E801a
    • CocoaPods version 1.9.3

[✓] Android Studio (version 4.0)
    • Android Studio at /Users/alphamikle/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/193.6626763/Android Studio.app/Contents
    • Flutter plugin version 47.1.2
    • Dart plugin version 193.7361
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)

[✓] VS Code (version 1.48.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.13.2

[✓] Connected device (1 available)
    • iPhone 6S (mobile) • 7398b18b54f9d9c6d2369ff2b9213f4e826214af • ios • iOS 13.7

with console output from the XCode:

2020-09-10 00:29:04.004611+0300 Runner[1970:645418] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: map, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/map/tiles
2020-09-10 00:29:04.004820+0300 Runner[1970:645418] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: sat, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/sat/tiles
2020-09-10 00:29:04.004935+0300 Runner[1970:645418] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: vskl2, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/vskl2/tiles
2020-09-10 00:29:04.005049+0300 Runner[1970:645418] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: vmap2, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/vmap2/tiles
2020-09-10 00:29:05.571983+0300 Runner[1970:645418] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: map, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/map/tiles
2020-09-10 00:29:05.572351+0300 Runner[1970:645418] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: sat, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/sat/tiles
2020-09-10 00:29:05.572548+0300 Runner[1970:645418] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: vskl2, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/vskl2/tiles
2020-09-10 00:29:05.572734+0300 Runner[1970:645418] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: vmap2, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/vmap2/tiles
2020-09-10 00:29:07.945669+0300 Runner[1970:645418] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: map, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/map/tiles
2020-09-10 00:29:07.946028+0300 Runner[1970:645418] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: sat, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/sat/tiles
2020-09-10 00:29:07.946271+0300 Runner[1970:645418] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: vskl2, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/vskl2/tiles
2020-09-10 00:29:07.946498+0300 Runner[1970:645418] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: vmap2, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/vmap2/tiles
2020-09-10 00:29:09.453134+0300 Runner[1970:645419] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: map, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/map/tiles
2020-09-10 00:29:09.453823+0300 Runner[1970:645419] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: sat, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/sat/tiles
2020-09-10 00:29:09.454056+0300 Runner[1970:645419] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: vskl2, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/vskl2/tiles
2020-09-10 00:29:09.454276+0300 Runner[1970:645419] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: vmap2, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/vmap2/tiles
2020-09-10 00:29:10.982424+0300 Runner[1970:645418] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: map, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/map/tiles
2020-09-10 00:29:10.982824+0300 Runner[1970:645418] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: sat, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/sat/tiles
2020-09-10 00:29:10.983053+0300 Runner[1970:645418] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: vskl2, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/vskl2/tiles
2020-09-10 00:29:10.983277+0300 Runner[1970:645418] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: vmap2, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/vmap2/tiles
2020-09-10 00:29:12.765429+0300 Runner[1970:645419] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: map, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/map/tiles
2020-09-10 00:29:12.765796+0300 Runner[1970:645419] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: sat, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/sat/tiles
2020-09-10 00:29:12.765977+0300 Runner[1970:645419] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: vskl2, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/vskl2/tiles
2020-09-10 00:29:12.766146+0300 Runner[1970:645419] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: vmap2, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/vmap2/tiles
2020-09-10 00:29:14.359621+0300 Runner[1970:645419] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: map, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/map/tiles
2020-09-10 00:29:14.360780+0300 Runner[1970:645419] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: sat, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/sat/tiles
2020-09-10 00:29:14.361033+0300 Runner[1970:645419] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: vskl2, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/vskl2/tiles
2020-09-10 00:29:14.361277+0300 Runner[1970:645419] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: vmap2, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/vmap2/tiles
2020-09-10 00:29:16.030389+0300 Runner[1970:645418] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: map, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/map/tiles
2020-09-10 00:29:16.030807+0300 Runner[1970:645418] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: sat, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/sat/tiles
2020-09-10 00:29:16.031039+0300 Runner[1970:645418] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: vskl2, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/vskl2/tiles
2020-09-10 00:29:16.031259+0300 Runner[1970:645418] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: vmap2, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/vmap2/tiles
2020-09-10 00:29:17.646388+0300 Runner[1970:645419] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: map, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/map/tiles
2020-09-10 00:29:17.646808+0300 Runner[1970:645419] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: sat, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/sat/tiles
2020-09-10 00:29:17.647057+0300 Runner[1970:645419] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: vskl2, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/vskl2/tiles
2020-09-10 00:29:17.647306+0300 Runner[1970:645419] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: vmap2, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/vmap2/tiles
2020-09-10 00:29:18.714589+0300 Runner[1970:645418] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: map, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/map/tiles
2020-09-10 00:29:18.714833+0300 Runner[1970:645418] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: sat, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/sat/tiles
2020-09-10 00:29:18.714958+0300 Runner[1970:645418] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: vskl2, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/vskl2/tiles
2020-09-10 00:29:18.715085+0300 Runner[1970:645418] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: vmap2, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/vmap2/tiles
2020-09-10 00:29:19.016886+0300 Runner[1970:645418] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: map, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/map/tiles
2020-09-10 00:29:19.017111+0300 Runner[1970:645418] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: sat, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/sat/tiles
2020-09-10 00:29:19.017231+0300 Runner[1970:645418] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: vskl2, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/vskl2/tiles
2020-09-10 00:29:19.017341+0300 Runner[1970:645418] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: vmap2, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/vmap2/tiles
2020-09-10 00:29:19.351769+0300 Runner[1970:645419] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: map, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/map/tiles
2020-09-10 00:29:19.351996+0300 Runner[1970:645419] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: sat, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/sat/tiles
2020-09-10 00:29:19.352136+0300 Runner[1970:645419] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: vskl2, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/vskl2/tiles
2020-09-10 00:29:19.352256+0300 Runner[1970:645419] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: vmap2, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/vmap2/tiles
2020-09-10 00:29:19.697682+0300 Runner[1970:645419] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: map, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/map/tiles
2020-09-10 00:29:19.697931+0300 Runner[1970:645419] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: sat, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/sat/tiles
2020-09-10 00:29:19.698066+0300 Runner[1970:645419] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: vskl2, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/vskl2/tiles
2020-09-10 00:29:19.698188+0300 Runner[1970:645419] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: vmap2, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/vmap2/tiles
2020-09-10 00:29:20.202333+0300 Runner[1970:645418] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: map, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/map/tiles
2020-09-10 00:29:20.202561+0300 Runner[1970:645418] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: sat, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/sat/tiles
2020-09-10 00:29:20.202681+0300 Runner[1970:645418] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: vskl2, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/vskl2/tiles
2020-09-10 00:29:20.202802+0300 Runner[1970:645418] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: vmap2, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/vmap2/tiles
2020-09-10 00:29:20.513422+0300 Runner[1970:645419] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: map, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/map/tiles
2020-09-10 00:29:20.513655+0300 Runner[1970:645419] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: sat, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/sat/tiles
2020-09-10 00:29:20.513806+0300 Runner[1970:645419] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: vskl2, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/vskl2/tiles
2020-09-10 00:29:20.513922+0300 Runner[1970:645419] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: vmap2, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/vmap2/tiles
2020-09-10 00:29:20.801178+0300 Runner[1970:645419] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: map, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/map/tiles
2020-09-10 00:29:20.801831+0300 Runner[1970:645419] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: sat, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/sat/tiles
2020-09-10 00:29:20.801967+0300 Runner[1970:645419] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: vskl2, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/vskl2/tiles
2020-09-10 00:29:20.802084+0300 Runner[1970:645419] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: vmap2, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/vmap2/tiles
2020-09-10 00:29:21.097020+0300 Runner[1970:645419] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: map, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/map/tiles
2020-09-10 00:29:21.097232+0300 Runner[1970:645419] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: sat, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/sat/tiles
2020-09-10 00:29:21.097347+0300 Runner[1970:645419] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: vskl2, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/vskl2/tiles
2020-09-10 00:29:21.097462+0300 Runner[1970:645419] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: vmap2, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/vmap2/tiles
2020-09-10 00:29:21.383284+0300 Runner[1970:645419] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: map, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/map/tiles
2020-09-10 00:29:21.383525+0300 Runner[1970:645419] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: sat, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/sat/tiles
2020-09-10 00:29:21.383643+0300 Runner[1970:645419] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: vskl2, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/vskl2/tiles
2020-09-10 00:29:21.383756+0300 Runner[1970:645419] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: vmap2, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/vmap2/tiles
2020-09-10 00:29:22.407411+0300 Runner[1970:645418] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: map, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/map/tiles
2020-09-10 00:29:22.407773+0300 Runner[1970:645418] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: sat, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/sat/tiles
2020-09-10 00:29:22.407979+0300 Runner[1970:645418] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: vskl2, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/vskl2/tiles
2020-09-10 00:29:22.408157+0300 Runner[1970:645418] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: vmap2, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/vmap2/tiles
2020-09-10 00:29:28.995759+0300 Runner[1970:645419] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: map, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/map/tiles
2020-09-10 00:29:28.996358+0300 Runner[1970:645419] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: sat, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/sat/tiles
2020-09-10 00:29:28.996646+0300 Runner[1970:645419] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: vskl2, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/vskl2/tiles
2020-09-10 00:29:28.996904+0300 Runner[1970:645419] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: vmap2, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/vmap2/tiles
2020-09-10 00:29:31.340376+0300 Runner[1970:645418] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: map, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/map/tiles
2020-09-10 00:29:31.340709+0300 Runner[1970:645418] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: sat, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/sat/tiles
2020-09-10 00:29:31.340969+0300 Runner[1970:645418] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: vskl2, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/vskl2/tiles
2020-09-10 00:29:31.341140+0300 Runner[1970:645418] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: vmap2, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/vmap2/tiles
2020-09-10 00:29:33.457009+0300 Runner[1970:645419] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: map, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/map/tiles
2020-09-10 00:29:33.458149+0300 Runner[1970:645419] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: sat, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/sat/tiles
2020-09-10 00:29:33.458408+0300 Runner[1970:645419] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: vskl2, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/vskl2/tiles
2020-09-10 00:29:33.458634+0300 Runner[1970:645419] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: vmap2, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/vmap2/tiles
2020-09-10 00:29:35.677971+0300 Runner[1970:645418] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: map, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/map/tiles
2020-09-10 00:29:35.679019+0300 Runner[1970:645418] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: sat, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/sat/tiles
2020-09-10 00:29:35.679265+0300 Runner[1970:645418] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: vskl2, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/vskl2/tiles
2020-09-10 00:29:35.679488+0300 Runner[1970:645418] yandex::maps::mapkit::layers::createGroundLayerUpdater <warn>: Layer: vmap2, url: https://proxy.mob.maps.yandex.net:443/mapkit2/layers/2.x/vmap2/tiles
2020-09-10 00:29:35.821360+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.821564+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.821631+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.821723+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.821827+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.821916+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.825702+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.826019+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.828163+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.828367+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.828529+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.828677+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.828832+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.828977+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.829226+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.829359+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.829819+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.829969+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.830109+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.830277+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.830430+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.830615+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.830778+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.830905+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.839854+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.840064+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.840188+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.840312+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.840430+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.840548+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.840663+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.840784+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.844585+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.844722+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.844834+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.845440+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.845749+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.845874+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.845939+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.845993+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.846105+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.846210+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.846268+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.846321+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.846447+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.846504+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.846774+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.846827+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.906548+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.906692+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.906765+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.906822+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.906877+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.906929+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.907002+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.907211+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.907957+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.908393+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.908525+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.908637+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.908746+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.908856+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.908966+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.909075+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.914288+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.920033+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.920212+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.920338+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.920547+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.920692+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.920841+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.920954+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.945449+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.945943+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.946101+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.946223+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.946345+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.946462+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.946580+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.946702+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.955478+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.955626+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.956795+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.957045+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.957163+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.957277+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.957393+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.957506+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.962196+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.962649+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.963337+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.964021+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.965040+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.965192+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.965306+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:35.965416+0300 Runner[1970:645314] yandex::maps::mapkit::map::MapImpl::onMemoryWarning <warn>: Got memory warning
2020-09-10 00:29:39.995704+0300 Runner[1970:645407] [VERBOSE-2:profiler_metrics_ios.mm(184)] Error retrieving thread information: (ipc/send) invalid destination port
Message from debugger: Terminated due to memory issue

I hope that you can help solve this problem. And in addition, I found two (first and a second) similar issues, but don't try at now solutions from there (I'll try it in few next days)

For example, I want to try this code from first issue:

class MapPlatformView: NSObject, FlutterPlatformView {
    
    let wrapperView: UIView
    let interactiveMap: YandexMap

    func view() -> UIView {
        return wrapperView
    }
    
    init(withFrame frame: CGRect,
         viewIdentifier viewId: Int64,
         arguments args: Any?,
         registrar: FlutterPluginRegistrar) {

        wrapperView = UIView(frame: frame)
        interactiveMap = YandexMap(withFrame: frame)

        super.init()
       //TODO: add constraints
        wrapperView.addSubView(interactiveMap.view)
    }
    
    deinit {
        interactiveMap.view.removeFromSuperview()
    }
}

Execution failed for task ':yandex_mapkit:verifyReleaseResources'.

При попытке собрать релизную сборку для android, вылезает такая ошибка:
FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ':yandex_mapkit:verifyReleaseResources'.

java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aapt2Exception: Android resource linking failed
/Users//Documents/projects/*****/build/yandex_mapkit/intermediates/res/merged/release/values/values.xml:275: error: resource android:attr/fontVariationSettings not found.
/Users/
/Documents/projects/*****/build/yandex_mapkit/intermediates/res/merged/release/values/values.xml:276: error: resource android:attr/ttcIndex not found.
error: failed linking references.

Проект у меня уже мигрировал на androidx. Не могли бы вы сделать переход на androidx?

YandexMap is always rebuilt, and that causes lags in scrolling

Yandex Map is used as an element of SliverList.
During scrolling wnen approaching map's AndroidView element the scroll lags and element is always rebuilt.
Other elements like Text or other native flutter components don't get rebuild when just scrolling list.

buildgraddle бесконечно собирает приложения не выдовая никаких ошибок

Flutter создает MainActivity на котлин, переписал все зависимости на gradle и все зависимости в pubspec.yaml.

#Код для MainActivity.kt:

package com.gazstation

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) {
        GeneratedPluginRegistrant.registerWith(flutterEngine);
        MapKitFactory.setApiKey("MY API KKEY)
    }
}

#dependencies (app/build.gradle):

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'com.yandex.android:mapkit:3.4.0'
    implementation 'com.yandex.android:search:3.4.0'
}

#pubspec.yaml :

dependencies:
  flutter:
    sdk: flutter
  yandex_mapkit: ^0.3.9

#Код создания виджета карт:

import 'package:flutter/material.dart';
import 'package:yandex_mapkit/yandex_mapkit.dart';

class MapScreen extends StatefulWidget {
  MapScreen({Key key}) : super(key: key);

  @override
  _MapScreenState createState() => _MapScreenState();
}

class _MapScreenState extends State<MapScreen> {
  @override
  Widget build(BuildContext context) {
    return YandexMap();
  }
}

#Код main.dart

import 'package:flutter/material.dart';
import 'package:yandex_map_kit/map_screen.dart';

void main() {
  runApp(MaterialApp(
    home: MapScreen(),
  ));
}

failed to get last known location

Здравствуйте! При запуске экрана с картой, получаю в логах данную ошибку.

E/com.yandex.runtime.sensors.internal.LastKnownLocation( 9122): failed to get last known location: java.lang.SecurityException: "gps" location provider requires ACCESS_FINE_LOCATION permission.

В манифесте:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

[!] Unable to determine Swift version for the following pods..

if I try to start debugging on iOS - I get this issue.

Resolving dependencies of `Podfile`
    Comparing resolved specification to the sandbox manifest
    -> Installing yandex_mapkit (0.0.1)
      - Running pre install hooks
    [!] Unable to determine Swift version for the following pods:
    - `yandex_mapkit` does not specify a Swift version and none of the targets (`Runner`) integrating it have the `SWIFT_VERSION` attribute set. Please contact the author or set the `SWIFT_VERSION` attribute in at least one of the targets that integrate this pod.
    /Library/Ruby/Gems/2.3.0/gems/cocoapods-1.6.1/lib/cocoapods/installer/xcode/target_validator.rb:115:in `verify_swift_pods_swift_version'
    /Library/Ruby/Gems/2.3.0/gems/cocoapods-1.6.1/lib/cocoapods/installer/xcode/target_validator.rb:37:in `validate!'
    /Library/Ruby/Gems/2.3.0/gems/cocoapods-1.6.1/lib/cocoapods/installer.rb:459:in `validate_targets'
    /Library/Ruby/Gems/2.3.0/gems/cocoapods-1.6.1/lib/cocoapods/installer.rb:138:in `install!'
    /Library/Ruby/Gems/2.3.0/gems/cocoapods-1.6.1/lib/cocoapods/command/install.rb:48:in `run'
    /Library/Ruby/Gems/2.3.0/gems/claide-1.0.2/lib/claide/command.rb:334:in `run'
    /Library/Ruby/Gems/2.3.0/gems/cocoapods-1.6.1/lib/cocoapods/command.rb:52:in `run'
    /Library/Ruby/Gems/2.3.0/gems/cocoapods-1.6.1/bin/pod:55:in `<top (required)>'
    /usr/local/bin/pod:23:in `load'
    /usr/local/bin/pod:23:in `<main>'

Doctor summary:

[✓] Flutter (Channel dev, v1.2.1, on Mac OS X 10.14.3 18D109, locale ru-RU)
[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
[✓] iOS toolchain - develop for iOS devices (Xcode 10.1)
[✓] Android Studio (version 3.2)
[✓] VS Code (version 1.31.1)
[✓] Connected device (2 available)

I added use_frameworks! and config.build_settings['SWIFT_VERSION'] = '4.2' but nothing changed

Не отображается UserLayer в Android

При активации метода showUserLayer и moveToUser в Android ничего не происходит, хотя в iOS всё работает, как ожидается.
Разрешение на геолокацию есть, в логи выводится, что granted. На этом же девайсе в приложении Maps от Yandex и в приложении Maps от Google геолокация отображается, только в моём приложении какие-то проблемы.

Пробовал пример из Examples/MapLayers - тот же самый результат: в iOS работает, в Android - не отображается локация пользователя при вызове showUserLayer, и при вызове moveToUser тоже ничего не происходит.

Подскажите, пожалуйста, в чём может быть проблема?

Код:

class _HomeScreenState extends State<HomeScreen> {
YandexMapController controller;
  PermissionStatus _permissionStatus = PermissionStatus.undetermined;
  UserRepository _userRepository;

@override
  void initState() {
    super.initState();
    _requestPermission();
  }

  Future<void> _requestPermission() async {
    setState(() {
      Permission.location
          .request()
          .then((status) => _permissionStatus = status);
    });
  }

  void _showMessage(BuildContext context, Text text) {
    final ScaffoldState scaffold = Scaffold.of(context);
    scaffold.showSnackBar(
      SnackBar(
        content: text,
        action: SnackBarAction(
            label: 'OK', onPressed: scaffold.hideCurrentSnackBar),
      ),
    );
  }

Widget _configuredYandexMap() {
    return YandexMap(
      onMapCreated: (YandexMapController yandexMapController) async {
        controller = yandexMapController;
        if (_permissionStatus == PermissionStatus.granted) {
          await controller.showUserLayer(
              iconName: 'assets/images/maps_arrow_icon.png',
              arrowName: 'assets/images/maps_arrow_icon.png',
              accuracyCircleFillColor: Colors.green.withOpacity(0.5));
          await controller.moveToUser();
        } else {
          _showMessage(
              context, const Text('Location permission was NOT granted'));
        }
      },
    );
  }

  Widget _locationButton() {
    return IconButton(
      icon: Image.asset('assets/images/maps_user_icon.png'),
      onPressed: () async {
        if (_permissionStatus == PermissionStatus.granted) {
          await controller.moveToUser();
        } else {
          _showMessage(
              context, const Text('Location permission was NOT granted'));
        }
      },
    );
  }

@override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Stack(
        children: [
          _configuredYandexMap(),
          Positioned(
            bottom: 51,
            right: 28,
            width: 112,
            height: 112,
            child: _locationButton(),
          ),
        ],
      ),
    );
  }
}

Скриншоты:

photo_2020-11-03 17 56 53

Simulator Screen Shot - iPhone 8 - 2020-11-03 at 18 00 02

P.S.

Закрываю Issue. Всё заработало после того, как добавил implementation 'com.google.android.gms:play-services-location:17.1.0' в build.gradle
yandex/mapkit-android-demo#44 (comment)

'<yandex_mapkit/yandex_mapkit-Swift.h>' file not found

Здравствуйте!
В XCode, при сборке вызывается ошибка.

yandex_mapkit-0.3.0/ios/Classes/YandexMapkitPlugin.m:2:9: fatal error: '<yandex_mapkit/yandex_mapkit-Swift.h>' file not found

MissingPluginException (No implementation found for method setApiKey on channel yandex_map)

Hello!
I have a problem! I will be grateful for the help!
In the console errors (screen attached):

Launching lib \ main.dart on Nokia 6 1 in debug mode ...
Initializing gradle ...
Resolving dependencies ...
Gradle task 'assembleDebug' ...
Built build \ app \ outputs \ apk \ debug \ app-debug.apk.
Installing build \ app \ outputs \ apk \ app.apk ...
E / flutter (28908): [ERROR: flutter / shell / common / shell.cc (178)] Dart Error: Unhandled exception:
E / flutter (28908): MissingPluginException (No implementation found for method setApiKey on channel yandex_map)
E / flutter (28908): # 0 MethodChannel.invokeMethod (package: flutter / src / services / platform_channel.dart: 300: 7)
E / flutter (28908): <asynchronous suspension>
E / flutter (28908): # 1 YandexMapkit.setup (package: flutter_app_002 / yandex_mapkit / yandex_mapkit.dart: 20: 42)
E / flutter (28908): <asynchronous suspension>
E / flutter (28908): # 2 main (package: flutter_app_002 / main.dart: 5: 22)
E / flutter (28908): <asynchronous suspension>
E / flutter (28908): # 3 _startIsolate. <Anonymous closure> (dart: isolate / runtime / libisolate_patch.dart: 289: 19)
E / flutter (28908): # 4 _RawReceivePortImpl._handleMessage (dart: isolate / runtime / libisolate_patch.dart: 171: 12)
Syncing files to device Nokia 6 1 ...

Not sure if I use the widget correctly.
I created the New Flutter Application in Android Studio, then put yandex_mapkit.dart file and the src and assets folders in the lib folder.
Then I copied the code from example/lib/main.dart into my main.dart file. I had to correct the path to import.
Then I copied the code from pubspec.yaml into my pubspec.yaml file.

P.S.: Similar errors:
apptreesoftware/flutter_google_map_view#16
But there are problems with flutter_google_map_view.
I tried to update through the dev and master channels, as advised there, but without success.

Add2app usage causes memory leak of activity

We are about to release our app with a flutter page for the first time but suffering from a memory leak while using yandex_mapkit plugin with flutter_boost.


When we profile our application on Android Studio we realized that every time we open the flutter page from the native application, a new BoostFlutterActivity created but the old one never cleared from memory. Here is the screenshots of profiling the application after visiting the flutter page several times:

Routed to Flutter page WITH yandex_mapkit 10 times
Android:
image

iOS:
image

Routed to same Flutter page WITHOUT yandex_mapkit 10 times

Android:
image

iOS:
image


Steps to Reproduce

We are just setting the API key for yandex mapkit to initialize.

 INativeRouter router = (context, url, urlParams, requestCode, exts) -> {
            String  assembleUrl= Utils.assembleUrl(url,urlParams);
            PageRouter.openPageByUrl(context, assembleUrl, urlParams);
        };

        BoostLifecycleListener boostLifecycleListener= new BoostLifecycleListener(){
            @Override
            public void beforeCreateEngine() {
            }

            @Override
            public void onEngineCreated() {
                // Setting yandex map API key
                MapKitFactory.setApiKey("xxxxxxxx-xxx-xxx");
            }

            @Override
            public void onPluginsRegistered() {
            }

            @Override
            public void onEngineDestroy() {
            }

        };

        Platform platform= new FlutterBoost
                .ConfigBuilder(App.this, router)
                .isDebug(true)
                .whenEngineStart(FlutterBoost.ConfigBuilder.ANY_ACTIVITY_CREATED)
                .renderMode(FlutterView.RenderMode.texture)
                .lifecycleListener(boostLifecycleListener)
                .build();

        FlutterBoost.instance().init(platform);

Here is how we create BoostFlutterActivity:

val intent = BoostFlutterActivity
                            .withNewEngine()
                            .url(pageName[path].orEmpty())
                            .params(params)
                            .backgroundMode(BoostFlutterActivity.BackgroundMode.opaque)
                            .build(context)
if (context is Activity) {
    context.startActivityForResult(intent, requestCode)
} else {
    context.startActivity(intent)
}

Flutter Boost Version: 1.12.13+1
Target Platform: iOS & Android
Target OS version/browser: Mac OS X Mojave v10.14.5
Devices: All devices
yandex_mapkit flutter package version: 0.3.7
yandex_mapkit version: 3.5.0

flutter doctor -v

[✓] Flutter (Channel stable, v1.12.13+hotfix.9, on Mac OS X 10.14.5 18F132, locale en-TR)
    • Flutter version 1.12.13+hotfix.9 at /Users/user/flutter
    • Framework revision f139b11009 (3 weeks ago), 2020-03-30 13:57:30 -0700
    • Engine revision af51afceb8
    • Dart version 2.7.2

 
[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
    • Android SDK at /Users/user/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-29, build-tools 29.0.2
    • ANDROID_HOME = /Users/user/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b4-5784211)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 11.2.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.2.1, Build version 11B53
    • CocoaPods version 1.7.4

[✓] Android Studio (version 3.6)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 45.0.1
    • Dart plugin version 192.7761
    • Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b4-5784211)

[✓] Connected device (1 available)
    • Redmi K20 Pro • 9fd69279 • android-arm64 • Android 10 (API 29)

• No issues found!

Polyline Support

Feature to add/remove polyline object on map
Polyline options:

  • coordinates: List<Point>
  • strokeColor: Color
  • strokeWidth: double
  • outlineColor: Color
  • outlineWidth: double
  • isGeodesic: bool
  • dashLength: double
  • dashOffset: double
  • gapLength: double

Refactor example app

Currently adding new features(their demonstration in example) has some problems:

  1. Clutters up the main screen which makes it difficult to find the needed feature
  2. Doesn't support long feature descriptions

New example app should fix those two problems and should allow for new features to be added easily.
Preferably also some contribution guidelines for "How to add new features in example"

Crash on iOS when moving with zoom parameter

I have a button to move map on tap:

final double zoom = 14.7;
await _controller.move(
  point: Point(latitude: userLocation.latitude, longitude: userLocation.longitude),
  zoom: zoom
);

This results to crash only on iOS in Crashlytics without stacktrace:
YandexMapController.swift line 160
YandexMapController.move(_:)

Line 160 in YandexMapController.swift is:
image

If I remove zoom parameter, everything works fine. Also, no problem on Android.
Version of the library: ^0.3.9
Flutter doctor: Flutter (Channel stable, 1.20.1, on Mac OS X 10.15.5 19F101, locale ru)

Все запускается работает но изображения самих карт нет

[✓] Flutter (Channel beta, v1.14.6, on Mac OS X 10.13.6 17G10021, locale ru-RU)
• Flutter version 1.14.6 at /Users/seoinetru/Downloads/flutter
• Framework revision fabeb2a16f (3 weeks ago), 2020-01-28 07:56:51 -0800
• Engine revision c4229bfbba
• Dart version 2.8.0 (build 2.8.0-dev.5.0 fc3af737c7)

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
• Android SDK at /Users/seoinetru/Library/Android/sdk
• Android NDK location not configured (optional; useful for native profiling support)
• Platform android-29, build-tools 29.0.2
• Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)
• All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 10.2)
• Xcode at /Users/seoinetru/Downloads/Xcode.app/Contents/Developer
• Xcode 10.2, Build version 10E125
• CocoaPods version 1.8.4

[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 3.5)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin version 43.0.1
• Dart plugin version 191.8593
• Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)

[✓] Connected device (3 available)
• SM G975F • R58M351M10R • android-arm64 • Android 10 (API 29)
• Chrome • chrome • web-javascript • Google Chrome 79.0.3945.130
• Web Server • web-server • web-javascript • Flutter Tools

How to activate dark mode?

Android yandex map kit has isNigthMode function which activates dark theme, what is the alternative here? Thank you in advance!

Map not showed at kotlin-based app

Rejecting re-init on previously-failed class java.lang.Class<com.google.android.gms.location.LocationAvailability>: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/internal/zzbej;
I/com.gazstation(30452):   at com.yandex.mapkit.user_location.UserLocationLayer com.yandex.mapkit.internal.MapKitBinding.createUserLocationLayer(com.yandex.mapkit.map.MapWindow) (MapKitBinding.java:-2)
I/com.gazstation(30452):   at void com.unact.yandexmapkit.YandexMapController.<init>(int, android.content.Context, io.flutter.plugin.common.PluginRegistry$Registrar) (YandexMapController.java:60)
I/com.gazstation(30452):   at io.flutter.plugin.platform.PlatformView com.unact.yandexmapkit.YandexMapFactory.create(android.content.Context, int, java.lang.Object) (YandexMapFactory.java:20)
I/com.gazstation(30452):   at void io.flutter.plugin.platform.SingleViewPresentation.onCreate(android.os.Bundle) (SingleViewPresentation.java:174)
I/com.gazstation(30452):   at void android.app.Dialog.dispatchOnCreate(android.os.Bundle) (Dialog.java:407)
I/com.gazstation(30452):   at void android.app.Dialog.show() (Dialog.java:302)
I/com.gazstation(30452):   at void android.app.Presentation.show() (Presentation.java:249)
I/com.gazstation(30452):   at void io.flutter.plugin.platform.VirtualDisplayController.<init>(android.content.Context, io.flutter.plugin.platform.AccessibilityEventsDelegate, android.hardware.display.VirtualDisplay, io.flutter.plugin.platform.PlatformViewFactory, android.view.Surface, io.flutter.view.TextureRegistry$SurfaceTextureEntry, android.view.View$OnFocusChangeListener, int, java.lang.Object) (VirtualDisplayController.java:93)
I/com.gazstation(30452):   at io.flutter.plugin.platform.VirtualDisplayController io.flutter.plugin.platform.VirtualDisplayController.create(android.content.Context, io.flutter.plugin.platform.AccessibilityEventsDelegate, io.flutter.plugin.platform.PlatformViewFactory, io.flutter.view.TextureRegistry$SurfaceTextureEntry, int, int, int, java.lang.Object, android.view.View$OnFocusChangeListener) (VirtualDisplayController.java:53)
I/com.gazstation(30452):   at long io.flutter.plugin.platform.PlatformViewsController$1.createPlatformView(io.flutter.embedding.engine.systemchannels.PlatformViewsChannel$PlatformViewCreationRequest) (PlatformViewsController.java:105)
I/com.gazstation(30452):   at void io.flutter.embedding.engine.systemchannels.PlatformViewsChannel$1.create(io.flutter.plugin.common.MethodCall, io.flutter.plugin.common.MethodChannel$Result) (PlatformViewsChannel.java:96)
I/com.gazstation(30452):   at void io.flutter.embedding.engine.systemchannels.PlatformViewsChannel$1.onMethodCall(io.flutter.plugin.common.MethodCall, io.flutter.plugin.common.MethodChannel$Result) (PlatformViewsChannel.java:60)
I/com.gazstation(30452):   at void io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(java.nio.ByteBuffer, io.flutter.plugin.common.BinaryMessenger$BinaryReply) (MethodChannel.java:231)
I/com.gazstation(30452):   at void io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(java.lang.String, byte[], int) (DartMessenger.java:93)
I/com.gazstation(30452):   at void io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(java.lang.String, byte[], int) (FlutterJNI.java:642)
I/com.gazstation(30452):   at void android.os.MessageQueue.nativePollOnce(long, int) (MessageQueue.java:-2)
I/com.gazstation(30452):   at android.os.Message android.os.MessageQueue.next() (MessageQueue.java:326)
I/com.gazstation(30452):   at void android.os.Looper.loop() (Looper.java:163)
I/com.gazstation(30452):   at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6732)
I/com.gazstation(30452):   at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
I/com.gazstation(30452):   at void com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run() (RuntimeInit.java:493)
I/com.gazstation(30452):   at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:858)
I/com.gazstation(30452): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.internal.zzbej" on path: DexPathList[[zip file "/data/app/com.gazstation-JhZnI5z1HTtwuhlv-ubfRg==/base.apk"],nativeLibraryDirectories=[/data/app/com.gazstation-JhZnI5z1HTtwuhlv-ubfRg==/lib/arm64, /data/app/com.gazstation-JhZnI5z1HTtwuhlv-ubfRg==/base.apk!/lib/arm64-v8a, /system/lib64]]
I/com.gazstation(30452):   at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:134)
I/com.gazstation(30452):   at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379)
I/com.gazstation(30452):   at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
I/com.gazstation(30452):   at com.yandex.mapkit.user_location.UserLocationLayer com.yandex.mapkit.internal.MapKitBinding.createUserLocationLayer(com.yandex.mapkit.map.MapWindow) (MapKitBinding.java:-2)
I/com.gazstation(30452):   at void com.unact.yandexmapkit.YandexMapController.<init>(int, android.content.Context, io.flutter.plugin.common.PluginRegistry$Registrar) (YandexMapController.java:60)
I/com.gazstation(30452):   at io.flutter.plugin.platform.PlatformView com.unact.yandexmapkit.YandexMapFactory.create(android.content.Context, int, java.lang.Object) (YandexMapFactory.java:20)
I/com.gazstation(30452):   at void io.flutter.plugin.platform.SingleViewPresentation.onCreate(android.os.Bundle) (SingleViewPresentation.java:174)
I/com.gazstation(30452):   at void android.app.Dialog.dispatchOnCreate(android.os.Bundle) (Dialog.java:407)
I/com.gazstation(30452):   at void android.app.Dialog.show() (Dialog.java:302)
I/com.gazstation(30452):   at void android.app.Presentation.show() (Presentation.java:249)
I/com.gazstation(30452):   at void io.flutter.plugin.platform.VirtualDisplayController.<init>(android.content.Context, io.flutter.plugin.platform.AccessibilityEventsDelegate, android.hardware.display.VirtualDisplay, io.flutter.plugin.platform.PlatformViewFactory, android.view.Surface, io.flutter.view.TextureRegistry$SurfaceTextureEntry, android.view.View$OnFocusChangeListener, int, java.lang.Object) (VirtualDisplayController.java:93)
I/com.gazstation(30452):   at io.flutter.plugin.platform.VirtualDisplayController io.flutter.plugin.platform.VirtualDisplayController.create(android.content.Context, io.flutter.plugin.platform.AccessibilityEventsDelegate, io.flutter.plugin.platform.PlatformViewFactory, io.flutter.view.TextureRegistry$SurfaceTextureEntry, int, int, int, java.lang.Object, android.view.View$OnFocusChangeListener) (VirtualDisplayController.java:53)
I/com.gazstation(30452):   at long io.flutter.plugin.platform.PlatformViewsController$1.createPlatformView(io.flutter.embedding.engine.systemchannels.PlatformViewsChannel$PlatformViewCreationRequest) (PlatformViewsController.java:105)
I/com.gazstation(30452):   at void io.flutter.embedding.engine.systemchannels.PlatformViewsChannel$1.create(io.flutter.plugin.common.MethodCall, io.flutter.plugin.common.MethodChannel$Result) (PlatformViewsChannel.java:96)
I/com.gazstation(30452):   at void io.flutter.embedding.engine.systemchannels.PlatformViewsChannel$1.onMethodCall(io.flutter.plugin.common.MethodCall, io.flutter.plugin.common.MethodChannel$Result) (PlatformViewsChannel.java:60)
I/com.gazstation(30452):   at void io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(java.nio.ByteBuffer, io.flutter.plugin.common.BinaryMessenger$BinaryReply) (MethodChannel.java:231)
I/com.gazstation(30452):   at void io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(java.lang.String, byte[], int) (DartMessenger.java:93)
I/com.gazstation(30452):   at void io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(java.lang.String, byte[], int) (FlutterJNI.java:642)
I/com.gazstation(30452):   at void android.os.MessageQueue.nativePollOnce(long, int) (MessageQueue.java:-2)
I/com.gazstation(30452):   at android.os.Message android.os.MessageQueue.next() (MessageQueue.java:326)
I/com.gazstation(30452):   at void android.os.Looper.loop() (Looper.java:163)
I/com.gazstation(30452):   at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6732)
I/com.gazstation(30452):   at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
I/com.gazstation(30452):   at void com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run() (RuntimeInit.java:493)
I/com.gazstation(30452):   at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:858)
flutter doctor -v
[√] Flutter (Channel dev, v1.15.3, on Microsoft Windows [Version 10.0.17763.1039], locale ru-RU)
    • Flutter version 1.15.3 at d:\FlutterSdk
    • Framework revision 67826bdce5 (4 days ago), 2020-02-10 14:59:32 -0800
    • Engine revision 6158f03ef5
    • Dart version 2.8.0 (build 2.8.0-dev.8.0 514a8d4c84)


[√] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
    • Android SDK at D:\Android\android-sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-29, build-tools 29.0.2
    • ANDROID_HOME = D:\Android\android-sdk
    • Java binary at: D:\Soft\AndroidStudio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b03)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • CHROME_EXECUTABLE = C:\Program Files (x86)\Google\Chrome\Application\chrome.exe

[√] Android Studio (version 3.5)
    • Android Studio at D:\Soft\AndroidStudio
    • Flutter plugin version 43.0.1
    • Dart plugin version 191.8593
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b03)

[√] VS Code (version 1.42.1)
    • VS Code at C:\Users\info\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.8.1

[√] Connected device (3 available)
    • ZE620KL    • JBAXB762B929ETP • android-arm64  • Android 9 (API 28)
    • Chrome     • chrome          • web-javascript • Google Chrome 80.0.3987.106
    • Web Server • web-server      • web-javascript • Flutter Tools

pubspec.yaml

yandex_mapkit:
    git: https://github.com/Unact/yandex_mapkit.git

kotlin MainActivity.kt

package com.gazstation

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) {
        GeneratedPluginRegistrant.registerWith(flutterEngine);
        MapKitFactory.setApiKey("**************")
    }
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.