public FieldSelectionForm(layerObj layer, string msg) { InitializeComponent(); labelItem.Text = msg; layer.open(); for (int i = 0; i < layer.numitems; i++) { listBoxItems.Items.Add(layer.getItem(i)); } layer.close(); buttonOK.Enabled = false; }
/// <summary> /// Refresh the controls according to the underlying object. /// </summary> public void RefreshView() { if (layer == null) { return; } layer.open(); for (int i = 0; i < layer.numitems; i++) { comboBoxColumns.Items.Add(layer.getItem(i)); } if (comboBoxColumns.Items.Count > 0) { comboBoxColumns.SelectedIndex = 0; } if (layer.getResults() == null) { layer.close(); // close only is no query results } }
public static void Main(string[] args) { if (args.Length < 2) usage(); // creating a new map from scratch mapObj map = new mapObj(null); // adding a layer layerObj layer = new layerObj(map); layer.type = MS_LAYER_TYPE.MS_LAYER_POINT; layer.status = mapscript.MS_ON; layer.connectiontype = MS_CONNECTION_TYPE.MS_INLINE; // define the attribute names from the inline layer layer.addProcessing("ITEMS=attribute1,attribute2,attribute3"); // define the class classObj classobj = new classObj(layer); classobj.template = "query"; // making the layer queryable // setting up the text based on multiple attributes classobj.setText("('Shape:' + '[attribute1]' + ' Color:' + '[attribute2]' + ' Size:' + '[attribute3]')"); // define the label classobj.label.outlinecolor = new colorObj(255, 255, 255, 0); classobj.label.force = mapscript.MS_TRUE; classobj.label.size = (double)MS_BITMAP_FONT_SIZES.MS_MEDIUM; classobj.label.position = (int)MS_POSITIONS_ENUM.MS_LC; classobj.label.wrap = ' '; // set up attribute binding classobj.label.setBinding((int)MS_LABEL_BINDING_ENUM.MS_LABEL_BINDING_COLOR, "attribute2"); // define the style styleObj style = new styleObj(classobj); style.color = new colorObj(0, 255, 255, 0); style.setBinding((int)MS_STYLE_BINDING_ENUM.MS_STYLE_BINDING_COLOR, "attribute2"); style.setBinding((int)MS_STYLE_BINDING_ENUM.MS_STYLE_BINDING_SIZE, "attribute3"); Random rand = new Random((int)DateTime.Now.ToFileTime()); ; // creating the shapes for (int i = 0; i < 10; i++) { shapeObj shape = new shapeObj((int)MS_SHAPE_TYPE.MS_SHAPE_POINT); // setting the shape attributes shape.initValues(4); shape.setValue(0, Convert.ToString(i)); shape.setValue(1, new colorObj(rand.Next(255), rand.Next(255), rand.Next(255), 0).toHex()); shape.setValue(2, Convert.ToString(rand.Next(25) + 5)); lineObj line = new lineObj(); line.add(new pointObj(rand.Next(400) + 25, rand.Next(400) + 25, 0, 0)); shape.add(line); layer.addFeature(shape); } map.width = 500; map.height = 500; map.setExtent(0,0,450,450); map.selectOutputFormat(args[0]); imageObj image = map.draw(); image.save(args[1], map); //perform a query layer.queryByRect(map, new rectObj(0, 0, 450, 450, 0)); resultObj res; shapeObj feature; using (resultCacheObj results = layer.getResults()) { if (results != null && results.numresults > 0) { // extracting the features found layer.open(); for (int j = 0; j < results.numresults; j++) { res = results.getResult(j); feature = layer.getShape(res); if (feature != null) { Console.WriteLine(" Feature: shapeindex=" + res.shapeindex + " tileindex=" + res.tileindex); for (int k = 0; k < layer.numitems; k++) { Console.Write(" " + layer.getItem(k)); Console.Write(" = "); Console.Write(feature.getValue(k)); Console.WriteLine(); } } } layer.close(); } } }
/// <summary> /// Refresh the controls according to the underlying object. /// </summary> public void RefreshView() { listView.Items.Clear(); if (map != null) { // setting up the icon background colors createLegendIcon // will take over the legend imagecolor setting from the map object int red = map.legend.imagecolor.red; int green = map.legend.imagecolor.green; int blue = map.legend.imagecolor.blue; map.legend.imagecolor.red = this.BackColor.R; map.legend.imagecolor.green = this.BackColor.G; map.legend.imagecolor.blue = this.BackColor.B; listView.BackColor = this.BackColor; using (outputFormatObj format = map.outputformat) { string imageType = null; if ((format.renderer != mapscript.MS_RENDER_WITH_GD && format.renderer != mapscript.MS_RENDER_WITH_AGG) || string.Compare(format.mimetype.Trim(), "image/vnd.wap.wbmp", true) == 0 || string.Compare(format.mimetype.Trim(), "image/tiff", true) == 0 || string.Compare(format.mimetype.Trim(), "image/jpeg", true) == 0) { // falling back to the png type in case of the esoteric or bad looking types imageType = map.imagetype; map.selectOutputFormat("png24"); } imageList.Images.Clear(); imageList.ImageSize = new Size(30, 20); try { for (int i = 0; i < map.numlayers; i++) { layerObj layer = map.getLayer(i); if (layer.status != mapscript.MS_OFF) { resultObj res; shapeObj feature; using (resultCacheObj results = layer.getResults()) { if (results != null && results.numresults > 0) { // creating the icon for this layer using (classObj def_class = new classObj(null)) // for drawing legend images { using (imageObj image = def_class.createLegendIcon(map, layer, 30, 20)) { // drawing the class icons layer.getClass(0).drawLegendIcon(map, layer, 20, 10, image, 5, 5); byte[] img = image.getBytes(); using (MemoryStream ms = new MemoryStream(img)) { imageList.Images.Add(Image.FromStream(ms)); } } } // extracting the features found for (int j = 0; j < results.numresults; j++) { res = results.getResult(j); feature = layer.getShape(res); if (feature != null) { ListViewItem item = new ListViewItem(layer.name, imageList.Images.Count - 1); item.SubItems.Add(feature.index.ToString()); item.SubItems.Add(MapUtils.GetShapeTypeName((MS_SHAPE_TYPE)feature.type)); listView.Items.Add(item); StringBuilder s = new StringBuilder(""); s.AppendLine("Feature Properties:"); for (int k = 0; k < layer.numitems; k++) { s.Append(layer.getItem(k)); s.Append(" = "); s.AppendLine(feature.getValue(k)); } item.Tag = s.ToString(); } } } } } } } finally { // switch back to the original type if (imageType != null) { map.selectOutputFormat(imageType); } // restoring the original legend backgroundcolor map.legend.imagecolor.red = red; map.legend.imagecolor.green = green; map.legend.imagecolor.blue = blue; } listView.SmallImageList = imageList; } if (listView.Items.Count > 0) { listView.Items[0].Selected = true; } else { richTextBox.Text = ""; } } }
public static void Main(string[] args) { if (args.Length < 2) { usage(); } // creating a new map from scratch mapObj map = new mapObj(null); // adding a layer layerObj layer = new layerObj(map); layer.type = MS_LAYER_TYPE.MS_LAYER_POINT; layer.status = mapscript.MS_ON; layer.connectiontype = MS_CONNECTION_TYPE.MS_INLINE; // define the attribute names from the inline layer layer.addProcessing("ITEMS=attribute1,attribute2,attribute3"); // define the class classObj classobj = new classObj(layer); classobj.template = "query"; // making the layer queryable // setting up the text based on multiple attributes classobj.setText("('Shape:' + '[attribute1]' + ' Color:' + '[attribute2]' + ' Size:' + '[attribute3]')"); // define the label classobj.label.outlinecolor = new colorObj(255, 255, 255, 0); classobj.label.force = mapscript.MS_TRUE; classobj.label.size = (double)MS_BITMAP_FONT_SIZES.MS_MEDIUM; classobj.label.position = (int)MS_POSITIONS_ENUM.MS_LC; classobj.label.wrap = ' '; // set up attribute binding classobj.label.setBinding((int)MS_LABEL_BINDING_ENUM.MS_LABEL_BINDING_COLOR, "attribute2"); // define the style styleObj style = new styleObj(classobj); style.color = new colorObj(0, 255, 255, 0); style.setBinding((int)MS_STYLE_BINDING_ENUM.MS_STYLE_BINDING_COLOR, "attribute2"); style.setBinding((int)MS_STYLE_BINDING_ENUM.MS_STYLE_BINDING_SIZE, "attribute3"); Random rand = new Random((int)DateTime.Now.ToFileTime());; // creating the shapes for (int i = 0; i < 10; i++) { shapeObj shape = new shapeObj((int)MS_SHAPE_TYPE.MS_SHAPE_POINT); // setting the shape attributes shape.initValues(4); shape.setValue(0, Convert.ToString(i)); shape.setValue(1, new colorObj(rand.Next(255), rand.Next(255), rand.Next(255), 0).toHex()); shape.setValue(2, Convert.ToString(rand.Next(25) + 5)); lineObj line = new lineObj(); line.add(new pointObj(rand.Next(400) + 25, rand.Next(400) + 25, 0, 0)); shape.add(line); layer.addFeature(shape); } map.width = 500; map.height = 500; map.setExtent(0, 0, 450, 450); map.selectOutputFormat(args[0]); imageObj image = map.draw(); image.save(args[1], map); //perform a query layer.queryByRect(map, new rectObj(0, 0, 450, 450, 0)); resultObj res; shapeObj feature; using (resultCacheObj results = layer.getResults()) { if (results != null && results.numresults > 0) { // extracting the features found layer.open(); for (int j = 0; j < results.numresults; j++) { res = results.getResult(j); feature = layer.getShape(res); if (feature != null) { Console.WriteLine(" Feature: shapeindex=" + res.shapeindex + " tileindex=" + res.tileindex); for (int k = 0; k < layer.numitems; k++) { Console.Write(" " + layer.getItem(k)); Console.Write(" = "); Console.Write(feature.getValue(k)); Console.WriteLine(); } } } layer.close(); } } }
/// <summary> /// Refresh the controls according to the underlying object. /// </summary> public void RefreshView() { if (layer == null) { return; } shapeObj shape; layer.open(); // Get layer statistics maxvalue = new double[layer.numitems]; minvalue = new double[layer.numitems]; fieldName = new string[layer.numitems]; isNumber = new bool[layer.numitems]; isInteger = new bool[layer.numitems]; valueCount = new int[layer.numitems]; int i; for (i = 0; i < layer.numitems; i++) { isNumber[i] = true; isInteger[i] = true; valueCount[i] = 0; fieldName[i] = layer.getItem(i); } layer.whichShapes(layer.getExtent()); NumberFormatInfo ni = new NumberFormatInfo(); ni.NumberDecimalSeparator = "."; double val; while ((shape = layer.nextShape()) != null) { for (i = 0; i < layer.numitems; i++) { if (isNumber[i]) { string v = shape.getValue(i); if (v != "" && Double.TryParse(v, NumberStyles.Any, ni, out val)) { if (val % 1 != 0) { isInteger[i] = false; } if (valueCount[i] == 0) { maxvalue[i] = val; minvalue[i] = val; } else { if (maxvalue[i] < val) { maxvalue[i] = val; } if (minvalue[i] > val) { minvalue[i] = val; } } ++valueCount[i]; } else { isNumber[i] = false; isInteger[i] = false; } } } } for (i = 0; i < layer.numitems; i++) { if (isNumber[i]) { comboBoxColumns.Items.Add(fieldName[i]); } } if (comboBoxColumns.Items.Count > 0) { comboBoxColumns.SelectedIndex = 0; } if (layer.getResults() == null) { layer.close(); // close only is no query results } }
public override void InitializeBinding(MapObjectHolder target) { this.target = target; if (target.GetParent().GetParent().GetType() != typeof(layerObj)) { this.Enabled = false; return; } layerObj layer = target.GetParent().GetParent(); styleObj style = target; if (itemList == null) { itemList = new ComboBox(); itemList.Width = targetControl.Width; itemList.Height = targetControl.Height; itemList.Location = targetControl.Location; itemList.DropDownStyle = ComboBoxStyle.DropDownList; itemList.SelectedIndexChanged += new EventHandler(itemList_SelectedIndexChanged); targetControl.Parent.Controls.Add(itemList); itemList.BringToFront(); Bitmap bmp = Resources.DataConnection; bmp.MakeTransparent(Color.Magenta); pbox = new PictureBox(); pbox.Image = bmp; pbox.SizeMode = PictureBoxSizeMode.AutoSize; pbox.Location = new System.Drawing.Point(targetControl.Location.X + targetControl.Width + 2, targetControl.Location.Y + (targetControl.Height - pbox.Image.Height) / 2); targetControl.Parent.Controls.Add(pbox); pbox.BringToFront(); } BindingState = false; itemList.Items.Clear(); layer.open(); for (int i = 0; i < layer.numitems; i++) { itemList.Items.Add(layer.getItem(i)); } if (layer.getResults() == null) { layer.close(); // close only is no query results } if (layer.connectiontype == MS_CONNECTION_TYPE.MS_OGR) { itemList.Items.Add("OGR:LabelFont"); itemList.Items.Add("OGR:LabelSize"); itemList.Items.Add("OGR:LabelText"); itemList.Items.Add("OGR:LabelAngle"); itemList.Items.Add("OGR:LabelFColor"); itemList.Items.Add("OGR:LabelBColor"); itemList.Items.Add("OGR:LabelPlacement"); itemList.Items.Add("OGR:LabelAnchor"); itemList.Items.Add("OGR:LabelDx"); itemList.Items.Add("OGR:LabelDy"); itemList.Items.Add("OGR:LabelPerp"); itemList.Items.Add("OGR:LabelBold"); itemList.Items.Add("OGR:LabelItalic"); itemList.Items.Add("OGR:LabelUnderline"); itemList.Items.Add("OGR:LabelPriority"); itemList.Items.Add("OGR:LabelStrikeout"); itemList.Items.Add("OGR:LabelStretch"); itemList.Items.Add("OGR:LabelAdjHor"); itemList.Items.Add("OGR:LabelAdjVert"); itemList.Items.Add("OGR:LabelHColor"); itemList.Items.Add("OGR:LabelOColor"); } string binding = style.getBinding((int)styleBinding); if (binding != null) { itemList.SelectedItem = binding; BindingState = true; } else { if (itemList.Items.Count > 0) { itemList.SelectedIndex = 0; } } }