kt

mail@pastecode.io avatar
unknown
kotlin
a year ago
1.1 kB
3
Indexable
Never
class CustomMarker(
    context: Context?,
    mapView: MapView?,
    label: String?,
    position: GeoPoint?
) : Marker(mapView) {
    private val labelText: String = label ?: ""
    private val painttext: Paint = Paint()

    init {
        title = labelText
        setIcon(null) // You can set a custom icon if needed
        position?.let { setPosition(it) }
        painttext.color = android.graphics.Color.WHITE
        // Customize label text color
        painttext.textSize = 20f // Customize label text size
        painttext.textAlign = Paint.Align.CENTER
        setAnchor(Marker.ANCHOR_CENTER,Marker.ANCHOR_TOP)
    }

    override fun draw(canvas: Canvas?, mapView: MapView?, shadow: Boolean) {
        super.draw(canvas, mapView, shadow)
        if (!shadow) {

            // Draw label text on the marker
            val mpostion = mapView?.projection?.toPixels(this.position,null)
            mpostion?.let {
                canvas?.drawText(labelText, it.x.toFloat(), it.y.toFloat(), painttext)
            }
        }
    }
}