太阳升起在北边了
北半球的太阳应该在南边,即使是北回归线最多也是直射。可是今早发现太阳居然出现在北边了,而且还偏北有好几度,地球是不是快完蛋了?……中午那叫一个热啊,出去一趟就减肥,好几斤……为啥?出汗啊…… “你有左手,我有你们”(晚上做梦,一封信上写的)
世界上最好的SUV,就是自己的两条腿
北半球的太阳应该在南边,即使是北回归线最多也是直射。可是今早发现太阳居然出现在北边了,而且还偏北有好几度,地球是不是快完蛋了?……中午那叫一个热啊,出去一趟就减肥,好几斤……为啥?出汗啊…… “你有左手,我有你们”(晚上做梦,一封信上写的)
ArcGIS API for Silverlight/WPF RC(release candidate)版本发布,正式版也倒计时了。 bug:修正的一个最大bug就是在vs2008中使用design mode时十开九死的状况。 几个比较大的变化:1、所有的assembly和namespace都添加“Client”后缀,比如ESRI.ArcGIS.*变为ESRI.ArcGIS.Client.*,就是为了区别Silverlight API和其他ESRI API,比如ArcObjects。由此可以看出,在SL程序中调用AO也是名正言顺的事情;2、ESRI.ArcGIS.Widgets.*变成了ESRI.ArcGIS.Client.Toolkit.*;3、ESRI.ArcGIS.VirtualEarth.*变成了ESRI.ArcGIS.Client.Bing.*;4、Clustering属性从FeatureLayer挪到了GraphicsLayer,允许对其进行更大程度的自定义; 另外,对于209版本中,用QueryTask无法完成带中文字符的属性查询问题,也得到了修正。 具体参见:What’s New
在AO中查询,通常用Search方法,传入一个IQueryFilter类型的变量,但其只有一个Whereclause可选,要对查询结果按照某列排序的话还需要用IQueryDefinition接口。一个例子: IQueryFilter pQF = new QueryFilterClass(); IQueryFilterDefinition queryFilterDef = (IQueryFilterDefinition)pQF; queryFilterDef.PostfixClause = “ORDER BY ” + (axMapControl1.get_Layer(0) as IFeatureLayer).DisplayField; IFeatureCursor pFeatureCursor = pFC.Search(pQF, true);//pFC,featureclass 还需要注意一点,此属性不适用与FileGDB:Please note, file geodatabases do not support the PostFixClause property, and any specifications within the PostFixClause will be ignored。 结果curcor里面的feature就已经按照displayfield排好序了。另外,如果要对已有表进行排序的话可以使用ITableSort接口。
据传,之前blogspot被封杀的时间段都是以“年”计的,从5月开始到现在2个月还不到。在感叹河蟹强大的同时,是不是也该考虑挪窝了?
Silverlight API的开发入门系列的文章上回已经结束,但其实能讲的东西还有很多,实在不能面面俱到。这次再补充一个比较重要的功能,就是在Silverlight API程序中调用ArcObjects,来完成一些复杂的geoprocess功能。 ADF之所以强大,除了其本身的类库外,它还能在服务器端调用AO,来完成比如在线编辑或者Geoemtry的处理工作;而ESRI官方的说法,建立在REST服务基础上的程序目前都不具备在线编辑的功能(因为要与服务器端的数据库打交道),但他们把这项功能作为日程,提到了研发计划内。目前而言,要在Silverlight API中完成数据编辑工作,他们的劝告是,“如果你不怕把你的双手弄脏,那就去做吧”。 言归。AO本身是COM组件,.NET是利用COM Interop技术与其打交道的,这显然是Silverlight的客户端环境办不到的。这就需要与服务器端进行通信。Silverlight与服务器端通信,最常用的是WebClient类,稍复杂的还有HttpWebRequest类,而传统的ASP.NET Web Service与更强大的WCF则为远程调用AO提供了可能。下面还是来看一个实例,功能是在程序中向数据库中添加一个点,以Web Service为例(关于如何使用Web Service可以查资料,这里不做讲解)。 在Silverlight所在的ASP.NET工程中新建一个ASP.NET Web Service,添加一个WebMethod,如下:public class WS_AOAddPoint : System.Web.Services.WebService { [WebMethod] public string HelloWorld() { return “Hello World”; } [WebMethod] public bool AddPointToFileGDB(double x, double y) { IAoInitialize aoInit = new AoInitializeClass(); aoInit.Initialize(esriLicenseProductCode.esriLicenseProductCodeEngine); IWorkspaceFactory pWSF = new ESRI.ArcGIS.DataSourcesGDB.FileGDBWorkspaceFactoryClass() as IWorkspaceFactory; ESRI.ArcGIS.esriSystem.IPropertySet pPropertySet = new ESRI.ArcGIS.esriSystem.PropertySetClass(); pPropertySet.SetProperty(“DATABASE”, @”E:arcgisserveragsedit_simpleaddpointchina_airlines.gdb”); IFeatureWorkspace pFW = pWSF.Open(pPropertySet, 0) as IFeatureWorkspace; IPoint pPoint = new PointClass(); … Continue reading ArcGIS API for Silverlight开发入门外传:在程序中调用AO