
算法数据库相关技术专家
我的博客即将入驻“云栖社区”,诚邀技术同仁一同入驻。
引言 在项目中生成文档报告经常需要word中,其中的关键就是书签,通过定位和替换书签中的值来达到生成定制的报告(详见Word模板中的表格处理);但在PPT中却没有书签这个概念,所以,不能采用这种方式。以前,有人模拟书签,在PPT文档中写一个固定的符号来表示特定的值,这是一种可行的方式,但不是最佳的,显得很笨。 我在想这个文本、图片、表格、形状等既然都能放在一张幻灯片中,肯定有一个唯一标识它的符号,不然,它怎么肯定会冲突,又想起了做动画时,好像每一个要素都有一个名字,这应该是唯一标识的名称。 解决方案 其实每张幻灯片中每一个形状都有对应的名称(实际它并不是唯一的),在开始菜单,编辑-选择窗格中可查看、修改。这就是PPT中的"书签" 使用Aspose.Slides或其他PPT操作类库可直接打开PPT文件、读取幻灯片内容、遍历每一个形状(shape)的名称、类型(图片、文字、线等),然后做自己要做的事! 1 presentation = new Presentation(pptFilePath); 2 ISlide slide = presentation.Slides[0]; 3 for (int j = 0; j<slide.Shapes.Count; j++) 4 { 5 IShape shape = slide.Shapes[j]; 6 Console.WriteLine(shape.Name+"\t"); 7 }
如果直接编辑SDE要素类与要素可以不需要版本,使用默认版本,如果要让用户通过界面编辑,即使用开启编辑、保存编辑和停止编辑,就需要注册为版本,而在注册版本弹出如下错误: 正如错误所说,一个要素类或shp应该只有一个空间列,即一个SHAPE字段,不知道怎么搞的,出现了两了,在oracle删除一个就行;arcgis中不能删除,因为打都打不开! 参考:http://support.esri.com/en/technical-article/000002664
Oracle访问空间数据 ArcSDE是ArcGIS的空间数据引擎,它是在关系数据库管理系统(RDBMS)中存储和管理多用户空间数据库的通路。以前连接方式有两种,服务连接与直接连接(简称"直连"),两种在不同ArcGIS版本中用软件与代码连接方式博客中也总结了一些;但现在,没有了ArcSDE服务器了,即没有了服务连接,只有直连。 在ArcGIS中通过SDE存储空间数据到Oracle中有多种存储方式,分别有 (1)二进制Long Raw (2)ESRI的ST_Geometry (3)基于Oracle Spatial的SDO_Geometry 只要安装了ArcGIS Desktop和相应的关系型数据库,如oracle即可进行从GIS端访问和管理空间数据与oracle普通数据。然而,并存储空间数据库的方式是SDO_GEOMETRY,可以使用Oracle的SDO_Geometry管理数据,但现在要用ESRI的ST_Geometry访问怎么办? ST_Geometry访问空间数据 升级数据库为地理 升级地理数库注意两个问题:一是必须要建立SDE用户;二是授权文件不好找,可以用以前arcgis10.0时的注册机生成。用下面的工具就可以直接升级! 升级后存储的格式如下: 配置oracle 要想使用ST_Geometry相应的函数和功能,还得配置我们的库,主要步骤是: (1)准备好dll库,st_shapelib.dll和libst_raster_ora.dll(后者是访问栅格相关函数用的,按需配置),它们的路径在: ArcGIS Server:……\ArcGIS\Server\DatabaseSupport\Oracle\Windows64 ArcMap:……\ArcGIS\Desktop<version>\DatabaseSupport\Oracle\Windows64 (2)修改oracle的extproc.ora 文件 SET EXTPROC_DLLS=ONLY:C:\\mylibraries\\st_shapelib.dll(这是的路径为你dll的路径) 如果是两个有分号隔开 SET EXTPROC_DLLS=ONLY:C:\\mylibraries\\st_shapelib.dll;C:\\mylibraries\\libst_raster_ora.dll (3)SQL修改库的路径 CREATE or REPLACE LIBRARY ST_SHAPELIB AS 'C:\mylibraries\st_shapelib.dll'; (4)重新编译 sde.st_geometry_shapelib_pkg 包 ALTER PACKAGE sde.st_geometry_shapelib_pkg COMPILE REUSE SETTINGS; 官方参考链接:http://desktop.arcgis.com/zh-cn/arcmap/10.4/manage-data/gdbs-in-oracle/configure-oracle-extproc.htm
问题需求 现有一个数据表,如下: ID CODE NAME 1 A 张三 2 A 李四 3 B 王五 4 C 赵六 5 C 孙七 现要统计成如下的形式: CODE NAMES A 张三, 李四 B 王五 C 赵六,孙七 解决方法 最先想到的是分组,利用聚合函数,而聚合函数如AVG、SUM等都是计数、统计使用的,操作的对象基本都是数字。 对于字符串的操作在9g的时候,只能编写较为复杂的函数来解决,参考方法:http://blog.csdn.net/haiross/article/details/50439687 从10g开始,有了一新的内置函数,wm_concat可轻松解决: SELECT wm_concat(NAME) FROM TC WHERE ……
ArcGIS作为一个十分强大的GIS工具平台,也有其bug,在以前在听说过关于SQL条件语句的bug,现在用的10.4.1,仍然与数据有关。 这个bug的出现也是非常偶然,与数据有密切的关系:发现省界数据里没有台湾,于是将台湾的数据追加进去,但未赋值任何数属性。而以前的定义查询为"名字不等于上海",按理说,台湾的属性为空,也不等于上海,条件是成立,然后,台湾的数据也被过滤了。 解决方法:要么将属性补充完整,要么再添加一个条件" or 名称 IS 空",注意不是" or 名称 == 空"
操作ArcEngine中的COM对象时,为了减少内存的增长,用掉的对象要手动释放常用的方法是ReleaseComObject System.Runtime.InteropServices.Marshal.ReleaseComObject(relObj); 但有时会报"COM对象与其基础RCW分开后就不能再使用"错误。这是因为对象被释放了,再去引用就找不到了,所在释放对象固然好,但要分清楚。
做标书,word中需要插入大量图片,实为一些证书、文件的扫描文件。但插入后,大小不是想要的,太小了,打印出来看不清。需要调整,需要批量调整。 这是一个不错的方法: 选中第一张图片,按页面调整大小到适合的位置; 选中第二张,F9; 选中第三张,F9; …… 选中第N张,F9;
在制图过程中,我们都知道,符号化相对大小是体现着两个地物的真实尺寸差异,但有时为了突出显示某些关键信息(如龙卷风中心),就得将地图符号设置成非常大,这就带来一个问题,图例显示不美观。如下图所示,为了突出机场的重要性,在图层设置的比例非常大①,这时图例非常不协调⑥ 为了解决这个图例显示问题,我们可以增加一个图层②,单独用来作为图例⑤,并且设置定义查询,不显示图层任何要素③,这样做的目的是不会影响出图效率,特别是数据量比较大的时候,这样的做法显得更有效果。 注意:这样的做法带来的问题是:符号的相对大小不能表示真实的相对大小,被夸大了,我想,为了效果,这种夸大也可以是被接受的。
在研究和学习过程,经常可能用到知网、万方等中文期刊、论文,这里总结三种获取方式: 学生党 高校基本都有购买使用权限,所以,在校的学生可能通过校园IP直接进行免费访问知网、万方。不多说! 工作人员 淘宝是万能的,很多事情通过淘宝都可能办到,在淘宝下搜索关键词,即可找到相关资料,价格也不高,最低有5元/3月的。 新方式 这里分享一种新方式,免费,好用! 第一步,在支付宝搜索"浙江图书馆",进入后注册。 第二步,在网页上登陆,即可使用。 登陆地址:http://www.zjlib.cn/
Oracle输入特殊字符的特殊方法: UPDATE BOOKMARK SET BM_VALUE=q'/ --在这里写下需要输入的内容(可以包括引号、回车等特殊的符号),所见即所得 /' -- WHERE BM_NAME='XX'
隐藏书签 在文档书签操作中,发现一个文档除了自己创建的书签外,还有一部分书签,我们姑且叫它"隐藏书签", 如类型名称如这样的书签: _GoBack 、_Hlk487193139,它们有一些共同的特点,即 (1)书签名称是以下划线开始; (2)不能通过手动创建,由ms word创建; (2)用word软件打开书签看不到. 每一个新的word文档本来没有书签,隐藏书签是由Ms Word自动创建并隐藏,Asponse Word在生成文档时不会主动创建这类书签,但是支持插入隐藏书签,只需要在书签名称并添加一个下划线。 书签隐藏 书签隐藏,这里的隐藏是一个动词,即不显示书签,直接在word中可以设置。 参考 https://forum.aspose.com/t/bookmarkcollection-count/62363/2
ArcGIS工具箱是一个非常经典的工具应用,它就像一个做过很多项目、技术不断丰富的大神。以至于,现在ESIR与ITT公司合作,搞得新版的ENVI都有工具箱这样的界面了。 抛出异常 并不是每一个问题都能找到答案,并不是每一个工具都能执行成功,有时,在执行工具时会出现"后台服务器抛出异常"的报错,错误代码999998,001143等。 解决方法 像这类问题,不一定是数据的问题,尝试将地理处理选项中,关闭后台处理,再次执行工具。 前台与后台处理 ArcMap帮助解释了前后的差别: 如果选中启用,工具会在后台执行,并且您可在工具执行时继续使用 ArcMap(或其他 ArcGIS 应用程序,例如 ArcGlobe)。文档底部将出现一个进度条显示当前所执行工具的名称。工具执行完毕后,系统托盘中将显示一个弹出通知。可通过移动通知滑块来控制通知消息出现的时间长度,也可通过将滑块移至最左端来禁用消息。 如果未选中启用,工具会在前台执行。当一个工具在前台模式下执行时,您必须先等到工具停止执行,然后才能继续进行其他工作。 后台处理可被视为另一个 ArcMap 会话在计算机上运行,只是 ArcMap 窗口并未打开。这种额外进程(会话)会在工具首次于后台执行时启动,并一直保持到您退出 ArcMap 会话时为止。 实际上,后台处理会启动两个进程。可通过 Windows 任务管理器 观察后台进程。在进程选项卡中,您将看到两个构成后台处理的 RuntimeLocalServer.exe 进程。切勿通过任务管理器结束这些进程,否则可能会导致结果异常。 参考:http://resources.arcgis.com/zh-cn/help/main/10.2/index.html#//00210000003q000000
曾经,遇到过《配置windows失败,还原更新,请勿关机》,可多次尝试都无效。 包括: 1. 安全模式(进不了系统) 2. 带命令的安全模式 3. 最后一次正确的配置 4. 正常启动 5. PE中修复引导项等 最后,搜索并测试通过的方式是: 1. 进入winpe; 2. 打开目录C:\Windows\System32\config\RegBack,复制system文件; 3. 粘贴到C:\Windows\System32\config目录; 4. 不用谢。
在软件系统中,我们经常要输出一些word ,excel,ppt文档,为了输出结果漂亮美观、输出操作方便快捷,通常要制作一些模板文件,通过对模板文件中的关键信息进行修改,就不用管排版、格式等处理了。 在word中,使用非常多的就是书签,替换书签的内容,从而达到快速高效的产出目的。而有人觉得word用书签处理不了表格,于是,我就不信,来测试了一下。 主要目的 如下表格,每一次产出都要得到如下格式的表格,每次红线内的内容不一样,并且需要计算出合计项。 在模板文件中设计的表格如下,表头、首列及合计单元格的样式不同与其他单元格,表格已插入了一个书签,便于查找操作;而且表格数据行有5行(表一共有7行),而实际的数据可能是5行,也可能小于5行(不能高于5行,因为word中只给定了有限的空间位置) 实现步骤 1.在word中最大限度的设计好表格的样式、位置、大小及单元格的字体、风格样式等,保存为模板文件; 2.从数据库中查询数据为datatable,并将列名增加到首行,成为第一列(word中表格的表头); 3.根据书签读取表格; 4.将datatable写入表格; 5.删除空白行; 6.查询是否有合计行,如果有计算合计。 相关代码 这里使用的第三方组件,Aspose.Words。相关操作代码如下: 打开word Document doc = new Document(txtDocPath.Text.Trim()); 根据书签读取表格 Bookmark bm = doc.Range.Bookmarks["书签名"]; table = (Table)bm.BookmarkStart.GetAncestor(NodeType.Table); 读取所有表格 //读取所有表格 NodeCollection tables = doc.GetChildNodes(NodeType.Table, true); for (int i = 0; i < tables.Count; i++) { Table table = (Table)doc.GetChild(NodeType.Table, i, true); } 遍历书签 //读取所有书签 BookmarkCollection bmCollection = doc.Range.Bookmarks; for (int i = 0; i < bmCollection.Count; i++) { Console.WriteLine(bmCollection[i].Name+@":"+bmCollection[i].Text); } 遍历表格 //遍历行列 foreach (Row row in table.Rows) { int rowIndex = table.Rows.IndexOf(row); foreach (Cell cell in row.Cells) { Console.WriteLine(cell.ToString()); } } 更新表格内容 DocumentBuilder builder= new DocumentBuilder(doc); for (int i = 0; i < dt.Rows.Count; i++) { for (int j = 0; j < dt.Columns.Count; j++) { builder.MoveTo(table.Rows[i].Cells[j].FirstParagraph); builder.Write(dt.Rows[i][j].ToString()); } } 保存word doc.Save(txtDocPath.Text.Trim()); 注意事项 去CSDN去下载破解版本的,如果未破解,将会出现红色版权标记。 参考链接 https://forum.aspose.com/t/how-to-find-a-table-present-in-word-document-using-aspose-word/46159 https://forum.aspose.com/t/fill-table-in-word/52564/2 https://docs.aspose.com/dashboard.action https://github.com/asposemarketplace/Aspose_for_OpenXML/wiki/Change-text-in-a-table https://docs.aspose.com/display/wordsnet/Introduction+and+Creating+Tables#IntroductionandCreatingTables-InsertingaCloneofanExistingTable https://forum.aspose.com/t/replace-text-in-table-cell-but-keep-existing-text-format/47251/11
问题描述 近日,发现ArcGIS10.4中存在很多bug,而且费了好多时间去测试它,最终决定改用10.1。在降级程序时遇到许可问题。 重装ArcGIS10.1后,打开工程,所有引用都自动映射,没报任何错误,清理重新生成,无接口等异常。但启动程序时,报错Unlicensed ARC session – terminating! 这是ao输出到控件台上的语句,检查代码许可正常。 系统日志也没有有用的信息。 解决方案 想起了,以前《ArcEngine中License权限等级更改的问题》中遇到的问题。 AO控件在初始化会读取OcxState对象,而修改版本后,控件版本自动修改,而OcxState值固定不变(窗体资源文件resx代码中),所以报错,直接删除即可。 this.axPageLayoutControl1.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("axPageLayoutControl1.OcxState"))); 参考 http://zhihu.esrichina.com.cn/article/647 https://wenku.baidu.com/view/7dcdcbe8856a561252d36fee
DEM是GIS常用的一种数据,用来做各种分析、展示等,十分有用!它实质上就是一个栅格,只不过这个栅格值表示高程,常用的格式是tif,grid等。今天听到了另外一种说法:*.dem是最常见到的DEM的格式,*.dem有两种格式,NSDTF和USGS。 USGS格式 USGS-DEM(USGS是美国地质调查局(U.S.Geological Survey)的英文缩写,是一种公开格式的DEM数据格式标准,使用范围较广格式的。。通过ArcGIS可以直接读取,在ArcGIS中的ArcToolBox中的"转换工具"---"转到栅格"----"DEM转到栅格"工具直接将USGS格式的DEM转为栅格DEM。 这是老美的格式,又是老美的软件,当然支持直接读取了。 NSDTF格式 我们购买的DEM很多都是NSDTF-DEM格式,NSDTF-DEM是中华人民共和国国家标准地球空间数据交换格式,是属于格网数据交换格式,一般的GIS软件都不支持这种格式。 由于栅格单元数据值记录方式基本一样,主要是头文件信息不同。如ArcGIS GRID数据的文件头按如下方式记录相关信息: ncols 列数 nrows 行数 xllcorner 左上角原点X坐标 yllcorner 左上角原点Y坐标 cellsize 栅格单元格大小 NODATA_value NODATA的值 我们可以将头文件改成grid数据的格式,如下: 将后缀名改成grd,直接在ArcMap中打开;或者使用ASCII 转栅格,转换一次也可获取栅格数据。
错误描述 连接Oracle始终报这个错误: {System.Exception: OCIEnvCreate 失败,返回代码为 -1,但错误消息文本不可用 本机环境是oracle10g客户端,以前也连过,但现在出了问题,同样的程序在其他电脑上没问题,所以排除代码、连接字符串等问题,本机上的数据库管理工具也能正常执行相关SQL语句。 网上一般说有如下几种情况会导致此报错: (1)客户机上未安装oracle客户端。我本机可以安装了的,且以前连接正常,排除; (2)权限问题,需要管理身份运行VS或程序。尝试无效,排除(以前也遇到过此问题,并按此方法解决); (3)oracle主目录的安全属性,给用户赋予和管理员一样的权利,排除; (4)程序的生成目标平台为x86,改成any cpu 就可以,排除。 …… 解决方法 真是试了各种方法都不成功,这样浪费时间还不如使用重装重启大法!卸载10g,重新装上11g,一切OK!
异常 数据库由Powerdesigner设计,格式为Oracle10g,由Powerdesigner生成的数据库并没报什么异常,使用navicat也能正常操作,而使用PLSQL Developer去出现"ORA-00942: 表或视图不存在 "的错误。 原由 1、Oracle 是大小写敏感的,即如图所示,tc_bookMARK与TC_BOOKMARK是可以同时存在的 2、我们在使用Powerdesigner生成数据库库时,默认为将所有的表名,字段名转成大写; 3、Oracle 同样支持"" 语法,将表名或字段名加上""后,Oracle不会将其转换成大写; select * FROM tc_BOOKMARK;--查询的TC_BOOKMARK select * FROM "tc_bookMARK"; -- 查询表tc_bookMARK select * FROM "Tc_BOOKMARK";--查询出错 4.也就是说,用Powerdesigner生成的数据库是表名是小写,而PLSQL查询时,表名不会加引号,查询时转为大写,所以小写的表名就查不到;但navicat默认就加了引号,所以查得到。 解决 在PowerDesiger的Database 菜单下的Edit current DBMS-Script->Sql->Forma-CaseSensitivityUsingQuote,它的comment为"Determines if the case sensitivity for identifiers is managed using double quotes",选择"否";这样生成的数据库表名和字段名都会是大写。
可使用数据库管理系统 (DBMS) 的结构化查询语言 (SQL)、数据类型和表格式来处理地理数据库或安装了 ST_Geometry 类型的数据库中所存储的信息。 例如,在ArcMap中我们使用"相交"工具进行空间操作;ArcObject接口里用ITopologicalOperator.Intersect来实现。现在,我们可以脱离接口,实现数据的空间操作,从性能和架构的角度来说,这值得深入研究。在Sql Server中用STIntersects方法,在Oracle中使用SDO_FILTER(注意这里不叫SDO_Intersects哈),在ArcGIS中用sde.st_intersects方法。 Sql Server方法:https://msdn.microsoft.com/zh-CN/library/bb933960.aspx Oracle方法:https://docs.oracle.com/cd/B28359_01/appdev.111/b28400/sdo_operat.htm#SPATL110 ArcGIS方法:http://resources.arcgis.com/zh-cn/help/main/10.1/index.html#/na/006z000000ws000000 为了方便重用,我们使用了ArcGIS中的方法。但遇到一个配置错误! 错误 执行ST_Geometry "ERROR at line 1: ORA-28595: Extproc agent : Invalid DLL Path ORA-06512: at "SDE.ST_GEOMETRY_SHAPELIB_PKG", line 170 ORA-06512: at "SDE.ST_RELATION_OPERATORS", line 303" 即语法没有错误,只是不能调用DLL,在 Oracle 中,ST_Geometry 和 ST_Raster 的 SQL 函数使用通过 Oracle 的外部过程代理(即 extproc)访问的共享库。Oracle 必须能够访问这些库。因此,这些库必须存在于 Oracle 服务器上,并且必须通过 Oracle 的外部过程框架调用它们。 显示是没找到这个些dll,按照官网的解决方法,总是启动不了oracle监听服务。 配置 Oracle extproc 以使用 SQL 访问地理数据库 解决 1.找到dll,其实它依靠两个dll,一是st_shapelib.dll,ST_Geometry的库,二是libst_raster_ora.dll,ST_Raster的库。它们的路径位于: ArcSDE下的路径: C:\Program Files (x86)\ArcGIS\ArcSDE\ora10gexe\bin\st_shapelib.dll; C:\Program Files (x86)\ArcGIS\ArcSDE\ora10gexe\bin\libst_raster_ora.dll ArcDeskop下的路径 D:\Program Files\ArcGIS\Desktop10.4\DatabaseSupport\Oracle\Windows64\st_shapelib.dll; D:\Program Files\ArcGIS\Desktop10.4\DatabaseSupport\Oracle\Windows64\ libst_raster_ora.dll; 2.新建环境变量:新建一个系统环境变量 变量名:EXTPROC_DLLS 变量值:两个dll的全路径,中间用分号隔开,如C:\sdedll\st_shapelib.dll;C:\sdedll\libst_raster_ora.dll (这里是将两个dll添加到新建的sdedll文件夹中的,因为服务器上可能没有安装sde服务器) 3.重启服务:重新启动oracle监听服务OracleOraDb10g_home1TNSListener 参考 http://support.esri.com/technical-article/000009074 http://p385579058.iteye.com/blog/1042187 http://resources.arcgis.com/zh-cn/help/main/10.1/index.html#/na/006z0000001w000000/
之前同事用PowerDesigner 建立数据模型后,生成到数据库中,没有注释。这导致数据库使用起来不是很方便,特别是对数据表结构不熟悉的同事。 其实,可以添加注释(并且可以逆向,即从数据库中反向更新到PDM中),方法也很简单: 在任意表上右键-属性-Columns,面板工具栏中选择Cutomize Columns and Filter(快捷键Ctrl+U),弹出对话框,勾选Comment即可。
需求 我们很难捉摸用户的思维,即使使用非常正式的文档规范某些数据的定义、结果的标准等,也不能抵挡住用户不断变化的需求,但他们有个万变不离的东西——你做这个东西要是万能的,即输入参数类型、个数等发生改变,也得生成出正确的结果。 在编程计算中,很多时候涉及一些公式,用户要求不但能够调整系数、还要能够调整理公式的结构。例如,将2+3-5调整理成2+3*5。我之前使用的解决方案是写一个类,换公式了,就继承它,写一个子类,代码中用反射去调用这个子类,可以解决问题。但是有些麻烦。 解决方案 现决定,用动态来解析公式的方法来解决这个问题。由于时间比较紧张,找到了一个开源的类库ExpressionEvaluator,没有深入研究,不过已经解决了我们的问题。 官网:http://csharpeval.codeplex.com/ 使用示例 1.在官网下载ExpressionEvaluator. dll(2.0.4版),在网上搜索antlr3.runtime.dll(3.5.0.2版) 2.项目中引用这两个dll; 3.第一种情况,不需要变量,直接是常规的数字、符号、系统函数(Math类)的组合。 /// <summary> /// 简单数值计算 /// </summary> /// <param name="str">纯表达式</param> /// <returns>返回值</returns> public static string SimpleEval(string str) { var types = new TypeRegistry(); types.RegisterDefaultTypes(); var expression = new CompiledExpression(str) { TypeRegistry = types }; var result = expression.Eval(); Console.WriteLine("简单数值计算: {0}", result); return result.ToString(); } 调用: SimpleEval(this.textBox1.Text.Trim() 结果如下: 4.第二种情况,其中包含了一些变量(这种情况更多),需要将自己的变量写成一个类,然后注册这个类。 类 public class Result { public double Death { get; set; } public double Injury { get; set; } } 方法: /// <summary> /// 变量字段的计算 /// </summary> /// <param name="str"></param> /// <param name="type"></param> /// <returns></returns> public static string FieldEval(string str,Object type) { //注册 var reg = new TypeRegistry(); reg.RegisterSymbol("Result", type); //如果要使用Math函数,还就注册这个 //reg.RegisterDefaultTypes(); //编译 var p = new CompiledExpression(str) { TypeRegistry = reg }; p.Compile(); //计算 Console.WriteLine("变量字段计算: {0}", p.Eval()); return p.Eval().ToString(); } 调用: string[] strFields = new string[] { "Death","Injury"}; string exp = this.textBox2.Text.Trim(); for (int i = 0; i < strFields.Length;i++ ) { if (exp.Contains(strFields[i])) { exp= exp.Replace(strFields[i], "Result." + strFields[i]); } } Result re = new Result() { Death = Convert.ToDouble(this.txtDeath.Text.Trim() + ""), Injury = Convert.ToDouble(this.txtInjury.Text.Trim() + "") }; ExpEvaluator.FieldEval(exp,re) 结果: 当然,还有其他内容需要研究、学习! 参考 Github地址: https://github.com/RupertAvery/csharpeval 调用系统的Math函数: http://csharpeval.codeplex.com/discussions/585878
一般情况 下,只要在连接远程桌面时勾选了本地设备和资源中的粘贴板,就可以在远程桌面与本机进行交互复制粘贴。 可有的时候不凑效,用起来非常不方便 。原因是rdpclip.exe出了问题。解决方法是: 直接结束远程机上的rdpclip.exe进程(如果有) 然后,在运行中,重新打开一个rdpclip.exe
现在甲方采购的ArcGIS Desktop正版,一般都是较高的版本(10.4或10.4.1),但10.4经常报出C++ Runtime R6034错误。 问题 "Microsoft Visual C++ Runtime Library" Runtime Error! Program: C... R6034 An application has made an attempt to load the C runtime library incorrectly. Please contact the application's support team for more information. 桌面端解决 官方说这确实是一个bug,下载补丁程序,安装后即可解决: https://soft.ctfile.com/info/azP392513 开发时解决 但开发时,在调用GP时仍然会弹出此窗;经测试,需要修改配置文件解决,具体方法如下: 新建一个应用程序清单文件: 在其中加入如下代码: <!--防止弹出Runtime Error R6034错误窗体--> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.vc90.CRT" version="9.0.21022.8" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"/> </dependentAssembly> </dependency> 另外,调用GP时有时会报如下错误,但不影响结果,解决方法是在arcgis安装目录下拷备GpMetadataFunctions.dll到程序目录,然后引用即可: "未能加载文件或程序集"GpMetadataFunctions, Version=10.4.0.0, Culture=neutral, PublicKeyToken=8fc3cc631e44ad86"或它的某一个依赖项。系统找不到指定的文件"。 参考 https://support.esri.com/technical-article/000013127
晚上收假回来调一Add-In程序,遇到编译错误:"ValidateAddInXMLTask"任务意外失败。 error MSB4018: System.IO.FileNotFoundException: 未能加载文件或程序集"Microsoft.VisualStudio.Shell.12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"或它的某一个依赖项。系统找不到指定的文件。 error MSB4018: 文件名:"Microsoft.VisualStudio.Shell.12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 官网解释说,AddIn依赖于Microsoft Visual Studio Shell 12.0 library这个类库,而VS2015是不带这个类库的,需要下载插件 Microsoft Visual Studio 2013 Shell,安装上就OK了,插件下载地址: https://www.microsoft.com/en-us/download/details.aspx?id=40764 参考:http://support.esri.com/technical-article/000012659
ArcGIS二次开发和ArcGIS桌面应用中,许可是一个老生常谈的问题。以前也小结过一些经验。参考: http://www.cnblogs.com/liweis/p/4185311.html 问题描述 直接来先看报错的代码: 这是很普通的连接Sql Server SDE的代码操作, /// <summary> /// 获取工作空间 public static IWorkspace GetWorkspace(IPropertySet pPropertySet) { if (pPropertySet == null) { return null; } // 创建 SDE 工作空间工厂,并打开工作空间 //Type factoryType = Type.GetTypeFromProgID("esriDataSourcesGDB.SdeWorkspaceFactory"); //var workspaceFactory = (IWorkspaceFactory)Activator.CreateInstance(factoryType); IWorkspaceFactory workspaceFactory = new SdeWorkspaceFactoryClass(); IWorkspace workspace = workspaceFactory.Open(pPropertySet, 0); return workspace; } /// <summary> /// 转换成属性设置 /// </summary> public static IPropertySet GePropertySet() { IPropertySet pPropertySet = new PropertySetClass(); pPropertySet.SetProperty("SERVER", "服务器IP"); pPropertySet.SetProperty("INSTANCE", string.Format("sde:SQLServer:{0}", "服务器IP")); pPropertySet.SetProperty("DATABASE", "数据库名称"); pPropertySet.SetProperty("USER", "sa"); pPropertySet.SetProperty("PASSWORD", "密码"); //pPropertySet.SetProperty("VERSION", "SDE.DEFAULT"); pPropertySet.SetProperty("AUTHENTICATION_MODE", "DBMS"); return pPropertySet; } 经测试SDE连接参数正常,可在Open方法时,报错"The Product License has not been initialized"(产品许可未初始化),程序是用代码初始化许可的,运行绑定Desktop,产品许可类别是Advanced(高级版) 解决问题 在相同的环境下,另外一套程序又可以,比较两者的不同,似乎与MapControl控件存在某种关联,经反复测试,得出以下结果:使用AO的sample作对比,只要是先拖放MapControl控件,代码就不会报许可问题(先拖放许可、或不拖MapControl都不行)。 暂时是解决了这个问题,我们姑且认为是10.4的bug,虽然没有使用MapControl,但也拖放了这个控件(隐藏)。 我一直在想,既然它都能报这个错,肯定不是什么bug,而不是我们不知道错在哪里,经过一番测试,最终于不是通过许可方式解决它了。即在代码初始化许可是除了添加Advanced许可,还添加了ArcServer许可。 参考文章 http://gis.stackexchange.com/questions/2090/product-license-not-initialized-error-when-trying-to-open-an-sde-connection-in-a http://resources.arcgis.com/en/help/arcobjects-net/componenthelp/index.html#/LicenseInitializer/004800000005000000/
Navicat Premium作为一种通用数据管理工具,非常受迎接。最近,又遇到一个小问题。即为了实现自增,需要设置主键标识,而在Navicat中发现其为灰色,不可用。 原因:Navicat不允许设置或修改已存在列的标识,只能在新建列时选择是否标识。 当然,可以在sql server management studio中对已有的表标识进行修改。
感谢支持,欢迎联系我,进行技术交流! 问题咨询:417633743(QQ群) 技术合作:2496927249
一、软件配置 要从 ArcMap 连接至 SQL Server 中的数据库或地理数据库,请在 ArcMap 计算机上安装 SQL Server native client 或 Microsoft ODBC driver 11 for SQL Server 二、手动链接 打开Catalog,选择数据库连接下的添加数据库连接。 在弹出的设置窗口中,设置如下参数: (1)数据库平台,选择SQL Server; (2)实例,直接填写数据库所在的服务器IP地址和端口号(没有像oralce那样复杂): 如果是本机,且是默认端口,填写localhost; 如果是本机,且是默认端口,填写localhost:端口号; 如果是远程,且是默认端口,填写远程IP; 如果是远程,是非默认端口,填写远程IP:端口号; (3)身份验证类型:如果不是Windows验证,则需要输入相应用户名和密码。 (4)选择需要连接的数库,确定。 官方帮助:http://desktop.arcgis.com/zh-cn/arcmap/latest/manage-data/databases/connect-sqlserver.htm 三、代码链接
个人不太喜欢XML,于是找了JSON来做配置,JSON虽然有很多引号,但这种key-value的形式,非常符合我的思维,就像是一个萝卜一个坑。最近在读写JSON文件,需要注意两个问题。 中文乱码 直接像读txt一样,读取JSON配置文件 //最初的写法 File.ReadAllText(jsonPath); //防止中文乱码 File.ReadAllText(jsonPath,Encoding.Default); 写入格式 将json转成字符串写入json文件时,发现没有任何换行、空格、Tab,特别不利于查看,尤其是当数据比较多、分级多较复杂的时候。 所以,在写入之前,应当作一下小小的处理,效果如下: 格式化JSON示例: /// <summary> /// 格式化JSON字符串 /// </summary> /// <param name="str">输入字符串</param> /// <returns>输出字符串</returns> public static string FormatJsonStr(string str) { JsonSerializer serializer = new JsonSerializer(); TextReader tr = new StringReader(str); JsonTextReader jtr = new JsonTextReader(tr); object obj = serializer.Deserialize(jtr); if (obj != null) { StringWriter textWriter = new StringWriter(); JsonTextWriter jsonWriter = new JsonTextWriter(textWriter) { Formatting = Formatting.Indented, Indentation = 4, IndentChar = ' ' }; serializer.Serialize(jsonWriter, obj); return textWriter.ToString(); } else { return str; } } 读写JSON示例: /// <summary> /// 读取JSON文件 /// </summary> /// <param name="jsonPath">json文件路径</param> /// <returns>json字符串</returns> public static string ReadJsonString(string jsonPath) { if (!File.Exists(jsonPath)) { LogHelper.Error("配置文件不存在:"+ jsonPath); return string.Empty; } return File.ReadAllText(jsonPath,Encoding.Default); } /// <summary> ///读取JSON文件 /// </summary> /// <param name="jsonPath">json文件路径</param> /// <returns>JObject对象</returns> public static JObject ReadJsonObj(string jsonPath) { string json = ReadJsonString(jsonPath); JObject jsonObj = null; if (!string.IsNullOrEmpty(json)) { jsonObj=(JObject)JsonConvert.DeserializeObject(json); } return jsonObj; } #region 写入JSON /// <summary> /// 写入JSON /// </summary> /// <returns></returns> public static bool Write(string jsonStr,string jsonPath) { try { System.IO.File.WriteAllText(jsonPath, jsonStr, Encoding.Default); return true; } catch (System.Exception ex) { LogHelper.Error("保存结果异常" + ex.Message + ex.StackTrace); return false; } } #endregion
一、SHP文件 Shapefile文件(简称SHP)作为ESRI一种经典的数据格式,被很多其他软件所支持,如CAD、MapGIS等,虽然也有一些限制(如无法进行拓扑分析、字段长度为10个字符等),但其仍然是广泛使用的空间数据格式。 用得多了,有时也会遇到出错的时候。 Error: Number of shapes does not match number of table records。 形状数与表记录数不一致。 二、损坏原因 如ESRI帮助文档上说常见损坏原因,并提出了解决方案: (1)保存编辑内容时计算机崩溃 这是最常见的现象。由于软件版本不稳定或数据量大或突然断点很可能造成编辑shp文件形成损坏。 (2)添加非法几何 任何数据库都可以对其数据进行结构定义。如果有非法的几何 将导致shp文件损坏。例如,蝴蝶结。 (3)使用其他软件修改属性表 SHP文件是由多个文件组成,其中记录属性的dbf文件是不可缺少的,但如果用其他软件编辑过(例如,Microsoft Excel)也会造成文件损坏。 三、修复方法 下面是官网给出的修复方法,非常全面: (1) 使用ArcToolBox > Data Management Tools > Features中的Check Geometry工具。此工具执行时数据的问题会被报告,或存在于输出表中。在执行后查看输出表。如果表是空的,证明没有找到坏的几何关系。如果报告有坏的几何关系,使用下面的Repair Geometry工具。 (2) 运行ArcToolBox > Data Management Tools > Features中的Repair Geometry工具。在运行后,返回再次运行Check Geometry工具以确定所有的损坏要素都被移除。依据需要往复运行Check Geometry/Repair Geometry。 (3) 导出数据岛geodatabase中,然后把他们复制到新shapefile中。 (4) 如果数据在网络驱动器上,把它复制到本地磁盘上。如果数据在本地驱动器上,把它复制到主驱动器的根目录下:例如,C:\ (5) 检查属性表中的非法字段名。字段名最多只能有10个字符,且以字母开头,不能包含空格或特殊字符,除了下划线以外。 (6) 除了下划线以外,文件名不能包含空格或特殊字符。一般来说,包含有空格的shapefile文件名可以在ArcGIS 9.x中起作用,然而为了测试请重命名shapefile是指不含空格。 (7) 在Windows资源管理器中删除所有索引(空间、属性和地理编码),投影和元数据文件。也就是删除所有的文件仅保留.shp,.dbf,.shx文件。注意在改动文件前做好备份。 (8) 尝试在其他电脑上操作这些shapefile (9) 在其他软件中打开shapefile,最好是ArcView 3.x。如果能在ArcView 3.x中打开,尝试保存至新的shapefile,Theme > Convert To Shapefile。 (10)或者使用simple data loader或者将数据复制到ArcMap编辑进程中,将数据复制到新的要素类中。如果你的shapefile不包含很多的要素,可以一次拷贝,否则分组拷贝可能损坏的数据。当拷贝过程结束后,保存编辑,查看问题是否以去除。 (11)如果数据仍未被修复,并且Check Geometry/Repair Geometry工具报告了要素ID和损坏记录,请手动清除这些损坏的数据。 (12)在ArcGIS和ArcView 3.x中使用字段计算器计算计算字段值。计算可能停在损坏的记录上。检查损坏损坏的shapefile的属性表并确认。例如,你的shapefile有1000条记录,如果字段计算器在第750条停下来,哪门第750条或751条可能就是损坏的。要删除损坏的条目,打开ArcMap编辑,拷贝除了坏条目以外的所有行至新的shapefile中,或者尝试手动删除损坏条目。 (13)删除除FID,Shape外的所有字段,并保留一个属性字段(shapefile必须要有一个属性字段)。如果问题依然存在,添加一个新字符串字段,并删除保留的属性字段。如果问题消失,这意味着是那个字段的问题。后面你就知道该怎么做了。 (14)使用Shapefile Repaier Utility (15)使用Shapefile Repair Utility(不要与Shapefile Repaier Utility弄混) (16)使用FunkFinder (17)下载并运行CleanShapefile utility(只针对ArcGIS 8.3) 四、实例 先尝试使用"检查几何",无效,因为根本就打不开,所以没法检查。 再尝试复制一下数据: 问题出来了,形状数与表记录数不一致!(注意与多部件是有区别的)。可以造成的原因是编辑异常或通过其他方式修改过dbf文件。 最后shapech工具修复了SHP文件。 操作方法:先备份数据,然后加载Shapefile数据,读取数据信息,修复shx,再修复dbf。
Python作为一门强大、开源的脚本语言也被ArcGIS所使用,但其开发编程环境(IDE)实现是太不方便了,VS2015终于集成了python开发,所以,也想对python多作一些了解和使用。 但今天重新安装VS2015中,不能修改安装路径,固态硬盘空间太小,所以不能装在C盘啊。 其中,原因是以前安装过VS2015没有卸载干净,解决方法是:下载Visual Studio Uninstaller卸载完全(要以管理员运行哈) 下载地址:https://gisweis.ctfile.com/fs/2ka167542634 现在就可以修改路径,并安装Python Tools for vs了。
CAD在测绘领域运用广泛,所以,现在有很多成果都是CAD格式,但其自身存在很多局限性,需将其转为支持更加广泛,存储更加完善的 SHP文件。ArcGIS中直接提供相关转换工具,但不能转换Xdata,ArcObject似乎也没相关的操作接口。 通常,以前我的解决方法有两个:一是使用FME,FME是万能的空间数据转换器,支持的格式广泛,用它可以轻松将CAD扩展属性直接转到shp文件的属性表,以前,我通常用它来将南方CASS的扩展属性转换SHP属性;二是使用CAD.net二次开发组件,也可以实现读取和编辑。但这都有一个缺撼,就是不能脱离CAD或ArcGIS环境。 现在找到了一种解决方案,就是Teigha.Net,需要要的可以尝试一下。先用它将xdata读取出来,然后Shapelib等将其他写到shp文件的属性中。
都不记得哪年开始盛行起网盘来了:当时还不需要手机验证注册,当时免费的空间很少很小,当时流行华为、155等网盘;而如今,各大网盘纷纷关闭,前几个月我存储了很多文件资料的360也开始关闭了,国内网盘要走到终点了。下载了资料,删除了网盘客户端,可还剩下设备驱动图标: 铲除方法: 打开注册表HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\ 把 {01249E9F-88FF-45d5-82DB-A1BEE06E123C} 目录整个删掉即可去除我的电脑中的那个"360云盘"。
Windows控件确实有点丑,一般刚学习VS编程或者临时创建测试程序时才会使用;第三方控件,增强了一些功能,美化了控件,现在比较流行;再高级一点,就是使用WPF,看效果还不错,估计以后会成为C/S的主流。 .NET 桌面的第三方控件比较多,其中有代表性有DevExpress、Infragistics、ComponentOne、Dotnetbar等,现在项目和得比较多的是DevExpress,下面是在官网上截取的一张图,看起来,很高大上。 在使用DevExpress控件的时候,支行发布后的程序会出现一个对话框,提示winforms controls 使用的Dxperience订阅过期的版本。这个licenses.licx是随窗体而产生的,让人很是不适应。 解决方法:在licenses.licx上右键,选择属性(Properties )修改生成操作(Build Action)为"无"即可。
简介 ET GeoWizards是ET SpatialTechniques一套基于ArcGIS的工具集,从2002年开始,其设计的初衷: (1)让ArcView用户拥有ArcEditor甚至ArcInfo许可的功能,降低成本; (2)简化ArcGIS数据操作和空间分析流程,让非专业人员高效完成相关操作。 其产品还包括ET GeoTools、ET GeoWizards、ET GeoTools和一些免费工具或代码,如字段计算器的cal文件,非常实用于数据库建设。 本 工具适用于两方面的同学:一是非GIS专业,但从事与GIS相关的工作,如地质、城规等,利用此工具可简化复杂问题的实现; 二是对于GIS开发人员,可以从中看别人是怎么写GIS常规的操作的(虽然有些不那啥)。 官网 http://www.ian-ko.com/ 下载 安装包可去官网下载,Ghostfish大神对此进行了破解,他公布了11.2的注册机 (目前最新的是11.3版) 下载链接:http://download.csdn.net/detail/ghostowner/8265957 我仅对此进行了爆破,一开始想对它进行汉化,但没我想像得那么简单。 其实汉化的工具量非常大,不光是把界面汉化了就行,有可能还有改一些代码,例如代码中用了up 和down这两个界面文本,而汉化后它找不到了,功能就会出问题。与其汉化了一一测试一次,还不如直接去测试它的功能,然后整理成文档。加之,这些界面操作的 单词本不复杂,于是,我决定放弃了汉化。 使用 国外稍微好一点的对外发布的软件都是有详细的帮助文档的,本软件也不例外。不像国内做的,帮助文档都是临时叫文档人员连夜赶的,篇幅倒是长,尽是些截图。具体使用的问题,以后有时间再来总结吧! 在线帮助:http://www.ian-ko.com/ET_GeoWizards/UserGuide/et_geowizards_userguide.htm
从接触ArcGIS9.2到 10.4,在不断升级的 过程中,既给我们带来了很多惊喜,也带来一些麻烦,因为ArcGIS版本不兼容。出于体验,安装了ArcGIS Desktop10.4,AO也得升到10.4,而我习惯VS2010编程(虽然都出到2017了),在安装AO的过程中出现如下提示: 它怎么知道我没安装VS2013?肯定是检查我的注册表信息,找到注册表信息,写入一些信息。具体方法如下: (1)打开注册表位置:HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\VisualStudio (2)新建项12.0(如果没有),新建两个字符串值,并写入值,如下: InstallDir C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\ ShellFolder C:\Program Files (x86)\Microsoft Visual Studio 12.0\ 其中12是VS的版本,其他版本如下图所示: 序号 名称 版本号 1 6.0 6 2 VS2002 7 3 VS2003 7.1 4 VS2005 8 5 VS2008 9 6 VS2010 10 7 VS2012 11 8 VS2013 12 9 VS2014 13 10 VS2015 14 现在再去安装就没有问题了。 当然,虽然是能安装上,但VS新建模板向导等可能会出些问题,如果要解决,可以耐心读一下这篇文章: https://geonet.esri.com/thread/120636
一直以来,ArcGIS10.1 的VBA安装后,菜单栏里也没相关菜单,听说是许可的问题,直到遇到这个问题才知道真正的原因。 由于项目需要使用了ArcGIS10.0, 不知道操作了什么,打开ArcMap就报这个错: 于是尝试去百度上搜索VBA安装包,居然没找到,然后又去桌面安装包里去找,找到了SDK VBA,安上就对了。 安装好这个VBA菜单也可以看得到了。 参考: http://blog.csdn.net/sydbc/article/details/17173833
SDE数据库用来共享、交互数据,比较好用,但经常被B/S那边锁定图层 ,导致不能编辑图层。 查看锁定是谁锁定了用户的命令: sdemon -o info -I users -i esri_sde 解决所有锁定的命令: sdemon -o kill -t all -p sde 再到Orcal中去查,就没有被锁定的记录了。
Sanboxie, 即沙盘,引用官方解释:电脑就像一张纸,程序的运行与改动,就像将字写在纸上。而Sandboxie就相当于在纸上放了块玻璃,程序的运行与改动就像写在了那块玻璃上,除去玻璃,纸上还是一点改变都没有的。它的作用就像模拟器一样,功效大得很,下面分享一下安装过程。 先下载5.14版本的安装包和破解文件,然后按下面的图解步骤安装: 安装Sanboxie5.14,64位版本; 接受许可 安装路径这里默认选在C盘,也可以在其他盘 安装到这个位置,不要点击下一步 先去替换sys文件,替换完了再点击下一步: 确认 安装成功后,关闭,准备破解。 获取版本,计算机器码,选择安装路径,输入注册期限,开始注册。 注册信息 注册成功!
在十年前,我还在上初中,班上只有极少数的富二代用得起手机;几年后诺基亚、摩托罗拉、三星手机开始盛行;近些年,安卓、苹果系统手机占据了基本整个市场,WIFI出变得越来越重要。 Wifi万能钥匙数据库存储了大量的密码信息,让我们到城市的所有地方,都可以蹭到WIFI, Wifi万能钥匙只能分享,不能查看密码。 有时电脑需要链接,可能通过小米手机的分享密码功能、其他密码查看APP(基本需要Root)等方式来查看分享密码。但这些都不是万能的,最好的查看密码的方式是通过备份文件来查看,只需要手机,没有太多限制。下面是操作方法: 1.在设置中找到备份相关的功能。 2.选择本地备份。 只需选择备份WIFI相关的选项。 3.备份成功。 4.找到备份的文件(不同的手机可能在不同的位置) 5.打开备份文件,如果打不开,将后缀名改为txt。 6.这样就可以看到WIFI的SID和密码了。
以前出遇到过在安装ArcGIS软件的时候出现1402错误,错误原因是因为权限不足,具体是什么造成权限不足还不清楚,估计是安装了什么软件后造成。 错误信息 解决方法 找到相应的注册表,在项上右键设置权限为当前管理员用户 如果有问题的地方比较多,可以使registry workshop作为辅助操作工具。 颜色为红色的项目,表示权限有问题。 但有时修改权限保存并不成功,报错:拒绝访问。 解决方法是在高级安全设置中修改所有者为管理员账户。 修改后的效果如下,如果修改的量大,建议放弃,准备重装系统!
在制作专题图的过程中,不但要有地理要素表示空间位置,经常还要在图的周围制作一些表格数据。这里对ArcMap中的插入方法进行总结。 方法一:插入对象 利用菜单中的"插入"-"对象"可向地图添加几乎任何类型的数据。官方帮助说明 同时还可以使用数据所属的应用程序对数据进行编辑。 方法二:属性表添加到布局 创建布局时,可显示它的属性表,以帮助您描述地图上显示的要素。操作方法是在属性表的选项中,选择"将表添加到布局视图",需要注意的问题是,插入后的结果是一张图片,只能调整大小,其他的调整需要在添加前设置。官方帮助说明 方法三:ESRI Producting Mapping 利用ESRI Producting Mapping扩展(需要安装相应的组件),进行插入表格;安装后,在插入菜单中将会用graphic table element选项,参考链接 按照向导进行一步一步设置表格属性,插入后也可调整其他属性。 下面是一个简单示例,功能还算比较强大,例如,它可以动态只显示当前范围的要素属性。
提到坐标系统,大家多少能明白一些,但在运用时,有些朋友搞得不是非常清楚,以后专门来总结。在实地生产项目中,使用较多的2000中国大地坐标系(CGCS2000)、1980西安坐标系、1954北京坐标系统、WGS84坐标系(GPS数据所采用的坐标系统),在编程中也会遇到不同坐标系、不同的投影方式、不同的投影分带,需要进行转换、投影等,所以有必要认识一下WKID。 一、什么是WKID 第一次遇到WKID是遥远的大三,学WebGIS写Flex时, WKID的英文全称是Well Known ID,即众所周知的编号。这个编号是大家坐下来一起讨论、约定和认同的,具体有唯一性。众多的坐标系统有了自己的WKID,就像每个人都有自己的身份证号一样,从出生就定了,即使是名字改了,还是可 能通过身份证号确定,这为空间数据的使用、转换、共享等起到关键作用。 坐标系统的WKID示例: WKID 4508 名称 CGCS2000_GK_CM_111E 参数 PROJCS["CGCS2000_GK_CM_111E",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",111.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]] 二、使用方法 提到坐标,要注意两个版本上的区别: (1)在Desktop10.0及以前的版本中,坐标文件是以prj文件存在的;自10.1版本起,坐标文件存储在projection engine library (pe.dll)中,从而可以提高读取效率; (2)我们常用的CGCS2000在10.0中只有地理坐标文件,没有投影坐标文件,如果要使用,则需制作及收藏。 在AE中将地理坐标投影后求长度(或平面坐标,或面积)的示例代码如下: /// <summary> /// 获取投影长度 /// </summary> /// <param name="pGeometry">几何图层</param> /// <returns>长度(米)</returns> public static double GetLengh(IGeometry pGeometry) { ISpatialReferenceFactory srFactory = new SpatialReferenceEnvironmentClass(); //4508:CGCS2000_GK_CM_111E ISpatialReference pSpatialReference = srFactory.CreateProjectedCoordinateSystem(4508); pGeometry.Project(pSpatialReference); IPolyline polyline = pGeometry as IPolyline; if (polyline != null) return polyline.Length; else return 0; } 三、查询方式 WKID这么种,要用的时候去哪里查?这提供三个 位置: 1.ESRI官网 ArcGIS REST API版本 http://resources.arcgis.com/en/help/arcgis-rest-api/index.html#/Geographic_coordinate_systems/02r300000105000000/ javascript版本 https://developers.arcgis.com/javascript/3/jshelp/gcs.htm https://developers.arcgis.com/javascript/3/jshelp/pcs.htm 9.3版本:9.3版本没有CGS2000,所以要不去这里查了。 http://resources.esri.com/help/9.3/arcgisserver/apis/rest/gcs.html http://resources.esri.com/help/9.3/arcgisserver/apis/rest/pcs.html 2.其他网站 http://spatialreference.org/ref/ 3.开发文档 在官方SDK帮助文档可以查到枚举类型,例如投影坐标枚举esriSRProjCSType包含1442个WKID,esriSRProjCS4Type包含1224个WKID. 4.本文 本人整理了将官网的整理Excel方便查询,下面附表是其中中国常用的坐标系统及WKID 参考 https://geonet.esri.com/thread/10174 http://gis.stackexchange.com/questions/3903/wkid-well-known-id-for-national-projection-for-arcgis-rest-api http://blog.csdn.net/kikitamoon/article/details/8833000 附表 下面是我国常用的地理和投影坐标系的WKID: 类别 WKID 名称 地理坐标 4214 GCS_Beijing_1954 地理坐标 4326 GCS_WGS_1984 地理坐标 4490 GCS_China_Geodetic_Coordinate_System_2000 地理坐标 4555 GCS_New_Beijing 地理坐标 4610 GCS_Xian_1980 投影坐标 2327 Xian_1980_GK_Zone_13 投影坐标 2328 Xian_1980_GK_Zone_14 投影坐标 2329 Xian_1980_GK_Zone_15 投影坐标 2330 Xian_1980_GK_Zone_16 投影坐标 2331 Xian_1980_GK_Zone_17 投影坐标 2332 Xian_1980_GK_Zone_18 投影坐标 2333 Xian_1980_GK_Zone_19 投影坐标 2334 Xian_1980_GK_Zone_20 投影坐标 2335 Xian_1980_GK_Zone_21 投影坐标 2336 Xian_1980_GK_Zone_22 投影坐标 2337 Xian_1980_GK_Zone_23 投影坐标 2338 Xian_1980_GK_CM_75E 投影坐标 2339 Xian_1980_GK_CM_81E 投影坐标 2340 Xian_1980_GK_CM_87E 投影坐标 2341 Xian_1980_GK_CM_93E 投影坐标 2342 Xian_1980_GK_CM_99E 投影坐标 2343 Xian_1980_GK_CM_105E 投影坐标 2344 Xian_1980_GK_CM_111E 投影坐标 2345 Xian_1980_GK_CM_117E 投影坐标 2346 Xian_1980_GK_CM_123E 投影坐标 2347 Xian_1980_GK_CM_129E 投影坐标 2348 Xian_1980_GK_CM_135E 投影坐标 2349 Xian_1980_3_Degree_GK_Zone_25 投影坐标 2350 Xian_1980_3_Degree_GK_Zone_26 投影坐标 2351 Xian_1980_3_Degree_GK_Zone_27 投影坐标 2352 Xian_1980_3_Degree_GK_Zone_28 投影坐标 2353 Xian_1980_3_Degree_GK_Zone_29 投影坐标 2354 Xian_1980_3_Degree_GK_Zone_30 投影坐标 2355 Xian_1980_3_Degree_GK_Zone_31 投影坐标 2356 Xian_1980_3_Degree_GK_Zone_32 投影坐标 2357 Xian_1980_3_Degree_GK_Zone_33 投影坐标 2358 Xian_1980_3_Degree_GK_Zone_34 投影坐标 2359 Xian_1980_3_Degree_GK_Zone_35 投影坐标 2360 Xian_1980_3_Degree_GK_Zone_36 投影坐标 2361 Xian_1980_3_Degree_GK_Zone_37 投影坐标 2362 Xian_1980_3_Degree_GK_Zone_38 投影坐标 2363 Xian_1980_3_Degree_GK_Zone_39 投影坐标 2364 Xian_1980_3_Degree_GK_Zone_40 投影坐标 2365 Xian_1980_3_Degree_GK_Zone_41 投影坐标 2366 Xian_1980_3_Degree_GK_Zone_42 投影坐标 2367 Xian_1980_3_Degree_GK_Zone_43 投影坐标 2368 Xian_1980_3_Degree_GK_Zone_44 投影坐标 2369 Xian_1980_3_Degree_GK_Zone_45 投影坐标 2370 Xian_1980_3_Degree_GK_CM_75E 投影坐标 2371 Xian_1980_3_Degree_GK_CM_78E 投影坐标 2372 Xian_1980_3_Degree_GK_CM_81E 投影坐标 2373 Xian_1980_3_Degree_GK_CM_84E 投影坐标 2374 Xian_1980_3_Degree_GK_CM_87E 投影坐标 2375 Xian_1980_3_Degree_GK_CM_90E 投影坐标 2376 Xian_1980_3_Degree_GK_CM_93E 投影坐标 2377 Xian_1980_3_Degree_GK_CM_96E 投影坐标 2378 Xian_1980_3_Degree_GK_CM_99E 投影坐标 2379 Xian_1980_3_Degree_GK_CM_102E 投影坐标 2380 Xian_1980_3_Degree_GK_CM_105E 投影坐标 2381 Xian_1980_3_Degree_GK_CM_108E 投影坐标 2382 Xian_1980_3_Degree_GK_CM_111E 投影坐标 2383 Xian_1980_3_Degree_GK_CM_114E 投影坐标 2384 Xian_1980_3_Degree_GK_CM_117E 投影坐标 2385 Xian_1980_3_Degree_GK_CM_120E 投影坐标 2386 Xian_1980_3_Degree_GK_CM_123E 投影坐标 2387 Xian_1980_3_Degree_GK_CM_126E 投影坐标 2388 Xian_1980_3_Degree_GK_CM_129E 投影坐标 2389 Xian_1980_3_Degree_GK_CM_132E 投影坐标 2390 Xian_1980_3_Degree_GK_CM_135E 投影坐标 2401 Beijing_1954_3_Degree_GK_Zone_25 投影坐标 2402 Beijing_1954_3_Degree_GK_Zone_26 投影坐标 2403 Beijing_1954_3_Degree_GK_Zone_27 投影坐标 2404 Beijing_1954_3_Degree_GK_Zone_28 投影坐标 2405 Beijing_1954_3_Degree_GK_Zone_29 投影坐标 2406 Beijing_1954_3_Degree_GK_Zone_30 投影坐标 2407 Beijing_1954_3_Degree_GK_Zone_31 投影坐标 2408 Beijing_1954_3_Degree_GK_Zone_32 投影坐标 2409 Beijing_1954_3_Degree_GK_Zone_33 投影坐标 2410 Beijing_1954_3_Degree_GK_Zone_34 投影坐标 2411 Beijing_1954_3_Degree_GK_Zone_35 投影坐标 2412 Beijing_1954_3_Degree_GK_Zone_36 投影坐标 2413 Beijing_1954_3_Degree_GK_Zone_37 投影坐标 2414 Beijing_1954_3_Degree_GK_Zone_38 投影坐标 2415 Beijing_1954_3_Degree_GK_Zone_39 投影坐标 2416 Beijing_1954_3_Degree_GK_Zone_40 投影坐标 2417 Beijing_1954_3_Degree_GK_Zone_41 投影坐标 2418 Beijing_1954_3_Degree_GK_Zone_42 投影坐标 2419 Beijing_1954_3_Degree_GK_Zone_43 投影坐标 2420 Beijing_1954_3_Degree_GK_Zone_44 投影坐标 2421 Beijing_1954_3_Degree_GK_Zone_45 投影坐标 2422 Beijing_1954_3_Degree_GK_CM_75E 投影坐标 2423 Beijing_1954_3_Degree_GK_CM_78E 投影坐标 2424 Beijing_1954_3_Degree_GK_CM_81E 投影坐标 2425 Beijing_1954_3_Degree_GK_CM_84E 投影坐标 2426 Beijing_1954_3_Degree_GK_CM_87E 投影坐标 2427 Beijing_1954_3_Degree_GK_CM_90E 投影坐标 2428 Beijing_1954_3_Degree_GK_CM_93E 投影坐标 2429 Beijing_1954_3_Degree_GK_CM_96E 投影坐标 2430 Beijing_1954_3_Degree_GK_CM_99E 投影坐标 2431 Beijing_1954_3_Degree_GK_CM_102E 投影坐标 2432 Beijing_1954_3_Degree_GK_CM_105E 投影坐标 2433 Beijing_1954_3_Degree_GK_CM_108E 投影坐标 2434 Beijing_1954_3_Degree_GK_CM_111E 投影坐标 2435 Beijing_1954_3_Degree_GK_CM_114E 投影坐标 2436 Beijing_1954_3_Degree_GK_CM_117E 投影坐标 2437 Beijing_1954_3_Degree_GK_CM_120E 投影坐标 2438 Beijing_1954_3_Degree_GK_CM_123E 投影坐标 2439 Beijing_1954_3_Degree_GK_CM_126E 投影坐标 2440 Beijing_1954_3_Degree_GK_CM_129E 投影坐标 2441 Beijing_1954_3_Degree_GK_CM_132E 投影坐标 2442 Beijing_1954_3_Degree_GK_CM_135E 投影坐标 3395 WGS_1984_World_Mercator 投影坐标 4491 CGCS2000_GK_Zone_13 投影坐标 4492 CGCS2000_GK_Zone_14 投影坐标 4493 CGCS2000_GK_Zone_15 投影坐标 4494 CGCS2000_GK_Zone_16 投影坐标 4495 CGCS2000_GK_Zone_17 投影坐标 4496 CGCS2000_GK_Zone_18 投影坐标 4497 CGCS2000_GK_Zone_19 投影坐标 4498 CGCS2000_GK_Zone_20 投影坐标 4499 CGCS2000_GK_Zone_21 投影坐标 4500 CGCS2000_GK_Zone_22 投影坐标 4501 CGCS2000_GK_Zone_23 投影坐标 4502 CGCS2000_GK_CM_75E 投影坐标 4503 CGCS2000_GK_CM_81E 投影坐标 4504 CGCS2000_GK_CM_87E 投影坐标 4505 CGCS2000_GK_CM_93E 投影坐标 4506 CGCS2000_GK_CM_99E 投影坐标 4507 CGCS2000_GK_CM_105E 投影坐标 4508 CGCS2000_GK_CM_111E 投影坐标 4509 CGCS2000_GK_CM_117E 投影坐标 4510 CGCS2000_GK_CM_123E 投影坐标 4511 CGCS2000_GK_CM_129E 投影坐标 4512 CGCS2000_GK_CM_135E 投影坐标 4513 CGCS2000_3_Degree_GK_Zone_25 投影坐标 4514 CGCS2000_3_Degree_GK_Zone_26 投影坐标 4515 CGCS2000_3_Degree_GK_Zone_27 投影坐标 4516 CGCS2000_3_Degree_GK_Zone_28 投影坐标 4517 CGCS2000_3_Degree_GK_Zone_29 投影坐标 4518 CGCS2000_3_Degree_GK_Zone_30 投影坐标 4519 CGCS2000_3_Degree_GK_Zone_31 投影坐标 4520 CGCS2000_3_Degree_GK_Zone_32 投影坐标 4521 CGCS2000_3_Degree_GK_Zone_33 投影坐标 4522 CGCS2000_3_Degree_GK_Zone_34 投影坐标 4523 CGCS2000_3_Degree_GK_Zone_35 投影坐标 4524 CGCS2000_3_Degree_GK_Zone_36 投影坐标 4525 CGCS2000_3_Degree_GK_Zone_37 投影坐标 4526 CGCS2000_3_Degree_GK_Zone_38 投影坐标 4527 CGCS2000_3_Degree_GK_Zone_39 投影坐标 4528 CGCS2000_3_Degree_GK_Zone_40 投影坐标 4529 CGCS2000_3_Degree_GK_Zone_41 投影坐标 4530 CGCS2000_3_Degree_GK_Zone_42 投影坐标 4531 CGCS2000_3_Degree_GK_Zone_43 投影坐标 4532 CGCS2000_3_Degree_GK_Zone_44 投影坐标 4533 CGCS2000_3_Degree_GK_Zone_45 投影坐标 4534 CGCS2000_3_Degree_GK_CM_75E 投影坐标 4535 CGCS2000_3_Degree_GK_CM_78E 投影坐标 4536 CGCS2000_3_Degree_GK_CM_81E 投影坐标 4537 CGCS2000_3_Degree_GK_CM_84E 投影坐标 4538 CGCS2000_3_Degree_GK_CM_87E 投影坐标 4539 CGCS2000_3_Degree_GK_CM_90E 投影坐标 4540 CGCS2000_3_Degree_GK_CM_93E 投影坐标 4541 CGCS2000_3_Degree_GK_CM_96E 投影坐标 4542 CGCS2000_3_Degree_GK_CM_99E 投影坐标 4543 CGCS2000_3_Degree_GK_CM_102E 投影坐标 4544 CGCS2000_3_Degree_GK_CM_105E 投影坐标 4545 CGCS2000_3_Degree_GK_CM_108E 投影坐标 4546 CGCS2000_3_Degree_GK_CM_111E 投影坐标 4547 CGCS2000_3_Degree_GK_CM_114E 投影坐标 4548 CGCS2000_3_Degree_GK_CM_117E 投影坐标 4549 CGCS2000_3_Degree_GK_CM_120E 投影坐标 4550 CGCS2000_3_Degree_GK_CM_123E 投影坐标 4551 CGCS2000_3_Degree_GK_CM_126E 投影坐标 4552 CGCS2000_3_Degree_GK_CM_129E 投影坐标 4553 CGCS2000_3_Degree_GK_CM_132E 投影坐标 4554 CGCS2000_3_Degree_GK_CM_135E 投影坐标 4568 New_Beijing_Gauss_Kruger_Zone_13 投影坐标 4569 New_Beijing_Gauss_Kruger_Zone_14 投影坐标 4570 New_Beijing_Gauss_Kruger_Zone_15 投影坐标 4571 New_Beijing_Gauss_Kruger_Zone_16 投影坐标 4572 New_Beijing_Gauss_Kruger_Zone_17 投影坐标 4573 New_Beijing_Gauss_Kruger_Zone_18 投影坐标 4574 New_Beijing_Gauss_Kruger_Zone_19 投影坐标 4575 New_Beijing_Gauss_Kruger_Zone_20 投影坐标 4576 New_Beijing_Gauss_Kruger_Zone_21 投影坐标 4577 New_Beijing_Gauss_Kruger_Zone_22 投影坐标 4578 New_Beijing_Gauss_Kruger_Zone_23 投影坐标 4579 New_Beijing_Gauss_Kruger_CM_75E 投影坐标 4580 New_Beijing_Gauss_Kruger_CM_81E 投影坐标 4581 New_Beijing_Gauss_Kruger_CM_87E 投影坐标 4582 New_Beijing_Gauss_Kruger_CM_93E 投影坐标 4583 New_Beijing_Gauss_Kruger_CM_99E 投影坐标 4584 New_Beijing_Gauss_Kruger_CM_105E 投影坐标 4585 New_Beijing_Gauss_Kruger_CM_111E 投影坐标 4586 New_Beijing_Gauss_Kruger_CM_117E 投影坐标 4587 New_Beijing_Gauss_Kruger_CM_123E 投影坐标 4588 New_Beijing_Gauss_Kruger_CM_129E 投影坐标 4589 New_Beijing_Gauss_Kruger_CM_135E 投影坐标 4652 New_Beijing_3_Degree_Gauss_Kruger_Zone_25 投影坐标 4653 New_Beijing_3_Degree_Gauss_Kruger_Zone_26 投影坐标 4654 New_Beijing_3_Degree_Gauss_Kruger_Zone_27 投影坐标 4655 New_Beijing_3_Degree_Gauss_Kruger_Zone_28 投影坐标 4656 New_Beijing_3_Degree_Gauss_Kruger_Zone_29 投影坐标 4766 New_Beijing_3_Degree_Gauss_Kruger_Zone_30 投影坐标 4767 New_Beijing_3_Degree_Gauss_Kruger_Zone_31 投影坐标 4768 New_Beijing_3_Degree_Gauss_Kruger_Zone_32 投影坐标 4769 New_Beijing_3_Degree_Gauss_Kruger_Zone_33 投影坐标 4770 New_Beijing_3_Degree_Gauss_Kruger_Zone_34 投影坐标 4771 New_Beijing_3_Degree_Gauss_Kruger_Zone_35 投影坐标 4772 New_Beijing_3_Degree_Gauss_Kruger_Zone_36 投影坐标 4773 New_Beijing_3_Degree_Gauss_Kruger_Zone_37 投影坐标 4774 New_Beijing_3_Degree_Gauss_Kruger_Zone_38 投影坐标 4775 New_Beijing_3_Degree_Gauss_Kruger_Zone_39 投影坐标 4776 New_Beijing_3_Degree_Gauss_Kruger_Zone_40 投影坐标 4777 New_Beijing_3_Degree_Gauss_Kruger_Zone_41 投影坐标 4778 New_Beijing_3_Degree_Gauss_Kruger_Zone_42 投影坐标 4779 New_Beijing_3_Degree_Gauss_Kruger_Zone_43 投影坐标 4780 New_Beijing_3_Degree_Gauss_Kruger_Zone_44 投影坐标 4781 New_Beijing_3_Degree_Gauss_Kruger_Zone_45 投影坐标 4782 New_Beijing_3_Degree_Gauss_Kruger_CM_75E 投影坐标 4783 New_Beijing_3_Degree_Gauss_Kruger_CM_78E 投影坐标 4784 New_Beijing_3_Degree_Gauss_Kruger_CM_81E 投影坐标 4785 New_Beijing_3_Degree_Gauss_Kruger_CM_84E 投影坐标 4786 New_Beijing_3_Degree_Gauss_Kruger_CM_87E 投影坐标 4787 New_Beijing_3_Degree_Gauss_Kruger_CM_90E 投影坐标 4788 New_Beijing_3_Degree_Gauss_Kruger_CM_93E 投影坐标 4789 New_Beijing_3_Degree_Gauss_Kruger_CM_96E 投影坐标 4790 New_Beijing_3_Degree_Gauss_Kruger_CM_99E 投影坐标 4791 New_Beijing_3_Degree_Gauss_Kruger_CM_102E 投影坐标 4792 New_Beijing_3_Degree_Gauss_Kruger_CM_105E 投影坐标 4793 New_Beijing_3_Degree_Gauss_Kruger_CM_108E 投影坐标 4794 New_Beijing_3_Degree_Gauss_Kruger_CM_111E 投影坐标 4795 New_Beijing_3_Degree_Gauss_Kruger_CM_114E 投影坐标 4796 New_Beijing_3_Degree_Gauss_Kruger_CM_117E 投影坐标 4797 New_Beijing_3_Degree_Gauss_Kruger_CM_120E 投影坐标 4798 New_Beijing_3_Degree_Gauss_Kruger_CM_123E 投影坐标 4799 New_Beijing_3_Degree_Gauss_Kruger_CM_126E 投影坐标 4800 New_Beijing_3_Degree_Gauss_Kruger_CM_129E 投影坐标 4822 New_Beijing_3_Degree_Gauss_Kruger_CM_135E
问题 环境:Win10+VS2010+ArcGIS10.0,未能成功安装其AO帮助文档;使用help library manager手动安装也报错。 选择msha文件: 解决 查看系统事件,发现组件注册失败,找到相关dll注册成功,RBL! 没有办法,直接去win7上面把相关注册项直接导过来 Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\CLSID\{9DAA54E8-CD95-4107-8E7F-BA3F24732D95}] [HKEY_CLASSES_ROOT\CLSID\{9DAA54E8-CD95-4107-8E7F-BA3F24732D95}\InprocServer32] @=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\ 00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,4e,00,61,00,\ 74,00,75,00,72,00,61,00,6c,00,4c,00,61,00,6e,00,67,00,75,00,61,00,67,00,65,\ 00,36,00,2e,00,64,00,6c,00,6c,00,00,00 "ThreadingModel"="Both" [HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{9DAA54E8-CD95-4107-8E7F-BA3F24732D95}] [HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{9DAA54E8-CD95-4107-8E7F-BA3F24732D95}\InprocServer32] @=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\ 00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,4e,00,61,00,\ 74,00,75,00,72,00,61,00,6c,00,4c,00,61,00,6e,00,67,00,75,00,61,00,67,00,65,\ 00,36,00,2e,00,64,00,6c,00,6c,00,00,00 "ThreadingModel"="Both" 但滋生了office打开失败的问题,不过千方百计还是解决了,并使用了office2016绿色版。
由于项目初验,忙了几个月(感觉忙得并不值),好久都没更新博客了。 一、问题 在关闭ArcMap时,ArcGIS Desktop 遇到严重的应用程序错误。环境是Windows 10,新装的系统。以前出现这种问题,一般有两种情况:一是ArcGIS 10.0不稳定,打上SP5补丁就好了;二是数据或功能的问题,在处理过程中报错,这得分析数据或方法。 二、解决 而现在出现在关闭的时候,那它在关闭的时候做了什么?首先想到的肯定是保持现有配置,如工具条的加载与否,放置位置等信息。根据以前的了解,这些信息都是保存在模板文件(Normal.mxt),它的路径在C:\Users\用户名AppData\Roaming\ESRI\Desktop10.1\ArcMap\Templates下,将它删除后,重新启动ArcMap,就不会弹出此窗口。 三、相关 关于Normal.mxt曾经出遇到过: 设置ArcGIS的外观改回到出厂 http://www.cnblogs.com/liweis/p/4431304.html ArcGIS快捷键导出 http://www.cnblogs.com/liweis/p/4211010.html
描述 在ArcCatalog采用直接的方式连接SDE数据库时,无论怎样填写连接参数,都连接不上(数据库管理工具和代码都可以连)。主要报两类错误: Error:ORA-12154:TNS:无法解析指定的连接标识符No extende(oracle服务器IP: oracle服务器端口号/oracle服务名); ORA-06413 连接未打开错误。(sde:oracle10g: oracle服务器IP: oracle服务器端口号/oracle服务名)。 分析 经检查连接字符串、oracle配置文件、环境变量、host文件等,仍未找到解决方案,于是整理了大家连接的情况,统计如下: 从上表中可得到一个未验证的结论:只要是安装Oracle 10g客户端,使用ArcGIS10.1及以后的环境都连不上。经验证和百度,确实如此。 还有一个问题,本来ArcGIS10.0的环境也应该连接不了,但由于其安装路径为非(x86)路径,才导致可以正常连接。 结果 在使用Oracle 10g客户端连接SDE出现错误时,主要原因是Oracle客户端版或ArcGIS桌面版本路径造成的,解决方法: A.桌面安装在不带()的路径下; B.用户选择Oracle11g或者更高版本的客户端。 参考 http://blog.csdn.net/linghe301/article/details/23430847 http://blog.sina.com.cn/s/blog_53636a020100aaaq.html
自去年五月加入吾爱后,学习了三个月,对逆向破解产生了深厚的兴趣,尤其是对.NET方面的分析;但由于这一年,项目比较忙,事情比较多,破解这方面又停滞了许久,不知道还要好久。 前些天,帮忙批量下载QQ相册的照片,搜索了好几个都不好用; 最 后搜索到这个Z木鸟图片下载器,基本能达到目的,但试用版有下载数量限制。 于是,一时来兴,又简单地分析了一下(由于时间关系,就不描述过程了),去掉了登陆和试用版本限制。大家可以去练一下手。 链接:https://yunpan.cn/c6ZSpAyk4Xdqj (提取码:29e5)
不知道为什么,从一开始,我就不喜欢Oracle,名字好听,功能强大,但总感觉"高不可攀";或许是因为我觉得其他的数据库就可以解决数据问题,不太了解Oracle的优势;而且它长得也不好看,它的安装包界面和PLSQL Developer数据库操作软件都应该升一下级了。 还好有Navicat for Oracle,让我觉得我会爱上它,之前用过Navicat for Mysql,当时就看上了它,现在分享一下它的下载、破解及连接问题。 下载破解 去官网下载最新版本(目前是11.2.8)或其他网站下载历史版本。有32位与64位的区别。 官方:http://www.navicat.com.cn/,如果官网下载有问题,附上网盘下载: navicat1128_ora_cs_x86.exe:http://gisweis.ctfile.com/fs/kOQ150223932 navicat1128_ora_cs_x64.exe:http://gisweis.ctfile.com/fs/QrU150215589 更多版本可在我的网盘里找哈。 破解补丁下载:http://gisweis.ctfile.com/fs/7m9150212427(目前对11版本都有效) 下面是运行的效果: 连接数据 要操作数据库之前,得连接数据库;在oracle安装正确的情况,按以下方式连接:连接名,自定义;主机名或IP地址即为oracle服务器所在位置的IP或者主机名(如果是本机,可直接输入localhost);端口默认为1521(与oracle的监听配置一致);服务名或SID也与oracle一致,默认安装oracle后,一般是ORCL;用户名为SYS,密码为安装服务器所设置的密码(或其他用户名和密码);切换到高级选项卡中,将角色设置为SYSDBA(视情况设置)。 接下来就可以好好学习它了,最好的资料是官方的帮助文档,中文的! 常见问题 Cannot load OCI DLL 设置连接参数后进行连接,报错Cannot load OCI DLL 这是因为oci选择不正确,打开工具-选项-其他-OCI,应该选择Navicat for Oracle安装目录下instantclient_10_2中的oci.dll文件。 ORA-12737 ORA-12737: Instant Client Light: unsupported server character set ……",这个错误是很典型的,是由于服务器的编码不支持造成的,解决方法是去oracle官网下载一个最新版的OCI的文件,将原先的OCI的文件的覆盖。 OCI下载连接:http://gisweis.ctfile.com/fs/W3y150233556 所以对于oracle 10g环境来说,OCI库选择oracle 11g版本的oci,SQL Plus选择服务器中的SQL Plus,才能正常连接。 设置OCI无效 Navicat设置OCI无效,即设置后保存再次打开还是为空,这可能是因为Navicat 版本不对,32位的oracle,装32位的Navicat,与操作系统无关! 怎样创建一个数据库? Oracle数据库实例是在安装时建立的,但与sqlserver是不一样的是每一个用户就相当于sqlserver的一个数据库;新建一个用户后,创建的用户登录即可建表,建索引等。 模式是什么,有什么? 创建一个用户,就相应的创建了 一个模式。模式是指数据库对象,是对用户所创建的数据对象的总称。模式对象包括表、视图、索引、同义词、序列、过程和程序包等 ORA-01045 无创建session会话的权限 ora-01045:user system lacks create session privilege;logon denied" 原因:该用户没有创建session会话的权限,使用系统用户登录后,为出错用户赋权限 grant create session to UserName; ora-01950:对表空间无权限 grant resource to username 自动获得了有unlimited tablespace的系统权限 另外,使用PL/SQL Developer登陆时出现空白问题(使用SQL Plus可以正常登陆) 一般有两种原因: (1)权限不足,没有以管理员运行PL/SQL Developer工具; (2)环境变量问题,去查一下oracle的环境变量。
使用Devexpress+ReSharper进行开发,似乎是C/S开发的最佳搭配。 但在ReSharper使用时,发现一个非常烦人的问题:即按F5进行调试时,自动删除换行,这样不仅把代码搞乱了,而且有可能造成语法错误编译不通过的情况。例如: 原本的代码是: //列名 public string ColName { get; set; } F5进行调试后会出现: //列名public string ColName { get; set; } 网上已说了,是因为Devexpress+ReSharper结合使用所致(我的某些项目又不存在这个问题),解决方法是删除解决方案(sln)中所有项目的Properties\licenses.licx,然后再重新生成解决方案。 另外,每次编译都会生成其他语言包的资源文件,如ru,de等,解决的方法是设置项目属性: RD /S /Q "$(TargetDir)de\" RD /S /Q "$(TargetDir)es\" RD /S /Q "$(TargetDir)ja\" RD /S /Q "$(TargetDir)ru\" 参考:https://www.devexpress.com/Support/Center/Question/Details/Q388193