mapxtreme c# 画点问题

nklixiang 2009-09-20 11:31:24
想实现在指定的经纬度处画点。现在的问题是设定的经纬度没用,只能在地图的中点画点,且只能画这一个点。
希望大家帮我看看,谢谢。
代码参考了网上的实例,如下:
private void button3_Click(object sender, EventArgs e)
{
MapInfo.Data.Catalog Cat = MapInfo.Engine.Session.Current.Catalog;
TableInfoMemTable TmInfo = new TableInfoMemTable("Tm");

TmTbl = Cat.GetTable("Tm");
if (TmTbl != null)
{ Cat.CloseTable("Tm"); } //如果表不为空,标明没有重名

/构造GeometryColumn字段
TmInfo.Columns.Add(ColumnFactory.CreateFeatureGeometryColumn(this.mapControl1.Map.GetDisplayCoordSys()));
//构造Style类型Column字段
TmInfo.Columns.Add(ColumnFactory.CreateStyleColumn());
//构造String类型Column字段
TmInfo.Columns.Add(ColumnFactory.CreateStringColumn("Name", 12));
TmInfo.Columns.Add(ColumnFactory.CreateStringColumn("Loca", 50));
//构造Int类型Column字段
TmInfo.Columns.Add(ColumnFactory.CreateIntColumn("Indx"));
TmInfo.TableType

TmTbl = Cat.CreateTable(TmInfo); //创建临时表

TmFlyr = new FeatureLayer(TmTbl); //创建临时图层
this.mapControl1.Map.Layers.Add(TmFlyr); //将临时图层加入当前的MapXTreme图层当中
DPoint Vpt; //定义一个点
Vpt.x = -101.236401711274; //赋值(经纬度)
Vpt.y = 20.6474803334433;

//下面应该是将坐标点根据当前地图的坐标系进行了一次转换
FeatureGeometry SVpt = new MapInfo.Geometry.Point(TmFlyr.CoordSys, new DPoint(Vpt.x, Vpt.y)) as FeatureGeometry;

MapInfo.Styles.CompositeStyle Vcs = new MapInfo.Styles.CompositeStyle(new MapInfo.Styles.SimpleVectorPointStyle(37, Color.Red, 10)); //创建点样式
Feature Vftr = new Feature(TmTbl.TableInfo.Columns); //创建图元
Vftr.Geometry = SVpt; //设置图元属性
Vftr.Style = Vcs;
Vftr["Name"] = "KHT";
Vftr["Loca"] = "Tianjin";
Vftr["Indx"] = 1;

TmTbl.InsertFeature(Vftr); //将图元加入表中

}
...全文
368 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
kxxoling 2011-08-09
  • 打赏
  • 举报
回复
额,跟我现在的问题一样,lz现在解决了吗?
yangbin999288 2009-09-22
  • 打赏
  • 举报
回复
根据你的意思,你采用的模式应该是MapInfo公司MapXtreme产品的C/S构架(我比较熟悉MapX的开发,对MapXtreme不是很熟悉),我认为你在这块可能出问题了,
//下面应该是将坐标点根据当前地图的坐标系进行了一次转换
FeatureGeometry SVpt = new MapInfo.Geometry.Point(TmFlyr.CoordSys, new DPoint(Vpt.x, Vpt.y)) as FeatureGeometry;
如果你的点样式创建的和你设置的一样,估计你这块样式转换没有成功,你在仔细看看这块吧!
gisyellow 2009-09-20
  • 打赏
  • 举报
回复
逐行调试看看吧,可能绘制点前坐标就已经不正确了。。
nklixiang 2009-09-20
  • 打赏
  • 举报
回复
补充一下,项目建的是maptreme windows 应用程序

2,142

社区成员

发帖
与我相关
我的任务
社区描述
它是一种特定的十分重要的空间信息系统。它是在计算机硬、软件系统支持下,对整个或部分地球表层(包括大气层)空间中的有关地理分布数据进行采集、储存、管理、运算、分析、显示和描述的技术系统。
社区管理员
  • 地理信息系统
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧