MapInfo如何实现Google Map中info window那样的功能?

Helldance 2011-01-14 10:28:13
各位大虾,刚开始学习MapInfo,用MapXtreme + C#开发。
可以载入地图(tab格式),然后加层,根据经纬度绘点 (Geometry.Point)。
我想实现的是点击绘上去的点的时候能返回关联这个点的相关信息,如同Google Map里面的InfoWindow那样,自定义一些信息在里面。
请问如何实现?

大家都来顶顶了,知道的热心分享下,GIS的资料太少了。。
...全文
135 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Helldance 2011-01-20
  • 打赏
  • 举报
回复
答案是用FeatureSelected事件,大致上跟二楼的也差不多。只是我用的是MapXtreme。(没下载MapX,还以为两个是一回事。)
clxye 2011-01-18
  • 打赏
  • 举报
回复
连参考资料都附上了,好人啊!
mandy087 2011-01-17
  • 打赏
  • 举报
回复
图元的选取利用selection集合,非常方便,同selectionchanaged事件结合可以做很多令人兴奋的效果。下面举得例子是利用selection集合及selectionchanged事件实现类似infoTip的功能,即当鼠标指在当前选中图元上时,会自动出现该图元的所有提示.这个功能当然可以用图层的labelproperty属性和数据集绑定实现,但我觉得下面的方法会更好。

//tooltip属性定义。显示时间设置,在formload中
toolTip1.AutoPopDelay = 5000;
toolTip1.InitialDelay = 1000;
toolTip1.ReshowDelay = 500;
toolTip1.ShowAlways = true;



private void axMap1_SelectionChanged(object sender, EventArgs e)
{
MapXLib.Layer layer = axMap1.Layers._Item(1);
MapXLib.Dataset ds = axMap1.DataSets._Item(1);
foreach (MapXLib.Feature ftr in layer.Selection)
{
MapXLib.Feature selectedFeature = ftr;
string msg = "";
for (int j = 1; j <= ds.Fields.Count; j++)
{
layer.KeyField = ds.Fields._Item(j).Name;
symbolProperty[j - 1] = ftr.KeyValue.ToString();
msg += layer.KeyField + ":" + symbolProperty[j - 1] + "\n";
}
toolTip1.SetToolTip(this.axMap1, msg);
}
}



参考资料:
用MapX与C#开发地理信息系统

2,142

社区成员

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

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