ArcGISDynamicMapServiceLayer servicoDestino; ArcGISDynamicMapServiceLayer servicoOrigem; GraphicsLayer graficosOrigem = Mapa.Layers["MyGraphicsLayer"] as GraphicsLayer; GraphicsLayer graficosDestino = new GraphicsLayer(); //Pega os Layers Visíveis //Layers Mapa Base - 22/069/2010 servicoDestino = new ArcGISDynamicMapServiceLayer(); List<int> ListaLayersVisiveis = new List<int>(); servicoOrigem = Mapa.Layers["Mapa Base"] as ArcGISDynamicMapServiceLayer; servicoDestino.Url = servicoOrigem.Url; if (servicoOrigem.Visible == true) { if (servicoOrigem.VisibleLayers != null) { ListaLayersVisiveis = servicoOrigem.VisibleLayers.ToList(); servicoDestino.VisibleLayers = ListaLayersVisiveis.ToArray(); } servicoDestino.Opacity = servicoOrigem.Opacity; servicoDestino.ImageFormat = ArcGISDynamicMapServiceLayer.RestImageFormat.PNG32; imprimir.MapaImpressao.Layers.Add(servicoDestino); } //Layers Ortofoto 2006 servicoDestino = new ArcGISDynamicMapServiceLayer(); ListaLayersVisiveis = new List<int>(); servicoOrigem = Mapa.Layers["Ortofoto"] as ArcGISDynamicMapServiceLayer; servicoDestino.Url = servicoOrigem.Url; if (servicoOrigem.Visible == true) { if (servicoOrigem.VisibleLayers != null) { ListaLayersVisiveis = servicoOrigem.VisibleLayers.ToList(); servicoDestino.VisibleLayers = ListaLayersVisiveis.ToArray(); } servicoDestino.Opacity = servicoOrigem.Opacity; servicoDestino.ImageFormat = ArcGISDynamicMapServiceLayer.RestImageFormat.PNG32; imprimir.MapaImpressao.Layers.Add(servicoDestino); } //Logradouros servicoDestino = new ArcGISDynamicMapServiceLayer(); ListaLayersVisiveis = new List<int>(); servicoOrigem = Mapa.Layers["Logradouros"] as ArcGISDynamicMapServiceLayer; servicoDestino.Url = servicoOrigem.Url; if (servicoOrigem.Visible == true) { if (servicoOrigem.VisibleLayers != null) { ListaLayersVisiveis = servicoOrigem.VisibleLayers.ToList(); servicoDestino.VisibleLayers = ListaLayersVisiveis.ToArray(); } servicoDestino.Opacity = servicoOrigem.Opacity; servicoDestino.ImageFormat = ArcGISDynamicMapServiceLayer.RestImageFormat.PNG32; imprimir.MapaImpressao.Layers.Add(servicoDestino); } //Bairros servicoDestino = new ArcGISDynamicMapServiceLayer(); ListaLayersVisiveis = new List<int>(); servicoOrigem = Mapa.Layers["Bairros"] as ArcGISDynamicMapServiceLayer; servicoDestino.Url = servicoOrigem.Url; if (servicoOrigem.Visible == true) { if (servicoOrigem.VisibleLayers != null) { ListaLayersVisiveis = servicoOrigem.VisibleLayers.ToList(); servicoDestino.VisibleLayers = ListaLayersVisiveis.ToArray(); } servicoDestino.Opacity = servicoOrigem.Opacity; servicoDestino.ImageFormat = ArcGISDynamicMapServiceLayer.RestImageFormat.PNG32; imprimir.MapaImpressao.Layers.Add(servicoDestino); } imprimir.MapaImpressao.ZoomTo(this._extentHistory[this._currentExtentIndex]); imprimir.MapaImpressao.ZoomToResolution(this.Mapa.Resolution); imprimir.MapaImpressao.PanTo(this.Mapa.Extent.GetCenter()); //Pega os Graficos do layerDeDesenhos foreach (Graphic i in graficosOrigem) { Graphic g = new Graphic(); g.Geometry = i.Geometry; g.Symbol = i.Symbol; graficosDestino.Graphics.Add(g); } imprimir.MapaImpressao.Layers.Add(graficosDestino); //Layer de Resultados de ZoomPorCoordenadas graficosOrigem = Mapa.Layers["layerGraficoBuscaCoordenadas"] as GraphicsLayer; graficosDestino = new GraphicsLayer(); foreach (Graphic i in graficosOrigem) { Graphic g = new Graphic(); g.Geometry = i.Geometry; g.Symbol = i.Symbol; graficosDestino.Graphics.Add(g); } imprimir.MapaImpressao.Layers.Add(graficosDestino); //Layer de Graficos de Resultados de Logradouros graficosOrigem = Mapa.Layers["layerGraficosResultadosLogradouros"] as GraphicsLayer; graficosDestino = new GraphicsLayer(); foreach (Graphic i in graficosOrigem) { Graphic g = new Graphic(); g.Geometry = i.Geometry; g.Symbol = i.Symbol; graficosDestino.Graphics.Add(g); } imprimir.MapaImpressao.Layers.Add(graficosDestino);
ESRI.ArcGIS.Client.GraphicsLayer servicoGrafico = new ESRI.ArcGIS.Client.GraphicsLayer(); ESRI.ArcGIS.Client.ArcGISDynamicMapServiceLayer servicoDinamico = new ESRI.ArcGIS.Client.ArcGISDynamicMapServiceLayer(); List<int> ListaLayersVisiveis = new List<int>(); for (int i = 0; i < Mapa.Layers.Count; i++) { ListaLayersVisiveis = new List<int>(); if (Mapa.Layers is ESRI.ArcGIS.Client.ArcGISDynamicMapServiceLayer) { servicoDinamico = Mapa.Layers as ESRI.ArcGIS.Client.ArcGISDynamicMapServiceLayer; ESRI.ArcGIS.Client.ArcGISDynamicMapServiceLayer servicoDestino = new ESRI.ArcGIS.Client.ArcGISDynamicMapServiceLayer(); servicoDestino.Url = servicoDinamico.Url; if (servicoDinamico.Visible == true) { ListaLayersVisiveis = servicoDinamico.VisibleLayers.ToList(); servicoDestino.VisibleLayers = ListaLayersVisiveis.ToArray(); servicoDestino.ImageFormat = servicoDinamico.ImageFormat; } imprimir.MapaImpressao.Layers.Add(servicoDestino); } if (Mapa.Layers is ESRI.ArcGIS.Client.GraphicsLayer) { servicoGrafico = Mapa.Layers as ESRI.ArcGIS.Client.GraphicsLayer; ESRI.ArcGIS.Client.GraphicsLayer servicoDestino = new ESRI.ArcGIS.Client.GraphicsLayer(); foreach (Graphic desenho in servicoGrafico) { Graphic aux = new Graphic(); aux.Geometry = desenho.Geometry; aux.Symbol = desenho.Symbol; servicoDestino.Graphics.Add(aux); } imprimir.MapaImpressao.Layers.Add(servicoDestino); } }
foreach(var layer in MainPageMap.Layers) { if(layer is ArcGISTiledMapServiceLayer) { ArcGISTiledMapServiceLayer tiledLayer = layer as ArcGISTiledMapServiceLayer; //TODO: Set all properties you need to copy ChildWindowMap.Layers.Add(new ArcGISTiledMapServiceLayer() {Url = tiledLayer.Url}); } } //TODO: continue to check other layer types }
What am i missing??
In the first place, what is the problem you are experiencing?
(...) if (servicoOrigem.VisibleLayers != null) { ListaLayersVisiveis = servicoOrigem.VisibleLayers.ToList(); servicoDestino.VisibleLayers = ListaLayersVisiveis.ToArray(); servicoDestino.ImageFormat = servicoDinamico.ImageFormat; } (...)
ArcGISDynamicMapServiceLayer servicoDestino; ArcGISDynamicMapServiceLayer servicoOrigem; servicoDestino = new ArcGISDynamicMapServiceLayer(); List<int> ListaLayersVisiveis = new List<int>(); servicoOrigem = Mapa.Layers["Mapa Base"] as ArcGISDynamicMapServiceLayer; servicoDestino.Url = servicoOrigem.Url; if (servicoOrigem.Visible == true) { if (servicoOrigem.VisibleLayers != null) { ListaLayersVisiveis = servicoOrigem.VisibleLayers.ToList(); servicoDestino.VisibleLayers = ListaLayersVisiveis.ToArray(); } servicoDestino.Opacity = servicoOrigem.Opacity; servicoDestino.ImageFormat = ArcGISDynamicMapServiceLayer.RestImageFormat.PNG32; imprimir.MapaImpressao.Layers.Add(servicoDestino); }
ArcGISDynamicMapServiceLayer servicoDinamico = new ArcGISDynamicMapServiceLayer(); List<int> ListaLayersVisiveis = new List<int>(); for (int i = 0; i < Mapa.Layers.Count; i++) { ListaLayersVisiveis = new List<int>(); if (Mapa.Layers is ArcGISDynamicMapServiceLayer) { servicoDinamico = Mapa.Layers as ArcGISDynamicMapServiceLayer; ArcGISDynamicMapServiceLayer servicoDestino = new ArcGISDynamicMapServiceLayer(); servicoDestino.Url = servicoDinamico.Url; if (servicoDinamico.Visible == true) { ListaLayersVisiveis = servicoDinamico.VisibleLayers.ToList(); //<=this SHOULD have a list, but is always null. servicoDestino.VisibleLayers = ListaLayersVisiveis.ToArray(); servicoDestino.ImageFormat = servicoDinamico.ImageFormat; } imprimir.MapaImpressao.Layers.Add(servicoDestino); } }