Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 11.03.2020
Сообщений: 1

Как вставить свою метку с собственным изображением Yandex MapKit

11.03.2020, 18:57. Показов 12523. Ответов 0

Студворк — интернет-сервис помощи студентам
Как вставить кучу меток с собственным изображением Yandex MapKit? пишу на Android studio,Java. В документации копался ничего толком так и не понял, в поддержку им писал тоже молчат, в других форумах спрашивал тупо угорают. В одном форуме дали но он на Kotlin, а мне надо Java.

ЕГО ОТВЕТ(KOTLIN):Я писал эту обертку для себя. В целом то что вас интересует это addMarker. Надо добавить 100 маркеров, просто вызовите его 100 раз.
Kotlin
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
class YandexMapView @JvmOverloads constructor(
    context: Context,
    attrs: AttributeSet? = null,
    defStyle: Int = 0,
    defStyleRes: Int = 0
) : FrameLayout(context, attrs, defStyle, defStyleRes) {
 
    private val yandexMap: MapView
    private var mapObjectCollection: MapObjectCollection
    private var markerTapListener: MapObjectTapListener? = null
    private val userLocation by lazy { getUserLocationLayer() }
 
    init {
        LayoutInflater.from(context).inflate(R.layout.map_view, this, true)
        yandexMap = mapView
        mapObjectCollection = yandexMap.map.mapObjects.addCollection()
    }
 
    fun onStart() {
        yandexMap.onStart()
        MapKitFactory.getInstance().onStart()
    }
 
    fun onStop() {
        yandexMap.onStop()
        MapKitFactory.getInstance().onStop()
    }
 
    fun release() {
        mapObjectCollection.clear()
        markerTapListener = null
    }
 
    fun setTapListener(listener: MapObjectTapListener) {
        markerTapListener = listener
    }
 
    fun showUserLocation() {
        userLocation.apply {
            isVisible = true
            isHeadingEnabled = false
 
            setAnchor(
                PointF((yandexMap.width * 0.5f), (yandexMap.height * 0.5f)),
                PointF((yandexMap.width * 0.5f), (yandexMap.height * 0.83f))
            )
            resetAnchor()
        }
    }
 
    fun moveAnimatedTo(
        latitude: Double,
        longitude: Double,
        zoom: Float = DEFAULT_ZOOM,
        azimuth: Float = 0F,
        tilt: Float = 0F,
        animation: Animation,
        callback: Map.CameraCallback? = null
 
    ) {
        yandexMap.map.move(
            CameraPosition(Point(latitude, longitude), zoom, azimuth, tilt),
            animation,
            callback
        )
    }
 
    fun addMarker(
        latitude: Double,
        longitude: Double,
        @DrawableRes imageRes: Int,
        userData: Any? = null
    ): PlacemarkMapObject {
        val marker = mapObjectCollection.addPlacemark(
            Point(latitude, longitude),
            ImageProvider.fromResource(context, imageRes)
        )
        marker.userData = userData
        markerTapListener?.let { marker.addTapListener(it) }
        return marker
    }
 
    fun getZoom() = yandexMap.map.cameraPosition.zoom
 
    private fun getUserLocationLayer() =
        MapKitFactory.getInstance().createUserLocationLayer(yandexMap.mapWindow)
 
    companion object {
 
        const val DEFAULT_ZOOM = 10F
 
        fun initialize(context: Context, apiKey: String) {
            MapKitFactory.setApiKey(apiKey)
ЕЩЁ ЕГО ОТВЕТ(KOTLIN):В вашем Fragment/Activity это должно работать примерно так
Kotlin
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
//Маркеры в Yandex MapKit имеют WeakReference. И ссылки на них будут уничтожаться постоянно сборщиком мусора. Так что если вы хотите взаимодействовать с вашими маркерами, их надо хранить ручками. Например так
private val markerDataList = HashMap<Data, PlacemarkMapObject>()
 
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    YandexMapView.initialize(requireContext(), apiKey)
}
 
override fun onStart() {
    super.onStart()
    yandexMap.onStart()
}
 
override fun onStop() {
    super.onStop()
    yandexMap.onStop()
}
 
override fun onDestroy() {
    super.onDestroy()
    yandexMap?.release()
}
 
private fun addMarkers(dataList: List<Data>) {
    for (data in dataList) {
        val marker = yandexMap.addMarker(
            latitude = data.latitude,
            longitude = data.longitude,
            imageRes = R.drawable.ic_marker,
            userData = data.tag
        )
        //Вот здесь я как раз и сохраняю каждый маркер в свою мапу
        markerDataList[data] = marker
    }
}
И после всех этих страданий по поводу поиска ответа на Java, я тупо забил на всё и пошёл опять шерстить эту документацию Yandex MapKit'a и благодаря этому удалось сделать всего лишь это
Kotlin
1
2
3
4
    public List< PlacemarkMapObject > addPlacemarks (@NonNull List< Point > points, @NonNull ImageProvider image, @NonNull IconStyle style){
            new Point(55.75432645357227,37.62391943276439),
           
    }
И да я понимаю что это бред! но я только начинаю(это значит ничего не знаю) и прошу не надо тут писать мол иди учись и т д, мне осталось сделать только это и ВСЁ! а дальше уже вряд ли буду создавать нечто такое! и не вижу смысла обучатся этому ремеслу.И поверьте мне на слово во всём рунете нету ответа для таких особо одарённых как я, т.е типо скопипастил чутка пошаманил под себя и всё. Просто помогите плес.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.03.2020, 18:57
Ответы с готовыми решениями:

Как получить экранные и геокоординаты по клику по MapView в yandex mapkit?
Как получить экранные и геокоординаты по клику по MapView в yandex mapkit? Пробовал повесить...

Как получить GeoCode в yandex mapkit?
Как получить GeoCode зная координаты?

Как найти координаты пользователя в Yandex Mapkit ?
Добрый день подскажите пожалуйста как найти координаты, на форумах пишут, что это делается с...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.03.2020, 18:57
Помогаю со студенческими работами здесь

Yandex mapKit. Как включить карту с типом гибрид?
private lateinit var mapView: MapView override fun onCreate(savedInstanceState: Bundle?) { ...

Yandex mapkit узнать координаты адреса
Доброго времени суток. Только начал работать с yandex map kit и не могу найти ответа на вопрос как...

Yandex mapkit и другие
Здравствуйте. Нужно встроить в приложение карту для наглядного местоположения какого либо объекта,...

Yandex MapKit на Android Studio
Здравствуйте, импортировал библиотеку карт в проект, на эмуляторе все отлично работает, но на...

Yandex mapKit - вращение и движение обьекта на карте
Здравствуйте. Если кто-то работал с MapKit просьба прояснить 2 момента: 1) как при наличии...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru