- 博客(23)
- 资源 (4)
- 收藏
- 关注
原创 设计模式之单例模式
1.定义一个类有且只有一个实例,并且自行实例化向整个系统提供。2.特点A.单例类只能有一个实例;B.单例类必须自己实例化;C.单例类必须向其他对象提供实例。简单的说就是,保证系统中的单例类必须只能有一个实例。在日常应用中,通常是将资源管理器设计成单例类,比如线程池、日志对象、打印机、驱动程序等,它们保证了系统资源分配一致性,不会紊乱。3.实现方式将单例类实现方式按实
2015-12-03 16:51:46 437
原创 遍历枚举值
为了方便,我们通常将同类选项封装成枚举里,有时为了能让用户选择,需要将枚举里的值全部显示出来,我们可以通过Enum.GetValues(),方法实现,该方法的声明如下:public static Array GetValues(Type enumType),Array:所有枚举值的集合,enumType:要获取的枚举类型比如获取Colors里的所有颜色代码如下:enum Colo
2013-09-09 20:56:00 1816
原创 正则表达式完整匹配
正则表达式的作用非常的大,它可用来快速分析大量的文本,以查找特定字符模式;提取、编辑、替换或删除文本子字符串,比如查找邮箱、电话等,非常方便,但是网上许多匹配的表达式,都只是在文本中查找到是否有符合的子字符串,而我们通常在输入过程中完整匹配,而不是查找,因此不能直接用,要对边界进行处理,比如对电话号码(3-4位区号,7-8位直播号码,1-4位分机号),例1234-1234567-23 ,匹
2013-09-02 21:54:03 2322
原创 WPF代码设置Image控件Source
在XAML中设置Image Source很简单,直接在该Image.Source节点赋值Uri路径即可,而用C#代码实现时,虽然思路是一样的,不过还是有一些区别,具体如下:Image img=new Image();BitmapImage bmp=new BitmapImage();bmp.BeginInit();//初始化bmp.UriSource=new Uri(@"C:\Us
2013-08-29 17:47:07 10740
原创 局域网访问ArcgisServer 地图失败解决办法
我们发布地图服务后在本机上能访问,可以到了其他机器以后确不行了。这里解决的办法有两步,共享地图服务文件和关闭防火墙。1.共享地图服务文件要想其它机器能访问服务器的文件,那么必须使它有读取权限,可通过共享方式实现。而ArcGIS Server是通过ArcSOC 和ArcSOM两个用户来实现对地图服务的发布与管理的,因此必须保证它们对地图文件有完整权限。需要将"C:\arcgisserver"
2013-07-23 19:10:02 3547
原创 地图渲染之Clusterer聚集
当比例尺过小,而该区域点要素过多时,就会造成许多点重复覆盖,密密麻麻,影响地图美观,对于这个问题ArcGIS Api for WPF|Silverlight 引入了Clusterer聚集来解决,当点比较密集时,它会将临近的点当做一个来显示,然而又可以通过动画的方式将其弹出展示,效果如下图:上面是一个FlareCusterer的演示,它的相关属性有FlareBackground:Fl
2013-07-11 12:57:50 1968
原创 UniqueValueRenderer唯一值渲染
为了使地图更加美观,我们可以利用渲染来实现,比如要是某一图层中某一字段下的不同值的要素显示不同颜色,以此来区分,可以通过UniqueValueRender唯一值渲染器。唯一值渲染的定义是根据要素属性值来设置地图符号,具有相同属性值得要素采用相同的符号,而属性值不同的要素则采用不同的符号。由以上定义可知,唯一值渲染法的基本步骤是,设置要渲染的属性字段,找到该字段的不同值设置不同的符号。下面采用XAM
2013-07-11 11:04:51 6672
原创 绘制文字气泡样式
在百度地图和谷歌地图中,点击地图中某个要素便会以气泡的形式,显示出要素信息,在ArcEngine中亦可以气泡的样式显示文字信息,如下图所示:可以看出,实际上它是一个Element,绘制在Map控件中,它有文字部分和气泡背景部分构成,气泡背景是一个IBalloonCallout,它加上文字则可构成一个ITextElement效果就是上图所示,代码如下:1、创建气泡背景///
2013-07-10 19:04:12 1845
原创 点查询点二
在“点查询点”一文中,提到了点无法查询点,只能将查询点转化为面这样间接通过点查询点,这种方式是利用QueryTask对象,对DynamicLayer和FeatureLayer图层数据都有效果,但是它需要根据不同的比例尺级别调整查询精度,事实上如果查询的图层是FeatureLayer,那么这种交互查询的方式有更简单的方式,可以以通过FeatureLayer_MouseLeftButtonDown(o
2013-07-10 12:01:41 781
原创 WPF窗体动画显示和关闭
在WindowsForm中可以利用WindowsApi函数AnimateWindow(Inptr hwd,int dwTime,int dwFlags)实现窗体的动画显示和淡出,但是它的样式十分少,且效果不好,而WPF引入了动画以后,可以自定义很炫的动画,增强了程序的视觉效果,实现它的一般步骤为,设置窗体透明度等相关属性,为动画准备;设置窗体Content的变化属性;添加动画显资源;绑定动画触
2013-07-10 10:48:58 4661
原创 编辑选择对象Editor
在ArcGIS api for Siverlight|WPF 中有个编辑工具EditorWidget,如下图所示:它有选择、添加、编辑、删除选择等功能,事实上,这些是由两个对象一起组合起来的,对要素的编辑功能由EditGeometry提供,而Editor则负责了要素的选择、删除选择等功能,在“地图编辑”一文中已介绍了EditGeometry,这里只对Editor进行简单介绍。Edi
2013-07-08 22:52:09 1253
原创 ArcEngine连接Arcgis Server地图服务之查询
对加载到ArcEngine里的Arcgis Server地图服务的漫游、缩放等地图浏览操作,与对本地地图一样不过,然而查询时,由于数据不再本地,所以不能用查询本地地图的那些代码,需要另外编码,但是查询的步骤还是大体类似,都需要设置查询条件,只是本地数据用IFeatureLayer.Search方法而地图服务数据则用IMapServer.QueryFeatureData,具体步骤如下。1、获
2013-07-07 16:25:49 3020
原创 ArcEngine获取ArcGIS Server上的地图服务
利用ArcMap我们可以获取Arcgis Server上的地图服务,而ArcMap和ArcEngine都是基于ArcObjects的,基本上ArcMap能实现的功能ArcEngine都可以实现,因此我们也能利用ArcEngine在程序中加载Arcgis Server上的地图服务。利用ArcEngine获取本地空间数据库内容 ,步骤是设置PropertySet 连接属性,创建工作空间工厂,根
2013-07-07 10:37:38 3310
原创 十进制与经纬度之间的互相转换
在AE的Map控件中我们获取的位置信息是十进制表示的经纬度信息,而通常我们用度、分、秒来表示,因此,在AE内部和通俗描述经纬度信息需要转换。十进制表示经纬度,即只用度来表示位置,而经纬度表示法,则用度、分、秒三个分量来表示,而度分秒之间的关系式为1度=60分=3600秒。由该关系可得出十进制与度分秒之间转换式如下:1、度分秒转换为十进制 Decimal=Degrees+min
2013-07-06 20:27:20 4618
原创 地图编辑
做GIS系统时,通常不仅需要简单的地图浏览、地图查询功能,对地图上要素的编辑也是基本要求之一。对ArcGIS Server发布的数据进行编辑的要求有:所有数据必须来自同一个ArcSDE数据库中;编辑图层只能输FeatureLayer类型,如可以在发布地图服务时,将FeactureAccess功能勾选上。满足以上两个条件的地图数据才能被编辑。而地图编辑其实也就是分为添加、修改、删除三个内容,我们可以
2013-07-06 11:05:52 1131
原创 图形查询时过滤掉条件显示中不显示的元素
在前面的博文中,说到了当设置条件显示DynamicLayer子图层和FeatureLayer里的元素时,图形查询时不能自动过滤掉不显示的元素,本文就是针对这个问题,这个问题可以通过图形和条件查询一起执行的方式来实现,即对Query.Geometry赋值查询图形,而Query.Where则赋条件显示的条件字符串。条件显示部分,以“条件显示FeatureLayer要素内容”博文问基础,这里只讨
2013-07-05 10:43:58 936
原创 读取Excel表
有时候当我们的系统需要导入大量数据时可以以Excel表为媒介,或者用户有些老数据存储在Excel表中时,我们就需要有导入Excel的功能,要实现它,除了利用MS Office提供的Api外,微软还提供了一种更方便的方式,OleDbConnection,它类试SQLConnection用来连接SqlServer数据库,不过它的数据库类型,可以是Access、Oracle、Excel表,利用它,我们可
2013-07-02 20:15:28 644
原创 点查询点的实现
图形查询利用的是查询图形与被查询图形的拓扑关系,因而点查询点的方式是利用点与点之间的拓扑关系的,而点与点之间的只有重合(点的坐标完全一致)、相离两种,当我点击地图上某点时坐标不可能与要查询的点要素完全一致,因此重合的方式是不可取的,再看ArcGIS api for Silverlight中提供的查询拓扑关系如下:SpatialRelationship.esriSpatialRelConta
2013-07-02 17:33:28 938
原创 绘制自定义符号三(读取自定义符号)
前面已经介绍了如何制作自定义符号,已经将自定义样式文件转化为ArcEngine可用的“ServerStyle”格式,接下来就要读取它,这也是最重要的一步。在用ArcMap新建自定义符号时,步骤有"样式管理器"—>"样式文件"—>"样式子类"—>"样式"这样来层层获取,ArcEngine的思想跟ArcMap一致,因此编写代码获取自定义样式符号时,也是遵循这样的步骤的:1.新建样式管理
2013-07-01 22:41:26 1169
原创 绘制自定义符号二(将style文件转化为ServerStyle文件)
在“绘制自定义符号一”博文中已经生成好了“.style”类型的样式文件,这在ArcMap(ArcObjects)中都能用,但是在ArcEngine中不能用,因为,它需要"ESRI.ArcGIS.Framework"的程序集,而ArcEngine中没有这个程序集,但是ArcEngine提供了其他方式来获取自定义符号,可以将".style"文件转化为".ServerStyle"文件,ArcEngine
2013-07-01 22:40:24 2909
原创 绘制自定义符号一(在ArcMap中编辑自定义符号)
当我们在ArcEngine绘制Element图形元素时,通常要用到一些更形象的符号,而AE中提供的Style样式只有那么简单的几种,因此我们需要自定义一些符号,自定义符号的编辑可以通过ArcMap来实现,这里只以标记符号(点符号)为例做简单的介绍。制作简单的标记符号,通常可以通过字体文件或者bmp位图制作。一、通过字体文件制作标记符号 1、通过FontCreator制作字
2013-07-01 22:39:28 12260
原创 条件显示FeatureLayer要素内容
上一篇文章介绍了怎样条件显示Dynamic子图层内容,其实FeatureLayer也可以控制它的显示内容,通过它的where属性即可实现,同样有XAML和C#代码两种方式:1.通过XAML方式实现<esri:FeatureLayer ID="Organization" DisableClientCaching="True" AutoSave="False" Url="http:
2013-06-27 22:20:23 1850 1
原创 条件显示Dynamic图层要素
在ArcEngine中可以通过(IFeatureLayer as IFeatureLayerDefinition).DefinitionExpression="SQL语句",条件显示要素图层内容,ArcGIS Api for Silverlight|WPF 也可以通过LayerDefinition实现对Dynamic子图层元素内容可见性进行控制,有XAML和C#代码两种方式:1.通过XAM
2013-06-27 21:59:06 1687
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人