private void ConfigureApplication(ref Configuration xmlConfiguation) { Title = xmlConfiguation.Title; Width = xmlConfiguation.Width; Height = xmlConfiguation.Height; ParcelLines.MaxHeight = _xmlConfiguation.MaxGridHeight; // insert layer before [graphical] layers defined in xaml Int32 layerIndex = 0; String lastUnit = ""; foreach (LayerDefinition definition in xmlConfiguation.DisplayLayers) { if (definition.Type == "dynamic") { ArcGISDynamicMapServiceLayer dynamicMS = new ArcGISDynamicMapServiceLayer(); dynamicMS.Url = definition.Url; dynamicMS.ID = definition.Id; dynamicMS.InitializationFailed += Layer_InitializationFailed; ParcelMap.Layers.Insert(layerIndex++, dynamicMS); if ((dynamicMS.Units != null) && (dynamicMS.Units != "") && !xmlConfiguation.HasSpatialReferenceUnit) { lastUnit = dynamicMS.Units; } } if (definition.Type == "feature") { FeatureLayer featureMS = new FeatureLayer(); featureMS.Url = definition.Url + "/" + definition.Id.ToString(); featureMS.ID = definition.Id; featureMS.InitializationFailed += Layer_InitializationFailed; featureMS.Mode = FeatureLayer.QueryMode.OnDemand; ParcelMap.Layers.Insert(layerIndex++, featureMS); // FOOBAR FeatureLayer does not support unit? } if (definition.Type == "tiled") { ArcGISTiledMapServiceLayer tiledMS = new ArcGISTiledMapServiceLayer(); tiledMS.Url = definition.Url; tiledMS.ID = definition.Id; tiledMS.InitializationFailed += Layer_InitializationFailed; ParcelMap.Layers.Insert(layerIndex++, tiledMS); if ((tiledMS.Units != null) && (tiledMS.Units != "") && !xmlConfiguation.HasSpatialReferenceUnit) { lastUnit = tiledMS.Units; } } if (definition.Type == "image") { ArcGISImageServiceLayer imageS = new ArcGISImageServiceLayer(); imageS.Url = definition.Url; imageS.ID = definition.Id; imageS.InitializationFailed += Layer_InitializationFailed; ParcelMap.Layers.Insert(layerIndex++, imageS); } } if (!xmlConfiguation.HasSpatialReferenceUnit) { xmlConfiguation.MapSpatialReferenceUnits = lastUnit; } ESRI.ArcGIS.Client.Geometry.Envelope extent = null; if (xmlConfiguation.IsExtentSet()) { extent = new ESRI.ArcGIS.Client.Geometry.Envelope(xmlConfiguation.XMin, xmlConfiguation.YMin, xmlConfiguation.XMax, xmlConfiguation.YMax); } else { // Map will not zoom to, etc with out some value set. // Ideally we would like to set the extent to the full extent of the first // layer, but since they layer has hot been drawn yet null is returned. extent = new ESRI.ArcGIS.Client.Geometry.Envelope(100, 100, 100, 100); } // if zero, the first inserted layer is used if ((xmlConfiguation.SpatialReferenceWKT != null) && (xmlConfiguation.SpatialReferenceWKT != "")) { extent.SpatialReference = new ESRI.ArcGIS.Client.Geometry.SpatialReference(xmlConfiguation.SpatialReferenceWKT); } else if (xmlConfiguation.SpatialReferenceWKID != 0) { extent.SpatialReference = new ESRI.ArcGIS.Client.Geometry.SpatialReference(xmlConfiguation.SpatialReferenceWKID); } ParcelMap.Extent = extent; ParcelData parcelData = ParcelGridContainer.DataContext as ParcelData; parcelData.Configuration = xmlConfiguation; QueryLabel.Text = xmlConfiguation.QueryLabel; }
private void ConfigureApplication(ref Configuration xmlConfiguation) { Title = xmlConfiguation.Title; Width = xmlConfiguation.Width; Height = xmlConfiguation.Height; ParcelLines.MaxHeight = _xmlConfiguation.MaxGridHeight; // insert layer before [graphical] layers defined in xaml Int32 layerIndex = 0; String lastUnit = ""; foreach (LayerDefinition definition in xmlConfiguation.DisplayLayers) { if (definition.Type == "dynamic") { ArcGISDynamicMapServiceLayer dynamicMS = new ArcGISDynamicMapServiceLayer(); dynamicMS.Url = definition.Url; dynamicMS.ID = definition.Id; dynamicMS.InitializationFailed += Layer_InitializationFailed; ParcelMap.Layers.Insert(layerIndex++, dynamicMS); if ((dynamicMS.Units != null) && (dynamicMS.Units != "") && !xmlConfiguation.HasSpatialReferenceUnit) lastUnit = dynamicMS.Units; } if (definition.Type == "feature") { FeatureLayer featureMS = new FeatureLayer(); featureMS.Url = definition.Url + "/" + definition.Id.ToString(); featureMS.ID = definition.Id; featureMS.InitializationFailed += Layer_InitializationFailed; featureMS.Mode = FeatureLayer.QueryMode.OnDemand; ParcelMap.Layers.Insert(layerIndex++, featureMS); // FOOBAR FeatureLayer does not support unit? } if (definition.Type == "tiled") { ArcGISTiledMapServiceLayer tiledMS = new ArcGISTiledMapServiceLayer(); tiledMS.Url = definition.Url; tiledMS.ID = definition.Id; tiledMS.InitializationFailed += Layer_InitializationFailed; ParcelMap.Layers.Insert(layerIndex++, tiledMS); if ((tiledMS.Units != null) && (tiledMS.Units != "") && !xmlConfiguation.HasSpatialReferenceUnit) lastUnit = tiledMS.Units; } if (definition.Type == "image") { ArcGISImageServiceLayer imageS = new ArcGISImageServiceLayer(); imageS.Url = definition.Url; imageS.ID = definition.Id; imageS.InitializationFailed += Layer_InitializationFailed; ParcelMap.Layers.Insert(layerIndex++, imageS); } } if (!xmlConfiguation.HasSpatialReferenceUnit) xmlConfiguation.MapSpatialReferenceUnits = lastUnit; ESRI.ArcGIS.Client.Geometry.Envelope extent = null; if (xmlConfiguation.IsExtentSet()) extent = new ESRI.ArcGIS.Client.Geometry.Envelope(xmlConfiguation.XMin, xmlConfiguation.YMin, xmlConfiguation.XMax, xmlConfiguation.YMax); else // Map will not zoom to, etc with out some value set. // Ideally we would like to set the extent to the full extent of the first // layer, but since they layer has hot been drawn yet null is returned. extent = new ESRI.ArcGIS.Client.Geometry.Envelope(100, 100, 100, 100); // if zero, the first inserted layer is used if ((xmlConfiguation.SpatialReferenceWKT != null) && (xmlConfiguation.SpatialReferenceWKT != "")) extent.SpatialReference = new ESRI.ArcGIS.Client.Geometry.SpatialReference(xmlConfiguation.SpatialReferenceWKT); else if (xmlConfiguation.SpatialReferenceWKID != 0) extent.SpatialReference = new ESRI.ArcGIS.Client.Geometry.SpatialReference(xmlConfiguation.SpatialReferenceWKID); ParcelMap.Extent = extent; ParcelData parcelData = ParcelGridContainer.DataContext as ParcelData; parcelData.Configuration = xmlConfiguation; QueryLabel.Text = xmlConfiguation.QueryLabel; }