创建新表 Temp
if (tblTemp!=null) tblTemp.Close();
mapControl1.Map.Clear();
// create a temporary table and add a featurelayer for it
FeatureLayer layerTemp=new FeatureLayer(Session.Current.Catalog.CreateTable( TableInfoFactory.CreateTemp("Temp"), new TableSessionInfo()));
mapControl1.Map.Layers.Add(layerTemp);
图层筛选器
2 if (toolFilter != null && !toolFilter.IncludeLayer(layerTemp) )
3 toolFilter.SetExplicitInclude(layerTemp, true);
4 toolFilter=(ToolFilter) mapControl1.Tools.SelectMapToolProperties.EditableLayerFilter;
5 if (toolFilter != null && !toolFilter.IncludeLayer(layerTemp) )
6 toolFilter.SetExplicitInclude(layerTemp, true);
设置地图中心点
2 Session.Current.CoordSysFactory.CreateLongLat(DatumID.WGS84),60000000);
一些winform的知识:
string strPath=Application.StartupPath;
strPath=strPath.Substring(0,strPath.LastIndexOf(Path.DirectorySeparatorChar)+1) // get rid of \bin
注册表操作:
Microsoft.Win32.RegistryKey keySamp =Microsoft.Win32.Registry.LocalMachine.CreateSubKey(@"SOFTWARE\MapInfo\MapXtreme\6.8.0");
keySamp.Close();
完整代码示例
2 strPath=strPath.Substring(0,strPath.LastIndexOf(Path.DirectorySeparatorChar)); // get rid of \Debug
3 strPath=strPath.Substring(0,strPath.LastIndexOf(Path.DirectorySeparatorChar)+1) // get rid of \bin
4 + "Data" + Path.DirectorySeparatorChar;
5 if (File.Exists(strPath + strFName)==false)
6 {
7 // check the registry for a known sample data search path
8 Microsoft.Win32.RegistryKey keySamp = Microsoft.Win32.Registry.LocalMachine.CreateSubKey(@"SOFTWARE\MapInfo\MapXtreme\6.8.0");
9 if (keySamp != null)
10 {
11 string s = (string)keySamp.GetValue("SampleDataSearchPath");
12 keySamp.Close();
13
14 if (s == null) { s = Environment.CurrentDirectory; }
15 else
16 {
17 if (s.EndsWith(Path.DirectorySeparatorChar.ToString()) == false)
18 {
19 s += Path.DirectorySeparatorChar;
20 }
21
22 strPath = s;
23 }
24 }
25 }
MapInfo.Geometry.DPoint ctr=mapControl1.Map.Center;
MapInfo.Geometry.Distance z=mapControl1.Map.Zoom;
if (File.Exists(strPath+strFName))
{
mapControl1.Map.Load(new MapTableLoader(strPath + strFName));
mapControl1.Map.Center=ctr;
mapControl1.Map.Zoom=z; //地图缩放比例
}
else
{
txtResults.Text="Couldn't find table: \r\n"
+ strPath + strFName
+ "\r\n\r\nTo enable this function, copy the relevant files "
+ "to the above location, or reinstall the sample data.\r\n\r\n";
}
关于FeatureLayer的
2 if (lyrTemp!=null)
3 {
4 IFeatureEnumerator fen = (lyrTemp.Table as IFeatureCollection).GetFeatureEnumerator();
5 int n=0;
6 while (fen.MoveNext()) n++;
7 txtNumObjects.Text=n.ToString();
8 }
显示选定的图元?图层个数:
2 IEnumerator se = MapInfo.Engine.Session.Current.Selections.GetEnumerator();
3 int i=0;
4 while (se.MoveNext()) i+= ((Selection)se.Current).TotalCount;
5 txtNumSelected.Text=i.ToString();