We know that with the Maps SDK for Android, you can add maps based on Google Maps data to your application. The API automatically handles access to Google Maps servers, data downloading, map display, and response to map gestures. You can also use API calls to add markers, polygons, and overlays to a basic map, and to change the user's view of a particular map area. These objects provide additional information for map locations, and allow user interaction with the map.
Now, lets try the same with Kotlin,
Refer the below link for complete sample code:-
Download Sample Code
Have a look on few code snippets,
//MapsActivity.kt
Now, lets try the same with Kotlin,
Refer the below link for complete sample code:-
Download Sample Code
Have a look on few code snippets,
//MapsActivity.kt
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 94 95 | package com.elitetechnologies.googlemapkotlin import android.content.pm.PackageManager import android.graphics.Color import android.location.Location import android.os.Bundle import android.support.v4.app.ActivityCompat import android.support.v7.app.AppCompatActivity import com.google.android.gms.location.FusedLocationProviderClient import com.google.android.gms.location.LocationServices 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.LatLng import com.google.android.gms.maps.model.Marker import com.google.android.gms.maps.model.MarkerOptions import com.google.android.gms.maps.model.PolylineOptions class MapsActivity : AppCompatActivity(), OnMapReadyCallback, GoogleMap.OnMarkerClickListener { companion object { private const val LOCATION_PERMISSION_REQUEST_CODE = 1 } private lateinit var mMap: GoogleMap private lateinit var fusedLocationClient: FusedLocationProviderClient private lateinit var lastLocation: Location override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_maps) // Obtain the SupportMapFragment and get notified when the map is ready to be used. val mapFragment = supportFragmentManager .findFragmentById(R.id.map) as SupportMapFragment mapFragment.getMapAsync(this) fusedLocationClient = LocationServices.getFusedLocationProviderClient(this) } /** * Manipulates the map once available. * This callback is triggered when the map is ready to be used. * This is where we can add markers or lines, add listeners or move the camera. In this case, * we just add a marker near Sydney, Australia. * If Google Play services is not installed on the device, the user will be prompted to install * it inside the SupportMapFragment. This method will only be triggered once the user has * installed Google Play services and returned to the app. */ override fun onMapReady(googleMap: GoogleMap) { mMap = googleMap mMap.uiSettings.isZoomControlsEnabled = true mMap.setOnMarkerClickListener(this) setUpMap() } override fun onMarkerClick(p0: Marker?): Boolean { // Add a marker in Sydney and move the camera val sydney = LatLng(-34.0, 151.0) var marker = mMap.addMarker(MarkerOptions().position(sydney).title("Marker in Sydney")) marker.showInfoWindow() mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney)) return true } private fun setUpMap() { if (ActivityCompat.checkSelfPermission( this,android.Manifest.permission.ACCESS_FINE_LOCATION ) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions( this, arrayOf(android.Manifest.permission.ACCESS_FINE_LOCATION), LOCATION_PERMISSION_REQUEST_CODE ) } mMap.isMyLocationEnabled = true fusedLocationClient.lastLocation.addOnSuccessListener(this) { location -> // Got last known location. In some rare situations this can be null. // 3 lastLocation = location val currentLatLng = LatLng(location.latitude, location.longitude) mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(currentLatLng, 12f)) val markerLocation = LatLng(location.latitude + 2, location.longitude) var marker = mMap.addMarker(MarkerOptions().position(markerLocation).title("marker postion")) marker.showInfoWindow() val polylineOptions = PolylineOptions() polylineOptions.add(currentLatLng) .add(LatLng(location.latitude + 2, location.longitude)) .add(LatLng(-34.0, 151.0)) .width(5f) .color(Color.RED) mMap.addPolyline(polylineOptions) } } } |
No comments:
Post a Comment