private void Initialize() { // Configure the scene with an imagery basemap. MySceneView.Scene = new Scene(Basemap.CreateImagery()); // Add a surface to the scene for elevation. ArcGISTiledElevationSource elevationSource = new ArcGISTiledElevationSource(new Uri(_elevationServiceUrl)); Surface elevationSurface = new Surface(); elevationSurface.ElevationSources.Add(elevationSource); MySceneView.Scene.BaseSurface = elevationSurface; // Create the graphics overlay. GraphicsOverlay overlay = new GraphicsOverlay(); // Set the surface placement mode for the overlay. overlay.SceneProperties.SurfacePlacement = SurfacePlacement.Absolute; // Create a graphic for each symbol type and add it to the scene. int index = 0; Color[] colors = { Color.Red, Color.Green, Color.Blue, Color.Purple, Color.Turquoise, Color.White }; Array symbolStyles = Enum.GetValues(typeof(SimpleMarkerSceneSymbolStyle)); foreach (SimpleMarkerSceneSymbolStyle symbolStyle in symbolStyles) { // Create the symbol. SimpleMarkerSceneSymbol symbol = new SimpleMarkerSceneSymbol(symbolStyle, colors[index], 200, 200, 200, SceneSymbolAnchorPosition.Center); // Offset each symbol so that they aren't in the same spot. double positionOffset = 0.01 * index; MapPoint point = new MapPoint(44.975 + positionOffset, 29, 500, SpatialReferences.Wgs84); // Create the graphic from the geometry and the symbol. Graphic item = new Graphic(point, symbol); // Add the graphic to the overlay. overlay.Graphics.Add(item); // Increment the index. index++; } // Show the graphics overlay in the scene. MySceneView.GraphicsOverlays.Add(overlay); // Set the initial viewpoint. Camera initalViewpoint = new Camera(28.9672, 44.9858, 2495, 12, 53, 0); MySceneView.SetViewpointCamera(initalViewpoint); }
public BlankPage1() { this.InitializeComponent(); MySceneView.Scene = new Scene(Basemap.CreateDarkGrayCanvasVector()); MySceneView.Scene.BaseSurface.ElevationSources.Add(new ArcGISTiledElevationSource(new System.Uri("https://elevation3d.arcgis.com/arcgis/rest/services/WorldElevation3D/Terrain3D/ImageServer"))); // Define rendering mode for VR experience. MySceneView.StereoRendering = new SideBySideBarrelDistortionStereoRendering(); MySceneView.IsAttributionTextVisible = false; var camera = new Camera(34.02209, -118.2853, 1000, 0, 45, 0); MySceneView.SetViewpointCamera(camera); var wgs84 = MySceneView.Scene.SpatialReference; GraphicsOverlay go = new GraphicsOverlay(); go.SceneProperties.SurfacePlacement = SurfacePlacement.Relative; var rnd = new System.Random(); for (int i = 0; i < 50; i++) { var buoy1Loc = new MapPoint(-118.2606, 34.0498, 1000, wgs84); // create a marker symbol var buoyMarker = new SimpleMarkerSymbol(SimpleMarkerSymbolStyle.Circle, Colors.Red, 10); // create graphics var buoyTest = new Graphic(buoy1Loc, buoyMarker); go.Graphics.Add(buoyTest); /* Make the intercontinental marked */ Task.Factory.StartNew(async() => { while (true) { buoyTest.Geometry = new MapPoint(-118.2606 + rnd.NextDouble(), 34.0498 + rnd.NextDouble(), rnd.Next(0, 1000)); await Task.Delay(100); } }); } MySceneView.GraphicsOverlays.Add(go); }
private void Initialize() { // Create the scene with basemap. MySceneView.Scene = new Scene(BasemapStyle.ArcGISImageryStandard); // Create and use an elevation surface to show terrain. Surface baseSurface = new Surface(); baseSurface.ElevationSources.Add(new ArcGISTiledElevationSource(new Uri(ElevationServiceUrl))); MySceneView.Scene.BaseSurface = baseSurface; // Create the integrated mesh layer from URL. IntegratedMeshLayer meshLayer = new IntegratedMeshLayer(new Uri(IntegratedMeshLayerUrl)); // Add the layer to the scene's operational layers. MySceneView.Scene.OperationalLayers.Add(meshLayer); // Start with camera pointing at the scene. MySceneView.SetViewpointCamera(new Camera(new MapPoint(2.8259, 41.9906, 200.0), 190, 65, 0)); }
private void Initialize() { // Create the scene with basemap. MySceneView.Scene = new Scene(Basemap.CreateImagery()); // Create and use an elevation surface to show terrain. Surface baseSurface = new Surface(); baseSurface.ElevationSources.Add(new ArcGISTiledElevationSource(new Uri(ElevationServiceUrl))); MySceneView.Scene.BaseSurface = baseSurface; // Create the integrated mesh layer from URL. IntegratedMeshLayer meshLayer = new IntegratedMeshLayer(new Uri(IntegratedMeshLayerUrl)); // Add the layer to the scene's operational layers. MySceneView.Scene.OperationalLayers.Add(meshLayer); // Start with camera pointing at El Capitan. MySceneView.SetViewpointCamera(new Camera(new MapPoint(-119.622075, 37.720650, 2104.901239), 315.50368761552056, 78.09465920130114, 0)); }
private void Initialize() { // Create the scene with a basemap. MySceneView.Scene = new Scene(Basemap.CreateImagery()); // Add an elevation source to the scene. Surface elevationSurface = new Surface(); ArcGISTiledElevationSource elevationSource = new ArcGISTiledElevationSource(new Uri(_elevationServiceUrl)); elevationSurface.ElevationSources.Add(elevationSource); MySceneView.Scene.BaseSurface = elevationSurface; // Set the initial viewpoint. Camera initialCamera = new Camera(64.416919, -14.483728, 100, 318, 105, 0); MySceneView.SetViewpointCamera(initialCamera); // Configure the picker. AtmosphereEffectPicker.ItemsSource = new [] { "Realistic", "Horizon only", "None" }; AtmosphereEffectPicker.SelectedIndex = 1; // Apply the selected atmosphere effect option. AtmosphereEffectPicker.SelectedIndexChanged += (o, e) => { switch (AtmosphereEffectPicker.SelectedIndex) { case 0: MySceneView.AtmosphereEffect = AtmosphereEffect.Realistic; break; case 1: MySceneView.AtmosphereEffect = AtmosphereEffect.HorizonOnly; break; case 2: MySceneView.AtmosphereEffect = AtmosphereEffect.None; break; } }; }
private void Initialize() { // Set up the scene with an imagery basemap. MySceneView.Scene = new Scene(Basemap.CreateImagery()); // Set the initial viewpoint for the scene. MapPoint point = new MapPoint(83.9, 28.4, 1000, SpatialReferences.Wgs84); Camera initialCamera = new Camera(point, 1000, 0, 50, 0); MySceneView.SetViewpointCamera(initialCamera); // Create a graphics overlay. GraphicsOverlay overlay = new GraphicsOverlay(); overlay.SceneProperties.SurfacePlacement = SurfacePlacement.Relative; MySceneView.GraphicsOverlays.Add(overlay); // Add a renderer using rotation expressions. SimpleRenderer renderer = new SimpleRenderer(); renderer.SceneProperties.HeadingExpression = "[HEADING]"; renderer.SceneProperties.PitchExpression = "[PITCH]"; // Apply the renderer to the graphics overlay. overlay.Renderer = renderer; // Create a red cone graphic. SimpleMarkerSceneSymbol coneSymbol = SimpleMarkerSceneSymbol.CreateCone(Color.Red, 100, 100); coneSymbol.Pitch = -90; MapPoint conePoint = new MapPoint(83.9, 28.41, 200, SpatialReferences.Wgs84); Graphic cone = new Graphic(conePoint, coneSymbol); // Add the cone graphic to the overlay. overlay.Graphics.Add(cone); // Listen for changes in slider values and update graphic properties. HeadingSlider.ValueChanged += (sender, e) => { cone.Attributes["HEADING"] = HeadingSlider.Value; }; PitchSlider.ValueChanged += (sender, e) => { cone.Attributes["PITCH"] = PitchSlider.Value; }; }
private void Initialize() { // Create the scene with a basemap. MySceneView.Scene = new Scene(BasemapStyle.ArcGISImageryStandard); // Add an elevation source to the scene. Surface elevationSurface = new Surface(); ArcGISTiledElevationSource elevationSource = new ArcGISTiledElevationSource(new Uri(_elevationServiceUrl)); elevationSurface.ElevationSources.Add(elevationSource); MySceneView.Scene.BaseSurface = elevationSurface; // Set the initial viewpoint. Camera initialCamera = new Camera(64.416919, -14.483728, 100, 318, 105, 0); MySceneView.SetViewpointCamera(initialCamera); // Apply the selected atmosphere effect option. RealisticOption.Selected += (sender, e) => MySceneView.AtmosphereEffect = AtmosphereEffect.Realistic; HorizonOnlyOption.Selected += (sender, e) => MySceneView.AtmosphereEffect = AtmosphereEffect.HorizonOnly; NoneOption.Selected += (sender, e) => MySceneView.AtmosphereEffect = AtmosphereEffect.None; }
private async void Initialize() { // Create a new Scene with an imagery basemap. Scene scene = new Scene(BasemapStyle.ArcGISImageryStandard); // Add a base surface with elevation data. Surface elevationSurface = new Surface(); Uri elevationService = new Uri("https://elevation3d.arcgis.com/arcgis/rest/services/WorldElevation3D/Terrain3D/ImageServer"); elevationSurface.ElevationSources.Add(new ArcGISTiledElevationSource(elevationService)); scene.BaseSurface = elevationSurface; // Add a scene layer. Uri buildingsService = new Uri("https://tiles.arcgis.com/tiles/P3ePLMYs2RVChkJx/arcgis/rest/services/Buildings_Berlin/SceneServer"); ArcGISSceneLayer buildingsLayer = new ArcGISSceneLayer(buildingsService); scene.OperationalLayers.Add(buildingsLayer); // Assign the Scene to the SceneView. MySceneView.Scene = scene; try { // Create a camera with an interesting view. await buildingsLayer.LoadAsync(); MapPoint center = (MapPoint)GeometryEngine.Project(buildingsLayer.FullExtent.GetCenter(), SpatialReferences.Wgs84); Camera viewCamera = new Camera(center.Y, center.X, 600, 120, 60, 0); // Set the viewpoint with the camera. MySceneView.SetViewpointCamera(viewCamera); } catch (Exception e) { await Application.Current.MainPage.DisplayAlert("Error", e.ToString(), "OK"); } }
public MyMapView() { InitializeComponent(); // Create a scene with elevation. Surface sceneSurface = new Surface(); sceneSurface.ElevationSources.Add(new ArcGISTiledElevationSource(_worldElevationService)); Scene myScene = new Scene(Basemap.CreateImagery()) { BaseSurface = sceneSurface }; // Create and add a building layer. ArcGISSceneLayer buildingsLayer = new ArcGISSceneLayer(_buildingService); myScene.OperationalLayers.Add(buildingsLayer); // Create and add an analysis overlay. AnalysisOverlay measureAnalysisOverlay = new AnalysisOverlay(); MySceneView.AnalysisOverlays.Add(measureAnalysisOverlay); //SpatialReference spref = new SpatialReference(26717); // NAD_1927_UTM_Zone_17N MapPoint baseMapPoint1 = new MapPoint(25.905114, -80.767646, SpatialReferences.WebMercator); MapPoint start = new MapPoint(-4.494677, 48.384472, 24.772694, SpatialReferences.Wgs84); double latitude = double.Parse("50.250000"); // No difference if values are between 19.75N and 50.25N double longitude = double.Parse("-81.000000"); // 81.0W is the central meridian for UTM 17N SpatialReference spref = new SpatialReference(26717); // NAD_1927_UTM_Zone_17N MapPoint baseMapPoint = new MapPoint(longitude, latitude, SpatialReferences.Wgs84); MapPoint mapPoint1 = GeometryEngine.Project(baseMapPoint, spref) as MapPoint; MySceneView.SetViewpointCamera(new Camera(baseMapPoint1, 200, 0, 45, 0)); // Show the scene in the view. MySceneView.Scene = myScene; }
private void Initialize() { // Create a scene with elevation. Surface sceneSurface = new Surface(); sceneSurface.ElevationSources.Add(new ArcGISTiledElevationSource(_worldElevationService)); Scene myScene = new Scene(Basemap.CreateImagery()) { BaseSurface = sceneSurface }; // Create and add a building layer. ArcGISSceneLayer buildingsLayer = new ArcGISSceneLayer(_buildingService); myScene.OperationalLayers.Add(buildingsLayer); // Create and add an analysis overlay. AnalysisOverlay measureAnalysisOverlay = new AnalysisOverlay(); MySceneView.AnalysisOverlays.Add(measureAnalysisOverlay); // Create an initial distance measurement and show it. MapPoint start = new MapPoint(-4.494677, 48.384472, 24.772694, SpatialReferences.Wgs84); MapPoint end = new MapPoint(-4.495646, 48.384377, 58.501115, SpatialReferences.Wgs84); _distanceMeasurement = new LocationDistanceMeasurement(start, end); measureAnalysisOverlay.Analyses.Add(_distanceMeasurement); // Keep the UI updated. _distanceMeasurement.MeasurementChanged += (o, e) => { // This is needed because measurement change events occur on a non-UI thread and this code accesses UI object. Device.BeginInvokeOnMainThread(() => { // Update the labels with new values in the format {value} {unit system}. DirectMeasureLabel.Text = $"{_distanceMeasurement.DirectDistance.Value:F} {_distanceMeasurement.DirectDistance.Unit.Abbreviation}"; VerticalMeasureLabel.Text = $"{_distanceMeasurement.VerticalDistance.Value:F} {_distanceMeasurement.VerticalDistance.Unit.Abbreviation}"; HorizontalMeasureLabel.Text = $"{_distanceMeasurement.HorizontalDistance.Value:F} {_distanceMeasurement.HorizontalDistance.Unit.Abbreviation}"; }); }; // Configure the unit system selection box. UnitSystemCombo.ItemsSource = Enum.GetValues(typeof(UnitSystem)); UnitSystemCombo.SelectedItem = _distanceMeasurement.UnitSystem; // Update the unit system selection. UnitSystemCombo.SelectedIndexChanged += (sender, args) => { _distanceMeasurement.UnitSystem = (UnitSystem)UnitSystemCombo.SelectedItem; }; // Show the scene in the view. MySceneView.Scene = myScene; MySceneView.SetViewpointCamera(new Camera(start, 200, 0, 45, 0)); // Subscribe to tap events to enable updating the measurement. MySceneView.GeoViewTapped += MySceneView_GeoViewTapped; }
private void Initialize() { _viewHeight = HeightSlider.Value; // Create the scene with the imagery basemap. Scene myScene = new Scene(Basemap.CreateImagery()); MySceneView.Scene = myScene; // Add the surface elevation. Surface mySurface = new Surface(); mySurface.ElevationSources.Add(new ArcGISTiledElevationSource(_localElevationImageService)); myScene.BaseSurface = mySurface; // Add the scene layer. ArcGISSceneLayer sceneLayer = new ArcGISSceneLayer(_buildingsUrl); myScene.OperationalLayers.Add(sceneLayer); // Create the MapPoint representing the initial location. MapPoint initialLocation = new MapPoint(-4.5, 48.4, 46 + _viewHeight); // Create the location viewshed analysis. _viewshed = new LocationViewshed( initialLocation, HeadingSlider.Value, PitchSlider.Value, HorizontalAngleSlider.Value, VerticalAngleSlider.Value, MinimumDistanceSlider.Value, MaximumDistanceSlider.Value); // Create a camera based on the initial location. Camera camera = new Camera(initialLocation, 200.0, 20.0, 70.0, 0.0); // Create a symbol for the viewpoint. _viewpointSymbol = SimpleMarkerSceneSymbol.CreateSphere(Color.Blue, 10, SceneSymbolAnchorPosition.Center); // Add the symbol to the viewpoint overlay. _viewpointOverlay = new GraphicsOverlay(); _viewpointOverlay.SceneProperties = new LayerSceneProperties(SurfacePlacement.Absolute); _viewpointOverlay.Graphics.Add(new Graphic(initialLocation, _viewpointSymbol)); // Apply the camera to the scene view. MySceneView.SetViewpointCamera(camera); // Create an analysis overlay for showing the viewshed analysis. _analysisOverlay = new AnalysisOverlay(); // Add the viewshed analysis to the overlay. _analysisOverlay.Analyses.Add(_viewshed); // Add the analysis overlay to the SceneView. MySceneView.AnalysisOverlays.Add(_analysisOverlay); // Add the graphics overlay MySceneView.GraphicsOverlays.Add(_viewpointOverlay); // Update the frustum outline Color. // The frustum outline shows the volume in which the viewshed analysis is performed. Viewshed.FrustumOutlineColor = Color.Blue; // Subscribe to tap events. This enables the 'pick up' and 'drop' workflow for moving the viewpoint. MySceneView.GeoViewTapped += MySceneViewOnGeoViewTapped; }