初探GIS Mapxtreme 根据数据集合 DataSet/DataTable 添加点(原创)

根据查询获得的dataset数据集合,添加集合中点信息,包括点的样式:

注:  其中要说明的是mapxtreme中样式列的类型,

我在数据库“点表”中添加了一个样式列为string类型,

在内部存在的字符为:Symbol(34,16711680,9): 

Symbol(shape, color, size)----------------------------------Symbol(35,0,12)
Symbol(shape,color,size,font,fontstyle,rotation)------------Symbol(64,255,12,"MapInfo Weather",17,0)
Symbol(bitmapname,color,size,customstyle)----------------Symbol("sign.bmp", 255, 18, 0)
此例仅适宜添加点集合。

复制代码
1 public void AddPoint(DataSet fds,Map map)//此处dataset在下面转化成datatble
2 {
3 MapInfo.Geometry.CoordSysFactory coordSysFactory = new MapInfo.Geometry.CoordSysFactory();
4 // MapInfo.Geometry.CoordSys coordSys = coordSysFactory.CreateLongLat(MapInfo.Geometry.DatumID.NAD83);
5 MapInfo.Data.SpatialSchemaXY xy = new MapInfo.Data.SpatialSchemaXY();
6 xy.XColumn = "fx";
7 xy.YColumn = "fy";
8 xy.DefaultStyle = new MapInfo.Styles.SimpleVectorPointStyle(); //此处先写,如果写在后面则会将设置更改为默认黑色五角星
9 xy.StyleColumn = "MI_Style";  //样式列名
10 xy.StyleType = StyleType.MapBasicString; //这里必须StyleType.MapBasicString属性,如果是None 设置默认的样式
11 //xy.CoordSys = coordSys;
12 xy.NullPoint = "0.0, 0.0";
13 xy.CoordSys = Session.Current.CoordSysFactory.CreateFromPrjString("1, 0"); ;
14 MapInfo.Data.TableInfoAdoNet ti = new MapInfo.Data.TableInfoAdoNet("aaaa", fds.Tables[0]);
15 ti.SpatialSchema = xy;
16 MapInfo.Data.Table table = MapInfo.Engine.Session.Current.Catalog.CreateTable(ti);
17 MapInfo.Mapping.FeatureLayer lyr = new MapInfo.Mapping.FeatureLayer(table);
18 map.Layers.Add(lyr);
19 }
复制代码

重点:mapinfo提供了MapInfo.Data.TableInfoAdoNet类库。

通过初始化数据集合将datatble类型数据转化为tableinfo基类型。

posted @   真有意思  阅读(504)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示