MapXtreme 2005 学习心得 道路区域选择(十三)

MapXtreme 2005 学习心得 道路区域选择(十三)

大家好,又见面了,我是全栈君。

事实上,在选择道路的时候,出了点问题。

问题一:之前在显示道路的时候,每取两个点就画了一条线显示,以至于选择道路时,只选中了两点间的一线,事实上,一条路可能是多个点组成的,所以选择路时,应该是选中整条路。

经过折腾,把画线的代码改成如下,多点组合成一线。

 

ExpandedBlockStart.gif

复制代码
 FeatureGeometry pt 
=
 
new
 MultiCurve(Layer.CoordSys, CurveSegmentType.Linear,点数组);
            SimpleLineStyle lineStyle 

=
 
new
 SimpleLineStyle(
new
 LineWidth(
4
, LineWidthUnit.Pixel), 线样式,颜色);
            CompositeStyle comStyle 

=
 
new
 CompositeStyle(lineStyle);
            Feature feature 

=
 
new
 MapInfo.Data.Feature(Table.TableInfo.Columns);
            feature.Geometry 

=
 pt;
            feature.Style 

=
 comStyle;
            Table.InsertFeature(feature);
复制代码

 

 

通过点数组画线之后,再用PointSelect工具选择线的时候,就能选择整条线了。

 

问题二:选择道路或区域后,需要交互的显示的数据,如下图:

MapXtreme 2005 学习心得 道路区域选择(十三)

 因此,在选择点的时候,需要获取被选中点的数据,在这里一开始走了弯路,通过Ajax重新查询点击点上附近的图元来找到数据,结果查的数据跟选择的点有出入。

经过折腾,发现从

 

 MapInfo.Engine.Session.Current.Selections.DefaultSelection[MapInfo.Engine.Session.Current.Catalog.GetTable(表别名)];

 

 

可以直接获取选择的数据。

 

问题三:如何改变选中道路或区域的样式

搜遍中文搜索引擎,几乎没有答案,最后还是搜英文的,终于找到结果:

经过折腾,代码如下:

ExpandedBlockStart.gif

复制代码
SimpleLineStyle lineStyle 
=
 
new
 SimpleLineStyle(
new
 LineWidth(
4
, LineWidthUnit.Pixel),
2
,System.Drawing.Color.Red,
true
);
                AreaStyle areaStyle 

=
 
new
 MapInfo.Styles.AreaStyle(lineStyle, 
new
 MapInfo.Styles.SimpleInterior(
9
,System.Drawing.Color.Blue, System.Drawing.Color.Blue, 
true
));
                
                Session.Current.Selections.DefaultSelection.Style.AreaStyle.ApplyStyle(areaStyle);
                Session.Current.Selections.DefaultSelection.Style.LineStyle.ApplyStyle(lineStyle);
复制代码

 

问题还有一点,对于线的样式的改变,效果不显著,如果把线的宽度变大一点,可以看到改变后的颜色是线的边框。如果不改变,根本看不到有变化。

 

下班吃饭,打完收工!

版权声明:本文原创发表于博客园,作者为路过秋天,原文链接:

http://www.cnblogs.com/cyq1162/archive/2010/03/31/1701250.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/108329.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • docker-jenkins安装node

    docker-jenkins安装node容器直接使用脚本安装报错执行如下命令即可解决gitconfig–global–unsethttp.proxygitconfig–global–unsethttps.proxy后续安装参考https://blog.csdn.net/qq_28686911/article/details/113114894

    2022年5月24日
    91
  • BLEU计算

    BLEU计算BLEU 就是用来衡量机器翻译文本与参考文本之间的相似程度的指标 取值范围在 0 1 取值越靠近 1 表示机器翻译结果越好 最初的 BLEU 最初的 BLEU 计算特别简单 通常的讲 当我们自己计算两个文本之间的相似程度的时候 我们会考虑单词的频率 最早的 BLEU 就是采用了这种思想 计算方法是 使用一个累加器表示 candidate 中的词在 referencedoc 中出现的次数 从 can

    2025年12月14日
    2
  • idea 2022.01.13激活码【中文破解版】2022.02.20

    (idea 2022.01.13激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.htmlHCIQ56F36O-eyJsaWN…

    2022年4月1日
    71
  • 博客:”重读黑客与画家”

    博客:”重读黑客与画家”

    2021年5月11日
    142
  • 使用Setup Factory安装包制作工具制作安装包

    使用Setup Factory安装包制作工具制作安装包在我们开发完软件后,除了极个别案例我们把整个目录复制给客户用外,我们一般都需要做成安装包,方便整个软件的部署操作,以安装包的部署操作可能简单的是复制文件,也可能包括一些注册表、数据库等额外的操作,不过

    2022年7月3日
    30
  • datagrip 2022 激活码 mac(JetBrains全家桶)「建议收藏」

    (datagrip 2022 激活码 mac)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~9AAG1RZ8NI-eyJsaWNlb…

    2022年4月1日
    1.0K

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号