Mapas: polylines en Kotlin

Cómo crear polylines en Kotlin

Polylines en Google Maps con Kotlin

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="black">#FF000000</color>
    <color name="white">#FFFFFFFF</color>

    <color name="kotlin">#A802EF</color>
</resources>
private fun createPolylines(map: GoogleMap){
    val polylineOptions = PolylineOptions()
        .add(LatLng(40.419173113350965,-3.705976009368897))
        .add(LatLng( 40.4150807746539, -3.706072568893432))
        .add(LatLng( 40.41517062907432, -3.7012016773223873))
        .add(LatLng( 40.41713105928677, -3.7037122249603267))
        .add(LatLng( 40.41926296230622,  -3.701287508010864))
        .add(LatLng( 40.419173113350965, -3.7048280239105225))
        .add(LatLng(40.419173113350965,-3.705976009368897))
        .width(30f)
        .color(ContextCompat.getColor(this, R.color.kotlin))

    val polyline = map.addPolyline(polylineOptions)
}

onMapReady()

override fun onMapReady(googleMap: GoogleMap) {
    map = googleMap
    // val polylineOptions = PolylineOptions()

    //createMarker()
    createPolylines(map)

    map.uiSettings.isZoomControlsEnabled = true //Zoom en el mapa
    val favoritePlace = LatLng(40.4172,-3.7047)
    map.animateCamera(
        CameraUpdateFactory.newLatLngZoom(favoritePlace, 15f),
        5000,
        null
    )
}

Polilíneas y polígonos para representar rutas y áreas

Polígonos

googleMap.setOnMapClickListener { latLng ->
    // Handle map click
}

googleMap.setOnMapLongClickListener { latLng ->
    // Handle map long click
}

googleMap.setOnMarkerClickListener { marker ->
    // Handle marker click
    true
}

Poner un marcador al hacer long click en el mapa

override fun onMapReady(googleMap: GoogleMap) {
    map = googleMap
    // val polylineOptions = PolylineOptions()

    //createMarker()
    createPolylines(map)

    map.uiSettings.isZoomControlsEnabled = true //Zoom en el mapa
    val favoritePlace = LatLng(40.4172,-3.7047)
    map.animateCamera(
        CameraUpdateFactory.newLatLngZoom(favoritePlace, 15f),
        5000,
        null
    )

    // manejo de eventos click y longClick en el mapa
    // map.setOnMapClickListener {  }
    // map.setOnMapLongClickListener {  }

    // poner un marcador al hacer long click
    map.setOnMapLongClickListener { latlng ->
        map.animateCamera(CameraUpdateFactory.newLatLng(latlng))
        val getcoordinates = LatLng(latlng.latitude, latlng.longitude)

        map.addMarker(MarkerOptions()
            .position(getcoordinates)
            .title(getcoordinates.toString())
            .snippet(getAddress(getcoordinates)))
    }
}

private fun getAddress(latLng: LatLng): String? {
    val geocoder = Geocoder(this)
    val list = geocoder.getFromLocation(latLng.latitude,latLng.longitude,1)
    return list?.get(0)?.getAddressLine(0)
}

Codelab: Android Google Maps

Código en Github

 

Más información:

Google Maps Android Api v2: Guía De Mapas

Codelab: Add a map to your Android app (Kotlin)

Android Samples

Google Maps Android API Demos

Tutorials

(añadir al fichero local.properties la línea MAPS_API_KEY = myAPIKey)

Map with a marker

Polylines and Polygons to Represent Routes and Areas

Select Current Place and Show Details on a Map

Shapes

Repositorio en GitHub de los tutoriales

Código de los tutoriales: maps_tutorials_java

Complete Google Map API Tutorial

Google Maps and Directions API

Código en Github de Goggle Maps and Google Places

Deja una respuesta