Yandex mapkit android github

Содержание
  1. Yandex mapkit android github
  2. Latest commit
  3. Git stats
  4. Files
  5. README.md
  6. Yandex mapkit android github
  7. Работа с метками #110
  8. Comments
  9. sviter-pro commented Jul 19, 2019 •
  10. assansh commented Jul 22, 2019 •
  11. eberkovich commented Jul 22, 2019
  12. sviter-pro commented Jul 22, 2019 •
  13. eberkovich commented Jul 22, 2019
  14. sviter-pro commented Jul 22, 2019 •
  15. eberkovich commented Jul 22, 2019
  16. eberkovich commented Jul 22, 2019
  17. sviter-pro commented Jul 22, 2019
  18. eberkovich commented Jul 22, 2019
  19. sviter-pro commented Jul 22, 2019 •
  20. sviter-pro commented Jul 22, 2019 •
  21. Не грузится карта #175
  22. Comments
  23. clidzhiev commented Apr 22, 2020
  24. eaniconer commented Apr 23, 2020
  25. clidzhiev commented Apr 23, 2020
  26. ikosarim commented May 10, 2020
  27. MaximSemashko commented May 11, 2020 •
  28. clidzhiev commented May 14, 2020
  29. clidzhiev commented May 14, 2020
  30. psi-gh commented Jun 4, 2020
  31. pabrr commented Sep 23, 2020
  32. pabrr commented Sep 29, 2020
  33. Aboneyx commented Oct 3, 2021
  34. pabrr commented Oct 4, 2021
  35. UserLocationLayer перепрыгивает на местоположение пользователя #63
  36. Comments
  37. alinaSib commented Jan 10, 2019
  38. EvgenBES commented Jan 10, 2019
  39. EvgenBES commented Jan 10, 2019
  40. alinaSib commented Jan 10, 2019
  41. EvgenBES commented Jan 10, 2019
  42. alinaSib commented Jan 10, 2019
  43. ShtefanES commented Jan 10, 2019
  44. ShtefanES commented Jan 10, 2019
  45. ShtefanES commented Jan 10, 2019
  46. EvgenBES commented Jan 10, 2019
  47. iFr0z commented Jan 10, 2019
  48. ShtefanES commented Jan 11, 2019
  49. alinaSib commented Jan 11, 2019
  50. alinaSib commented Jan 11, 2019
  51. ShtefanES commented Jan 11, 2019
  52. alinaSib commented Jan 11, 2019
  53. iFr0z commented Jan 11, 2019 •

Yandex mapkit android github

Yandex Map Kit for Android

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

Эта версия больше не поддерживается, актуальную инфрмацию о новых версиях MapKit можно найти по ссылкам:

В этом репозитории находится тестовое приложение, демонстрирующее возможности Yandex Map Kit.

  1. Добавлено новое API уOverlayItem setOverlayItemListener #256
  2. Исправлена ошибка #253
  3. Исправлена ошибка #249
  4. Исправлена ошибка #240
  5. Исправлена ошибка #234
  1. Исправлена ошибка утечки #243
  2. Исправлена ошибка #240
  3. Добавили свойство в MapEvent isGesture() #237
  1. Исправлены ошибки при отображении карты
  2. Добавлен arm64-v8a и x86_64 архитектуры
  1. Исправлены ошибки отображения кнопок на карте
  2. Добавлен пример работы с запросом разрешений на получения геопозиции
  1. Исправлены ошибки, приводившие к падениям
  2. Удалены все запросы разрешений, кроме получения геопозиции
  1. Клонируйте репозиторий примера git clone https://github.com/yandexmobile/yandexmapkit-android.git
  2. В папке yandexmapkit-sample находится пример приложения который через gradle зависимость подключает мапкит
  3. Данные проекты уже настроены для работы в среде Eclipse
  4. Импортируйте данные проекты в среду Eclipse или Android Studio
  5. Выполняете Gradle Sync для проекта.
  6. Подставьте свой API ключ во все layout где используется объект MapView
  7. Всё готово к запуску тестового проекта

Запуск из командной строки.

Миграция с первой версии

  1. При создании OverlayItem необходимо в конструкторе вместо объекта Bitmap передавать Drawable, можно воспользоваться new BitmapDrawable(you_bitmap)
  2. При создании объекта BalloonItem необходимо в конструкторе передавать Context (необходимый для загрузки ресурсов)
  3. Исправить использования интерфейса с OnBallonListener на OnBalloonListener и добавить новые методы из данного интерфейса
  4. Исправить имя метода у BalloonItem с setOnBallonListener на setOnBalloonViewClickListener
  5. Необходимо изменить логику работы интерфейса OnBalloonListener метода onBallonClick на onBalloonViewClick

Интеграция с Яндекс.Картами

Документация по интеграции с мобильными Яндекс.Картами выложена на tech.yandex.ru

Также у этого проекта есть:

  • Wiki, в которой содержится полезная информация о Yandex Map Kit.
  • JavaDoc, который находится в yandexmapkit-library/doc. В нем содержится описание классов и методов Yandex Map Kit.

Если вы хотите сообщить об ошибке или предложить идею в развитии, то напишите об этом, пожалуйста, в Issues.

Источник

Yandex mapkit android github

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

Читайте также:  Что такое content manager для android

Disclaimer: This project uses Yandex Mapkit which belongs to Yandex
When using Mapkit refer to these terms of use

Generate your API Key

  1. Go to https://developer.tech.yandex.com
  2. Create a MapKit mobile SDK key

Initializing for iOS

  1. Add import YandexMapsMobile to ios/Runner/AppDelegate.swift
  2. Add YMKMapKit.setApiKey(«YOUR_API_KEY») inside func application in ios/Runner/AppDelegate.swift
  3. Specify your API key in the application delegate ios/Runner/AppDelegate.swift
  4. For Flutter version less than 1.22 add io.flutter.embedded_views_preview inside tag in ios/Runner/Info.plist
  5. Uncomment platform :ios, ‘9.0’ in ios/Podfile

For Swift 4.0 and lesser

For Swift 4.2 and greater

Initializing for Android

  1. Add dependency implementation ‘com.yandex.android:maps.mobile:4.0.0-full’ to android/app/build.gradle
  2. Add permissions and to android/app/src/main/AndroidManifest.xml
  3. Add import com.yandex.mapkit.MapKitFactory; to android/app/src/main/. /MainActivity.java / android/app/src/main/. /MainActivity.kt
  4. MapKitFactory.setApiKey(«YOUR_API_KEY»); inside method onCreate in android/app/src/main/. /MainActivity.java / android/app/src/main/. /MainActivity.kt
  5. Specify your API key in the application delegate android/app/src/main/. /MainActivity.java / android/app/src/main/. /MainActivity.kt

For Java projects

For Kotlin projects

For usage examples refer to example app

This project only supports Android V2 embedding. V1 support has been completly dropped. If you are creating a new flutter project then you are automatically using V2 and don’t have to worry. Other projects are strongly recommended to migrate to V2. See this page for more details.

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

Currently native library doesn’t support Silicon Mac.
If you receive this type of error

Add in your projects Build Settings in section Excluded Architectures for Debug this line — arm64
This way XCode won’t try to build for Silicon Macs iOS Simulators

Источник

Работа с метками #110

Comments

sviter-pro commented Jul 19, 2019 •

создаю метку! надо что бы на ней была информация обьекта. mapView.getMap().addTapListener(new GeoObjectTapListener() <
public boolean onObjectTap(GeoObjectTapEvent geoObjectTapEvent) <
GeoObject obj = geoObjectTapEvent.getGeoObject();
obj.getDescriptionText();

как обработать: obj.getDescriptionText(); .
ато приходит всегда «obj: GeoObject@5544»

The text was updated successfully, but these errors were encountered:

assansh commented Jul 22, 2019 •

Можно использовать getUserData() & setUserData(object) класса PlacemarkMapObject:

eberkovich commented Jul 22, 2019

Для обработки нажатий на пользовательские объекты нужно использовать MapObjectTapListener, который устанавливается с помощью MapObject.addTapListener.

GeoObjectTapListener нужен для обработки нажатий на объекты в слоях карты.
Кроме того, пожалуйста обратите внимание на то, что mapkit сохраняет слабые ссылки на листнеров, по этому их необходимо сохранять на стороне приложения.

sviter-pro commented Jul 22, 2019 •

можно ли вообще сделать обработку нажатий только остановок в определенном куске страны, города или поселка ну или вообще всех только остановок
?

eberkovich commented Jul 22, 2019

В данный момент способа определить, что объект является остановкой нет.
Эта возможность появится в одном из следующих релизов.

По поводу ограничения области для обработки нажатий. Можно использовать GeoObject.getBoundingBox() и на стороне приложения проверять попадание в заданную область.

sviter-pro commented Jul 22, 2019 •

не получается!
делаю так:
`

и ничего не происходит!

eberkovich commented Jul 22, 2019

Кроме того, пожалуйста обратите внимание на то, что mapkit сохраняет слабые ссылки на листнеров, по этому их необходимо сохранять на стороне приложения.

eberkovich commented Jul 22, 2019

На всякий случай, у Point первая координата это широта.

sviter-pro commented Jul 22, 2019

ну поменял я наоборот! но храбрости мне это не придало! все ровно ничего не происходит! в чем может быть дело? карта запускается, гео.локация работает, значит и остальное должно!

eberkovich commented Jul 22, 2019

  • что значит ничего не происходит: иконка не показывается или не срабатывают нажатия?
  • если речь про то, что не видно иконку, ее не видно даже если перейти на масштаб на котором виден весь мир?

sviter-pro commented Jul 22, 2019 •

дико извиняюсь! все заработало! мой касяк был в том, что я все делал тут:

а надо то в implements MapObjectTapListener.

Читайте также:  Установить клавиатуру для андроид планшета

sviter-pro commented Jul 22, 2019 •

это пол беды. подскажите как вывести текст с обьекта на котором стоит placemark . ничего не понятно.

Источник

Не грузится карта #175

Comments

clidzhiev commented Apr 22, 2020

Не загружается карта, просто покрыта сеткой на сером фоне. Вот что пишет при этом в консоли:
(Ключ свой ввел YMKMapKit.setApiKey(«1db30b40-42ad-4bcb-9d98-4d31a151dcb7»), поды все поставил, просто запускаю демо проект в x-code.)

2020-04-22 23:13:53.423413+0300 MapKitDemo[5382:209436] [Client] Updating selectors failed with: Error Domain=NSCocoaErrorDomain Code=4099 «The connection to service on pid 0 named com.apple.commcenter.coretelephony.xpc was invalidated.» UserInfo=
2020-04-22 23:13:53.425564+0300 MapKitDemo[5382:209482] [Client] Synchronous remote object proxy returned error: Error Domain=NSCocoaErrorDomain Code=4099 «The connection to service on pid 0 named com.apple.commcenter.coretelephony.xpc was invalidated.» UserInfo=
2020-04-22 23:13:53.425819+0300 MapKitDemo[5382:209436] [Client] Updating selectors failed with: Error Domain=NSCocoaErrorDomain Code=4099 «The connection to service on pid 0 named com.apple.commcenter.coretelephony.xpc was invalidated.» UserInfo=
2020-04-22 23:13:53.432538+0300 MapKitDemo[5382:209474] yandex::maps::runtime::locale::internal::detectCountry : Empty operatorInfo!
2020-04-22 23:13:53.433733+0300 MapKitDemo[5382:209436] [Client] Updating selectors failed with: Error Domain=NSCocoaErrorDomain Code=4099 «The connection to service on pid 0 named com.apple.commcenter.coretelephony.xpc was invalidated.» UserInfo=
2020-04-22 23:13:53.434582+0300 MapKitDemo[5382:209436] [Client] Updating selectors after delegate removal failed with: Error Domain=NSCocoaErrorDomain Code=4099 «The connection to service on pid 0 named com.apple.commcenter.coretelephony.xpc was invalidated.» UserInfo=
2020-04-22 23:13:53.788978+0300 MapKitDemo[5382:209474] decltype : Unexpected server response: Forbidden. Body :Invalid client information.
Could not fetch [https://spdy3-proxy.maps.yandex.net:443/mapkit2/init/2.x/random]

The text was updated successfully, but these errors were encountered:

eaniconer commented Apr 23, 2020

Обычно после получения ключа, нужно немного подождать. Проверьте еще раз.

clidzhiev commented Apr 23, 2020

Cпасибо, что отписались. К сожалению, ожидание не помогло. Прошло уже больше чуток, и проблема не ушла..

ikosarim commented May 10, 2020

Такая же проблема. Прошел где-то час после получения ключа.

W/yandex.maps: decltype: Unexpected server response: Forbidden. Body :Invalid client information.
Could not fetch [https://proxy.mob.maps.yandex.net:443/mapkit2/init/2.x/random]

Хотелось бы узнать:

  1. clidzhiev, помогло ли ожидание?
  2. Можете ли вы помочь с этой проблемой?

MaximSemashko commented May 11, 2020 •

@eaniconer спасибо за ответ

clidzhiev commented May 14, 2020

Такая же проблема. Прошел где-то час после получения ключа.

W/yandex.maps: decltype: Unexpected server response: Forbidden. Body :Invalid client information.
Could not fetch [https://proxy.mob.maps.yandex.net:443/mapkit2/init/2.x/random]

Хотелось бы узнать:

  1. clidzhiev, помогло ли ожидание?
  2. Можете ли вы помочь с этой проблемой?

clidzhiev commented May 14, 2020

можешь кинуть как записал в AppDelegate? (без своего ключа)
может мы не так что пишем

psi-gh commented Jun 4, 2020

То же самое на iOS. Ключу двое суток уже.

pabrr commented Sep 23, 2020

Аналогично. Ключу больше пяти суток.

pabrr commented Sep 29, 2020

Проблема была в настройках ключа.
Уточняла по вопросам у техподдержки, оставлю ссылку, если кому понадобится: https://yandex.ru/dev/maps/jsapi/doc/2.1/feedback/troubleshooting-docpage/

Aboneyx commented Oct 3, 2021

как решили проблему?

pabrr commented Oct 4, 2021

Обращалась за помощью в техподдержку: необходимы были правки по ключу с их стороны

You can’t perform that action at this time.

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.

Источник

UserLocationLayer перепрыгивает на местоположение пользователя #63

Comments

alinaSib commented Jan 10, 2019

Мне нужно показать местоположение пользователя на карте и сделать в эту точку зум при открытии карты и при нажатии кнопки. Делаю userLocationLayer.setEnabled(true). Но, если потом переместитья в другое место на карте через пару секунд камера опять перескакивает на местоположение пользователя. Какой метод позволяет от этого избавиться? В документации не нашла. (

The text was updated successfully, but these errors were encountered:

EvgenBES commented Jan 10, 2019

Поделись кусочком кода как ты это реализовал!
У меня сейчас тоже такая задача . и возможно поможешь мне поберечь пару часов моего времени.

Я думаю сделать это вызовом в 1 раз .
То есть создам метом в onCreate , какой то типа initUserLocation();
в данном методе я сделаю данную реализацию и по итогу должно получиться что мы будем вызвать этот метод только при иницилизации активности.

Читайте также:  Лучший аудиоплеер flac для андроид

EvgenBES commented Jan 10, 2019

Сорри не сразу заметил что девушка) — реализовал(а).
Пример из demo не передвигается на место расположения юзера когда смотрел его, возможно что-то забыл дописать или сделать, что бы он начал работать.

alinaSib commented Jan 10, 2019

В onCreate это все и делается.

EvgenBES commented Jan 10, 2019

Нашёл проблему . В настройках эмулятора (геолокации) не было разрешено моему приложение отслеживать моё место положение!
После предоставления этих возможностей всё получилось и определилось!

Вот нашёл проект в котором нету такой проблемы как описано у тебя:
https://github.com/MobileMirea/YandexMaps

у него нету такого метода moveCameraToPosition(. )

за то он вызывает onObjectAdded(@nonnull UserLocationView userLocationView) . и там всё это сделано .
Пока писал данный коммит карта не сдвинулась не на дюйм.
Так что советую попробовать его реализацию 😉

alinaSib commented Jan 10, 2019

Я использовала moveCameraToPosition для зума в эту точку. Но даже если я его закомментирую — зума не будет, а прыгать будет. Складывается впечатление, что виновата com.google.android.gms:play-services-location:16.0.0 и ее сервисы. Буду еще искать в чем проблема.
По поводу onObjectAdded — там просто иконки для метки, ничего более.
Спасибо.

ShtefanES commented Jan 10, 2019

Подойдет вариант определения местоположения с использованием com.yandex.mapkit.location.LocationListener и com.yandex.mapkit.location.LocationManager или нужно использовать именно userLocationLayer?

ShtefanES commented Jan 10, 2019

EvgenBES, не похоже, что проблема с эмулятором, запустил демо на Moto G5S android 8.1, проблема как у alinaSib.

ShtefanES commented Jan 10, 2019

Вот пример рабочего кода(нет проверки разрешения для api>=23) для определения местоположения при старте и по клику fab:

EvgenBES commented Jan 10, 2019

private void initUserLocation() <
userLocationLayer = mapView.getMap().getUserLocationLayer();
userLocationLayer.setEnabled(true);
userLocationLayer.setHeadingEnabled(true);
userLocationLayer.setObjectListener(this);
>

то есть без метода moveCameraToPosition, и метод zoom убрал тоже .
в onCreate
mapView.getMap().move(new CameraPosition(new Point(0, 0), 12, 0, 0));

результат меня устроил.

iFr0z commented Jan 10, 2019

https://github.com/iFr0z/FabUserLocation хоть и на kotlin, но не велика разница, т.к. методы используются те же.

ShtefanES commented Jan 11, 2019

Пример iFr0z решает проблему, получается для того чтобы камера не перескакивала на текущее местоположение при перемещении по карте(как в демо), нужно в колбек onCameraPositionChanged добавить userLocationLayer.resetAnchor().

alinaSib commented Jan 11, 2019

А у меня не получается с resetAnchor(). Также прыгает (

alinaSib commented Jan 11, 2019

Ну и видимо мы все-таки разные задачи с iFr0z решаем. Мне не надо следить за пользователем после нажатии кнопки. А надо только один раз показать где он — при нажатии на кнопку. Поэтому мне помогло вообще не делать setAnchor() и плюс boolean флаг showLocation.
Что, кстати за Anchor mode, который этот метод включает не совсем понятно.

ShtefanES commented Jan 11, 2019

Ваша активити или фрагмент должна реализовать интерфейс CameraListener.
В колбеке:
@OverRide
public void onCameraPositionChanged(@nonnull Map map, @nonnull CameraPosition cameraPosition, @nonnull CameraUpdateSource cameraUpdateSource, boolean b) <
if (b) <
userLocationLayer.resetAnchor();
>
>
Так же стоит назначить слушателя:
mapView.getMap().addCameraListener(this);

alinaSib commented Jan 11, 2019

@ShtefanES Было бы замечательно вообще понять что делает setAnchor() и resetAnchor().

iFr0z commented Jan 11, 2019 •

Было бы замечательно вообще понять что делает setAnchor() и resetAnchor().

userLocationLayer — это подключение слоя, который отобразит значок местоположения пользователя.
setAnchor() — это якорь, который следит за значком местоположения пользователя. Также Вы можете задать ширину и длину участка (экрана), который будет участвовать (эдакий зум).
resetAnchor() — это для того, чтобы его снять, и не следить больше за значком местоположения пользователя.

Складывается впечатление, что виновата com.google.android.gms:play-services-location:16.0.0 и ее сервисы.

Эти сервисы являются основой 🙂

userLocationLayer.setObjectListener(this); // интерфейс UserLocationObjectListener

Добавляя данный слушатель, Вы имеете дело с такими методами, как onObjectAdded, onObjectRemoved, onObjectUpdated . Они действительно нужны для отображения значка местоположения пользователя и его состоянием, изменением.

Источник

Оцените статью