Yandex mapkit android demo

Yandex mapkit android demo

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.
Читайте также:  Как проверить qr код android

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

Источник

Не грузится карта #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.

Читайте также:  Андроид не дает рут права

Источник

Работа с метками #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 . ничего не понятно.

Источник

Yandex mapkit android demo

A flutter plugin for displaying yandex maps on iOS and 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
Читайте также:  Промокод для mighty party 2021 андроид

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

Источник

How get address (point or search)? #61

Comments

EvgenBES commented Jan 4, 2019

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

И вторая задача, как я могу получить координаты места по поиску: типа г. Москва, ул. Чебуречная 25 и в ответ получить Point с координатами.

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

EvgenBES commented Jan 20, 2019

Неужели не кто никто не знает 🙁

iFr0z commented Jan 20, 2019 •

@EvgenBES Просто сделайте HTTP geocoding запрос (заранее предупреждаю, что для этого, с недавних времён, нужно взять отдельный ключик в кабинете разработчика) и распарсите JSON, или сразу Retrofit используйте. Не забывайте также использовать асинхронный код, т.к. это запрос к сети и его нельзя осуществлять в основном потоке. А также проверять связь с интернетом. Ну и контролировать ситуацию, а то накликают.

По второй задаче поможет пример, который, собственно, тут и находится.

elricbk commented Jan 23, 2019

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

Для этого нужно использовать обратное геокодирование с типом GEO

И вторая задача, как я могу получить координаты места по поиску: типа г. Москва, ул. Чебуречная 25 и в ответ получить Point с координатами.

А это просто обычный поиск по тексту. Возможно, имеет смысл тоже ограничить типом GEO, если вы уверены, что там именно адрес.

EvgenBES commented Jan 30, 2019

Всем спасибо.
HTTP geocoding — помог решить данную проблему.
Хоть и пришлось сделать себе еще один ключ + реализацию запроса, но это не столько проблематично было)

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.

Источник

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