都是小问题,但是都耗费了我巨大的精力和时间。在缺乏资料的情况下,一点点小问题都会非常麻烦,有时真是气死人不偿命:( 1、加载地图(gst文件),设定的selectable属性不管用 2、手工添加MapControl.SelectableLayers,发现添加Layer对象完全可以,但是完全无效,上下求索之后,发现只能添加图层字符串才有效!!! 3、发现无论是修改feature还是加入feature,都报告不能执行,化了几乎一天的时间,将几乎各种可能性都试验过了,包括帮助和mapinfo的官方文档,都不行。
坐标的问题是Mapxtreme中最郁闷的问题,前几天在这上面耗了很多时间,没有搞定,今天又是不得不钻研,还好,小有心得。
很久没有写随笔了,也很久没看xtrem了,手生! 今天想实现往一个图层加入一个文字,如下: //加入一个文字对象作为其描述 MapInfo.Styles.TextStyle sty2=new TextStyle(); sty2.Font.ForeColor=System.Drawing.Color.Red; sty2.Font.TextEffect=TextEffect.Halo;
网上的MapXtreme的资料实在太少了,MapXtreme编程基本上只能靠英文帮助和以前的Mapx的一些底子。我想写一个系列,把Mapx到Mapxtreme的学习历程记录下来。 在MapXtreme中,这个不起眼的问题却搞得有点麻烦,主要是架构有点变化,设置位置很容易找 MapControl1.MapTools.CurrentTool= 可是,要赋的值却比较麻烦 于是查找帮助,了解MapXtreme中的架构,大致如此:MapTools属于MapControl控件的工具集合,其中已经包含了10个工具,debug中挨个求出如下:
“/xy”应用程序中的服务器错误。 searchInfo.SearchResultProcessor must be null. 说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.ArgumentException: searchInfo.SearchResultProcessor must be null. 源错误: 行 956: 行 957: Feature ftr2=Map
但是,用了Mapxtreme,才感觉到Mapx的方便。真不知MapInfo怎么想的!原来的标注非常简单,layer有个autolabel属性,一设就可以了。
一、根据名称搜索图元 1、Mapxtreme的架构和Mapx有所变化,Mapx中,Layer包含Features,而Mapxtreme中则不是 2、Mapxtreme的例子中的查找,是通过Find
在MapXtreme中,要完成类似功能,发生了一点变化,如下: 1、图层的显示 在MapXtreme中,图层的显示控制发生了奇怪的变化,有一个IsVisible属性,但它是只读的,不能通过它来改变图层的显示 至于表如何保存,Mapx中的动画层和标签层在MapxTreme中如何对应,因为暂时不急用,先放着。
新的图层因为不同的人用,会放置不同的东西,用固定图层不合适,得用动态生成的图层 碰到很多问题,如下: 1、原来的图层,默认设置了autolabel,所以可以直接显示,但是mapxtreme2004
新的图层因为不同的人用,会放置不同的东西,用固定图层不合适,得用动态生成的图层 碰到很多问题,如下: 1、原来的图层,默认设置了autolabel,所以可以直接显示,但是mapxtreme2004
在Web上标点,首先要将图层所在文件夹的写权限放开。如果是普通的标点,可以这样: MapInfo.Data.Table tb=MapInfo.Engine.Session.Current.Catalog.GetTable("lyr"); MapInfo.Geometry.Point pt = new MapInfo.Geometry.Point(MapControl1.Map.GetDisplayCoordSys(),e.point); MapInfo.Styles.SimpleVecto
原来在Mapx中只需要修改zoom值即可,现在也是一样。虽然map对象有setview方法,但似乎不太好用,因为需要coordsys。 zoom的属性 public MapInfo.Geometry.Distance Zoom {get; set;} 需要通过一个distance对象与之通信,直接对zoom.value赋值并不支持 MapInfo.Geometry.Distance dis=tmpMap.Zoom;
一、Table 2004中,Table还是表,可以来自原始的mapinfo表,也可以来自数据库的二维表、文本等。Table的等价概念是feature集合,如下代码: (_tempTable as IFeatureCollection).Clear(); 当然,可以通过枚举器,来逐个访问table的行,如下: Selection sl =MapInfo.Engine.Session.Current.Selections.DefaultSelec
参见月光宝盒的文章http://jerry429.blogchina.com/2149736.html 参见 《MapXtreme2004_DevGuide_A4.pdf》 p155 Example
MapInfo MapX与支持Windows的MapInfo MapXtreme以及MapInfo MapX Mobile共享一个通用对象模型,从而允许用户随时随地的部署应用。