From e5e2e5c9453c736b73bbc7d057d6e24e3ba911ff Mon Sep 17 00:00:00 2001 From: Ruiqi Ma Date: Thu, 7 Mar 2024 14:46:13 -0800 Subject: [PATCH 1/3] reflect changes in toolkit --- .../components/MapViewModel.kt | 15 ++++++++++++++- .../identifylayerfeatures/screens/MainScreen.kt | 14 +------------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/identify-layer-features/src/main/java/com/esri/arcgismaps/sample/identifylayerfeatures/components/MapViewModel.kt b/identify-layer-features/src/main/java/com/esri/arcgismaps/sample/identifylayerfeatures/components/MapViewModel.kt index e6baf725d..2a24c4df9 100644 --- a/identify-layer-features/src/main/java/com/esri/arcgismaps/sample/identifylayerfeatures/components/MapViewModel.kt +++ b/identify-layer-features/src/main/java/com/esri/arcgismaps/sample/identifylayerfeatures/components/MapViewModel.kt @@ -21,8 +21,11 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.ui.unit.dp import androidx.lifecycle.AndroidViewModel import com.arcgismaps.data.ServiceFeatureTable +import com.arcgismaps.geometry.Point +import com.arcgismaps.geometry.SpatialReference import com.arcgismaps.mapping.ArcGISMap import com.arcgismaps.mapping.BasemapStyle +import com.arcgismaps.mapping.Viewpoint import com.arcgismaps.mapping.layers.ArcGISMapImageLayer import com.arcgismaps.mapping.layers.FeatureLayer.Companion.createWithFeatureTable import com.arcgismaps.mapping.view.IdentifyLayerResult @@ -39,7 +42,17 @@ class MapViewModel( ) : AndroidViewModel(application) { // create a map using the topographic basemap style - val map: ArcGISMap = ArcGISMap(BasemapStyle.ArcGISTopographic) + val map: ArcGISMap = ArcGISMap(BasemapStyle.ArcGISTopographic).apply { + // set initial Viewpoint to North America + initialViewpoint = Viewpoint( + center = Point( + x = -10977012.785807, + y = 4514257.550369, + spatialReference = SpatialReference(wkid = 3857) + ), + scale = 68015210.0 + ) + } // create a mapViewProxy that will be used to identify features in the MapView // should also be passed to the composable MapView this mapViewProxy is associated with diff --git a/identify-layer-features/src/main/java/com/esri/arcgismaps/sample/identifylayerfeatures/screens/MainScreen.kt b/identify-layer-features/src/main/java/com/esri/arcgismaps/sample/identifylayerfeatures/screens/MainScreen.kt index bf7b77201..2e2ca4c72 100644 --- a/identify-layer-features/src/main/java/com/esri/arcgismaps/sample/identifylayerfeatures/screens/MainScreen.kt +++ b/identify-layer-features/src/main/java/com/esri/arcgismaps/sample/identifylayerfeatures/screens/MainScreen.kt @@ -31,11 +31,7 @@ import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.unit.dp -import com.arcgismaps.geometry.Point -import com.arcgismaps.geometry.SpatialReference -import com.arcgismaps.mapping.Viewpoint import com.arcgismaps.toolkit.geocompose.MapView -import com.arcgismaps.toolkit.geocompose.MapViewpointOperation import com.esri.arcgismaps.sample.identifylayerfeatures.components.MapViewModel import com.esri.arcgismaps.sample.sampleslib.components.MessageDialog import com.esri.arcgismaps.sample.sampleslib.components.SampleTopAppBar @@ -52,14 +48,7 @@ fun MainScreen(sampleName: String) { // create a ViewModel to handle MapView interactions val mapViewModel = remember { MapViewModel(sampleApplication, sampleCoroutineScope) } // create a Viewpoint - val northAmericaViewpoint = Viewpoint( - center = Point( - x = -10977012.785807, - y = 4514257.550369, - spatialReference = SpatialReference(wkid = 3857) - ), - scale = 68015210.0 - ) + Scaffold( topBar = { SampleTopAppBar(title = sampleName) }, @@ -75,7 +64,6 @@ fun MainScreen(sampleName: String) { .weight(1f) .animateContentSize(), arcGISMap = mapViewModel.map, - viewpointOperation = MapViewpointOperation.Set(viewpoint = northAmericaViewpoint), mapViewProxy = mapViewModel.mapViewProxy, onSingleTapConfirmed = mapViewModel::identify ) From fd159ffc3b2a2966f82264cba9f8cc155717e2d8 Mon Sep 17 00:00:00 2001 From: Ruiqi Ma Date: Thu, 7 Mar 2024 15:06:09 -0800 Subject: [PATCH 2/3] Update MapViewModel.kt --- .../components/MapViewModel.kt | 27 ++++++++++--------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/identify-layer-features/src/main/java/com/esri/arcgismaps/sample/identifylayerfeatures/components/MapViewModel.kt b/identify-layer-features/src/main/java/com/esri/arcgismaps/sample/identifylayerfeatures/components/MapViewModel.kt index 2a24c4df9..8244c9d8b 100644 --- a/identify-layer-features/src/main/java/com/esri/arcgismaps/sample/identifylayerfeatures/components/MapViewModel.kt +++ b/identify-layer-features/src/main/java/com/esri/arcgismaps/sample/identifylayerfeatures/components/MapViewModel.kt @@ -42,17 +42,7 @@ class MapViewModel( ) : AndroidViewModel(application) { // create a map using the topographic basemap style - val map: ArcGISMap = ArcGISMap(BasemapStyle.ArcGISTopographic).apply { - // set initial Viewpoint to North America - initialViewpoint = Viewpoint( - center = Point( - x = -10977012.785807, - y = 4514257.550369, - spatialReference = SpatialReference(wkid = 3857) - ), - scale = 68015210.0 - ) - } + val map: ArcGISMap = ArcGISMap(BasemapStyle.ArcGISTopographic) // create a mapViewProxy that will be used to identify features in the MapView // should also be passed to the composable MapView this mapViewProxy is associated with @@ -84,14 +74,25 @@ class MapViewModel( } // add the world cities layer with and the damaged properties feature layer - map.operationalLayers.addAll(listOf(mapImageLayer, featureLayer)) + map.apply { + // set initial Viewpoint to North America + initialViewpoint = Viewpoint( + center = Point( + x = -10977012.785807, + y = 4514257.550369, + spatialReference = SpatialReference(wkid = 3857) + ), + scale = 68015210.0 + ) + operationalLayers.addAll(listOf(mapImageLayer, featureLayer)) + } } /** * Identify the feature layer results and display the resulting information */ - fun handleIdentifyResult(result: Result>) { + private fun handleIdentifyResult(result: Result>) { sampleCoroutineScope.launch { result.onSuccess { identifyResultList -> val message = StringBuilder() From 0535683bf7dba3cd2a43b6b4d5899a862f7e8839 Mon Sep 17 00:00:00 2001 From: Ruiqi Ma Date: Mon, 11 Mar 2024 10:24:01 -0700 Subject: [PATCH 3/3] resolve comments --- .../identifylayerfeatures/components/MapViewModel.kt | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/identify-layer-features/src/main/java/com/esri/arcgismaps/sample/identifylayerfeatures/components/MapViewModel.kt b/identify-layer-features/src/main/java/com/esri/arcgismaps/sample/identifylayerfeatures/components/MapViewModel.kt index 8244c9d8b..6e00e34dd 100644 --- a/identify-layer-features/src/main/java/com/esri/arcgismaps/sample/identifylayerfeatures/components/MapViewModel.kt +++ b/identify-layer-features/src/main/java/com/esri/arcgismaps/sample/identifylayerfeatures/components/MapViewModel.kt @@ -21,8 +21,6 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.ui.unit.dp import androidx.lifecycle.AndroidViewModel import com.arcgismaps.data.ServiceFeatureTable -import com.arcgismaps.geometry.Point -import com.arcgismaps.geometry.SpatialReference import com.arcgismaps.mapping.ArcGISMap import com.arcgismaps.mapping.BasemapStyle import com.arcgismaps.mapping.Viewpoint @@ -76,14 +74,7 @@ class MapViewModel( // add the world cities layer with and the damaged properties feature layer map.apply { // set initial Viewpoint to North America - initialViewpoint = Viewpoint( - center = Point( - x = -10977012.785807, - y = 4514257.550369, - spatialReference = SpatialReference(wkid = 3857) - ), - scale = 68015210.0 - ) + initialViewpoint = Viewpoint(39.8, -98.6, 5e7) operationalLayers.addAll(listOf(mapImageLayer, featureLayer)) }