Android studio yandex maps addplacemark

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

Источник

Overview

Introduction

The Places SDK for Android allows you to build location-aware apps that respond contextually to the local businesses and other places near the user’s device. This means you can build rich apps based on places that mean something to the user, to complement the straightforward geographic-based services offered by the Android location services.

Читайте также:  Figma экспорт android studio

Concepts

The following interfaces provide the primary entry points to the Places SDK for Android:

  • Places provides programmatic access to Google’s database of local place and business information, as well as the device’s current place.
  • Autocomplete provides pre-made widgets to return place predictions in response to user search queries.

A place is defined as a physical space that has a name. Another way of thinking about a place is that it’s anything you can find on a map. Examples include local businesses, points of interest, and geographic locations. In the API, a place is represented by the Place interface. It includes information such as the name of the place and its address, geographical location, place ID, phone number, place type, website URL, and more.

API overview

Help your customers explore where they are and what’s around them:

  • Place Autocomplete automatically fills in the name and/or address of a place as users type.
  • Current Place returns a list of places where the user’s device is last known to be located along with an indication of the relative likelihood for each place.
  • Place Details return and display more detailed information about a place.
  • Place Photos returns high-quality images of a place.
  • Place IDs stores the unique ID for one or more places for retrieval of place information on demand.

Note: Google gathers anonymous usage statistics.

Policies and Terms

All applications that use the Places SDK for Android must adhere to the requirements described in the Google Maps Platform Terms of Service, Usage and Billing, and Displaying Attributions.

Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Источник

Данные о местоположении

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

Примеры кода

Хранилище ApiDemos на сайте GitHub содержит пример, который демонстрирует использование данных о местоположении на карте.

Java

  • MyLocationDemoActivity: использование слоя «Мое местоположение», включая динамические разрешения.
  • LocationSourceDemoActivity: использование собственного источника LocationSource .
  • CurrentPlaceDetailsOnMap: определение текущего местоположения устройства Android и отображение сведений об организации или другом объекте, который там находится. Ознакомьтесь с руководством по отображению сведений о месте на карте.

Kotlin

  • MyLocationDemoActivity: использование слоя «Мое местоположение», включая динамические разрешения.
  • CurrentPlaceDetailsOnMap: определение текущего местоположения устройства Android и отображение сведений об организации или другом объекте, который там находится. Ознакомьтесь с руководством по отображению сведений о месте на карте.

Работа с данными о местоположении

Устройствам Android могут быть доступны данные о текущем местоположении (для их сбора используется комбинация нескольких технологий), о направлении и способе движения, а также о том, покинуло ли устройство геозону, т. е. пересекло ли оно заданную географическую границу. Работать с данными о местоположении можно несколькими способами в зависимости от задач конкретного приложения.

  • Слой Мое местоположение представляет собой простой способ отобразить местонахождение устройства на карте. Он не возвращает никаких данных.
  • Для всех программных запросов данных о местоположении рекомендуется использовать Location API сервисов Google Play.
  • Интерфейс LocationSource позволяет использовать собственный источник данных о местоположении.
Читайте также:  Undelete 360 для андроид

Доступ к данным о местоположении

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

Android предлагает два разрешения на использование данных о местоположении: ACCESS_COARSE_LOCATION и ACCESS_FINE_LOCATION . От вашего выбора зависит, насколько точную информацию будет предоставлять API. Вам необходимо запросить только одно из разрешений на использование данных о местоположении Android в зависимости от требуемого уровня точности:

  • android.permission.ACCESS_COARSE_LOCATION позволяет использовать точки доступа Wi-Fi и/или мобильные данные, чтобы определять приблизительное местоположение устройства. API предоставляет информацию о местоположении с точностью примерно до городского квартала.
  • android.permission.ACCESS_FINE_LOCATION позволяет API максимально точно определять местоположение на основании информации, предоставляемой поставщиками данных о местоположении, включая глобальную систему позиционирования (GPS), сеть Wi-Fi и мобильные данные.

Добавление разрешений в манифест приложения

Добавьте одно из следующих разрешений в качестве дочернего для элемента в манифесте Android. Укажите разрешение для данных о приблизительном местоположении:

Или разрешение для данных о точном местоположении:

Запрос разрешений в среде выполнения

В Android 6.0 (Marshmallow) представлена новая модель работы с разрешениями, которая оптимизирует процесс установки и обновления приложений пользователями. Если ваше приложение предназначено для API уровня 23 или более позднего, вы можете использовать новую модель разрешений.

Если приложение поддерживает новую модель разрешений, а на устройстве используется Android 6.0 (Marshmallow) или более новая версия, пользователю не нужно предоставлять какие-либо разрешения при установке приложения или его обновлении. Пользователь увидит диалоговое окно с просьбой предоставить соответствующее разрешение.

Чтобы обеспечить удобство для пользователя, важно запрашивать доступ в контексте. Если эта информация необходима для работы приложения, запрашивайте разрешение при запуске. Для этого рекомендуется использовать экран приветствия или мастер с объяснением причины запроса.

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

Приложение должно корректно продолжить работу, если пользователь откажется предоставить доступ. Например, если разрешение требуется лишь для определенной функции, приложение может просто отключить ее. Если же приложение неспособно работать без этих данных, в нем могут отключиться функциональные возможности. При этом следует проинформировать пользователя о том, что для дальнейшей работы нужен доступ к данным о местоположении.

В следующем примере кода проверка разрешения выполняется с использованием библиотеки поддержки перед включением слоя «Мое местоположение»: Затем результат запроса разрешения обрабатывается путем реализации ActivityCompat.OnRequestPermissionsResultCallback из библиотеки поддержки.

Kotlin

Слой «Мое местоположение»

Слой «Мое местоположение» и одноименная кнопка позволяют пользователям видеть свое актуальное местоположение на карте. Чтобы включить слой «Мое местоположение», вызовите метод mMap.setMyLocationEnabled() .

Простой пример использования слоя «Мое местоположение»:

Kotlin

Если включен слой «Мое местоположение», соответствующая кнопка отображается в правом верхнем углу экрана. При нажатии этой кнопки камера центрирует карту по текущему местоположению устройства, если оно известно. На карте местоположение обозначается маленькой синей точкой, если устройство неподвижно, или значком шеврона, если устройство находится в движении.

На скриншоте ниже вы можете увидеть кнопку «Мое местоположение» справа вверху и синюю точку в центре карты.

Чтобы предотвратить показ кнопки «Мое местоположение», вызовите UiSettings.setMyLocationButtonEnabled(false) .

Читайте также:  Завис запуск андроид оптимизация

Ваше приложение может реагировать на следующие события:

  • Если пользователь нажимает кнопку «Мое местоположение», ваше приложение получает обратный вызов onMyLocationButtonClick() от прослушивателя GoogleMap.OnMyLocationButtonClickListener .
  • Если пользователь нажимает на синюю точку «Мое местоположение», ваше приложение получает обратный вызов onMyLocationClick() от прослушивателя GoogleMap.OnMyLocationClickListener .

Важный пункт Условий использования

Обеспечивайте конфиденциальность пользователей,
информируйте их о том, что происходит в приложении.

Всегда сообщайте пользователям, как вы собираетесь применять их данные. Препятствуйте персональной идентификации пользователей по их данным. Перед применением данных о местоположении обязательно получите разрешение. Дайте пользователям возможность в любое время отозвать его.

Location API сервисов Google Play

Данные о местоположении в приложениях для Android лучше всего обрабатывать с помощью Location API сервисов Google Play. Он позволяет выполнять следующие задачи:

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

Location API упрощает создание приложений, работающих с данными о текущем местоположении пользователя и эффективно расходующих ресурс аккумулятора устройства. Как и Maps SDK for Android, Location API распространяется как часть SDK сервисов Google Play. Дополнительную информацию вы можете найти в учебном материале об использовании в приложении данных о местоположении, а также в документации по Location API. Примеры кода содержатся в SDK сервисов Google Play.

Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Источник

Android studio yandex maps addplacemark

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

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

Источник

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