基于arcgis和.NET架构地图匹配软件二次开发笔记_第1页
基于arcgis和.NET架构地图匹配软件二次开发笔记_第2页
基于arcgis和.NET架构地图匹配软件二次开发笔记_第3页
基于arcgis和.NET架构地图匹配软件二次开发笔记_第4页
基于arcgis和.NET架构地图匹配软件二次开发笔记_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于arcgis和.NET架构地图匹配软件二次开发笔记仅供个人学习使用,不可用于商业用途20200412 II目录TOC o 1-5 h z基于arcgis和.NET架构二次地图匹配软件开发笔记1搭建框架1 HYPERLINK l bookmark2 GPS数据导入Oracle1未能加载文件或程序“ESRI.ArcGIS.Carto,Version=10.01vs2015不支持ArcGISEngine以及丢失控件和模板解决办法2eclipse配置JDK3ThecontainerMavenDependenciesreferencesnonexistinglibrary.3maven使用过程中遇到

2、的问题(依赖jar文件下载失败等)38解决PLSQL报错动态执行表不可访问,本会话的自动统计被禁止3查询表空间使用率4调整和增加表空间4GPS数据怎么从SDE中获取,怎么加载到图层上612如何的自由的存取GPS点,或者自由的存取shp文件的属性值7怎么计算点到直线的最短距离,7数据集和要素类都有空间参考系7求点到线的最短距离716匹配过程(GPS点修正过程):7 HYPERLINK l bookmark8 18修正GPS步骤7修正GPS点过程中关闭arcmap和数据库,防止要素图层被占用和锁定导致无法修改数据库中的属性。8修正步骤821为什么修改数据库中的gps,X,Y坐标后,shp文件中点的

3、位置不改变?.9TOC o 1-5 h zSDE中多出的几何图形属性怎么得来的,怎么进行修改?9道路匹配之交叉路口9删除表中重复记录11 HYPERLINK l bookmark10 HRESULT:0 x8004021512怎么取得两个连续的点12怎么判断拐弯,拐弯表示可能会有交叉口1228空间查询终极版,可以实现sortby12怎么让轨迹显示成和路段一样的曲线,怎么提取点所在的路段,并加入到新的图层中12判断几何空间关系1231读取数据内存溢出,过慢的问题,怎么解决1332关于sdeora-01000:超出打开游标的最大数问题13 HYPERLINK l bookmark14 ArcEng

4、ine错误提示13 HYPERLINK l bookmark16 arcgisengine常用方法13怎么获取第一条直线相交的线,相交的线尽可能的少,且最有可能是候选的线13ArrayList删除集合中某一属性相同的兀素1337怎么提高ArcSDEforOracle写入地理数据库的效率1338深入理解游标Cursors,实现数据的快速查找,插入,删除,更新13 搭建框架1.1建立项目。添加工具箱D:rjazarcgisDeveloperKit10.0DotNetToolBox引用自动跟随控件自动添加,故无需额外添加引用。拖动控件到窗体。1.4加入代码到main:ESRI.ArcGIS.Runt

5、imeManager.Bind(ESRI.ArcGIS.ProductCode.EngineOrDesktop);1.5ArcEngine开发常见报错原因分析及解决方法: HYPERLINK /yinjun151/article/details/52875677 /yinjun151/article/details/52875677GPS数据导入Oracle2.1imp导入,已经导入A1,表空间达到32G,不可再次导入,后面已经解决,参见103未能加Q载文件或程序“ESRLArcGIS.Carto,Version=1000.0,Culture=neutral,PublicKeyToken=8f

6、c3cc631 HYPERLINK /question/451719066.html /question/451719066.html1、解决方案资源管理器窗口中,右键项目=属性2、在弹出的属性页面中,选择“生成”选项卡3、修改“生成”选项卡里面的“目标平台”为:X864、重新编译程序OK4vs2015不支持ArcGISEngine以及丢失控件和模板解决办法问题二:vs中没有arcgis模板一vs新建项目时,项目类型中没有ArcGis项 HYPERLINK /u012692537/article/details/52053771 /u012692537/article/details/5205

7、3771图片用的网上找的,不是自己截图,看个意思就好。这里ArcGis模板下面有三项,DeskTopAdd-Ins,ExtendingArcObjects和SeverObjectExtensions。这取决于你装了什么。模板不出现的解决办法:第一步:将模板文件拷贝到vs模板库中,我的VS和ArcGis都安装在D盘,安装时ArcGis模板文件放在C:ProgramFiles(x86)MicrosoftVisualStudio9.0Common7IDEItemTemplatesCSharp和C:ProgramFiles(x86)MicrosoftVisualStudio9.0Common7IDEI

8、temTemplatesCSharp中,将模板(两个文件夹下的ArcGIS文件夹)拷贝至vs2015模板文件位置:D:rjazvs2013Common7IDEItemTemplatesCSharp和D:rjazvs2013Common7IDEProjectTemplatesCSharp中。第二步:用右键,管理员权限运行devenv.exe,就是启动vs2015第三步:重新安装一次模板(引用的)我的是vs2015按照以下顺序,打开VS2015的命令行工具:开始-所有应用-MicrosoftVisualStudio2015-vs2015开发人员命令提示(可能会叫VisualStudio2015Co

9、mmandPrompt)(VS2015开发人员命令提示)然后执行如下命令:devenv.exe/InstallVSTemplates需要注意的事情是,这个命令执行后,不会马上出现项目或项模板,需要重新打开vs2015,新建时会重新初始化模板。如果第三步有问题,换成用管理员权限运行。第四步:对于已有项目,需要重新生成解决方案。(新建项目请忽略此步骤)Javaeclipse配JDK HYPERLINK /article/d45ad148880ca769552b8009.html /article/d45ad148880ca769552b8009.htmlThecontainerMavenDepen

10、denciesreferencesnonexistinglibrary HYPERLINK /s/blog_757505bb0100sbxj.html /s/blog_757505bb0100sbxj.htmlmaven使用过程中遇到的问题(依赖jar文件下载失败等) HYPERLINK /article/details?id=39521701 /article/details?id=395217018解决PLSQL报错动态执行表不可访问,本会话的自动统计被禁止使用PLSQL,第一次执行表的select操作的时候,提示动态执行表不可访问,本会话的自动统计被禁止这种问题,一看就是当前连接用户没有

11、对sys用户下的表v$session,v$sesstat,v$statname的select权限解决此问题的方式就是授权:以sysdba身份登录grantselectonv_$statnametousername;grantselectonv_$sesstattousername;grantselectonv_$sessiontousername;grantselectonv_$mystattousername;9查询表空间使用率SELECTtotal.tablespace_name,Round(total.MB,2)ASTotal_MB,Round(total.MB-free.MB,2)AS

12、Used_MB,Round(1-free.MB/total.MB)*100,2)|%ASUsed_PctFROM(SELECTtablespace_name,Sum(bytes)/1024/1024ASMBFROMdba_free_spaceGROUPBYtablespace_name)free,(SELECTtablespace_name,Sum(bytes)/1024/1024ASMBFROMdba_data_filesGROUPBYtablespace_name)totalWHEREfree.tablespace_name=total.tablespace_name;10调整和增加表空间

13、sys用户下执行:selecttablespace_name,sum(bytes)/1024/1024fromdba_free_spacegroupbytablespace_nameselect*fromdba_data_filestwheret.tablespace_name=SDEalterdatabasedatafileC:APPZHAOPRODUCT1120DBHOME_1SDE.DBFresize30720M(注意空格)altertablespaceSDEadddatafileD:APPADMINISTRATORPRODUCT11.2.0DBHOME_1SDE01.DBFsize30

14、720M读取空间数据步骤获取文件信息-获取文件目录名称-获取文件名创建工作空间工厂创建工作空间创建要素工作空间要素类要素游标要素-开始loopSDE数据一定要使用工作空间工厂去初始化工作空间,在工作空间打开FeatureClass,这是最常规的操作stringstrFielPath=C:aa.shp;FileInfofileInfo=newFileInfo(strFielPath);stringfileDirectoryName=filelnfo.Directory捜秦QName;stringfileName=fileInfo.Name;IWorkspaceFactoryworkspaceFa

15、ctory=newShapefileWorkspaceFactoryClass();IWorkspaceworkspace=workspaceFactory.OpenFromFile(fileDirectoryName,0);IFeatureWorkspacefeatureWorkspace=workspaceasIFeatureWorkspace;IFeatureClassfeatureClass=featureWorkspace.OpenFeatureClass(fileName);IFeatureCursorfeatureCursor=featureClass.Search(null,f

16、alse);IFeaturefeature=featureCursor.NextFeature();while(feature!=null)【GeometrygeoMetry=feature.Shape;/得到的每个数据feature=featureCursor.NextFeature();11GPS数据怎么从SDE中获取,怎么加载到图层上方案1第一步,获取GPS的X,Y坐标第二步,创建GPS图层方案2第一步,把GPS数据转化成shp文件(暂时用arcgis实现)读取GPS坐标第二步,加载GPS的shp文件12如何的自由的存取GPS点,或者自由的存取shp文件的属性怎么计算点到直线的最短距离,

17、怎么找到垂足,怎么取得垂足,怎么把垂足加载到地图上并且显示,怎么把垂足的信息存储到SDE中数据集和要素类都有空间参考系求点到线的最短距离IProximityOperatorIProximityOperator接口的主要方法有:ReturnDistance方法用于返回两个几何对象间的最短距离,QueryNearesPoint方法用于查询获取几何对象上离给定输入点的最近距离的点的引用,ReturnNearestPoint方法用于创建并返回几何对象上离给定输入点的最近距离的点。16匹配过程(GPS点修正过程):实现GPS点到投影到最近距离的线上,取得该垂足,更新GPS的X,Y坐标解决这5个步骤,那么

18、GPS地图匹配任务最核心的任务完成!18修正GPS步骤取得一个点创建buffer3找到buffer区的线元素集合4分别求点到线的所有垂直距离5取得垂直距离最小的点的X,Y坐标6替换原来点的GPS坐标取得最小距离对应的点1先读取所有的图层2查询所有图层的buffer区域的要素,放入一个临时图层中读取临时图层中的所有要素19修正GPS点过程中关闭arcmap和数据库,防止要素图层被占用和锁定导致无法修改数据库中的属性。20修正步骤1按照车牌号分类GPS点,放入新表中2按照时间排序,从早到晚升序排列从表中取得点,进行修正存入新的表中生成shp文件21为什么修改数据库中的gps,XY坐标后,shp文件

19、中点的位不改变?SDE中多岀的几何图形属性怎么得来的,怎么进行修改?道路匹配之交叉路口在道路匹配中,交叉路口的匹配是最复杂的。常见的问题有三种,一是在错误的道路行驶一小段距离后,才跳到正确的路上;二是位置更新太慢,然后突然跳动;三是角度反映太慢。匹配错误的原因有三种,一、优先匹配原来道路时,向前行驶了一段距离。二、以交叉路口为中心划定一个范围,在此范围内不做更新。三、现实中交叉路口和数据中的道路模型有差异(比如,交叉路口会有一些虚拟的道路)。四、GPS的误差。位置更新慢的原因有两个:一是在交叉路口的行走轨迹和数据中的道路模型不完全相同,在数据中,两条路是必交叉于一点,而实际上在交叉点之前就已经

20、开始拐弯,拐弯不一定经过交叉点。在没有完全到达新路之前,均有可能在交叉点前的路段上。二是为了回避匹配错误,而采取的延迟策略。角度是利用前后点经纬度计算出来的,角度更新慢的原因,一是位置更新慢。导致变化慢,二是角度采取了折中策略,导致变化小。在我们的开发过程中,尝试过多种数学方法来回避这些问题,如调整匹配的误差范围;增加对道路数据中通行属性的利用;对应交叉路口进行范围限制等等,最终效果都不甚理想。曾经有部分厂商,在汽车的轴承上安装转弯、倾斜传感器,并配合道路网数据和倾斜数据,以提高匹配的准度。用于手机、PND的导航系统中,有什么低成本的方式,大大提高拐弯时的准度吗?答案是,利用好GPS穿过来的角

21、度和速度。在速度不是过低时,从GPS传过来的值是比较稳定的,可信度是很高的。如果能够确定前方路口,并且在进入前方路口之前,将可能通行的道路都找出来,在距离前方交叉路口一定距离的地方,放弃以垂直牵引距离优先算法的匹配,改为利用GPS角度和速度变化趋势来进行道路匹配。有一组实验数据,如果以25公里/时的速度,拐一个90度的弯,会接到四次明显的角度变化。如果速度提高到45公里/时,接到的角度更新次数是3次。那么,如果我们在第一次角度发生明显改变时,利用角度所在的象限,排除一些不符合条件的候选道路,同时返回GPS角度,将经纬度更新到交叉点上。然后利用下一次,或下下次的GPS角度,进一步明确目标道路。如

22、果交叉路口很复杂的时候,可以等到角度不再发生明显变化时,再确定最终的道路。如上图中,汽车从DOB行驶,带方向的红色点是GPS模块得到轨迹点,在距离O点还有15m的时候,就采用交叉点特殊匹配算法。将前方可通行的道路作为候选道路,角度没有发生明显变化的时候,就优先匹配到原路段上,当第一次角度发生明显变化时,将点匹配到O点上,同时使用GPS得到的角度,根据此角度可将OC、OO路段排除了。当第二次角度发生明显变化时,就可以确定OB为下一个将要行走的路段。考虑到拐弯处,速度会一般会有明显变化,因此可以作为拐弯判断一个权值较低的判定因素。删除表中重复记录1、删除表中多余重复记录,根据单字段(peoplel

23、d)来判断,只留有rowid最小的记录deletefrompeoplewherepeopleIdin(selectpeopleIdfrompeoplegroupbypeopleIdhavingcount(peopleId)1)androwidnotin(selectmin(rowid)frompeoplegroupbypeopleIdhavingcount(peopleId)1)2、删除表中多余的重复记录(多个字段),只留有rowid最小的记录deletefromTBIZ_GMS_GPS_HIS_C1awhere(a.FPASSNO,a.FSTATUSDATE,a.FDATE)in(selec

24、tFPASSNO,FSTATUSDATE,FDATEfromTBIZ_GMS_GPS_HIS_C1groupbyFPASSNO,FSTATUSDATE,FDATEhavingcount(*)1)androwidnotin(selectmin(rowid)fromTBIZ_GMS_GPS_HIS_C1groupbyFPASSNO,FSTATUSDATE,FDATEhavingcount(*)1)HRESULT:Ox8004O215在使用ITopologicalOperator求交集等操作的时候,有时会出现“HRESULT:0 x80040215”这个异常,原来是空间参考不一样所致。将SpatialReference属性设为同一空间参考就不会出现HRESULT:0 x80040215异常啦。怎么取得两个连续的点平行道路上,怎么匹配到一条道路上以一天为单位进行匹配和画出轨迹,合理怎么判断拐弯,拐弯表示可能会有交叉口GPS点的角度持续变化Buffer区域是否有交叉点,没有就是简单的交叉口,有就作复杂交叉口处理,28空间查询终极版,可以实现sortby HYPERLINK /kone0611/article/details/72912255 /kone0611/

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论