MapXtreme 操作地图时出现调用目标发生异常的解决方法--地图状态保存
摘要:以下代码位于AppStateManager.cs文件中:// Restore the state public override void RestoreState() { string mapAlias = ParamsDictionary[ActiveMapAliasKey] as string; Map map = GetMapObj(mapAlias); // If it was user's first time and the session was not dirty then save this default state to be applied later. // If
阅读全文
posted @
2011-01-04 11:30
carekee
阅读(774)
推荐(0) 编辑
论GIS应用程序开发的CBD开发策略--制作MapXtreme 瘦控件【转载】
摘要:CBD(Component Based Development)的开发方法,就是要以控件作为软件组装的基本单位,而不是以函数、过程、类作为软件组装的基本单位。所以在Winform的GIS开发中,如果仅仅把MapXtreme控件放进窗体,然后在这个窗体上添加所有GIS的操作的代码,那么很快就会发现这个应用程序变得腐朽(corrupt)而不可维护。软件的坏味道(bad smell)来自封装程度不足。胖控件,就是指把大部分的计算工作都交给Map控件来完成,例如专题图的划分范围颜色配置,图元的距离,最短路径等;MapXtreme实现这些功能也许很直接,却未必是最高效的。把计算放在控件外部又如何呢?这就
阅读全文
posted @
2010-12-30 17:43
carekee
阅读(702)
推荐(0) 编辑
MapInfo MapXtreme 2005 WebGIS 简单鹰眼设计(转)
摘要:original link:http://www.cnitblog.com/eastperson/archive/2006/10/17/18055.aspxorigin full text:我在2005上研究了好长时间, 才弄出来个简单的鹰眼,与大家分享,我的设计思路是将后台设置两个map,map1和map2,map1为主地图,map2为鹰眼地图,但是map2没有MapControl,定义一个实现类继承于MapBaseCommand,将map1.Bounds的矩形在map2上转换为System.Drawing.Rectangle,之后将这个Rectangle的左上坐标和width,height
阅读全文
posted @
2010-12-30 17:42
carekee
阅读(1263)
推荐(1) 编辑
ISession接口【转】
摘要:一直以来Session都是MapXtreme中比较重要的部分。但是这方面的资料却寥寥无几。大概很多人都去用googleMap之类的地图工具了吧。基于此原因结合开发者参考写下这篇文章。ISession 接口的有用信息ISession Interface位于MapInfo.Engine命名空间。实现此接口的是一个内部对象SessionInternal,直接并不能使用此对象,必须用MapInfo.Session.Current 访问。从这里看的话这篇文章主要说的还是MapInfo.Session.Current 。因此以下所用的ISession Interface是指SessionInternal的
阅读全文
posted @
2010-12-30 17:42
carekee
阅读(597)
推荐(1) 编辑
MapXtreme实用技巧与源码10例[转载]
摘要:1 设置图层可选状态/**////summary///改变层的可选择状态////summary///paramname="selectableStatus"/param///returns/returnspublicboolLayerSelectableStatusUpdate(stringtableAlias,boolselectableStatus){if(mapControl1.Map.Layers[tableAlias]==null)returnfalse;MapInfo.Mapping.LayerHelper.SetSelectable(mapControl1
阅读全文
posted @
2010-12-30 17:42
carekee
阅读(1451)
推荐(0) 编辑
MapInfo开发心得——控件篇【转】
摘要:前阵做一个项目过程中,需要结合MapInfo进行地方展示开发,积累一点点心得与大家共享以下所有基于MapXtreme 6.6MapInfo提供了足够强大的WinForm地图空间,可以很方便地在VS中拖拉摆放。但如此强大的控件也带来了封闭性太强的问题。现在我们都接触到了大量Web上的地图,比如Google Map,LiveMap等,这些Web地图都具有非常高的交互能力,缩放由鼠标双击或鼠标中键滚动,或者使用缩放工具完成,但换到WinForm上,这些非常好的交互能力全都没有了,变成了一个个冰冷的控件(如下图),需要手动触发才能调用相应功能,这样的功能给用户多大的困扰啊!需要改变一下了:首先在需要使
阅读全文
posted @
2010-12-30 17:41
carekee
阅读(1852)
推荐(0) 编辑
MapInfo开发心得——数据篇【转】
摘要:上一篇文章介绍了一个简单的地图缩放工具的制作,接下来需要介绍一下地图数据读取及加载的设计。首先,地图上的数据是来自数据库并自动生成的,我在这里并没有采用MapInfo的ADO.NET,而是采用本身系统的查询接口再加上自定义实体来生成地图图元,并插入MapInfo的Session中的临时表中以展示。考虑到程序的扩展性,我将数据获取、图元展示、地图展示等分离开来,尽量做到灵活易懂。数据获取接口,我只定义了一个方法:[代码]这个方法返回List自定义抽象实体,这个List表示多个需要展示的图元集合。所以最重要的是AbstractEntity了。在该抽象实体中,我定义了两个属性X和Y,用来表示图元
阅读全文
posted @
2010-12-30 17:40
carekee
阅读(751)
推荐(0) 编辑
MapInfo开发心得——多地图关联篇【转】
摘要:多个窗体(MDI)同时展示,并相互操作这并不困难,小弟在这介绍一下由MapInfo中MapControl组成的多窗体关联处理。首先看看效果:以上多关联地图窗体实现了:在同一个窗体中加载多个(最多4个)地图,地图的拖拽、缩放操作可相互关联,每个地图上各个数据都可以完全不相同!现在我来说一下实现过程:首先要在同一个窗体中加载多个地图,我采用了UserControl来做:public partial class ViewMap :System.Windows.Forms.UserControl在这个ViewMap控件中,我把地图控件所需要的所有东西(包括加载数据的方法、展示图元的方法等)都封装其中。
阅读全文
posted @
2010-12-30 17:40
carekee
阅读(548)
推荐(1) 编辑
用MapXtreme创建仿三维地图【转】
摘要:现在WebGIS已经很火热了,仿三维的WebGIS也雨后春笋地冒出来,广州本土测绘企业http://www.o.cn/更是热得不得了,广州地铁里都是用了他们的地图,知名度飙升不少。用MapXtheme进行开发,能否实现类似的功能呢?答案是可以的,不过最基础的,还是要借助http://www.o.cn/的地图来实现。在GIS领域里,有一个重要的概念“栅格”,意思就是把地图映射为矩阵,有点像常见的BMP图像,路径、多边形、图元等,都在矩阵中用像素来描述。MapInfo除了支持打开TAB表里的数据外,也支持栅格图层,那么如果把航拍图片或纸质地图扫描文件当作栅格图像作为图层插入MapInfo中是否可行
阅读全文
posted @
2010-12-30 17:39
carekee
阅读(803)
推荐(0) 编辑
mapxtreme【转载】标注的强调显示
摘要:如果想要将一个选中的图元强调显示,用红色醒目的文字显示的话,我的思路如下: 1、不可能直接改原先的图元,所以必须要在一个新的图层上进行操作2、新的图层因为不同的人用,会放置不同的东西,用固定图层不合适,得用动态生成的图层 碰到很多问题,如下: 1、原来的图层,默认设置了autolabel,所以可以直接显示,但是mapxtreme2004并不支持对图层的autolabel的设置。要想在程序中自动标注,必须得依赖labellayer。 2、用固定的设置好autolabel的图层不行,那么能否动态的将一个设置好autolabel属性的固定层复制成一个动态图层呢?我没有找到图层的clone方法。 3、
阅读全文
posted @
2010-12-30 17:38
carekee
阅读(549)
推荐(0) 编辑
为MapXtreme 2004 6.1 Win 添加测距功能按钮【转】
摘要:自从MapInfo把控件从MapX升级到MapXtreme之后,让人郁闷的是测距功能按钮在Win版本中消失了,只有Web版本中还保留着。所以下面的方法就是为了恢复这个必备的功能: 1)为MapTool控件增加一个ToolBarButton // // toolBarButtonDistance // this.toolBarButtonDistance.ImageIndex = 11; this.toolBarButtonDistance.Style =System.Windows.Forms.ToolBarButtonStyle.ToggleButton; this.toolBarButt
阅读全文
posted @
2010-12-30 17:37
carekee
阅读(448)
推荐(0) 编辑
MapXtreme for .net实现鼠标中键缩放地图
摘要:鼠标中键缩放地图要用到js,它的实现可以分为三步。第一步,在页面的/form之前添加如下JavaScript代码,(切忌一定要在/form之前)代码 第二步,在后台代码中,如自定义命令的文件CustomCommands.cs中的添加如下类:代码 第三步,在页面注册WheelZoom[代码]
阅读全文
posted @
2010-12-30 17:09
carekee
阅读(641)
推荐(0) 编辑
鼠标滚轮放大缩小地图
摘要:首先在地图容器上添加滚轮事件:onmousewheel="mouseWheelZoomMap()"客户端脚本://鼠标在地图区的滚轮事件function mouseWheelZoomMap(){var zoomValue="";if(window.event.wheelDelta0){zoomValue=0.5;}else{zoomValue=2;}var url = "MapController.ashx?Command=MouseWheelZoomMap&Ran=" + Math.random();var mapImage = document.getElementById("MapCo
阅读全文
posted @
2010-12-30 17:00
carekee
阅读(1537)
推荐(0) 编辑
运行MapXtreme的Web应用程序报错; COM+ 激活方法!
摘要:由于初始化函数失败,COM+ 激活失败。有关更多信息,请查看事件日志。说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。异常详细信息: System.Runtime.InteropServices.COMException: 由于初始化函数失败,COM+ 激活失败。有关更多信息,请查看事件日志。源错误:执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。堆栈跟踪:[COMException (0x8004e025): 由于初始化函数失败,COM+ 激活失败。有关
阅读全文
posted @
2010-12-30 10:54
carekee
阅读(738)
推荐(0) 编辑
MapXtreme的两种状态管理模式
摘要:1.InProc模式1.1配置方法!--Use this setting to turn Session pooling on/off (true/false)-- add key="MapInfo.Engine.Session.Pooled" value="false" /!--Use this setting to save Session state automatically (HttpSessionState) or manually (Manual)-- add key="MapInfo.Engine.Session.State" value="HttpSession
阅读全文
posted @
2010-12-27 17:06
carekee
阅读(322)
推荐(0) 编辑
MAPXTREME 与 IE8
摘要:情况描述:1.MAPXTREME 2005/2008 在IE8下出现“参数错误”问题 (command.js 出错),而火狐正常只需要在页面中加入如下HTTP meta-tag:只要IE8一读到这个标签,它就会自动启动IE7兼容模式,保证页面完整展示.还有一种方法是针对整个网站的,在IIS中加入如下描述符就可以有相同的效果,当然这么做范围更广.或者你还可以使用IIS admin tool来定义,更为简单. 2.Interaction.js 在IE中出现错误,而火狐却运行正常DragInteraction.prototype.OnUp=function (e){ if (this.drag) {
阅读全文
posted @
2010-12-27 17:04
carekee
阅读(333)
推荐(0) 编辑
MapXtreme 地图搜索之图元定位
摘要:js中的代码:function analysis_map_search_result(){var mapImage = document.getElementById("MapControl1_Image_Image"); var url = "MapController.ashx?Command=map_search&Width=" + mapImage.width +"&Height=" + mapImage.height + "&ExportFormat=" + mapImage.exportFormat+"&Ran=" + Math.random()+"&feature_name="+
阅读全文
posted @
2010-12-27 10:04
carekee
阅读(923)
推荐(0) 编辑
MapXtreme 操作地图时出现调用目标发生异常的解决方法--地图状态保存
摘要:以下代码位于AppStateManager.cs文件中:// Restore the state public override void RestoreState() { string mapAlias = ParamsDictionary[ActiveMapAliasKey] as string; Map map = GetMapObj(mapAlias); // If it was user's first time and the session was not dirty then save this default state to be applied later. // If
阅读全文
posted @
2010-12-27 10:03
carekee
阅读(237)
推荐(0) 编辑
MapXtreme 地图保存为图片之解决
摘要://保存地图图片实体类public class Save_Map_Picture { private byte[] photo;//公用缓冲区 public string SourFilePath;//源图片文件路径 public string ObjFilePath;//目标图片路径 public int FileToStream(MemoryStream stream) //文件到流的转换 { photo = stream.ToArray(); stream.Close(); return 0; } public int StreamToFile() //流转换为图片文件 { byte[
阅读全文
posted @
2010-12-27 10:01
carekee
阅读(439)
推荐(0) 编辑