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);
}
}