private DistanceCompositeSceneSymbol CreateCompositeSymbol() { // Create three symbols for displaying a feature according to its distance from the camera. // First, a blue cube symbol for when the camera is near the feature. SimpleMarkerSceneSymbol cubeSym = new SimpleMarkerSceneSymbol(SimpleMarkerSceneSymbolStyle.Cube, System.Drawing.Color.Blue, 125, 125, 125, SceneSymbolAnchorPosition.Center); // 3D (cone) symbol for when the feature is at an intermediate range. SimpleMarkerSceneSymbol coneSym = new SimpleMarkerSceneSymbol(SimpleMarkerSceneSymbolStyle.Cone, System.Drawing.Color.Red, 75, 75, 75, SceneSymbolAnchorPosition.Bottom); // Simple marker symbol (circle) when the feature is far from the camera. SimpleMarkerSymbol markerSym = new SimpleMarkerSymbol(SimpleMarkerSymbolStyle.Circle, System.Drawing.Color.Yellow, 10.0); // Create three new ranges for displaying each symbol. DistanceSymbolRange closeRange = new DistanceSymbolRange(cubeSym, 0, 999); DistanceSymbolRange midRange = new DistanceSymbolRange(coneSym, 1000, 1999); DistanceSymbolRange farRange = new DistanceSymbolRange(markerSym, 2000, 0); // Create a new DistanceCompositeSceneSymbol and add the ranges. DistanceCompositeSceneSymbol compositeSymbol = new DistanceCompositeSceneSymbol(); compositeSymbol.Ranges.Add(closeRange); compositeSymbol.Ranges.Add(midRange); compositeSymbol.Ranges.Add(farRange); // Return the new composite symbol. return(compositeSymbol); }
private void Initialize() { // Create a new Scene with an imagery basemap. Scene myScene = new Scene(Basemap.CreateImagery()); // Add elevation to the scene. myScene.BaseSurface.ElevationSources.Add(new ArcGISTiledElevationSource(new Uri(ElevationSourceUrl))); // Add the Scene to the SceneView. _mySceneView.Scene = myScene; // Create a new GraphicsOverlay. GraphicsOverlay graphicsOverlay = new GraphicsOverlay { SceneProperties = { SurfacePlacement = SurfacePlacement.Relative } }; // Add the overlay to the view. _mySceneView.GraphicsOverlays.Add(graphicsOverlay); // Call a function to create a new distance composite symbol with three ranges. DistanceCompositeSceneSymbol compositeSymbol = CreateCompositeSymbol(); // Create a new point graphic with the composite symbol, add it to the graphics overlay. MapPoint locationPoint = new MapPoint(-2.708471, 56.096575, 5000, SpatialReferences.Wgs84); Graphic pointGraphic = new Graphic(locationPoint, compositeSymbol); graphicsOverlay.Graphics.Add(pointGraphic); // Set the viewpoint with a new camera focused on the graphic. Camera newCamera = new Camera(new MapPoint(-2.708471, 56.096575, 5000, SpatialReferences.Wgs84), 1500, 0, 80, 0); _mySceneView.SetViewpointCameraAsync(newCamera); }
private async Task <DistanceCompositeSceneSymbol> CreateCompositeSymbol() { // Get the path to the 3D model. string modelPath = GetModelPath(); // Create three symbols for displaying a feature according to its distance from the camera. // First, a 3D model symbol (airplane) for when the camera is near the feature. ModelSceneSymbol plane3DSymbol = await ModelSceneSymbol.CreateAsync(new System.Uri(modelPath), 1.0); // 3D (blue cone) symbol for when the feature is at an intermediate range. SimpleMarkerSceneSymbol coneSym = new SimpleMarkerSceneSymbol(SimpleMarkerSceneSymbolStyle.Cone, System.Drawing.Color.LightSkyBlue, 15, 6, 3, SceneSymbolAnchorPosition.Center) { // The cone will point in the same direction as the plane. Pitch = -90 }; // Simple marker symbol (circle) when the feature is far from the camera. SimpleMarkerSymbol markerSym = new SimpleMarkerSymbol(SimpleMarkerSymbolStyle.Circle, System.Drawing.Color.LightSkyBlue, 10.0); // Create three new ranges for displaying each symbol. DistanceSymbolRange closeRange = new DistanceSymbolRange(plane3DSymbol, 0, 100); DistanceSymbolRange midRange = new DistanceSymbolRange(coneSym, 100, 500); DistanceSymbolRange farRange = new DistanceSymbolRange(markerSym, 500, 0); // Create a new DistanceCompositeSceneSymbol and add the ranges. DistanceCompositeSceneSymbol compositeSymbol = new DistanceCompositeSceneSymbol(); compositeSymbol.Ranges.Add(closeRange); compositeSymbol.Ranges.Add(midRange); compositeSymbol.Ranges.Add(farRange); // Return the new composite symbol. return(compositeSymbol); }
private async void Initialize() { try { // Create a new Scene with an imagery basemap. Scene myScene = new Scene(BasemapStyle.ArcGISImageryStandard); // Add the Scene to the SceneView. _mySceneView.Scene = myScene; // Create a new GraphicsOverlay and add it to the SceneView. GraphicsOverlay graphicsOverlay = new GraphicsOverlay(); graphicsOverlay.SceneProperties.SurfacePlacement = SurfacePlacement.Relative; _mySceneView.GraphicsOverlays.Add(graphicsOverlay); // Call a function to create a new distance composite symbol with three ranges. DistanceCompositeSceneSymbol compositeSymbol = await CreateCompositeSymbol(); // Create a new point graphic with the composite symbol, add it to the graphics overlay. MapPoint locationPoint = new MapPoint(-2.708471, 56.096575, 5000, SpatialReferences.Wgs84); Graphic pointGraphic = new Graphic(locationPoint, compositeSymbol); graphicsOverlay.Graphics.Add(pointGraphic); // Add an orbit camera controller to lock the camera to the graphic. OrbitGeoElementCameraController cameraController = new OrbitGeoElementCameraController(pointGraphic, 20) { CameraPitchOffset = 80, CameraHeadingOffset = -30 }; _mySceneView.CameraController = cameraController; } catch (Exception e) { // Something went wrong, display the error AlertDialog.Builder alert = new AlertDialog.Builder(this); alert.SetTitle("Error"); alert.SetMessage(e.Message); alert.Show(); } }
private async void Initialize() { try { // Create a new Scene with an imagery basemap. Scene myScene = new Scene(Basemap.CreateImagery()); // Add the Scene to the SceneView. _mySceneView.Scene = myScene; // Create a new GraphicsOverlay and add it to the SceneView. GraphicsOverlay graphicsOverlay = new GraphicsOverlay(); graphicsOverlay.SceneProperties.SurfacePlacement = SurfacePlacement.Relative; _mySceneView.GraphicsOverlays.Add(graphicsOverlay); // Call a function to create a new distance composite symbol with three ranges. DistanceCompositeSceneSymbol compositeSymbol = await CreateCompositeSymbol(); // Create a new point graphic with the composite symbol, add it to the graphics overlay. MapPoint locationPoint = new MapPoint(-2.708471, 56.096575, 5000, SpatialReferences.Wgs84); Graphic pointGraphic = new Graphic(locationPoint, compositeSymbol); graphicsOverlay.Graphics.Add(pointGraphic); // Add an orbit camera controller to lock the camera to the graphic. OrbitGeoElementCameraController cameraController = new OrbitGeoElementCameraController(pointGraphic, 20) { CameraPitchOffset = 80, CameraHeadingOffset = -30 }; _mySceneView.CameraController = cameraController; } catch (Exception e) { // Something went wrong, display the error. UIAlertController alert = UIAlertController.Create("Error", e.Message, UIAlertControllerStyle.Alert); alert.AddAction(UIAlertAction.Create("OK", UIAlertActionStyle.Default, null)); PresentViewController(alert, true, null); } }
private async void Initialize() { try { // Create a new Scene with an imagery basemap. Scene myScene = new Scene(Basemap.CreateImagery()); // Add the Scene to the SceneView. MySceneView.Scene = myScene; // Create a new GraphicsOverlay and add it to the SceneView. GraphicsOverlay graphicsOverlay = new GraphicsOverlay(); graphicsOverlay.SceneProperties.SurfacePlacement = SurfacePlacement.Relative; MySceneView.GraphicsOverlays.Add(graphicsOverlay); // Call a function to create a new distance composite symbol with three ranges. DistanceCompositeSceneSymbol compositeSymbol = await CreateCompositeSymbol(); // Create a new point graphic with the composite symbol, add it to the graphics overlay. MapPoint locationPoint = new MapPoint(-2.708471, 56.096575, 5000, SpatialReferences.Wgs84); Graphic pointGraphic = new Graphic(locationPoint, compositeSymbol); graphicsOverlay.Graphics.Add(pointGraphic); // Add an orbit camera controller to lock the camera to the graphic. OrbitGeoElementCameraController cameraController = new OrbitGeoElementCameraController(pointGraphic, 20) { CameraPitchOffset = 80, CameraHeadingOffset = -30 }; MySceneView.CameraController = cameraController; } catch (Exception e) { var dialog = new MessageDialog2(e.ToString(), "Error"); await dialog.ShowAsync(); } }