Giter VIP home page Giter VIP logo

mapkit-android-demo's Introduction

Yandex MapKit and NaviKit Demo Apps

Yandex MapKit and NaviKit are cross-platform libraries that let you use the capabilities of Yandex Maps in mobile applications for iOS and Android. Learn more about the MapKit and NaviKit SDKs on the documentation page.

For a quick start development with the MapKit and NaviKit SDKs visit the following pages:

The current repository contains sample code for how to use the MapKit and NaviKit SDKs for Android applications.

Project structures

There are three Android projects in the repository:

  1. mapkit-samples: Contains several Android applications with sample code in Kotlin, all of which are demonstrated in the MapKit SDK Tutorials documentation.

  2. mapkit-demo: A demo application in Java that contains the basic functionality of the lite and full MapKit SDK versions. It is not supported with Tutorials documentation, unlike the mapkit-samples project.

  3. navikit-demo: A demo application showcasing the basic navigation features you can implement with NaviKit SDK.

Build locally

  1. Clone the repository:

    git clone https://github.com/yandex/mapkit-android-demo.git
  2. MapKit SDK demo application and samples require API key. You can get a free MapKit API key in the Get the MapKit API Key documentation. The instruction on how to obtain NaviKit API key is described in the [documentation] (https://yandex.ru/dev/mapkit/doc/en/android/generated/navigation/getting_started#get-key).

  3. Depending on the project you want to build, follow the steps in the following sections.

mapkit-samples

  1. Open or create the project's local.properties file. Add the following property with your API key value in place of the YOUR_API_KEY placeholder:

    MAPKIT_API_KEY=YOUR_API_KEY
  2. Choose a target in Android Studio for build, or use a CLI build with gradle wrapper:

    ./gradlew :map-with-placemark:assembleRelease

mapkit-demo

  1. Open the MainApplication.java and edit the MAPKIT_API_KEY field, setting its value with your API key in place of the your_api_key placeholder:

    private final String MAPKIT_API_KEY = "your_api_key";
  2. Run the mapkit-demo target in Android Studio or use the CLI build with gradle wrapper:

    ./gradlew assembleLiteRelease  # Lite MapKit samples only
    ./gradlew assembleFullRelease  # Lite and full 

navikit-demo

  1. Open or create the project's local.properties file. Add the following property with your API key value in place of the YOUR_API_KEY placeholder:

    MAPKIT_API_KEY=YOUR_API_KEY
  2. Run the app target in Android Studio or use the CLI build with gradle wrapper:

    ./gradlew assembleRelease

Support

If you have problems or suggestions while using MapKit or NaviKit SDK, visit the contact page.

Sample overview

map-with-placemark
Demonstrates how to create a MapKit map, move
it, and display custom tappable placemarks.
map-objects
How to display different objects on the map, including:
images, geometries, and clusterized collections.
map-interaction
About interacting with the MapKit map using
camera movements, tap actions, focus rect
and focus point, and interactions with POIs.
map-search
Shows how to use Search and Geosuggest
functionality in the full MapKit SDK.
map-routing
Building routes using requested map points.
map-offline
How to download offline maps to use
them without the internet.

mapkit-android-demo's People

Contributors

cbbbrother avatar eaniconer avatar eberkovich avatar haseko avatar imseleznev-yandex avatar iudalov avatar lisyarus avatar tarmolov avatar trivias avatar vbazhenov avatar yandexmapkit 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mapkit-android-demo's Issues

How can i get position of MapObjectCollection?

The thing is, I'm getting list of geodata from server, with longtitude, latitude and id. Like this one:

[
    {
        "id": 5,
        "lat": "53.993865",
        "longt": "27.673300"
    },
    {
        "id": 4,
        "lat": "55.463505",
        "longt": "29.985205"
    }
]

I've implemented like this:

for (int i = 0; i < mapData.size(); i++) {
                            point = new Point(Double.parseDouble(mapData.get(i).getLat()), Double.parseDouble(mapData.get(i).getLongt()));
                            mapObjects.addPlacemark(
                                    point,
                                    ImageProvider.fromResource(mActivity, R.mipmap.ic_mark));
                        }

                            mapObjects.addTapListener((mapObject, point) -> {
                                Toast.makeText(mActivity, mapData.get(**gettingTappedIndex**).getId() + "\n" + point.getLatitude() + "\n" + point.getLongitude(), Toast.LENGTH_SHORT).show();
                                Log.d(TAG, "onNext: " + mapData.get(**gettingTappedIndex**).getId() + "\n" + point.getLatitude() + "\n" + point.getLongitude());
                                return true;
                            });

When I place .addTapListerner inside forloop, my logs show me that it's calling both coordinates, which is not right.
Is there way to know which mapObject I am tapping on, like "gettingTappedIndex"?

После добавления около 2 тыс точек, карта тормозит и лагает при скролле

Карта используется в реальном проекте как замена Google Maps, После добавления на карту 1730 точек она начинает тормозить при перемещении. В Google Maps аналогичное количество точек отображается нормально, карта не лагает. Привожу код:

private lateinit var markers: MapObjectCollection

markers = map.mapObjects.addCollection()

//1730 точек - добавление в цикле
objectList.forEach {
markers.addPlacemark(Point(it.latitude, it.longitude))
}

panoramaView with kotlinx syntehtic

After updating to MapKit 3.1.1

widget has an unresolved type 'com.yandex.mapkit.panorama.panoramaview', and thus it was upcasted to 'android.view.view'

Doesn't work with D8

Build failed with log like

Caused by: com.android.builder.dexing.DexArchiveBuilderException: Failed to process MyProject\app\build\intermediates\transforms\desugar\debug\10.jar
Caused by: com.android.builder.dexing.DexArchiveBuilderException: Error while dexing.
Caused by: java.lang.ArrayIndexOutOfBoundsException

Size of apk file

When use this library file apk + 20MB. How to reduce the size?Maybe pro guard?

Yandex MapView не работает после fragment.replace()

Использую MapView в фрагменте чтобы показать маркеры на карте, при клике на определенную точку открывается другой фрагмент через fragmentTransaction.replace()
При возвращении обратно карта снова настраивается в onViewCreated, но маркеры не появляются и карта не зумируется, хотя логика та же что и при первом открытии фрагмента.
В onStart, onStop вызываю mapView.onStart() и MapKitFactory.getInstance().onStart() как показано в примерах демо-проекта.

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)
    presenter.getOfficeList()
    setupUserLocation()
    setupMapView()
    myLocationButton.setOnClickListener {
        mapView.map.userLocationLayer.cameraPosition()?.let { position ->
            mapView.map.move(position, Animation(Animation.Type.SMOOTH, 1f), null)
        }
    }
}

override fun showOfficeList(list: List<Office>) {
    val mapObjects = map.mapObjects
    val marker = ImageProvider.fromResource(context, R.drawable.ic_map_other)
    for (office in list) {
        val (lat, lng) = office.location
        val placeMarkObject = mapObjects.addPlacemark(Point(lat, lng), marker)
        placeMarkObject.addTapListener { mapObject, _ ->
            onPlaceMarkTap(mapObject, office)
        }
    }
}

private fun setupUserLocation() {
    userLocationLayer = mapView.map.userLocationLayer
    userLocationLayer.isEnabled = true
    userLocationLayer.isHeadingEnabled = false
    userLocationLayer.setObjectListener(this)
}

private fun setupMapView() {
    map.addInputListener { _, _ -> setDetailLayoutVisible(false) }
    map.addCameraListener { _, _, _, _ -> setDetailLayoutVisible(false) }
    map.move(CameraPosition(Point(45.1, 43.2), 10.0f, 0.0f, 0.0f))
    val alignment = Alignment(HorizontalAlignment.LEFT, VerticalAlignment.BOTTOM)
    map.logo.setAlignment(alignment)
    map.isFastTapEnabled = true
}

java.lang.RuntimeException: error in glGetShaderiv: GL_INVALID_OPERATION


> 2018-10-26 00:40:14.663 5830-5869/... E/eglCodecCommon: removeVertexArrayObject: ERROR: cannot delete VAO 0!
> 2018-10-26 00:40:15.394 5830-5869/... E/AndroidRuntime: FATAL EXCEPTION: GLThread 323
>     Process: ..., PID: 5830
>     java.lang.RuntimeException: error in glGetShaderiv: GL_INVALID_OPERATION
>     Exception stack trace (top 20 entries):
>       # 0: 1468776  /data/app/...-RcOAla_D3YKIEhX3fESMpA==/lib/x86/libcom.yandex.runtime.so _ZN6yandex4maps7runtime9backtrace9BacktraceC1Ev
>       # 1: 1478361  /data/app/...-RcOAla_D3YKIEhX3fESMpA==/lib/x86/libcom.yandex.runtime.so 
>       # 2: 1478912  /data/app/...-RcOAla_D3YKIEhX3fESMpA==/lib/x86/libcom.yandex.runtime.so _ZN6yandex4maps7runtime9ExceptionC2ERKSsNS2_8SeverityE
>       # 3: 1397272  /data/app/...-RcOAla_D3YKIEhX3fESMpA==/lib/x86/libcom.yandex.runtime.so _ZN6yandex4maps7runtime12RuntimeErrorC2Ev
>       # 4: 1722013  /data/app/...-RcOAla_D3YKIEhX3fESMpA==/lib/x86/libcom.yandex.runtime.so _ZNK6yandex4maps7runtime8graphics6Shader5valueEj
>       # 5: 1722419  /data/app/...-RcOAla_D3YKIEhX3fESMpA==/lib/x86/libcom.yandex.runtime.so _ZN6yandex4maps7runtime8graphics6ShaderC2ERKSt8functionIFvS4_IFvvEEEEPKcj
>       # 6: 3113766  /data/app/...-RcOAla_D3YKIEhX3fESMpA==/lib/x86/libcom.yandex.mapkit.so 
>       # 7: 3679299  /data/app/...-RcOAla_D3YKIEhX3fESMpA==/lib/x86/libcom.yandex.mapkit.so 
>       # 8: 3680780  /data/app/...-RcOAla_D3YKIEhX3fESMpA==/lib/x86/libcom.yandex.mapkit.so 
>       # 9: 3954192  /data/app/...-RcOAla_D3YKIEhX3fESMpA==/lib/x86/libcom.yandex.mapkit.so 
>       #10: 4058068  /data/app/...-RcOAla_D3YKIEhX3fESMpA==/lib/x86/libcom.yandex.mapkit.so 
>       #11: 4076339  /data/app/...-RcOAla_D3YKIEhX3fESMpA==/lib/x86/libcom.yandex.mapkit.so 
>       #12: 2833466  /data/app/...-RcOAla_D3YKIEhX3fESMpA==/lib/x86/libcom.yandex.runtime.so 
>       #13: 2850323  /data/app/...-RcOAla_D3YKIEhX3fESMpA==/lib/x86/libcom.yandex.runtime.so Java_com_yandex_runtime_view_internal_PlatformViewBinding_onRender
>       #14: 6204312  /system/lib/libart.so 
>       #15: 6179715  /system/lib/libart.so 
>       #16: 618703  /system/lib/libart.so _ZN3art9ArtMethod6InvokeEPNS_6ThreadEPjjPNS_6JValueEPKc
>       #17: 2686115  /system/lib/libart.so _ZN3art11interpreter34ArtInterpreterToCompiledCodeBridgeEPNS_6ThreadEPNS_9ArtMethodEPNS_11ShadowFrameEtPNS_6JValueE
>       #18: 2658887  /system/lib/libart.so _ZN3art11interpreter6DoCallILb1ELb0EEEbPNS_9ArtMethodEPNS_6ThreadERNS_11ShadowFrameEPKNS_11InstructionEtPNS_6JValueE
>       #19: 5972009  /system/lib/libart.so MterpInvokeVirtualRange
>     
>     error while creating 'N6yandex4maps6mapkit8textures18StaticImageProgramE': error in glGetShaderiv: GL_INVALID_OPERATION
>     Exception stack trace (top 20 entries):
>       # 0: 1468776  /data/app/...-RcOAla_D3YKIEhX3fESMpA==/lib/x86/libcom.yandex.runtime.so _ZN6yandex4maps7runtime9backtrace9BacktraceC1Ev
>       # 1: 1478361  /data/app/...-RcOAla_D3YKIEhX3fESMpA==/lib/x86/libcom.yandex.runtime.so 
>       # 2: 1478912  /data/app/...-RcOAla_D3YKIEhX3fESMpA==/lib/x86/libcom.yandex.runtime.so _ZN6yandex4maps7runtime9ExceptionC2ERKSsNS2_8SeverityE
>       # 3: 1762546  /data/app/...-RcOAla_D3YKIEhX3fESMpA==/lib/x86/libcom.yandex.mapkit.so 
>       # 4: 3679939  /data/app/...-RcOAla_D3YKIEhX3fESMpA==/lib/x86/libcom.yandex.mapkit.so 
>       # 5: 3680780  /data/app/...-RcOAla_D3YKIEhX3fESMpA==/lib/x86/libcom.yandex.mapkit.so 
>       # 6: 3954192  /data/app/...-RcOAla_D3YKIEhX3fESMpA==/lib/x86/libcom.yandex.mapkit.so 
>       # 7: 4058068  /data/app/...-RcOAla_D3YKIEhX3fESMpA==/lib/x86/libcom.yandex.mapkit.so 
>       # 8: 4076339  /data/app/...-RcOAla_D3YKIEhX3fESMpA==/lib/x86/libcom.yandex.mapkit.so 
>       # 9: 2833466  /data/app/...-RcOAla_D3YKIEhX3fESMpA==/lib/x86/libcom.yandex.runtime.so 
> 2018-10-26 00:40:15.395 5830-5869/... E/AndroidRuntime:   #10: 2850323  /data/app/...-RcOAla_D3YKIEhX3fESMpA==/lib/x86/libcom.yandex.runtime.so Java_com_yandex_runtime_view_internal_PlatformViewBinding_onRender
>       #11: 6204312  /system/lib/libart.so 
>       #12: 6179715  /system/lib/libart.so 
>       #13: 618703  /system/lib/libart.so _ZN3art9ArtMethod6InvokeEPNS_6ThreadEPjjPNS_6JValueEPKc
>       #14: 2686115  /system/lib/libart.so _ZN3art11interpreter34ArtInterpreterToCompiledCodeBridgeEPNS_6ThreadEPNS_9ArtMethodEPNS_11ShadowFrameEtPNS_6JValueE
>       #15: 2658887  /system/lib/libart.so _ZN3art11interpreter6DoCallILb1ELb0EEEbPNS_9ArtMethodEPNS_6ThreadERNS_11ShadowFrameEPKNS_11InstructionEtPNS_6JValueE
>       #16: 5972009  /system/lib/libart.so MterpInvokeVirtualRange
>       #17: 6123554  /system/lib/libart.so ExecuteMterpImpl
>       #18: 2466327  /system/lib/libart.so 
>       #19: 2492317  /system/lib/libart.so _ZN3art11interpreter33ArtInterpreterToInterpreterBridgeEPNS_6ThreadERKNS_20CodeItemDataAccessorEPNS_11ShadowFrameEPNS_6JValueE
>     
>         at com.yandex.runtime.view.internal.PlatformViewBinding.onRender(Native Method)
>         at com.yandex.runtime.view.internal.PlatformGLRenderer.onDrawFrame(PlatformGLRenderer.java:27)
>         at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1571)
>         at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1270)

On touch example

Hello guys!
Can you help me with such case:
Catch onTap action and get object with full info, e.g. address and building number.
I suppose this
public interface GeoObjectSession.GeoObjectListener
Can help me, but I didn't find where I should set it.

UserLocation

How to check if mobile can't find my locatin.

Падает с ошибкой A/libc: Fatal signal 6 (SIGABRT), code -6 (SI_TKILL)

Приложение падает со включенном слоем отображения пользователя в API 28. При многократном переиспользовании карты во фрагменте.
Версия карт 3.0.0

val userLocationLayer = mapView!!.getMap().userLocationLayer
userLocationLayer.isEnabled = true
userLocationLayer.isHeadingEnabled = true

В логи ничего не выводится, кроме:
A/libc: Fatal signal 6 (SIGABRT), code -6 (SI_TKILL) in tid 5238 (...), pid 5238 (...)

Marker with title

How set infoWindow for marker in MapKit 3.0? Is it possible?

Example in google maps v2:

static final LatLng MELBOURNE = new LatLng(-37.81319, 144.96298);
Marker melbourne = mMap.addMarker(new MarkerOptions()
                          .position(MELBOURNE)
                          .title("Melbourne"));
melbourne.showInfoWindow();

Section walk

How draw only walk section without bus stops using methods MasstransitRouting? Or using another methods...
__

override fun onMasstransitRoutes(routes: List<Route>) {
        if (routes.isNotEmpty()) {
            for (section in routes[0].sections) {
                drawSection(section.metadata.data.walk,
                        SubpolylineHelper.subpolyline(routes[0].geometry, section.geometry))
            }
        }
    }

    private fun drawSection(data: Walk, geometry: Polyline) {
        val polylineMapObject = mapObjectPolyline.addPolyline(geometry)
        if (data.spots != null) {
            polylineMapObject.strokeColor = ContextCompat.getColor(
                    this, R.color.light_grey)
            polylineMapObject.outlineColor = ContextCompat.getColor(
                    this, R.color.white)
            polylineMapObject.outlineWidth = 1f
        }
    }

But still leads to the bus stop:

image

Проблемы с определением местоположения

На некоторых телефонах не находится местоположение пользователя, используя Можно ли это как то отследить? Или от чего зависит нахождение местоположения, что нужно включить?

Crash when trying to initialize MapKitFactory

Crash on this line MapKitFactory.initialize(this.getContext()); in Fragment:

 @Override
 public void onCreate(Bundle savedInstanceState) {     
        super.onCreate(savedInstanceState);
        MapKitFactory.setApiKey(apiKey);
        MapKitFactory.initialize(this.getContext());
 }

Stacktrace:

java.lang.UnsatisfiedLinkError: dlopen failed: "/data/data/ru.app/app_lib/libgnustl_shared.so" is 32-bit instead of 64-bit
                                                                       at java.lang.Runtime.load0(Runtime.java:897)
                                                                       at java.lang.System.load(System.java:1505)
                                                                       at com.yandex.runtime.internal.ReLinker.loadLibrary(ReLinker.java:82)
                                                                       at com.yandex.runtime.Runtime.loadLibrary(Runtime.java:122)
                                                                       at com.yandex.runtime.Runtime.init(Runtime.java:99)
                                                                       at com.yandex.mapkit.MapKitFactory.initialize(MapKitFactory.java:18)
                                                                       at ru.app.ui.fragment.map.MapFragment.onCreate(MapFragment.java:104)
                                                                       at android.support.v4.app.Fragment.performCreate(Fragment.java:2328)
                                                                       at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1379)
                                                                       at android.support.v4.app.FragmentTransition.addToFirstInLastOut(FragmentTransition.java:1188)
                                                                       at android.support.v4.app.FragmentTransition.calculateFragments(FragmentTransition.java:1071)
                                                                       at android.support.v4.app.FragmentTransition.startTransitions(FragmentTransition.java:115)
                                                                       at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2379)
                                                                       at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2337)
                                                                       at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2244)
                                                                       at android.support.v4.app.FragmentManagerImpl.dispatchStateChange(FragmentManager.java:3255)
                                                                       at android.support.v4.app.FragmentManagerImpl.dispatchResume(FragmentManager.java:3215)
                                                                       at android.support.v4.app.FragmentController.dispatchResume(FragmentController.java:217)
                                                                       at android.support.v4.app.FragmentActivity.onResumeFragments(FragmentActivity.java:509)
                                                                       at android.support.v4.app.FragmentActivity.onPostResume(FragmentActivity.java:498)
                                                                       at android.support.v7.app.AppCompatActivity.onPostResume(AppCompatActivity.java:171)
                                                                       at android.app.Activity.performResume(Activity.java:6984)
                                                                       at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3470)
                                                                       at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3533)
                                                                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2791)
                                                                       at android.app.ActivityThread.-wrap12(ActivityThread.java)
                                                                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1532)
                                                                       at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                       at android.os.Looper.loop(Looper.java:163)
                                                                       at android.app.ActivityThread.main(ActivityThread.java:6342)
                                                                       at java.lang.reflect.Method.invoke(Native Method)
                                                                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:880)
                                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:770)

Device: Xiaomi redmi note 4x

if you need more information, then let me know.

Issue with "Addplacemark" method

I've implemented .mapObjects.addPlacemark(Point(43.233553, 76.956219), ImageProvider.fromResource(R.drawable.vector_resource)) with vector drawable, but on map is no any placemark. What should I do? Thank you

App crashing on Samsung S8

java.lang.UnsatisfiedLinkError: dlopen failed: "/data/data/m1traid.mwc/app_lib/libgnustl_shared.so" is 32-bit instead of 64-bit

How to get coords (lat/long) ?

How to get coords (lat/long) ? obj seems no be empty after this.

mapview.getMap().addTapListener(new GeoObjectTapListener() {
@OverRide
public boolean onObjectTap(GeoObjectTapEvent geoObjectTapEvent) {
GeoObject obj = geoObjectTapEvent.getGeoObject();
return false;
}
});

I'm looking for any option to get coords from tap. Thx

RuntimeException при попытке выполнения SearchManager.submit();

Stack-trace:
`java.lang.RuntimeException: Invalid variant value
Exception stack trace (top 5 entries):
# 0: 1543064 /data/app/com.izibizy-OJaqo8T0JpkBmD7aqZK4vg==/lib/arm/libcom.yandex.runtime.so _ZN6yandex4maps7runtime9backtrace9BacktraceC1Ev
# 1: 1552092 /data/app/com.izibizy-OJaqo8T0JpkBmD7aqZK4vg==/lib/arm/libcom.yandex.runtime.so
# 2: 1552556 /data/app/com.izibizy-OJaqo8T0JpkBmD7aqZK4vg==/lib/arm/libcom.yandex.runtime.so _ZN6yandex4maps7runtime9ExceptionC2ERKSsNS2_8SeverityE
# 3: 1928360 /data/app/com.izibizy-OJaqo8T0JpkBmD7aqZK4vg==/lib/arm/libcom.yandex.mapkit.so ZN6yandex4maps7runtime8bindings7android8internal8ToNativeIN5boost7variantINS0_6mapkit8geometry5PointEISt10shared_ptrINS9_8PolylineEESB_INS9_7PolygonEENS9_11BoundingBoxENS9_6CircleEEEEP8_jobjectvE4fromESK
# 4: 4341936 /data/app/com.izibizy-OJaqo8T0JpkBmD7aqZK4vg==/lib/arm/libcom.yandex.mapkit.search.so Java_com_yandex_mapkit_search_internal_SearchManagerBinding_submit__Ljava_lang_String_2Lcom_yandex_mapkit_geometry_Geometry_2Lcom_yandex_mapkit_search_SearchOptions_2Lcom_yandex_mapkit_search_Session_00024SearchListener_2

    at com.yandex.mapkit.search.internal.SearchManagerBinding.submit(Native Method)
    at com.izibizy.mvp.fragments.add.address.search.SearchFragment.submitQuery(SearchFragment.kt:40)
    at com.izibizy.mvp.fragments.add.address.search.SearchFragment.access$submitQuery(SearchFragment.kt:20)
    at com.izibizy.mvp.fragments.add.address.search.SearchFragment$searchTextWatcher$1.afterTextChanged(SearchFragment.kt:31)
    at android.widget.TextView.sendAfterTextChanged(TextView.java:10644)
    at android.widget.TextView$ChangeWatcher.afterTextChanged(TextView.java:14069)
    at android.text.SpannableStringBuilder.sendAfterTextChanged(SpannableStringBuilder.java:1262)
    at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:574)
    at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:504)
    at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:502)
    at android.view.inputmethod.BaseInputConnection.replaceText(BaseInputConnection.java:849)
    at android.view.inputmethod.BaseInputConnection.commitText(BaseInputConnection.java:199)
    at com.android.internal.widget.EditableInputConnection.commitText(EditableInputConnection.java:183)
    at com.android.internal.view.IInputConnectionWrapper.executeMessage(IInputConnectionWrapper.java:341)
    at com.android.internal.view.IInputConnectionWrapper$MyHandler.handleMessage(IInputConnectionWrapper.java:85)
    at android.os.Handler.dispatchMessage(Handler.java:105)
    at android.os.Looper.loop(Looper.java:164)
    at android.app.ActivityThread.main(ActivityThread.java:6938)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)`

Sources: https://gist.github.com/hmmmk/c4a6836d71b820e89d87c88d723b10bd

Hybrid type not work

Hi. i tried change mapstyle but can't see hybrid type. this is my code:

`import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import com.yandex.mapkit.Animation;
import com.yandex.mapkit.MapKitFactory;
import com.yandex.mapkit.geometry.Point;
import com.yandex.mapkit.map.CameraPosition;
import com.yandex.mapkit.map.MapType;
import com.yandex.mapkit.mapview.MapView;

public class YandexMapActivity extends AppCompatActivity {
private MapView mapview;
@OverRide
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

    MapKitFactory.setApiKey ("");
    MapKitFactory.initialize(this);
    setContentView(R.layout.activity_yandex_map);
    mapview = (MapView)findViewById (R.id.mapview);
    mapview.getMap().setMapType(MapType.HYBRID);
    mapview.getMap().setMapStyle("sd");
    mapview.getMap().setDebugInfoEnabled(true);
    mapview.getMap().set2DMode(true);
   /* mapview.getMap ().move(
            new CameraPosition(new Point(55.751574, 37.573856), 11.0f, 0.0f, 0.0f),
            new Animation(Animation.Type.SMOOTH, 0),
            null);*/
   //
}

@Override
protected void onStop() {
    super.onStop();
    mapview.onStop();
    MapKitFactory.getInstance().onStop();
}

@Override
protected void onStart() {
    super.onStart();
    mapview.onStart();
    MapKitFactory.getInstance().onStart();
}

}`

onObjectUpdated

override fun onObjectUpdated(view: UserLocationView, event: ObjectEvent) {
        mLatitude = view.arrow.geometry.latitude
        mLongitude = view.arrow.geometry.longitude
        Toast.makeText(
                this, "Lat: $mLatitude; Long: $mLongitude", Toast.LENGTH_SHORT).show()
        routeEndLocation = Point(mLatitude, mLongitude)
}

How set the minimum frequency of coordinates updating?

SIGSEGV

Карты крашатся при зуме.
В demo проекте в activity "Map Objects" крашится при относительно долгом зуме туда-обратно.
В нашем проекте, где карты более нагружены метками, крашится стабильно менее чем за минуту использования карты.
Версия библиотеки: 3.1.2
SDK version: 28

com.yandex.mapkitdemo A/libc: Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x3e9c66d73e020018 in tid 9593 (ndex.mapkitdemo), pid 9593 (ndex.mapkitdemo)

Build fingerprint: 'google/taimen/taimen:9/PQ1A.181105.017.A1/5081125:user/release-keys'
Revision: 'rev_10'
ABI: 'arm64'
pid: 9593, tid: 9593, name: ndex.mapkitdemo  >>> com.yandex.mapkitdemo <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x3e9c66d73e020018
    x0  000000759d4de4c8  x1  000000759c3ea8e8  x2  0000000000000004  x3  0000000000000001
    x4  3e9c66d73e020000  x5  00000000ffffffff  x6  0000000000000000  x7  f431ede10bee0edb
    x8  46b039784202238d  x9  46b039784202238d  x10 0000000000000145  x11 0000000000000000
    x12 000000759ecdaca0  x13 000000759ece5120  x14 00000000ffffffff  x15 0000000000000000
    x16 000000763eb6fbe0  x17 000000763eb03918  x18 0000000000000000  x19 000000759c443e20
    x20 000000759f69d480  x21 000000759f69d508  x22 000000759f69d4f8  x23 000000759d39df50
    x24 0000007fc562b348  x25 000000759d7b5fe8  x26 000000759d7b5fe8  x27 000000759d7b5f20
    x28 0000007fc562b360  x29 0000000000000000
    sp  0000007fc562b1c0  lr  00000075a29ce060  pc  00000075a282dfec
backtrace:
    #00 pc 0000000000326fec  /data/app/com.yandex.mapkitdemo--zmTFcuKVcCyG745ix-mVA==/lib/arm64/libcom.yandex.mapkit.so
    #01 pc 00000000004c705c  /data/app/com.yandex.mapkitdemo--zmTFcuKVcCyG745ix-mVA==/lib/arm64/libcom.yandex.mapkit.so
    #02 pc 00000000004c7a20  /data/app/com.yandex.mapkitdemo--zmTFcuKVcCyG745ix-mVA==/lib/arm64/libcom.yandex.mapkit.so
    #03 pc 00000000004ac380  /data/app/com.yandex.mapkitdemo--zmTFcuKVcCyG745ix-mVA==/lib/arm64/libcom.yandex.mapkit.so
    #04 pc 00000000004d7eb4  /data/app/com.yandex.mapkitdemo--zmTFcuKVcCyG745ix-mVA==/lib/arm64/libcom.yandex.mapkit.so
    #05 pc 00000000004d810c  /data/app/com.yandex.mapkitdemo--zmTFcuKVcCyG745ix-mVA==/lib/arm64/libcom.yandex.mapkit.so
    #06 pc 00000000004e13ac  /data/app/com.yandex.mapkitdemo--zmTFcuKVcCyG745ix-mVA==/lib/arm64/libcom.yandex.mapkit.so
    #07 pc 00000000004e1d7c  /data/app/com.yandex.mapkitdemo--zmTFcuKVcCyG745ix-mVA==/lib/arm64/libcom.yandex.mapkit.so
    #08 pc 00000000004bc0b8  /data/app/com.yandex.mapkitdemo--zmTFcuKVcCyG745ix-mVA==/lib/arm64/libcom.yandex.mapkit.so
    #09 pc 000000000032aff4  /data/app/com.yandex.mapkitdemo--zmTFcuKVcCyG745ix-mVA==/lib/arm64/libcom.yandex.runtime.so
    #10 pc 00000000001ce908  /data/app/com.yandex.mapkitdemo--zmTFcuKVcCyG745ix-mVA==/lib/arm64/libcom.yandex.runtime.so (std::function<void ()>::operator()() const+24)
    #11 pc 00000000001ce908  /data/app/com.yandex.mapkitdemo--zmTFcuKVcCyG745ix-mVA==/lib/arm64/libcom.yandex.runtime.so (std::function<void ()>::operator()() const+24)
    #12 pc 0000000000224508  /data/app/com.yandex.mapkitdemo--zmTFcuKVcCyG745ix-mVA==/lib/arm64/libcom.yandex.runtime.so
    #13 pc 00000000002203bc  /data/app/com.yandex.mapkitdemo--zmTFcuKVcCyG745ix-mVA==/lib/arm64/libcom.yandex.runtime.so
    #14 pc 00000000001ce25c  /data/app/com.yandex.mapkitdemo--zmTFcuKVcCyG745ix-mVA==/lib/arm64/libcom.yandex.runtime.so
    #15 pc 00000000001d67d8  /data/app/com.yandex.mapkitdemo--zmTFcuKVcCyG745ix-mVA==/lib/arm64/libcom.yandex.runtime.so (Java_com_yandex_runtime_async_internal_Scheduler_run+36)
    #16 pc 000000000002e048  /dev/ashmem/dalvik-jit-code-cache (deleted) (com.yandex.runtime.async.internal.Scheduler.run+152)
    #17 pc 0000000000009d94  /dev/ashmem/dalvik-jit-code-cache (deleted) (com.yandex.runtime.async.internal.Scheduler.handleMessage+100)
    #18 pc 000000000000a860  /dev/ashmem/dalvik-jit-code-cache (deleted) (android.os.Handler.dispatchMessage+160)
    #19 pc 00000000000317f8  /dev/ashmem/dalvik-jit-code-cache (deleted) (android.os.Looper.loop+1032)
    #20 pc 000000000055ccdc  /system/lib64/libart.so (art_quick_osr_stub+44)
    #21 pc 000000000030ae0c  /system/lib64/libart.so (art::jit::Jit::MaybeDoOnStackReplacement(art::Thread*, art::ArtMethod*, unsigned int, int, art::JValue*)+1988)
    #22 pc 0000000000532a58  /system/lib64/libart.so (MterpMaybeDoOnStackReplacement+144)
    #23 pc 0000000000553a70  /system/lib64/libart.so (ExecuteMterpImpl+33136)
    #24 pc 0000000000aebb84  /system/framework/boot-framework.vdex (android.os.Looper.loop+928)
    #25 pc 0000000000255e68  /system/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.2146680767+496)
    #26 pc 000000000025b9e8  /system/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+216)
    #27 pc 000000000027c350  /system/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+920)
    #28 pc 000000000052d8dc  /system/lib64/libart.so (MterpInvokeStatic+204)
    #29 pc 000000000054f214  /system/lib64/libart.so (ExecuteMterpImpl+14612)
    #30 pc 000000000038534a  /system/framework/boot-framework.vdex (android.app.ActivityThread.main+214)
    #31 pc 0000000000255e68  /system/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.2146680767+496)
    #32 pc 000000000051cb18  /system/lib64/libart.so (artQuickToInterpreterBridge+1032)
    #33 pc 0000000000565afc  /system/lib64/libart.so (art_quick_to_interpreter_bridge+92)
    #34 pc 000000000055cc4c  /system/lib64/libart.so (art_quick_invoke_static_stub+604)
    #35 pc 00000000000cf760  /system/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+232)
    #36 pc 00000000004633b8  /system/lib64/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+104)
    #37 pc 0000000000464e10  /system/lib64/libart.so (art::InvokeMethod(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jobject*, _jobject*, unsigned long)+1440)
    #38 pc 00000000003f43b0  /system/lib64/libart.so (art::Method_invoke(_JNIEnv*, _jobject*, _jobject*, _jobjectArray*)+48)
    #39 pc 000000000011e6d4  /system/framework/arm64/boot.oat (offset 0x114000) (java.lang.Class.getDeclaredMethodInternal [DEDUPED]+180)
    #40 pc 000000000055c988  /system/lib64/libart.so (art_quick_invoke_stub+584)
    #41 pc 00000000000cf740  /system/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200)
    #42 pc 00000000002823b0  /system/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+344)
    #43 pc 000000000027c36c  /system/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+948)
    #44 pc 000000000052c3d8  /system/lib64/libart.so (MterpInvokeVirtual+584)
    #45 pc 000000000054f094  /system/lib64/libart.so (ExecuteMterpImpl+14228)
    #46 pc 0000000000c0c82e  /system/framework/boot-framework.vdex (com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run+22)
    #47 pc 0000000000255e68  /system/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.2146680767+496)
    #48 pc 000000000051cb18  /system/lib64/libart.so (artQuickToInterpreterBridge+1032)
    #49 pc 0000000000565afc  /system/lib64/libart.so (art_quick_to_interpreter_bridge+92)
    #50 pc 0000000000beaec0  /system/framework/arm64/boot-framework.oat (offset 0x3cd000) (com.android.internal.os.ZygoteInit.main+3088)
    #51 pc 000000000055cc4c  /system/lib64/libart.so (art_quick_invoke_static_stub+604)
    #52 pc 00000000000cf760  /system/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+232)
    #53 pc 00000000004633b8  /system/lib64/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+104)
    #54 pc 0000000000463010  /system/lib64/libart.so (art::InvokeWithVarArgs(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, std::__va_list)+416)
    #55 pc 0000000000366854  /system/lib64/libart.so (art::JNI::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, std::__va_list)+644)
    #56 pc 00000000000b1ce0  /system/lib64/libandroid_runtime.so (_JNIEnv::CallStaticVoidMethod(_jclass*, _jmethodID*, ...)+120)
    #57 pc 00000000000b4660  /system/lib64/libandroid_runtime.so (android::AndroidRuntime::start(char const*, android::Vector<android::String8> const&, bool)+760)
    #58 pc 00000000000021a0  /system/bin/app_process64 (main+1200)
    #59 pc 00000000000ae760  /system/lib64/libc.so (__libc_init+88)```

MapView doesn't render map

I'm trying to use examples from this repository. Only change I made is replace MAPKIT_API_KEY constant at activities to my api key. But MapView doesn't render map, only empty grid is shown. I'm not sure is it problem with my api key or with library. And don't see the way how to distinguish these cases (found no logcat messages related to this issue). Tested at several devices with various android versions (api 21, 27, 28).

Can't set data to VertexBuffer: GL_OUT_OF_MEMORY

Крашится при перемещении карты. Без пинов, просто на просмотре карты.

Xaiomi Mi A1
mapKit: 3.1.2
android: 8.1
compileSdk: 28
buildTools: 28.0.3
support: 28.0.0

Fatal Exception: java.lang.RuntimeException: Can't set data to VertexBuffer: GL_OUT_OF_MEMORY
Exception stack trace (top 10 entries):
  # 0: 1542068  /data/app/packagename.debug-NGx239B8PqQ9q6zNy2xv-Q==/lib/arm/libcom.yandex.runtime.so _ZN6yandex4maps7runtime9backtrace9BacktraceC2Ev
  # 1: 1558292  /data/app/packagename.debug-NGx239B8PqQ9q6zNy2xv-Q==/lib/arm/libcom.yandex.runtime.so 
  # 2: 1558756  /data/app/packagename.debug-NGx239B8PqQ9q6zNy2xv-Q==/lib/arm/libcom.yandex.runtime.so _ZN6yandex4maps7runtime9ExceptionC2ERKSsNS2_8SeverityE
  # 3: 1780372  /data/app/packagename.debug-NGx239B8PqQ9q6zNy2xv-Q==/lib/arm/libcom.yandex.runtime.so 
  # 4: 1790184  /data/app/packagename.debug-NGx239B8PqQ9q6zNy2xv-Q==/lib/arm/libcom.yandex.runtime.so _ZN6yandex4maps7runtime8graphics12VertexBufferC2ERKSt8functionIFvS4_IFvvEEEEPKvNS2_11BufferUsageEjj
  # 5: 4097016  /data/app/packagename.debug-NGx239B8PqQ9q6zNy2xv-Q==/lib/arm/libcom.yandex.mapkit.so 
  # 6: 4227332  /data/app/packagename.debug-NGx239B8PqQ9q6zNy2xv-Q==/lib/arm/libcom.yandex.mapkit.so 
  # 7: 4227856  /data/app/packagename.debug-NGx239B8PqQ9q6zNy2xv-Q==/lib/arm/libcom.yandex.mapkit.so 
  # 8: 2863160  /data/app/packagename.debug-NGx239B8PqQ9q6zNy2xv-Q==/lib/arm/libcom.yandex.runtime.so 
  # 9: 2884616  /data/app/packagename.debug-NGx239B8PqQ9q6zNy2xv-Q==/lib/arm/libcom.yandex.runtime.so Java_com_yandex_runtime_view_internal_PlatformViewBinding_onRender

       at com.yandex.runtime.view.internal.PlatformViewBinding.onRender(PlatformViewBinding.java)
       at com.yandex.runtime.view.internal.PlatformGLRenderer.onDrawFrame(PlatformGLRenderer.java:27)
       at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1609)
       at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1293)

Маршрут с промежуточными точками

Добрый день. Подскажите как указать в запросе маршрута requestRoutes в классе DrivingRouter что бы строился оптимальный маршрут без учета порядка промежуточных точек.

Vector drawable

Please add support for vector drawable (arrow_pin, marker)

ClassNotFoundException на андроиде < API 21

Выдает такую ошибку на андрод 4.4 (в моем проекте) :
java.lang.ClassNotFoundException: Didn't find class "com.yandex.runtime.device.internal.DeviceInfo" on path: DexPathList[[directory "."],nativeLibraryDirectories=[/vendor/lib, /system/lib]]

при выполнении этой строчки:
MapKitFactory.initialize(this)

Multidex включен и все работает на версиях андроид >=5.0
мой build.gradle:

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
apply plugin: 'io.fabric'

repositories {
maven { url 'https://maven.fabric.io/public' }
}

android {
compileSdkVersion 27
defaultConfig {
applicationId "com.citrusbit.zmart"
minSdkVersion 16
targetSdkVersion 27
versionCode 76
versionName "1.0.76"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
multiDexEnabled true
}

buildTypes {
    release {
        debuggable false
        minifyEnabled true
        shrinkResources true
        signingConfig signingConfigs.release
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
    debug {
        debuggable true
        minifyEnabled false
        //shrinkResources true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
kapt {
    generateStubs = true
}
dataBinding {
    enabled = true
}

}

dependencies {
implementation('com.crashlytics.sdk.android:crashlytics:2.9.4@aar') {
transitive = true
}
implementation 'com.android.support:multidex:1.0.3'
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'com.android.support:design:27.1.1'
implementation 'com.android.support:support-v4:27.1.1'

//yandex
implementation 'com.yandex.android:mapkit:3.2.0'
implementation 'com.yandex.android:search:3.2.0'
implementation 'com.yandex.android:mobmetricalib:3.2.2'
implementation "com.yandex.android:mobmetricapushlib:1.2.0"

// many other dependecies
..........................
..........................
}
apply plugin: 'com.google.gms.google-services'

SearchFactory, UnsatisfiedLinkError: Native method not found

private double latitude, longitude;
private void yandexGeocoder() {
	SearchManager sm = SearchFactory.getInstance().createSearchManager(SearchManagerType.ONLINE);
	SearchOptions so = new SearchOptions();
	so.setGeometry(true);
	so.setSearchTypes(1); // GEO

	sm.submit(new Point(latitude, longitude), 16, so, this);
}

Это даёт Exception:

E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.app, PID: 7112
java.lang.UnsatisfiedLinkError: Native method not found: com.yandex.mapkit.search.SearchFactory.getInstance:()Lcom/yandex/mapkit/search/Search;
at com.yandex.mapkit.search.SearchFactory.getInstance(Native Method)
at com.example.app.ui.fragment.MyFragment.yandexGeocoder(MyFragment.java:648)
at com.example.app.ui.fragment.MyFragment.handleCoordinatesChange(MyFragment.java:612)
at com.example.app.ui.fragment.MyFragment.setNewLocation(MyFragment.java:680)
at com.example.app.ui.fragment.MyFragment.setCustomLocation(MyFragment.java:686)
at com.example.app.ui.activity.MyActivity.onActivityResult(MyActivity.java:82)
at android.app.Activity.dispatchActivityResult(Activity.java:5456)
at android.app.ActivityThread.deliverResults(ActivityThread.java:3549)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:3596)
at android.app.ActivityThread.access$1300(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1369)
at android.os.Handler.dispatchMessage(Handler.java:110)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:5292)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:824)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:640)
at dalvik.system.NativeStart.main(Native Method)

Android 4.4.2
Версия mapkit и модуля search: 3.2.0 (на 3.1.2 было тоже самое)

MapObjectTapListener callback triggered with noticeable delay after tapping.

I've encountered a problem where placemark taps are detected with quite a bit of delay, about 500-800 milliseconds.

To test things out I've added the following code to the MapObjectsActivity class in the demo project. The log shows up after at least half a second, sometimes more. Same thing happens if I try to modify something in the UI on placemark tap.

PlacemarkMapObject mark = mapObjects.addPlacemark(DRAGGABLE_PLACEMARK_CENTER);
mark.setOpacity(0.5f);
mark.setIcon(ImageProvider.fromResource(this, R.drawable.mark));
mark.addTapListener(new MapObjectTapListener() {
    @Override
    public boolean onMapObjectTap(MapObject mapObject, Point point) {
        Log.d("MapObjects", "OBJECT TAPPED " + (tapCount++) + " times");
        return true;
    }
});

I've removed the mark.setDraggable(true); statement just in case it somehow causes interference. Same problem occurs if I add an InputListener to the map itself.

Tested on default android emulator with Android 8.0, and a real HTC One M8 with Andriod 6.0

Am I doing something wrong here?

addTapListener doesn't work

Try to add tap behaviour for placemark but this callback is never triggered.

for (nodeIndex in 0 until routeNodes.size) {
val (node, r) = getDrawableForNode(routeNodes, nodeIndex) //TODO refactore

        val mark = mvMap.map.mapObjects.addPlacemark(Point(node.latitude, node.longitude), ImageProvider.fromBitmap(r))
        mark.addTapListener { p0, p1 ->
            if(p0 != null) {
                val node = p0.userData as RouteNode
                Toast.makeText(applicationContext, node.getDescription(), Toast.LENGTH_LONG).show()
                true
            } else {
                false
            }
        }

        mark.userData = node
        mark.opacity = 0.8f
    }

Project doesn't build in Android Studio 3.1

Thank you for new version of library.
Project doesn't build in Android Studio 3.1 and show Java compiler error:

Caused by: com.android.builder.dexing.DexArchiveBuilderException: Failed to process /Users/.gradle/caches/transforms-1/files-1.1/runtime-3.0.0.aar/84cd871fb4c5b7f20232a4b809b354bd/jars/classes.jar
Caused by: com.android.builder.dexing.DexArchiveBuilderException: Error while dexing.
Caused by: java.lang.ArrayIndexOutOfBoundsException
Caused by: java.lang.ArrayIndexOutOfBoundsException: -2147483648

Runtime error: invalid argumentfailed parses the internal address structure from web.adfox.ru.

Thanks for the new version.
The project was built and started, however when I trying to call any activity an error occurs: mapview works properly (i.e. the location is found and so on...), but does not load the map. Logcat shows: 27824-27880 / com.Yandex.map kit demo E / yandex.maps: Yandex:: maps:: environment:: networks:: General:: dnscache:: resetLocalResolver: invalid argumentfailed parses the internal address structure from web.adfox.ru.

Does not show the map tiles in fragment

Does not show the map tiles in fragment
No errors in debug console, work zoom and move to coordinates, but not show any map tiles - just empty grid.

Fragment code:

    @Override public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        MapKitFactory.setApiKey(API_KEY);
        MapKitFactory.initialize(this.getContext());
    }

    @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.fragment_map, container, false);
        mapView = v.findViewById(R.id.mapview);
        mapView.getMap()
                .move(new CameraPosition(new Point(62.100927, 129.753213), 11.0f, 0.0f, 0.0f),
                      new Animation(Animation.Type.SMOOTH, 0), null);
        return v;
    }

    @Override public void onStart() {
        super.onStart();
        mapView.onStart();
        MapKitFactory.getInstance().onStart();
    }

    @Override public void onStop() {
        super.onStop();
        mapView.onStop();
        MapKitFactory.getInstance().onStop();
    }

Yandex map view not working on API 19

I'm trying to run application on API19 emulator and device but not working
Application is crash and gives error like below
Caused by: android.view.InflateException: Binary XML file line #21: Error inflating class com.yandex.mapkit.mapview.MapView

what's the problem please help me

Thank you

Crash when trying to initialize MapKitFactory. Again

Same error as here

java.lang.UnsatisfiedLinkError: dlopen failed: "/data/data/com.appname.app/app_lib/libgnustl_shared.so" is 32-bit instead of 64-bit at java.lang.Runtime.load0(Runtime.java:928) at java.lang.System.load(System.java:1621) at com.yandex.runtime.internal.ReLinker.loadLibrary(ReLinker.java:82) at com.yandex.runtime.Runtime.loadLibrary(Runtime.java:122) at com.yandex.runtime.Runtime.init(Runtime.java:99) at com.yandex.mapkit.MapKitFactory.initialize(MapKitFactory.java:18) at com.appname.main.MainActivity.onCreate(MainActivity.kt:41) at android.app.Activity.performCreate(Activity.java:7023) at android.app.Activity.performCreate(Activity.java:7014) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1215) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2745) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2870) at android.app.ActivityThread.-wrap11(Unknown Source:0) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1601) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:172) at android.app.ActivityThread.main(ActivityThread.java:6590) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)

Have no idea why did you close it without any fixes :/

I guess you have to hire tester or fire existing.

Placemark tap listener issue

screen shot 2018-05-09 at 17 24 00

I've written code above, where added placemarks, add then tapped on it. In logs I've got Point(43.22710205032152 76.95960232840031), but I've put latitude=43.228027, longitude=76.959441, why it's happened. Thank you

Polyline objects aren't shown

I use class Polyline to draw lines on a map.
The problem is that lines are shown on map only if I put

  • dontobfuscate in proguard-rules.pro.

Tried to add these lines in proguard file, but didn't help:
-keep class com.yandex.mapkit.** { ; }
-dontwarn com.yandex.mapkit.
*

Ballon on map

I can't find a possibility for adding a balloon with text for placemark object. Is it possibility in last mapkit version?

Marker anchor

How to offset a marker?

Example use in google maps v2:

...
MarkerOptions m = new MarkerOptions();
m.anchor(0.5f, 0.5f);
...

Panorama

On the emulator (API 28) works perfectly.
untitled-1

On the real device Xperia XA1 Plus (API 26):
20181014_121118729_ios

How fix it?

code:

if (!setPanorama) {
    showPanorama()
}

private fun showPanorama() {
      val panoramaService = MapKitFactory.getInstance().createPanoramaService()
      panoramaService.findNearest(routeEndLocation, this)
}

override fun onPanoramaSearchResult(panoramaId: String) {
      panoview.visibility = VISIBLE

      panoview.player.openPanorama(panoramaId)
      panoview.player.enableLoadingWheel()
      panoview.player.onMemoryWarning()

      setPanorama = true
}

<com.yandex.mapkit.panorama.PanoramaView
            android:id="@+id/panoview"
            android:layout_width="match_parent"
            android:layout_height="120dp"
            android:layout_marginTop="4dp"
            android:paddingBottom="8dp"
            android:visibility="gone" />

How i can use Balloon?

How i can create Ballon or other element like this in mapkit 2.0:

Sorry, i can't find it in documentation.

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.