[mapserver-commits] r9228 - in
branches/branch-5-4/mapserver/mapscript/csharp: . examples
svn at osgeo.org
svn at osgeo.org
Sun Jul 26 07:11:40 EDT 2009
Author: tamas
Date: 2009-07-26 07:11:40 -0400 (Sun, 26 Jul 2009)
New Revision: 9228
Added:
branches/branch-5-4/mapserver/mapscript/csharp/examples/inline.cs
Modified:
branches/branch-5-4/mapserver/mapscript/csharp/Makefile.in
branches/branch-5-4/mapserver/mapscript/csharp/Makefile.vc
Log:
Added a test application to create inline features (#3074)
Modified: branches/branch-5-4/mapserver/mapscript/csharp/Makefile.in
===================================================================
--- branches/branch-5-4/mapserver/mapscript/csharp/Makefile.in 2009-07-26 11:10:35 UTC (rev 9227)
+++ branches/branch-5-4/mapserver/mapscript/csharp/Makefile.in 2009-07-26 11:11:40 UTC (rev 9228)
@@ -235,6 +235,7 @@
$(CSC) /r:mapscript_csharp.dll /out:shpdump.exe examples/shpdump.cs
$(CSC) /r:mapscript_csharp.dll /out:shapeinfo.exe examples/shapeinfo.cs
$(CSC) /r:mapscript_csharp.dll /out:drawmap.exe examples/drawmap.cs
+ $(CSC) /r:mapscript_csharp.dll /out:inline.exe examples/inline.cs
$(CSC) /r:mapscript_csharp.dll /out:drawquery.exe examples/drawquery.cs
$(CSC) /r:mapscript_csharp.dll /r:System.Drawing.dll /out:getbytes.exe examples/getbytes.cs
$(CSC) /r:mapscript_csharp.dll /out:HTMLtemplate.exe examples/HTMLtemplate.cs
@@ -252,6 +253,7 @@
test:
LC_ALL=C mono ./shpdump.exe ../../tests/point.shp
LC_ALL=C mono ./shapeinfo.exe ../../tests/point.shp
+ LC_ALL=C mono ./inline.exe aggpng24 inline_test.png
LC_ALL=C mono ./drawmap.exe ../../tests/test.map test_csharp.png
ifeq ($(strip $(AGG)),-DUSE_AGG)
LC_ALL=C mono ./drawmap.exe ../../tests/test.map test_csharp_agg.png aggpng24
Modified: branches/branch-5-4/mapserver/mapscript/csharp/Makefile.vc
===================================================================
--- branches/branch-5-4/mapserver/mapscript/csharp/Makefile.vc 2009-07-26 11:10:35 UTC (rev 9227)
+++ branches/branch-5-4/mapserver/mapscript/csharp/Makefile.vc 2009-07-26 11:11:40 UTC (rev 9228)
@@ -84,6 +84,7 @@
$(CSC) $(CSFLAGS) /t:library /out:mapscript_csharp.dll *.cs config\AssemblyInfo.cs
$(CSC) $(CSFLAGS) /r:mapscript_csharp.dll /out:shpdump.exe examples\shpdump.cs
$(CSC) $(CSFLAGS) /r:mapscript_csharp.dll /out:drawmap.exe examples\drawmap.cs
+ $(CSC) $(CSFLAGS) /r:mapscript_csharp.dll /out:inline.exe examples\inline.cs
$(CSC) $(CSFLAGS) /r:mapscript_csharp.dll /out:shapeinfo.exe examples\shapeinfo.cs
$(CSC) $(CSFLAGS) /r:mapscript_csharp.dll /out:drawquery.exe examples\drawquery.cs
$(CSC) $(CSFLAGS) /r:mapscript_csharp.dll /r:System.Drawing.dll /out:getbytes.exe examples\getbytes.cs
@@ -94,11 +95,13 @@
!IFDEF MONO
mono shpdump.exe ../../tests/point.shp
mono shapeinfo.exe ../../tests/point.shp
+ mono inline.exe aggpng24 inline_test.png
mono getbytes.exe ../../tests/test.map test_csharp2.png
mono RFC24.exe ../../tests/test.map
!ELSE
shpdump ../../tests/point.shp
shapeinfo ../../tests/point.shp
+ inline aggpng24 inline_test.png
drawmap ../../tests/test.map test_csharp.png
!IFDEF AGG
drawmap ../../tests/test.map test_csharp_agg.png aggpng24
Added: branches/branch-5-4/mapserver/mapscript/csharp/examples/inline.cs
===================================================================
--- branches/branch-5-4/mapserver/mapscript/csharp/examples/inline.cs (rev 0)
+++ branches/branch-5-4/mapserver/mapscript/csharp/examples/inline.cs 2009-07-26 11:11:40 UTC (rev 9228)
@@ -0,0 +1,136 @@
+/******************************************************************************
+ * $Id: shapeinfo.cs 7418 2008-02-29 00:02:49Z nsavard $
+ *
+ * Project: MapServer
+ * Purpose: A C# based based mapscript example to dump information from
+ * a shapefile.
+ * Author: Tamas Szekeres, szekerest at gmail.com
+ *
+ ******************************************************************************
+ * Copyright (c) 1996-2008 Regents of the University of Minnesota.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies of this Software or works derived from this Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *****************************************************************************/
+
+using System;
+using System.Collections;
+using OSGeo.MapServer;
+
+/// <summary>
+/// A MapScript application for creating inline layers with annotations.
+/// </summary>
+class Inline {
+
+ public static void usage()
+ {
+ Console.WriteLine("usage: inline [outformat] [outfile]");
+ System.Environment.Exit(-1);
+ }
+
+ 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));
+
+ resultCacheMemberObj 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.getFeature(res.shapeindex, res.tileindex);
+ 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();
+ }
+ }
+ }
+}
\ No newline at end of file
More information about the mapserver-commits
mailing list