Example #1
0
        private Viewport2DVisual3D CreateMapVisual(EsriMapLayer layer)
        {
            Viewport2DVisual3D result = new Viewport2DVisual3D();

            // Geometry
                MeshGeometry3D geometry = new MeshGeometry3D();
                geometry.Positions = new Point3DCollection();
                geometry.Positions.Add(new Point3D(-50, -50, 0));
                geometry.Positions.Add(new Point3D(50, -50, 0));
                geometry.Positions.Add(new Point3D(-50, 50, 0));
                geometry.Positions.Add(new Point3D(50, 50, 0));
                geometry.TriangleIndices = new System.Windows.Media.Int32Collection();
                geometry.TriangleIndices.Add(0);
                geometry.TriangleIndices.Add(1);
                geometry.TriangleIndices.Add(2);
                geometry.TriangleIndices.Add(2);
                geometry.TriangleIndices.Add(1);
                geometry.TriangleIndices.Add(3);
                geometry.TextureCoordinates = new System.Windows.Media.PointCollection();
                geometry.TextureCoordinates.Add(new Point(0, 1));
                geometry.TextureCoordinates.Add(new Point(1, 1));
                geometry.TextureCoordinates.Add(new Point(0, 0));
                geometry.TextureCoordinates.Add(new Point(1, 0));
                result.Geometry = geometry;

            // Material
                DiffuseMaterial material = new DiffuseMaterial();
                result.Material = material;
                Viewport2DVisual3D.SetIsVisualHostMaterial(material, true);

            // Visual
                Border border = new Border();
                border.BorderThickness = new Thickness(2.0);
                border.BorderBrush = new SolidColorBrush(Colors.Black);
                Map map = new Map();
                map.IsLogoVisible = false;

                layer.MyMap = map;
                map.Height = 500;
                map.Width = 500;
                map.Layers = new LayerCollection();

                ArcGISDynamicMapServiceLayer baseLayer = new ArcGISDynamicMapServiceLayer { Url = BaseMapUrl };
                baseLayer.Visible = false;
                map.Layers.Add(baseLayer);

                map.Layers.Add(layer.MyLayer);
                border.Child = map;
                result.Visual = border;

            // Default Extent
                if (MyEsriMapLayers.Count < 1)
                    map.Extent = DefaultExtent;

            return result;
        }
Example #2
0
        // Private - Layer Processing
        private EsriMapLayer CreateEsriMapLayer(Layer layer)
        {
            EsriMapLayer esriLayer = new EsriMapLayer();
            esriLayer.MyLayer = layer;

            Viewport2DVisual3D front = CreateMapVisual(esriLayer);
            Viewport2DVisual3D back = CreateRectangleVisual();
            esriLayer.MyViewport2DVisual3D = new Viewport2DVisual3D[] { front, back };

            return esriLayer;
        }