`
poson
  • 浏览: 361543 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Mapinfo的一些用法

阅读更多

 

1、打开:

MapInfo.Data.Table table = MapInfo.Engine.Session.Current.Catalog.OpenTable(open.FileName);
this.mapControl1.Map.Load(new MapTableLoader(table));

2、
选择点
mapControl1.Map.GetDisplayCoordSys();

MapInfo.Geometry.DPoint dp = new MapInfo.Geometry.DPoint();
MapInfo.Geometry.DPoint dpout = new MapInfo.Geometry.DPoint();
dp.x = p.X;
dp.y = p.Y;
使用显示坐标转化到地图上的坐标
mapControl1.Map.DisplayTransform.FromDisplay(p, out dpout);

MapInfo.Data.MIConnection connection = new MapInfo.Data.MIConnection();
connection.Open();

This is the point of origin...
MapInfo.Geometry.DPoint dpt1 = new MapInfo.Geometry.DPoint(dpout.x, dpout.y);

'tablename' is the string alias of the table to perform the search on...'DoesTableExist' is a
function that can be written to check to be sure the table was open. A 'try...catch' could also be
used here.
string tablename = comboBoxView.Text; ;

get the table from the current catalog and assign to tab1
MapInfo.Data.Table tab1 = connection.Catalog.GetTable(tablename);
create a feature layer from tab1
MapInfo.Mapping.FeatureLayer f1 = new MapInfo.Mapping.FeatureLayer(tab1);
create a Distance object from the search radius and unit type -
MapInfo.Geometry.Distance dist4 = new MapInfo.Geometry.Distance(200, MapInfo.Geometry.DistanceUnit.Meter);
Use the SearchInfoFactory class to return a search info based on search type. In this case -
SearchWithinDistance
Distance dist = new Distance();
dist.Value = 50;
dist.Unit = MapInfo.Geometry.DistanceUnit.Meter;
MapInfo.Data.SearchInfo si = MapInfo.Data.SearchInfoFactory.SearchWithinDistance(dpt1, f1.CoordSys, dist, MapInfo.Data.ContainsType.Centroid);
The QueryDefinition (what to return), in this case - all columns '*'
si.QueryDefinition.Columns = new string[] { "*" };
Perform the search on the table, return an IResultSetFeatureCollection object...
MapInfo.Data.IResultSetFeatureCollection irfc = MapInfo.Engine.Session.Current.Catalog.Search(tablename, si);

int i = 0;
This IRFC can now be stepped through with a foreach loop...

ArrayList arrFea = new ArrayList();
foreach (MapInfo.Data.Feature f in irfc)
{
And each cell in each returned feature can be accessed with a simple for loop...
arrFea.Add(f);
/*for (int j = 0; j < irfc.Columns.Count; j++)
{
print the contents of cell j in feature f to the console screen...

str += f[j].ToString();
}
*/
i++;
}


3、添加数据
MapInfo.Data.Table table = MapInfo.Engine.Session.Current.Catalog.GetTable(strTableName);
CoordSys coordSys = map.GetDisplayCoordSys();
if (table == null)
{
return;
}
创建点及其样式
FeatureGeometry geometry = new MapInfo.Geometry.Point(coordSys, x, y);
= mapToolBarButtonLayerControl.Style;
SimpleVectorPointStyle vStyle = poiStyle;

SimpleVectorPointStyle vStyle = poistyle;

mapControl1.sty
创建的点的样式、颜色和大小都在上条语句中修改

CompositeStyle cStyle = new MapInfo.Styles.CompositeStyle(vStyle);

MIConnection connection = new MIConnection();
MICommand cmd = connection.CreateCommand();

ArrayList arrCol = new ArrayList();
ArrayList arrValue = new ArrayList();
ArrayList arrProperty = new ArrayList();

cmd.Parameters.Add("geometry", MIDbType.FeatureGeometry);
cmd.Parameters.Add("style", MIDbType.Style);
foreach (string str in arrMapCol)
{

if (str.ToLower().Equals("mi_geometry"))
{
/*
arrCol.Add(str);
arrValue.Add("geometry");
arrProperty.Add("geometry");
*/
cmd.Parameters.Add("geometry", MIDbType.FeatureGeometry);

continue;
}
if (str.ToLower().Equals("mi_style"))
{
continue;
/*
arrCol.Add(str);
arrValue.Add("style");
arrProperty.Add("style");
*/
cmd.Parameters.Add("style", MIDbType.Style);
}
if (dicData.ContainsKey(str))
{
arrCol.Add(str);
arrValue.Add(str);

cmd.Parameters.Add(str, dicData[str]);
}


}
cmd.CommandText = "Insert Into " + strTableName + "(";


string s1 = "MI_Geometry,MI_Style,";
string s2 = "geometry,style,";
int i = 0;
for (; i < arrCol.Count - 1; i++)
{
s1 += (string)arrCol[i] + ",";
s2 += (string)arrValue[i] + ",";
}
cmd.CommandText += s1 + arrCol[i] + ") values (" + s2 + arrValue[i] + ")";

connection.Open();

cmd.Parameters[0].Value = geometry;
cmd.Parameters[1].Value = cStyle;

int nchanged = cmd.ExecuteNonQuery();

cmd.Dispose();
创建图层并将其插入到当前地图的最上层

/*
FeatureLayer fl = new FeatureLayer(table);
map.Layers.Insert(0, fl);
map.Center = new MapInfo.Geometry.DPoint(x, y);
*/
MapUtility.HighLightPoint(map, "minfotempmap", x, y);

分享到:
评论

相关推荐

    mapinfo使用方法介绍

    本文将详细介绍MapInfo的使用方法,包括安装过程、基本操作以及MIPT插件的功能。 首先,MapInfo的安装涉及系统软件的安装和LICENCE的申请与安装。安装完成后,用户可以通过导向轻松启动MapInfo。在软件内部,数据...

    MapInfo常规使用方法.pdf

    MapInfo常规使用方法 MapInfo是一款功能强大且广泛应用的地理信息系统(GIS)软件,用于处理、分析和显示地理空间数据。下面是MapInfo常规使用方法的总结: 软件版本 MapInfo软件有多个版本,包括MapInfo ...

    Mapinfo使用方法大全

    ### Mapinfo使用方法大全 #### 一、Mapinfo软件简介及应用场景 Mapinfo是一款功能强大的地理信息系统(GIS)软件,广泛应用于电信、交通、城市规划等多个领域。在电信行业中,Mapinfo尤其适用于网络规划与优化工作,...

    mapinfo11.5汉化补丁

    `readme.txt`文件通常是软件安装或升级过程中的重要指南,它会提供汉化补丁的使用方法、注意事项以及可能遇到的问题和解决策略。对于“MapInfo11.5汉化补丁”,此文件可能详细说明了如何正确安装和应用汉化补丁,以...

    mapinfo文件读取代码

    为了读取MapInfo文件,我们可以使用以下几种方法: 1. **MapInfo本身提供的API**:MapInfo提供了C++和COM接口,允许开发者通过编程方式访问MapInfo的功能。例如,使用MapBasic(MapInfo的内置脚本语言)可以编写脚...

    Mapinfo常用函数及用法

    本篇文章将详细探讨MapInfo中的一些常见函数及其用法,这对于MapInfo的开发和高级使用至关重要。 1. **SelectByExpression()**: 这个函数用于根据指定的表达式选择表中的记录。例如,`SelectByExpression("AREA &gt;...

    Mapinfo图层工参制作方法

    ### Mapinfo图层工参制作方法详解 #### 一、前言 在无线网络规划与优化领域,Mapinfo是一款非常重要的GIS(地理信息系统)工具,它可以帮助工程师们更直观地理解网络覆盖情况、信号强度分布等关键信息。本文将详细...

    几种mapinfo插件的使用.doc

    以下是一些常见的插件及其使用方法: ##### Piano插件 Piano是一款广泛使用的MapInfo插件,特别适用于无线网络规划和优化场景。 - **载入插件**:通过“工具—&gt;工具管理器”添加插件,设置其自动装载。 - **使用...

    mapinfo插件大集合

    Mapinfo是一款广泛应用于通信行业的地理信息系统(GIS)软件,它提供了强大的地图绘制、数据分析和空间信息管理功能。...在使用过程中,配合详细的使用说明,用户可以更快速地掌握每个工具的用法,发挥它们的最大潜力。

    mapinfo资料收集

    它可能详细介绍了MapInfo的各项功能,包括地图制作、数据编辑、空间查询、地图投影、专题图制作等内容,帮助用户全面了解MapInfo的使用方法。 5. **MapInfo产品白皮书**: 产品白皮书通常会详细介绍MapInfo软件的...

    MAPINFO转CAD方法

    标题中的“MAPINFO转CAD方法”指的是如何将MapInfo软件中的地图数据转换成AutoCAD能够识别和处理的格式。MapInfo是一款强大的地理信息系统(GIS)软件,常用于地图制作、数据分析和空间规划;而AutoCAD则是一款专业...

    Mapinfo使用手册

    第一个方法是使用工参表,先将工参表中的 Sector 信息转化成 TXT 格式的,然后打开 MapInfo 软件,将 TXT 的工参表导入 MapInfo 软件中。选择“带字符格式的 TXT”点击打开,选择如下图,注意打勾,然后点击 OK。...

    MAPINFO操作方法及插件应用

    MapInfo的操作方法包括了对软件的基本认识、安装过程、启动方式和命令参数等。软件界面由工作窗口、工具条、命令菜单和状态栏组成,便于用户进行操作和管理。软件还提供了对工作空间的管理,如打开工作空间和管理...

    Mapinfo 15

    7. **用户界面改进**:提供更直观的菜单和工具栏,提高了用户的使用体验和工作效率。 文件“Mapinfo下载链接.txt”可能包含指向Mapinfo 15不同版本的官方下载地址,用户可以通过这些链接获取安装程序,进行安装和...

    mapinfo通用符号库

    MapInfo通用符号库的使用方法通常包括在MapInfo的工作环境中,通过图层属性设置选择合适的符号。用户可以选择预设的符号,也可以自定义符号,通过调整颜色、大小、形状等属性来满足特定的需求。此外,对于专业用户,...

    MapInfo开发人员指南

    掌握MapBasic的基本语法,如变量、函数、控制结构(如循环和条件语句),以及与地图对象交互的方法,是MapInfo开发的基础。 3. **地图对象和表操作**:MapInfo中的地图对象包括点、线和面,开发者需要学会如何创建...

    EXCEL经纬度表与CAD、MAPINFO相互转换方法.doc

    ### EXCEL经纬度表与CAD、MAPINFO相互转换方法详解 #### 一、EXCEL文件转CAD图层方法 在IT行业中,地理信息系统(GIS)技术的应用日益广泛,尤其是在网络规划、设施管理等领域,需要频繁地在不同软件平台之间转换...

    mapinfo7.0破解02

    它依据地图及其应用的概念、采用办公自动化的操作、集成多种数据库数据、融合计算机地图方法、使用地理数据库技术、加入了地理信息系统分析功能,形成了极具实用价值的、可以为各行各业所用的大众化小型软件系统。...

Global site tag (gtag.js) - Google Analytics