Skip to content

Instantly share code, notes, and snippets.

@hmmmk
Created October 24, 2018 09:56
Show Gist options
  • Save hmmmk/042e8d07966cd2a8d4316f42f5520a55 to your computer and use it in GitHub Desktop.
Save hmmmk/042e8d07966cd2a8d4316f42f5520a55 to your computer and use it in GitHub Desktop.
Search places with yandex MapKit
package com.izibizy.mvp.fragments.add.address
import android.os.Bundle
import android.view.*
import com.izibizy.R
import com.izibizy.common.base.BaseActivity
import com.izibizy.common.base.BaseFragment
import com.izibizy.mvp.fragments.add.address.search.SearchFragment
import com.izibizy.mvp.fragments.profile.ProfileFragment
import com.izibizy.navigation.BaseFragmentController.Companion.fragmentNavController
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.search.SearchFactory
import com.yandex.mapkit.search.SearchManager
import com.yandex.mapkit.search.SearchManagerType
import com.yandex.runtime.image.ImageProvider
import kotlinx.android.synthetic.main.fragment_object_address.*
class ObjectAddressFragment : BaseFragment() {
lateinit var searchManager: SearchManager
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
MapKitFactory.setApiKey(resources.getString(R.string.yandex_maps_api_key))
MapKitFactory.initialize(activity)
SearchFactory.initialize(context)
searchManager = SearchFactory.getInstance().createSearchManager(SearchManagerType.COMBINED)
}
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
return inflater.inflate(R.layout.fragment_object_address, container, false)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
setHasOptionsMenu(true)
initializeViews()
initializeListeners()
}
private fun initializeViews() {
mapview.map.move(
CameraPosition(Point(55.881488, 37.573856), 14.88f, 0.0f, 0.0f),
Animation(Animation.Type.SMOOTH, 0.toFloat()),
null)
mapview.map.mapObjects.addPlacemark(Point(55.881488, 37.573856),
ImageProvider.fromResource(activity, R.drawable.ic_map_marker_yellow))
}
private fun initializeListeners() {
executePlaceEtx.setOnClickListener {
fragmentNavController.pushFragment(SearchFragment())
}
}
override fun onResume() {
super.onResume()
(activity as BaseActivity).title = "Адресс объекта"
(activity as BaseActivity).supportActionBar?.setDisplayHomeAsUpEnabled(true)
}
override fun onStart() {
super.onStart()
mapview.onStart()
MapKitFactory.getInstance().onStart()
}
override fun onStop() {
super.onStop()
mapview.onStop()
MapKitFactory.getInstance().onStop()
}
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
super.onCreateOptionsMenu(menu, inflater)
menu.add(0, ProfileFragment.PROFILE_OPTION_EDIT, 0, "")
.setIcon(R.drawable.ic_check_act)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS)
}
override fun getName() = "object_address"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment