Marca personalizada en google map android – Mehedi Hassan Piash

importar android.graphics.Bitmap
importar android.graphics.Canvas
importar android.graphics.Color
importar android.graphics.PorterDuff
importar androidx.appcompat.app.AppCompatActivity
importar el archivo android.os.Bundle
importar android.view.View

import com.google.android.gms.maps.CameraUpdateFactory
import com.google.android.gms.maps.GoogleMap
import com.google.android.gms.maps.OnMapReadyCallback
import com.google.android.gms.maps.SupportMapFragment
import com.google.android.gms.maps.model.BitmapDescriptorFactory
import com.google.android.gms.maps.model.CameraPosition
import com.google.android.gms.maps.model.LatLng
import com.google.android.gms.maps.model.MarkerOptions

clase MainActivity: AppCompatActivity (), OnMapReadyCallback {

mapa privado de lateinit var: GoogleMap

anular la diversión onCreate (SavedInstanceState: Bundle?) {
super.onCreate (SavedInstanceState)
setContentView (R.layout.activity_main)
// Obtenga SupportMapFragment y reciba una notificación cuando el mapa esté listo para usarse.
val mapFragment = supportFragmentManager
.findFragmentById (R.id.mapa) como SupportMapFragment
mapFragment.getMapAsync (esto)
}

anular la diversión enMapReady (googleMap: GoogleMap) {
map = googleMap

// Agrega una etiqueta en Sydney y mueve la cámara
val sydney = LatLng (-34.0; 151.0)
applyMapCamera ()
val markerOptions = MarkerOptions (). posición (sídney) .icono (
BitmapDescriptorFactory.fromBitmap (
loadBitmapView ()
)
) .zIndex (10f) .protección (0.5f, 0.5f)
googleMap.addMarker (markerOptions)
}

entretenimiento privado applyMapCamera () {
val cameraPosition = CameraPosition.Builder ()
.target (LatLng (-34.0, 151.0)) // Establece el centro del mapa en la posición actual
.zoom (13.0f) // Establece el zoom
.construir()
map.animateCamera (
CameraUpdateFactory.newCameraPosition (cameraPosition)
)
}

diversión privada loadBitmapView (): Bitmap {
val customMarkerView = layoutInflater. inflar (R.layout.custom_marker, cero)
customMarkerView.measure (View.MeasureSpec.NO PUBLICADO, View.MeasureSpec.NO PUBLICADO)
customMarkerView.layout (
0, 0,
customMarkerView.ancho medido,
customMarkerView.altura medida
)
val bitmap = Bitmap.createBitmap (
customMarkerView.ancho medido, customMarkerView.altura medida,
Bitmap.Config.ARGB_8888
)
val canvas = Canvas (mapa de bits)
canvas.drawColor (Color.BLANCO, PorterDuff.Mode.SRC_IN)
customMarkerView.Antecedentes? .draw (lienzo)
customMarkerView.draw (lienzo)
devolver un mapa de bits
}

}

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *