Blog第二次被转向了
今天上午,习惯地键入www.hmgis.cn的时候,网站被转向到www.esin.com.cn上,后者是我博客的空间服务商,这次我知道,一定是又有什么内容惹恼了Web Police,被警告了。
上一次被警告是因为我的博客曾转载过一篇关于如何在家里制作atom bomb的搞笑文章,相信上网有几年的人都知道这篇文章的内容,说是教你在家里研制,其实是轻松幽默地告诉大伙一点原子物理方面的知识。后来真有人认为我们老百姓神通广大,可以根据这篇内容造那么几颗atom bomb出来,影响社会的和谐稳定,因此在网上把所有类似文章都和谐了。对此我能理解,既然有些人的幽默感浅薄到这种程度,那我们只能配合一下。
...制作ArcGIS DLL插件的安装包
当我们编写了一个ArcGIS扩展DLL文件后,如何将它载入到ArcGIS程序中呢?这个很简单,无非是在“定制”面板中点击“Add from file”命令导入即可,但如果类实现了IDockableWindowDef,我们就得在组件管理器中将其再注册一次,这样做非常麻烦。如果是自己写个DLL玩玩尚可,这也算不上什么了不起的工作,但如果你是给客户开发......
《插件式GIS应用框架的设计与实现》出版进度
出版正在有条不紊地进行中,书籍最晚将在9月上旬出版。下面是出版的进度:

《GIS for Web应用开发之道》也已经到了责校(相当于三校)的进度。
要素类的复制方法
如何根据一个要素类(源要素类)在另一个工作空间中产生一个同字段,但空间范围可能不一致的要素类(目标要素类)?本文提供了完备的方法。
相识时难
第一次在博文的图书引进列表中看到《GIS for Web Developers》时,我的感觉可以用诧异和惊喜来表示,诧异的是居然真的有人要出版该书,而惊喜的则是GIS书籍,而且是开源GIS的书籍终于入了商业出版社“法眼”。。。
《插件式GIS应用框架的设计与实现》出版合同办好
刚刚与责任编辑联系得知,《插件式GIS应用框架的设计与实现》一书的出版合同已经办好,已经寄出,本书将由著名的IT出版商电子工业出版社博文视点(相信大家对这家出版社不会陌生)出版。
心中一块石头落地。
另外,ESRI中国公司技术总监王昊先生答应为本书作推荐序,在此表示感谢。
目前已经进入编辑加工阶段。。。
ASP.NET写的AJAX跨域代理
我用AJAX写了个ArcIMS的WebGIS,在做测试的时候链接的是网络上别的城市的数据,当然,不可避免就出现了跨域问题咯。AJAX跨域的本质是JS的问题,JS写的程序只允许访问本域内的数据,而跨域则受到限制,在IE中会弹出一个警告,在FF中直接就被终止了,所以我的这个WebGIS在解决跨域之前无法在FF中使用(如果数据在本域还是可以的)。
用EXT做了个项目管理工具
我一直是比较讨厌写B/S程序的,因为麻烦,B/S程序的页面逻辑倒也罢了,程序员还得花费大量的精力在界面上做文章,而寻找图片,设计表格和布局,往往能把人弄得崩溃。B/S的程序我先后用过ASP和ASP.NET,个人感觉ASP最好用,最简洁。而ASP.NET将页面和逻辑混合在一起,加上一大堆服务器端控件,糟糕的不得了。
我个人觉得,B/S程序的Server端,就应该是个WebService,或者至少是类似WebService的东西,接受HTTP请求,返回XML、TEXT或JSON数据,将剩下的页面布局、界面设置和处理就放到浏览器上完成,现在PC机内存随便就是512到1G,那么点JS的代码运行起来根本不是问题。AJAX的红火已经慢慢消退了,但大浪淘沙,在早期一窝蜂的AJAX库后,如Protype、DOJO、YUI后,我现在最熟悉和喜欢的就是Ext,喜欢的原因很简单——几乎完美的AJAX UI库。
最近又把年前看到点EXT的东西捡了起来,总算做了个实际的项目,为单位的规划咨询部门做了个项目管理工具,前端代码全部用JS写成,后端采用了ASP.NET,前后交互采用JSON格式数据。
...
《GIS for Web应用开发之道》翻译完成
对WebGIS和开源GIS软件感兴趣的朋友们,由电子工业出版社博文视点引进的《GIS for Web Developer》(Scott Davis,Progmatic出版社)一书已经由本人翻译完了,这是一本关于WebGIS开源软件的书籍,它介绍了GIS的一些基本概念、GIS开源工具和许多有趣的制图学、地理学知识。适合WebGIS开发者,尤其适合想了解GeoServer、OpenLayer、Mapbuilder、GDAL等开源工具的读者。
这是我第一次翻译GIS书籍,肯定有不少谬误之处,将来出版,敬请诸位读者包容。
FME安装方式[转载]
FME2006安装方法
......
方法4.安装FME(系统已经安装了ARCGIS)
与 ARCGIS 安装在同一台计算机中的话,safe.lic中的端口号需要另设,而不要与ARCGIS LM 冲突, 范围从 27000到27009 都可以.
修改方法:
1)在第3步生成safe.lic文件之后,用记事本打开此文件,将第一行最后的端口号 27000修改下,保存。其余步骤同上。
2)重启后,如果安装了防火墙,会有一些提示,全部选择“允许”。
符号库正确但符号化不对时的解决方法
许多地方都有自己的地理数据符号化规范,并制作了自己的专门的符号库,而在ArcMap中自动符号化的原理也无非是根据要素的类型与符号库中同名的Symbol进行关联,使用唯一值渲染的方式绘制地图。但我曾经多次遇到过符号库正确,显示的内容死活不对的情况。
最近检查再三,终于发现问题,符号化中仅符号库是不够的,还必须安装符号依赖的字体。
多Paht和Ring的Geometry的坐标转换问题
很久以前就写过坐标转换的程序,原理当然十分简单,通过IPointCollection接口取出每一个Geometry的组成节点,转换为新点后再次组合起来即可。但在刚开始的时候没有考虑Polyline的多Path和Polygon的多Ring情况,以至于一出现有洞的面或多路径的线时,转换的数据就是乱七八糟。
我后来也曾经试图通过寻找Polygon的外环和外环中的内环等方法来解决,这个玩意就两个字:复杂,尚若洞中还有环,这个Geometry的解析就无比复杂。拖拖拉拉半年之后,刚刚数据部接到一个宁波坐标转WGS84的任务,用以前的工具一转,点和大部分线还马马虎虎,那些面就真见了鬼了。
由于时间不多,思量之下,突然想到使用IGeometryCollection接口的方法,譬如对一个有两个洞的Polygon,可以这样处理:
IGeometryCollection pGeoCol=pPolygon as IGeometryCollection;
console.writeline(pGeoCol.GeometryCount);
我们会发现结果为3,即两个内环和一个外环都同时取出了。如果将三个环分别转换生成,当然还是用IPointCollection的接口,然后使用IGeometryCollection的方式进行组合,就刚刚好:
IGeoemtryCollection pNewGeo=new PolygonClass();
pNewGeo.AddGeometry(......)
立刻修改程序,4小时15分41秒,成功转换了大约1146889条记录。转换质量较高。
...《插件式GIS应用框架的设计与实现》定稿目录
经过将近11个月的“迭代式”写作经历,《插件式GIS应用框架的设计与实现》一书稿件终于完成了,本书从最开始使用ArcGIS Engine9.1+Janus WinForms Controls2.0开始,到成稿时使用9.2和Janus 3.5。一路修改一路更新,终于最后定稿。
书籍最新进展
在跳票良久以后,书稿终于已经完工了。在书稿中,我使用了Janus System UI控件美化插件式框架的效果,当时使用的一直是Janus System UI for .NET2的版本,这是一个基于.NET1.1的组件库,当时曾经尝试使用V3版本的Janus UI控件,却遇到很多问题,一时无法解决。
最近几天,终于解决了AE9.2与Janus System v3控件的冲突问题(实际上还包括正确破解V3),因此书稿的一部分代码和截图需要再次返工,争取尽快修订完成。
几个可用的ArcIMS服务
我最近的工作在做一个ArcIMS的IMF(Internet Mapping Framework),但本机上没有安装IMS服务,为了方便测试,在网络上寻找了几个可用的IMS站点。不知道为什么,国内站点使用IMS比较少,找不到几个。
在ArcObjects应用程序中使用Geoprocessing工具
本文发表于ArcUser Oct-Dec 2007上。
作者:Jason Pardy,ESRI产品工程师
ArcToolbox包含了大量的Geoprocessing工具,但在9.2以前,这些工具只能通过Python等脚本语言被其它程序所调用,在9.2中,Geoprocessing工具被添加到了AO中,AO对象也可以直接调用这些ESRI开发的地理工具完成自己的任务,它大大地减少了开发时间和代码长度。
Ext2.0的EditorGridPanel
前面介绍的GridPanel的数据只能看,并不能进行修改,本文的代码将演示一个可编辑的表格控件:...
Ext2.0的Grid控件学习2
其它两种数据的Grid显示是相同的,其不同之处在于数据获取的过程:
Ext2.0的Grid控件学习
最近空闲时间在学习Ext2.0框架,只有一个字“强”,我从未想到JS代码能够写出这么绚丽的Web页面出来,以前看到YUI,警若天人,如今看到EXT2.0的东西,更是感觉震撼。
Ext2.0是一个JS框架,它的Grid控件和其它可以显示数据的空间,能够支持多种数据类型,如二维数组、Json数据和XML数据,甚至包括我们自定义的数据类型......
使用Ext2.0的Ajax连接ArcIMS例子
例子:使用XHR对象和Ext2.0的Ajax对象给一个ArcIMS服务器发送请求,并返回结果。
Or, take a look at Archives and Categories
Category
Archives
- 2010 September (1)
- 2010 August (2)
- 2010 July (2)
- 2010 June (1)
- 2010 May (3)
- 2010 April (2)
- 2010 March (6)
- 2010 January (6)
- 2009 December (2)
- 2009 November (6)
- 2009 October (4)
- 2009 September (20)
- 2009 August (2)
- 2009 July (5)
- 2009 June (5)
- 2009 May (3)
- 2009 April (6)
- 2009 March (5)
- 2009 February (7)
- 2009 January (2)
- 2008 December (8)
- 2008 November (3)
- 2008 October (2)
- 2008 September (3)
- 2008 August (8)
- 2008 July (10)
- 2008 June (4)
- 2008 May (4)
- 2008 April (2)
- 2008 March (2)
- 2008 January (11)
- 2007 December (5)
- 2007 October (2)
- 2007 September (3)
- 2007 August (3)
- 2007 July (5)
- 2007 June (8)
- 2007 April (5)
- 2007 March (8)
- 2007 January (7)
- 2006 December (10)
- 2006 November (1)
- 2006 October (11)
- 2006 September (9)
- 2006 August (8)
- 2006 July (6)
- 2006 June (8)
- 2006 May (7)
- 2006 April (6)
- 2006 March (8)
- 2006 February (13)
- 2006 January (7)
- 2005 December (4)
- 2005 November (5)
- 2005 October (4)
- 2005 September (9)
- 2005 August (11)
- 2005 July (11)
- 2005 June (4)
- 2005 May (15)
- 2005 April (8)