<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Location Display in Sketch on Map application in Kotlin Maps SDK Questions</title>
    <link>https://community.esri.com/t5/kotlin-maps-sdk-questions/location-display-in-sketch-on-map-application/m-p/1344167#M258</link>
    <description>&lt;P&gt;Hi,&lt;BR /&gt;&lt;BR /&gt;Here is a &lt;A href="https://github.com/Esri/arcgis-maps-sdk-kotlin-samples/tree/main/show-device-location" target="_self"&gt;sample&lt;/A&gt; to showcase how to use locationDisplay. Apart from requesting permissions in the manifest file, you may need to manually grant location permissions to the app or request to grant permissions on launch of the app as shown in the sample.&lt;BR /&gt;&lt;BR /&gt;Thanks&lt;BR /&gt;Rama&lt;/P&gt;</description>
    <pubDate>Tue, 31 Oct 2023 21:28:58 GMT</pubDate>
    <dc:creator>RamaChintapalli</dc:creator>
    <dc:date>2023-10-31T21:28:58Z</dc:date>
    <item>
      <title>Location Display in Sketch on Map application</title>
      <link>https://community.esri.com/t5/kotlin-maps-sdk-questions/location-display-in-sketch-on-map-application/m-p/1343725#M253</link>
      <description>&lt;P&gt;HI Community. I want to implement location display in Sketch On Map application. Below is my code&amp;nbsp;&lt;/P&gt;&lt;DIV&gt;&lt;PRE&gt;&lt;SPAN&gt;/* Copyright 2023 Esri&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt; *&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt; * Licensed under the Apache License, Version 2.0 (the "License");&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt; * you may not use this file except in compliance with the License.&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt; * You may obtain a copy of the License at&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt; *&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt; *    http://www.apache.org/licenses/LICENSE-2.0&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt; *&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt; * Unless required by applicable law or agreed to in writing, software&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt; * distributed under the License is distributed on an "AS IS" BASIS,&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt; * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt; * See the License for the specific language governing permissions and&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt; * limitations under the License.&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt; *&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt; */&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;package &lt;/SPAN&gt;com.esri.arcgismaps.sample.sketchonmap&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.os.Bundle&lt;BR /&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.util.Log&lt;BR /&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.view.View&lt;BR /&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.widget.AdapterView&lt;BR /&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.widget.ArrayAdapter&lt;BR /&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;androidx.appcompat.app.AppCompatActivity&lt;BR /&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;androidx.databinding.DataBindingUtil&lt;BR /&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;androidx.lifecycle.&lt;SPAN&gt;lifecycleScope&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.arcgismaps.ApiKey&lt;BR /&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.arcgismaps.ArcGISEnvironment&lt;BR /&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.arcgismaps.Color&lt;BR /&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.arcgismaps.geometry.GeometryBuilder&lt;BR /&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.arcgismaps.geometry.GeometryType&lt;BR /&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.arcgismaps.geometry.Multipoint&lt;BR /&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.arcgismaps.geometry.Point&lt;BR /&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.arcgismaps.geometry.Polygon&lt;BR /&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.arcgismaps.geometry.Polyline&lt;BR /&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.arcgismaps.mapping.ArcGISMap&lt;BR /&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.arcgismaps.mapping.BasemapStyle&lt;BR /&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.arcgismaps.mapping.Viewpoint&lt;BR /&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.arcgismaps.mapping.symbology.SimpleFillSymbol&lt;BR /&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.arcgismaps.mapping.symbology.SimpleFillSymbolStyle&lt;BR /&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.arcgismaps.mapping.symbology.SimpleLineSymbol&lt;BR /&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.arcgismaps.mapping.symbology.SimpleLineSymbolStyle&lt;BR /&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.arcgismaps.mapping.symbology.SimpleMarkerSymbol&lt;BR /&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.arcgismaps.mapping.symbology.SimpleMarkerSymbolStyle&lt;BR /&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.arcgismaps.mapping.view.Graphic&lt;BR /&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.arcgismaps.mapping.view.GraphicsOverlay&lt;BR /&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.arcgismaps.mapping.view.MapView&lt;BR /&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.arcgismaps.mapping.view.geometryeditor.FreehandTool&lt;BR /&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.arcgismaps.mapping.view.geometryeditor.GeometryEditor&lt;BR /&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.arcgismaps.mapping.view.geometryeditor.VertexTool&lt;BR /&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.esri.arcgismaps.sample.sketchonmap.databinding.ActivityMainBinding&lt;BR /&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.google.android.material.snackbar.Snackbar&lt;BR /&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;kotlinx.coroutines.launch&lt;BR /&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.Manifest.permission.&lt;SPAN&gt;ACCESS_COARSE_LOCATION&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;android.Manifest.permission.&lt;SPAN&gt;ACCESS_FINE_LOCATION&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;com.arcgismaps.location.LocationDisplayAutoPanMode&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;class &lt;/SPAN&gt;MainActivity : AppCompatActivity() {&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;private val &lt;/SPAN&gt;&lt;SPAN&gt;activityMainBinding&lt;/SPAN&gt;: ActivityMainBinding &lt;SPAN&gt;by &lt;/SPAN&gt;&lt;SPAN&gt;lazy &lt;/SPAN&gt;&lt;SPAN&gt;{&lt;BR /&gt;&lt;/SPAN&gt;        DataBindingUtil.setContentView(&lt;SPAN&gt;this, &lt;/SPAN&gt;R.layout.&lt;SPAN&gt;activity_main&lt;/SPAN&gt;)&lt;BR /&gt;    &lt;SPAN&gt;}&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;private val &lt;/SPAN&gt;&lt;SPAN&gt;mapView &lt;/SPAN&gt;&lt;SPAN&gt;by &lt;/SPAN&gt;&lt;SPAN&gt;lazy &lt;/SPAN&gt;&lt;SPAN&gt;{&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;activityMainBinding&lt;/SPAN&gt;.&lt;SPAN&gt;mapView&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;}&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;private val &lt;/SPAN&gt;&lt;SPAN&gt;selectedGeometryDropdown &lt;/SPAN&gt;&lt;SPAN&gt;by &lt;/SPAN&gt;&lt;SPAN&gt;lazy &lt;/SPAN&gt;&lt;SPAN&gt;{&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;activityMainBinding&lt;/SPAN&gt;.&lt;SPAN&gt;pointLinePolygonToolbar&lt;/SPAN&gt;.&lt;SPAN&gt;selectGeometryDropdown&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;}&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;// create a symbol for the point graphic&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;private val &lt;/SPAN&gt;&lt;SPAN&gt;pointSymbol&lt;/SPAN&gt;: SimpleMarkerSymbol &lt;SPAN&gt;by &lt;/SPAN&gt;&lt;SPAN&gt;lazy &lt;/SPAN&gt;&lt;SPAN&gt;{&lt;BR /&gt;&lt;/SPAN&gt;        SimpleMarkerSymbol(SimpleMarkerSymbolStyle.Square&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;            Color(getColor(R.color.&lt;SPAN&gt;point_symbol_color&lt;/SPAN&gt;))&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;20f&lt;/SPAN&gt;)&lt;BR /&gt;    &lt;SPAN&gt;}&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;// create a symbol for a line graphic&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;private val &lt;/SPAN&gt;&lt;SPAN&gt;lineSymbol&lt;/SPAN&gt;: SimpleLineSymbol &lt;SPAN&gt;by &lt;/SPAN&gt;&lt;SPAN&gt;lazy &lt;/SPAN&gt;&lt;SPAN&gt;{&lt;BR /&gt;&lt;/SPAN&gt;        SimpleLineSymbol(&lt;BR /&gt;            SimpleLineSymbolStyle.Solid&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;            Color(getColor(R.color.&lt;SPAN&gt;line_symbol_color&lt;/SPAN&gt;))&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;4f&lt;BR /&gt;&lt;/SPAN&gt;        )&lt;BR /&gt;    &lt;SPAN&gt;}&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;// create a symbol for the fill graphic&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;private val &lt;/SPAN&gt;&lt;SPAN&gt;fillSymbol&lt;/SPAN&gt;: SimpleFillSymbol &lt;SPAN&gt;by &lt;/SPAN&gt;&lt;SPAN&gt;lazy &lt;/SPAN&gt;&lt;SPAN&gt;{&lt;BR /&gt;&lt;/SPAN&gt;        SimpleFillSymbol(&lt;BR /&gt;            SimpleFillSymbolStyle.Cross&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;            Color(getColor(R.color.&lt;SPAN&gt;fill_symbol_color&lt;/SPAN&gt;))&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;lineSymbol&lt;BR /&gt;&lt;/SPAN&gt;        )&lt;BR /&gt;    &lt;SPAN&gt;}&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;// keep the instance graphic overlay to add graphics on the map&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;private var &lt;/SPAN&gt;&lt;SPAN&gt;graphicsOverlay&lt;/SPAN&gt;: GraphicsOverlay = GraphicsOverlay()&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;// keep the instance of the freehand tool&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;private val &lt;/SPAN&gt;&lt;SPAN&gt;freehandTool&lt;/SPAN&gt;: FreehandTool = FreehandTool()&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;// keep the instance of the vertex tool&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;private val &lt;/SPAN&gt;&lt;SPAN&gt;vertexTool&lt;/SPAN&gt;: VertexTool = VertexTool()&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;// keep the instance to create new geometries, and change existing geometries&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;private var &lt;/SPAN&gt;&lt;SPAN&gt;geometryEditor&lt;/SPAN&gt;: GeometryEditor = GeometryEditor()&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;override fun &lt;/SPAN&gt;&lt;SPAN&gt;onCreate&lt;/SPAN&gt;(savedInstanceState: Bundle?) {&lt;BR /&gt;        &lt;SPAN&gt;super&lt;/SPAN&gt;.onCreate(savedInstanceState)&lt;BR /&gt;&lt;BR /&gt;        &lt;SPAN&gt;// authentication with an API key or named user is&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        // required to access basemaps and other location services&lt;BR /&gt;&lt;/SPAN&gt;        ArcGISEnvironment.&lt;SPAN&gt;apiKey &lt;/SPAN&gt;= ApiKey.create(BuildConfig.&lt;SPAN&gt;API_KEY&lt;/SPAN&gt;)&lt;BR /&gt;        &lt;SPAN&gt;lifecycle&lt;/SPAN&gt;.addObserver(&lt;SPAN&gt;mapView&lt;/SPAN&gt;)&lt;BR /&gt;&lt;BR /&gt;        &lt;SPAN&gt;// create and add a map with a navigation night basemap style&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;mapView&lt;/SPAN&gt;.&lt;SPAN&gt;apply &lt;/SPAN&gt;&lt;SPAN&gt;{&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;map &lt;/SPAN&gt;= ArcGISMap(BasemapStyle.ArcGISImagery)&lt;BR /&gt;            ArcGISEnvironment.&lt;SPAN&gt;applicationContext &lt;/SPAN&gt;= &lt;SPAN&gt;applicationContext&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;locationDisplay&lt;/SPAN&gt;.setAutoPanMode(LocationDisplayAutoPanMode.Recenter)&lt;BR /&gt;            setViewpoint(Viewpoint(&lt;SPAN&gt;10.656295&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;76.195800&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;3500000.0&lt;/SPAN&gt;))&lt;BR /&gt;            &lt;SPAN&gt;graphicsOverlays&lt;/SPAN&gt;.add(&lt;SPAN&gt;graphicsOverlay&lt;/SPAN&gt;)&lt;BR /&gt;        &lt;SPAN&gt;}&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;// set MapView's geometry editor to sketch on map&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;mapView&lt;/SPAN&gt;.&lt;SPAN&gt;geometryEditor &lt;/SPAN&gt;= &lt;SPAN&gt;geometryEditor&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;// enable/disable the undo button if last event can be undone&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;lifecycleScope&lt;/SPAN&gt;.&lt;SPAN&gt;launch &lt;/SPAN&gt;&lt;SPAN&gt;{&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;geometryEditor&lt;/SPAN&gt;.&lt;SPAN&gt;canUndo&lt;/SPAN&gt;.collect &lt;SPAN&gt;{ &lt;/SPAN&gt;value &lt;SPAN&gt;-&amp;gt;&lt;BR /&gt;&lt;/SPAN&gt;                &lt;SPAN&gt;activityMainBinding&lt;/SPAN&gt;.&lt;SPAN&gt;pointLinePolygonToolbar&lt;/SPAN&gt;.&lt;SPAN&gt;undoButton&lt;/SPAN&gt;.&lt;SPAN&gt;isEnabled &lt;/SPAN&gt;= value&lt;BR /&gt;            &lt;SPAN&gt;}&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        }&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;// enable/disable the redo button if the last event can be redone&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;lifecycleScope&lt;/SPAN&gt;.&lt;SPAN&gt;launch &lt;/SPAN&gt;&lt;SPAN&gt;{&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;geometryEditor&lt;/SPAN&gt;.&lt;SPAN&gt;canRedo&lt;/SPAN&gt;.collect &lt;SPAN&gt;{ &lt;/SPAN&gt;value &lt;SPAN&gt;-&amp;gt;&lt;BR /&gt;&lt;/SPAN&gt;                &lt;SPAN&gt;activityMainBinding&lt;/SPAN&gt;.&lt;SPAN&gt;pointLinePolygonToolbar&lt;/SPAN&gt;.&lt;SPAN&gt;redoButton&lt;/SPAN&gt;.&lt;SPAN&gt;isEnabled &lt;/SPAN&gt;= value&lt;BR /&gt;            &lt;SPAN&gt;}&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        }&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;// set up the geometry list dropdown&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;selectedGeometryDropdown&lt;/SPAN&gt;.&lt;SPAN&gt;apply &lt;/SPAN&gt;&lt;SPAN&gt;{&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;// set the adapter to the list of geometries&lt;BR /&gt;&lt;/SPAN&gt;            setAdapter(&lt;BR /&gt;                ArrayAdapter(&lt;BR /&gt;                    &lt;SPAN&gt;applicationContext&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;                    com.esri.arcgismaps.sample.sampleslib.R.layout.&lt;SPAN&gt;custom_dropdown_item&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;                    &lt;SPAN&gt;resources&lt;/SPAN&gt;.getStringArray(R.array.&lt;SPAN&gt;geometry_list&lt;/SPAN&gt;)&lt;BR /&gt;                )&lt;BR /&gt;            )&lt;BR /&gt;&lt;BR /&gt;            &lt;SPAN&gt;// set the dropdown click listener&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;onItemClickListener &lt;/SPAN&gt;= AdapterView.OnItemClickListener &lt;SPAN&gt;{ &lt;/SPAN&gt;_&lt;SPAN&gt;, &lt;/SPAN&gt;_&lt;SPAN&gt;, &lt;/SPAN&gt;position&lt;SPAN&gt;, &lt;/SPAN&gt;_ &lt;SPAN&gt;-&amp;gt;&lt;BR /&gt;&lt;/SPAN&gt;                &lt;SPAN&gt;// set the GeometryEditorTool and then start the editing process&lt;BR /&gt;&lt;/SPAN&gt;                &lt;SPAN&gt;geometryEditor&lt;/SPAN&gt;.&lt;SPAN&gt;apply &lt;/SPAN&gt;&lt;SPAN&gt;{&lt;BR /&gt;&lt;/SPAN&gt;                    &lt;SPAN&gt;when &lt;/SPAN&gt;(position) {&lt;BR /&gt;                        &lt;SPAN&gt;0 &lt;/SPAN&gt;-&amp;gt; {&lt;BR /&gt;                            &lt;SPAN&gt;tool &lt;/SPAN&gt;= &lt;SPAN&gt;freehandTool&lt;BR /&gt;&lt;/SPAN&gt;                            start(GeometryType.Polygon)&lt;BR /&gt;                        }&lt;BR /&gt;                        &lt;SPAN&gt;1 &lt;/SPAN&gt;-&amp;gt; {&lt;BR /&gt;                            &lt;SPAN&gt;tool &lt;/SPAN&gt;= &lt;SPAN&gt;freehandTool&lt;BR /&gt;&lt;/SPAN&gt;                            start(GeometryType.Polyline)&lt;BR /&gt;                        }&lt;BR /&gt;                        &lt;SPAN&gt;2 &lt;/SPAN&gt;-&amp;gt; {&lt;BR /&gt;                            &lt;SPAN&gt;tool &lt;/SPAN&gt;= &lt;SPAN&gt;vertexTool&lt;BR /&gt;&lt;/SPAN&gt;                            start(GeometryType.Multipoint)&lt;BR /&gt;                        }&lt;BR /&gt;                        &lt;SPAN&gt;3 &lt;/SPAN&gt;-&amp;gt; {&lt;BR /&gt;                            &lt;SPAN&gt;tool &lt;/SPAN&gt;= &lt;SPAN&gt;vertexTool&lt;BR /&gt;&lt;/SPAN&gt;                            start(GeometryType.Point)&lt;BR /&gt;                        }&lt;BR /&gt;                        &lt;SPAN&gt;4 &lt;/SPAN&gt;-&amp;gt; {&lt;BR /&gt;                            &lt;SPAN&gt;tool &lt;/SPAN&gt;= &lt;SPAN&gt;vertexTool&lt;BR /&gt;&lt;/SPAN&gt;                            start(GeometryType.Polygon)&lt;BR /&gt;                        }&lt;BR /&gt;                        &lt;SPAN&gt;5 &lt;/SPAN&gt;-&amp;gt; {&lt;BR /&gt;                            &lt;SPAN&gt;tool &lt;/SPAN&gt;= &lt;SPAN&gt;vertexTool&lt;BR /&gt;&lt;/SPAN&gt;                            start(GeometryType.Polyline)&lt;BR /&gt;                        }&lt;BR /&gt;                    }&lt;BR /&gt;                &lt;SPAN&gt;}&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;            }&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        }&lt;BR /&gt;&lt;/SPAN&gt;    }&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;/**&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;     * Undo the last event on the GeometryEditor.&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;     */&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;fun &lt;/SPAN&gt;&lt;SPAN&gt;undo&lt;/SPAN&gt;(view : View) {&lt;BR /&gt;        &lt;SPAN&gt;geometryEditor&lt;/SPAN&gt;.undo()&lt;BR /&gt;    }&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;/**&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;     * Redo the last undone event on the GeometryEditor.&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;     */&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;fun &lt;/SPAN&gt;&lt;SPAN&gt;redo&lt;/SPAN&gt;(view : View) {&lt;BR /&gt;        &lt;SPAN&gt;geometryEditor&lt;/SPAN&gt;.redo()&lt;BR /&gt;    }&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;/**&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;     * When the stop button is clicked, check that sketch is valid. If so, get the geometry from&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;     * the sketch, set its symbol and add it to the graphics overlay.&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;     */&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;fun &lt;/SPAN&gt;&lt;SPAN&gt;stop&lt;/SPAN&gt;(view : View) {&lt;BR /&gt;        &lt;SPAN&gt;// get the geometry from sketch editor&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;val &lt;/SPAN&gt;sketchGeometry = &lt;SPAN&gt;geometryEditor&lt;/SPAN&gt;.&lt;SPAN&gt;geometry&lt;/SPAN&gt;.&lt;SPAN&gt;value&lt;BR /&gt;&lt;/SPAN&gt;            ?: &lt;SPAN&gt;return &lt;/SPAN&gt;showMessage(&lt;SPAN&gt;"Error retrieving geometry"&lt;/SPAN&gt;)&lt;BR /&gt;&lt;BR /&gt;        &lt;SPAN&gt;if &lt;/SPAN&gt;(!GeometryBuilder.builder(sketchGeometry).&lt;SPAN&gt;isSketchValid&lt;/SPAN&gt;) {&lt;BR /&gt;            &lt;SPAN&gt;return &lt;/SPAN&gt;reportNotValid()&lt;BR /&gt;        }&lt;BR /&gt;&lt;BR /&gt;        &lt;SPAN&gt;// stops the editing session&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;geometryEditor&lt;/SPAN&gt;.stop()&lt;BR /&gt;&lt;BR /&gt;        &lt;SPAN&gt;// clear the UI selection&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;selectedGeometryDropdown&lt;/SPAN&gt;.setText(&lt;SPAN&gt;""&lt;/SPAN&gt;)&lt;BR /&gt;        &lt;SPAN&gt;selectedGeometryDropdown&lt;/SPAN&gt;.clearFocus()&lt;BR /&gt;&lt;BR /&gt;        &lt;SPAN&gt;// create a graphic from the sketch editor geometry&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;val &lt;/SPAN&gt;graphic = Graphic(sketchGeometry).&lt;SPAN&gt;apply &lt;/SPAN&gt;&lt;SPAN&gt;{&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;// assign a symbol based on geometry type&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;symbol &lt;/SPAN&gt;= &lt;SPAN&gt;when &lt;/SPAN&gt;(sketchGeometry) {&lt;BR /&gt;                &lt;SPAN&gt;is &lt;/SPAN&gt;Polygon -&amp;gt; &lt;SPAN&gt;fillSymbol&lt;BR /&gt;&lt;/SPAN&gt;                &lt;SPAN&gt;is &lt;/SPAN&gt;Polyline -&amp;gt; &lt;SPAN&gt;lineSymbol&lt;BR /&gt;&lt;/SPAN&gt;                &lt;SPAN&gt;is &lt;/SPAN&gt;Point&lt;SPAN&gt;, is &lt;/SPAN&gt;Multipoint -&amp;gt; &lt;SPAN&gt;pointSymbol&lt;BR /&gt;&lt;/SPAN&gt;                &lt;SPAN&gt;else &lt;/SPAN&gt;-&amp;gt; &lt;SPAN&gt;null&lt;BR /&gt;&lt;/SPAN&gt;            }&lt;BR /&gt;        &lt;SPAN&gt;}&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;// add the graphic to the graphics overlay&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;graphicsOverlay&lt;/SPAN&gt;.&lt;SPAN&gt;graphics&lt;/SPAN&gt;.add(graphic)&lt;BR /&gt;    }&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;/**&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;     * Clear the MapView of all the graphics and reset selections&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;     */&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;fun &lt;/SPAN&gt;&lt;SPAN&gt;clear&lt;/SPAN&gt;(view : View) {&lt;BR /&gt;        &lt;SPAN&gt;geometryEditor&lt;/SPAN&gt;.clearGeometry()&lt;BR /&gt;        &lt;SPAN&gt;geometryEditor&lt;/SPAN&gt;.clearSelection()&lt;BR /&gt;        &lt;SPAN&gt;geometryEditor&lt;/SPAN&gt;.stop()&lt;BR /&gt;        &lt;SPAN&gt;selectedGeometryDropdown&lt;/SPAN&gt;.setText(&lt;SPAN&gt;""&lt;/SPAN&gt;)&lt;BR /&gt;        &lt;SPAN&gt;selectedGeometryDropdown&lt;/SPAN&gt;.clearFocus()&lt;BR /&gt;        showMessage(getString(R.string.&lt;SPAN&gt;cleared_message&lt;/SPAN&gt;))&lt;BR /&gt;    }&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;/**&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;     * Clear all editing and applied graphics on the map&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;     */&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;fun &lt;/SPAN&gt;&lt;SPAN&gt;restart&lt;/SPAN&gt;(view : View) {&lt;BR /&gt;        &lt;SPAN&gt;graphicsOverlay&lt;/SPAN&gt;.&lt;SPAN&gt;graphics&lt;/SPAN&gt;.clear()&lt;BR /&gt;        &lt;SPAN&gt;geometryEditor&lt;/SPAN&gt;.clearGeometry()&lt;BR /&gt;        &lt;SPAN&gt;geometryEditor&lt;/SPAN&gt;.clearSelection()&lt;BR /&gt;        &lt;SPAN&gt;geometryEditor&lt;/SPAN&gt;.stop()&lt;BR /&gt;        &lt;SPAN&gt;selectedGeometryDropdown&lt;/SPAN&gt;.setText(&lt;SPAN&gt;""&lt;/SPAN&gt;)&lt;BR /&gt;        &lt;SPAN&gt;selectedGeometryDropdown&lt;/SPAN&gt;.clearFocus()&lt;BR /&gt;        showMessage(getString(R.string.&lt;SPAN&gt;restart_message&lt;/SPAN&gt;))&lt;BR /&gt;    }&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;/**&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;     * Called if sketch is invalid. Reports to user why the sketch was invalid.&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;     */&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;private fun &lt;/SPAN&gt;&lt;SPAN&gt;reportNotValid&lt;/SPAN&gt;() {&lt;BR /&gt;        &lt;SPAN&gt;// get the geometry currently being added to map&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;val &lt;/SPAN&gt;geometry = &lt;SPAN&gt;geometryEditor&lt;/SPAN&gt;.&lt;SPAN&gt;geometry&lt;/SPAN&gt;.&lt;SPAN&gt;value &lt;/SPAN&gt;?: &lt;SPAN&gt;return &lt;/SPAN&gt;showMessage(&lt;SPAN&gt;"Geometry not found"&lt;/SPAN&gt;)&lt;BR /&gt;        &lt;SPAN&gt;// find the geometry type, and set the valid message&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;val &lt;/SPAN&gt;validIfText: String = &lt;SPAN&gt;when &lt;/SPAN&gt;(geometry) {&lt;BR /&gt;            &lt;SPAN&gt;is &lt;/SPAN&gt;Point -&amp;gt; getString(R.string.&lt;SPAN&gt;invalid_point_message&lt;/SPAN&gt;)&lt;BR /&gt;            &lt;SPAN&gt;is &lt;/SPAN&gt;Multipoint -&amp;gt; getString(R.string.&lt;SPAN&gt;invalid_multipoint_message&lt;/SPAN&gt;)&lt;BR /&gt;            &lt;SPAN&gt;is &lt;/SPAN&gt;Polyline -&amp;gt; getString(R.string.&lt;SPAN&gt;invalid_polyline_message&lt;/SPAN&gt;)&lt;BR /&gt;            &lt;SPAN&gt;is &lt;/SPAN&gt;Polygon -&amp;gt; getString(R.string.&lt;SPAN&gt;invalid_polygon_message&lt;/SPAN&gt;)&lt;BR /&gt;            &lt;SPAN&gt;else &lt;/SPAN&gt;-&amp;gt; getString(R.string.&lt;SPAN&gt;none_selected_message&lt;/SPAN&gt;)&lt;BR /&gt;        }&lt;BR /&gt;        &lt;SPAN&gt;// set the invalid message to the TextView.&lt;BR /&gt;&lt;/SPAN&gt;        showMessage(validIfText)&lt;BR /&gt;    }&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;private fun &lt;/SPAN&gt;&lt;SPAN&gt;showMessage&lt;/SPAN&gt;(message: String) {&lt;BR /&gt;        Log.e(&lt;SPAN&gt;localClassName&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;message)&lt;BR /&gt;        Snackbar.make(&lt;SPAN&gt;mapView&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;message&lt;SPAN&gt;, &lt;/SPAN&gt;Snackbar.&lt;SPAN&gt;LENGTH_SHORT&lt;/SPAN&gt;).show()&lt;BR /&gt;    }&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Can anyone suggest what additional steps/code i have to add. I had already modified the AndroidManifest .XML to include COARSE LOCATION and FINE LOCATION.&lt;/PRE&gt;&lt;/DIV&gt;</description>
      <pubDate>Tue, 31 Oct 2023 11:03:00 GMT</pubDate>
      <guid>https://community.esri.com/t5/kotlin-maps-sdk-questions/location-display-in-sketch-on-map-application/m-p/1343725#M253</guid>
      <dc:creator>HarishKV</dc:creator>
      <dc:date>2023-10-31T11:03:00Z</dc:date>
    </item>
    <item>
      <title>Re: Location Display in Sketch on Map application</title>
      <link>https://community.esri.com/t5/kotlin-maps-sdk-questions/location-display-in-sketch-on-map-application/m-p/1344167#M258</link>
      <description>&lt;P&gt;Hi,&lt;BR /&gt;&lt;BR /&gt;Here is a &lt;A href="https://github.com/Esri/arcgis-maps-sdk-kotlin-samples/tree/main/show-device-location" target="_self"&gt;sample&lt;/A&gt; to showcase how to use locationDisplay. Apart from requesting permissions in the manifest file, you may need to manually grant location permissions to the app or request to grant permissions on launch of the app as shown in the sample.&lt;BR /&gt;&lt;BR /&gt;Thanks&lt;BR /&gt;Rama&lt;/P&gt;</description>
      <pubDate>Tue, 31 Oct 2023 21:28:58 GMT</pubDate>
      <guid>https://community.esri.com/t5/kotlin-maps-sdk-questions/location-display-in-sketch-on-map-application/m-p/1344167#M258</guid>
      <dc:creator>RamaChintapalli</dc:creator>
      <dc:date>2023-10-31T21:28:58Z</dc:date>
    </item>
  </channel>
</rss>

