private void InitializeLayersAndGroups(bool suppressErrors) { this.Layers.Clear(); this.Groups.Clear(); var groups = _impl.GetLayerGroups(); var layers = _impl.GetLayers(); //Groups first for (int i = 0; i < groups.GetCount(); i++) { this.Groups.Add(new LocalRuntimeMapGroup(this, groups.GetItem(i))); } //Then layers for (int i = 0; i < layers.GetCount(); i++) { this.Layers.Add(new LocalRuntimeMapLayer(this, layers.GetItem(i), _conn, suppressErrors)); } }
private void button1_Click(object sender, EventArgs e) { try { var fact = new MgdServiceFactory(); MgdRenderingService renSvc = (MgdRenderingService)fact.CreateService(MgServiceType.RenderingService); MgResourceIdentifier resId = new MgResourceIdentifier(textBox1.Text); var sw = new Stopwatch(); sw.Start(); MgdMap map = new MgdMap(resId); sw.Stop(); Trace.TraceInformation("Runtime map created in {0}ms", sw.ElapsedMilliseconds); MgdSelection selection = null; if (!string.IsNullOrEmpty(txtSelectLayer.Text) && !string.IsNullOrEmpty(txtSelectFilter.Text)) { selection = new MgdSelection(map); var layers = map.GetLayers(); if (layers.IndexOf(txtSelectLayer.Text) >= 0) { var layer = layers.GetItem(txtSelectLayer.Text); var query = new MgFeatureQueryOptions(); query.SetFilter(txtSelectFilter.Text); var reader = layer.SelectFeatures(query); selection.AddFeatures(layer, reader, 0); Trace.TraceInformation("{0} features in selection set", selection.GetSelectedFeaturesCount(layer, layer.GetFeatureClassName())); } } double x; double y; if (double.TryParse(textBox2.Text, out x) && double.TryParse(textBox3.Text, out y)) { map.SetViewCenterXY(x, y); } int w; int h; if (int.TryParse(txtWidth.Text, out w) && int.TryParse(txtHeight.Text, out h)) { map.SetDisplaySize(w, h); } double scale; if (double.TryParse(textBox4.Text, out scale)) { map.SetViewScale(scale); } int mode; if (int.TryParse(textBox6.Text, out mode)) { } MgColor selColor = new MgColor("0x0000FFFF"); MgdRenderingOptions renderOpts = new MgdRenderingOptions(textBox5.Text, mode, selColor); sw.Start(); MgByteReader response = renSvc.RenderDynamicOverlay(map, selection, renderOpts); sw.Stop(); Trace.TraceInformation("RenderDynamicOverlay executed in {0}ms", sw.ElapsedMilliseconds); new ImageResponseDialog(response).ShowDialog(); } catch (MgException ex) { MessageBox.Show(ex.ToString(), "Error from MapGuide"); } }
private void CheckRedlineLayer() { if (_redlineLayer == null) { MgdMap map = (MgdMap)_viewer.GetMap(); MgMapViewerProvider provider = _viewer.GetProvider(); MgdFeatureService featSvc = (MgdFeatureService)provider.CreateService(MgServiceType.FeatureService); MgResourceService resSvc = (MgResourceService)provider.CreateService(MgServiceType.ResourceService); string sessionId = Guid.NewGuid().ToString(); MgResourceIdentifier fsId = new MgResourceIdentifier("Session:" + sessionId + "//Redline.FeatureSource"); MgResourceIdentifier ldfId = new MgResourceIdentifier("Session:" + sessionId + "//Redline.LayerDefinition"); string featureClass = "Default:Redline"; string geometry = "Geometry"; string xml = string.Format(Layers.Redline, fsId.ToString(), featureClass, geometry); //Construct our schema for the redline data store MgFeatureSchema schema = new MgFeatureSchema("Default", "Redline schema"); MgClassDefinition cls = new MgClassDefinition(); cls.Name = "Redline"; MgDataPropertyDefinition id = new MgDataPropertyDefinition("ID"); id.DataType = MgPropertyType.Int32; id.SetAutoGeneration(true); MgGeometricPropertyDefinition geom = new MgGeometricPropertyDefinition(geometry); geom.SpatialContextAssociation = "Default"; geom.GeometryTypes = MgFeatureGeometricType.Curve | MgFeatureGeometricType.Point | MgFeatureGeometricType.Solid | MgFeatureGeometricType.Surface; MgPropertyDefinitionCollection clsProps = cls.GetProperties(); clsProps.Add(id); clsProps.Add(geom); MgPropertyDefinitionCollection idProps = cls.GetIdentityProperties(); idProps.Add(id); cls.DefaultGeometryPropertyName = geometry; MgClassDefinitionCollection classes = schema.GetClasses(); classes.Add(cls); //Create the feature source MgFileFeatureSourceParams create = new MgFileFeatureSourceParams("OSGeo.SDF", "Default", map.GetMapSRS(), schema); featSvc.CreateFeatureSource(fsId, create); //Then the layer definition byte[] bytes = Encoding.UTF8.GetBytes(xml); MgByteSource source = new MgByteSource(bytes, bytes.Length); resSvc.SetResource(ldfId, source.GetReader(), null); //Now create the runtime layer and add to map _redlineLayer = new MgdLayer(ldfId, resSvc); _redlineLayer.LegendLabel = "Redlining"; _redlineLayer.Name = "Redline"; _redlineLayer.Visible = true; _redlineLayer.Selectable = true; _redlineLayer.DisplayInLegend = true; MgLayerCollection layers = map.GetLayers(); layers.Insert(0, _redlineLayer); } }