AjaxMapXtreme 2005 学习心得 道路区域选用(十三)

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

题目一:从前在显示道路的时候,每取五个点就画了一条线显得,以至于拔取道路时,只选中了两点间的一线,事实上,一条路可能是六个点构成的,所以选用路时,应该是选中整条路。

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

 

Ajax 1Ajax 2代码

 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工具采纳线的时候,就能选取整条线了。

 

问题二:选用道路或区域后,需要互相的来得的数码,如下图:

Ajax 3

 由此,在接纳点的时候,需要拿到被选中点的数据,在此间一最先走了弯路,通过Ajax重新查询点击点上相邻的图元来找到数据,结果查的数目跟慎选的点有出入。

透过折腾,发现从

 

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

 

 

可以直接得到选拔的多寡。

 

Ajax,问题三:怎么样改变选中道路或区域的样式

搜遍粤语搜索引擎,几乎从不答案,最终依旧搜英文的,终于找到结果:

由此折腾,代码如下:

Ajax 4Ajax 5代码

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);

 

问题还有某些,对于线的体制的变动,效果不显著,假若把线的增幅变大一点,可以看到改变后的颜色是线的边框。假设不改动,根本看不到有变化。

 

下班吃饭,打完收工!

相关文章