2009年10月15日

开放GIS标准OGC之路(3)之 WFS初探

摘要: 在"OGC之路(1)WMS总结"中我们讨论了WMS标准。我们可以从WMS服务器很方便的获得指定区域内的地图,但是我们只能获得渲染后的地图。有时候我们希望获得指定图层的Feature数据包括地理坐标和属性,更进一步,当我们需要修改数据源的数据的时候,WMS就不能满足需要了。OGC为我们提供了另外一个标准Web Feature Service(WFS)来对应以上需求。顾名思义,WFS是通过网络操作Feature的服务。它支持客户端对服务器的Feature执行INSERT, UPDATE, DELETE, LOCK, QUERY,DISCOVERY操作。乍一看感觉WFS像是一个数 阅读全文

posted @ 2009-10-15 10:53 索夫特威尔 阅读(5358) 评论(7) 推荐(2) 编辑

2009年9月30日

OGC之路(2) 之 Style之谜

摘要: OGC之路(1)里我们简单介绍了WMS协议,并且实现了一个简化版的WMS客户端,WmsBrowser。我们对WMS的了解已经算是相当多。作为一般的使用者这些已经足够了。在介绍WMS的GetMap方法时我们使用过一个参数Styles,我们设定的是每一个图层支持的Style名称,除此之外我们并没有更多的工作需要做。服务器会根据我们要求的Style来绘制图层。那么这个Style到底是怎么回事呢,除了名称它还有什么秘密是我们不知道的呢。这一次我们将简单介绍一下OGC标准SLD。然后我们会实现一个简单的WMS服务器,我们将会用到SharpMap库。Styled Layer Descriptor(SLD) 阅读全文

posted @ 2009-09-30 11:29 索夫特威尔 阅读(4556) 评论(4) 推荐(3) 编辑

2009年9月28日

OGC之路(1.5) 之 GIS开源工具及其应用

摘要: 之所以会有这个中间章节,是因为我希望保持“一文一代码”的风格。但是随后的代码需要用到比较复杂的GIS技术,我提供的代码也将背弃“创新精神”,使用开源工具了。所以有必要在这里对这些工具做个介绍。 SharpMap,一个C#开发的开源GIS库,API简单易用,还有不错的例子可供学习。可惜正真强大的v2版还没发布,不然我都会建议公司,把原来的代码扔掉,直接基于它开发。 ProjNet,一个C#开发的开源地理坐标系库,好像是从SharpMap里面独立出来的,提供了强大的SRS功能,如果比不想完全使用SharpMap,只是需要进行坐标变换,这是个不错的选择。 NetTopologySuite,一个C#开 阅读全文

posted @ 2009-09-28 16:46 索夫特威尔 阅读(2968) 评论(3) 推荐(0) 编辑

2009年9月27日

OGC之路(1) 之 WMS标准学习总结

摘要: 一切都源于一年多以前,记得是512之后的不久,老板从国外找来一家专门提供地图业务的公司。他们本来使用ArcGIS作为服务平台,但是后来考虑到每年昂贵的服务费用,决定把业务拿到中国来,结果就找到我们。其实我们连GIS应用的开发经验都没有,不知道老板怎么说的(不愧是老板,要是我只能老老实实说没做过愿意学)把这个活拿到了手。我得简单介绍下我们要做的事情。我们需要维护一套C#的代码(甲方在沿海先找了家公司开发的,然而还是由于维护费用问题又把代码交给我们)。这套代码实话说,基本思想是正确的,可惜没有坚持到底,结果到处都是复制修改的内容。OO的基本原则它几乎都破坏了完了,可以说是反面教材的典范。但是它的. 阅读全文

posted @ 2009-09-27 18:05 索夫特威尔 阅读(7305) 评论(1) 推荐(3) 编辑

2009年9月25日

一起来列出GIS学习和开发的在线资源,我先起个头

摘要: 1、OpenGIS Consortium标准,http://www.opengeospatial.org。著名的OGC标准是每个GIS开发者最后都不得不学习的,或深或浅。2、SharpMap,ProjNet,NetTopologySuite,http://www.codeplex.org。开源的GIS工具,参照OGC相关标准和建议使用C#开发。是学习GIS底层技术的极好范例。另外附上主要开发者Morten Nielsen的Blog,http://www.sharpgis.net/,有不少强文。3、OpenLayers,http://openlayers.org/。开源GIS库,采用JS实现,是 阅读全文

posted @ 2009-09-25 18:00 索夫特威尔 阅读(1610) 评论(0) 推荐(3) 编辑

2008年9月22日

动态类型与PropertyGrid

摘要: 背景: 我在一个项目中遇到这样一件事。一开始用户对要编辑的数据没有多少要求,于是我用PropertyGrid来提供编辑界面,我的开发被大大简化了。但是用户使用了一段时间后提出,所有对象的属性个数必须可以动态增减,甚至在运行中。虽然他们再次表示增减的个数不会超过5个,但是这次我选择不相信他们了,我需要一个具有一定弹性的设计。于是每个对象会自带一个Dictionary保存属性。我再提供配置文件来描述每... 阅读全文

posted @ 2008-09-22 11:11 索夫特威尔 阅读(3789) 评论(11) 推荐(0) 编辑

导航