地图下载发布说明.doc_第1页
地图下载发布说明.doc_第2页
地图下载发布说明.doc_第3页
地图下载发布说明.doc_第4页
地图下载发布说明.doc_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

前言根据公司需要,需要根据某单位的地图服务url进行地图数据的下载,并且在我公司自己的地图服务器(arcgisserver)进行地图服务的发布;设计思路:1.地图数据的下载与保存2.根据保存的下载数据生成图层3.根据生成的图层进行地图的配置、渲染4.对配置好的地图进行发布1. 地图数据的下载开发环境:公司的java + flex开发环境,agslib-3.7-2014-11-06.swc(esri封装的flex开发包)1.1地图服务的组成:地图是由图层叠加组成的,图层又分为矢量图层(FeatureLayer)与栅格图层(RaserLayer),由于本地图中没有栅格图层,所有下载时不进行考虑1.1.1 矢量图层的组成矢量图层包括:点图层、线图层、面图层和注记图层;本地图服务中地图不涉及注记图层不需要考虑点、线、面图层都是由要素(Feature)组成,要素(feature) = 图形(geometry) + 属性(attribute),1.1.2 如何建表根据矢量图层可以知道,一个图层对应的是一张表,一个要素(feature)则对应的是表中的一条数据. 根据地图服务,可以看到图层所具有的属性字段,根据图层有的属性字段在表中添加相应字段以便于映射保存图1.1.21(服务中看到的图层属性字段)图1.1.22(图层对应表结构)1.1.3图形的保存点:结构简单,只需要保存图形的x、y坐标即可;注意:字段名不能叫x或者y,因为字段名为单个字母时,调用我公司的框架save方法时值传递不过去。我取名为coordx和coordy(可以自定义修改)线:oracle数据库无法直接保存线的结构,这里提到的线为折线(polyline);折线由多个路径线段组成(多点连接成的线段)path;path由多个点顺序连接而成.所以需要在oracle中多建立两张表,一张保存polyline的path信息,一张保存path的point信息。Polyline应该有个唯一标识字段polylineid,path表中字段应该也有polylineid字段,标记这个path属于哪个polyline,path表中还必须一个字段ordercode表示他在path数组中的次序,保证日后在cs端数据生成时顺序不乱;同理path表中有pathid字段,point表中数据有同样pathid字段指向path表保存所属关系;同样point表也有ordercode字段用来排序;point表中coordx和coordy字段用来保存点的坐标;图1.1.3-1(path表结构)图1.1.3-2(point表结构)图1.1.3-3(polyline结构示意图)面:oracle数据库无法直接保存面的结构,这里提到的线为曲面(polygon);面由多个路径闭合环组成(多点连接成的闭合线段组成的面)ring;ring由多个点顺序连接而成.所以需要在oracle中多建立两张表,一张保存polygon的ring信息,一张保存ring的point信息。Polygon应该有个唯一标识字段polygongid,ring表中字段应该也有polygonid字段,标记这个ring属于哪个polygon,ring表中还必须一个字段ordercode表示他在ring数组中的次序,保证日后再cs端数据生成时顺序不乱;同理ring表中有ringid字段,point表中数据有同样ringid字段指向ring表保存所属关系;同样point表也有ordercode字段用来排序;point表中coordx和coordy字段用来保存点的坐标;图1.1.3-4(ring表结构)图1.1.3-5(Point表结构)图1.1.3-6(polygon结构示意图)1.2代码的编写1.2.1 生成代码根据上部创建的oracle数据库表利用公司框架代码生成器生成代码,把生成代码复制到相应位置,完成配置。1.2.2 查询图层public function queryAll(pageIndex:int,url:String):void/起始objectIdvar fromIndex:int =(pageIndex - 1)*1000;/终止objetIdvar toIndex:int = pageIndex*1000;/新建一个QueryTask/var queryTask:QueryTask = new QueryTask(31:6080/arcgis/rest/services/CI/A4_CI_QYS/MapServer/20);var queryTask:QueryTask = new QueryTask(url);queryTask.showBusyCursor=true;/ Query对象var query:Query = new Query();/是否返回查询结果的空间几何信息query.returnGeometry = true;/查询结果返回的字段,字段必须在图层中,字段的大小写可忽略query.outFields=*;/quer.OutField.Add(*); /返回所有字段 query.where = ObjectID + fromIndex.toString() + and ObjectID 0)/dataBaseServer.savePolygonData(mapppointArr,mappoint_gisController);/保存ring数据到数据库/if(_ringArr.length0)/dataBaseServer.savePolygonData(_ringArr,ring_gisController);/保存面数据到数据库/if(polygonArr.length0)/dataBaseServer.savePolygonData(polygonArr,polygon_gisController);/保存mappoint数据到数据库if(mapppointArr.length0)dataBaseServer.savePolygonData(mapppointArr,mappoint_gisController);/保存ring数据到数据库if(_ringArr.length0)dataBaseServer.savePolygonData(_ringArr,ring_gisController);/保存面数据到数据库if(polygonArr.length0)dataBaseServer.savePolygonData(polygonArr,polygon_gisController);/执行下次查询/queryCoutn+;/Alert(queryCoutn.toString();/queryAll(queryCoutn);1.2.4 具体操作Queryall方法中设置好查询url方法中设置映射的model 配置保存时候调用的后台Controller运行程序根据点、线、面图层的不同选择点击按钮,点击之后出现“保存成功”提示后依次增加中的数字(arcgisserver地图服务查询最多返回1000条数据,1表示根据arcgis默认主键objectid排序,查询前1000条数据),继续点击按钮,知道出现提示“到头了”提示后,完成单个图层下载。根据图层数量,重复以上操作完成下载。1.2.5 程序优化及为实现原因现在xml文件dataDownLoad.xml配置如下:?xml version=1.0 encoding=UTF-8?!-遍历layer节点,根据属性自动完成下载失败原因:1.Flex 反射机制不同于java,在根据去反射对象必须先声明变量否则flex模块不编译此类型,反射不到对象2.保存数据结束后再次调用queryall方法时没反应。2. 数据的生成开放环境:win7操作系统(64位),oracle10g客户端(32位),arcgisengine10.2,VisualStudio2010;2.1环境搭建VisualStudio2010安装,只需要点击下一步即可;Arcgis安装:点击安装上述三项破解:打开arcgis10.2 (含破解)Arcgis 10.2安装与破解工具方法一 替换 License10.2bin 下的 service.txt改成你的主机名停止服务arcgis10.2 (含破解)Arcgis 10.2安装与破解工具方法一 替换 License10.2bin 下的覆盖到License的安装路径下C:Program Files (x86)ArcGISLicense10.2bin启动服务改成你的计算机名破解完成2.2空间数据库的建立选择一个文件夹,右键newFile Geodatabase.gdb2.3 数据生成打开vs2010,添加工程点击找到相应的处理函数Ctrl+f 所有出现表名的地方替换成想生成图层的表名改成你的oracle连接定义你生成图层的名字 F5运行程序,选择你刚才建立的空间数据库根据图层的不同 选择相应操作,完成之后打开arcmap空间数据库中多了你创建的图层,拖拽到地图可以查看效果注意:图层名不能重复,除了上述操作外不要进行其他操作,这部分代码没封住,会出现一些问题2.4封住设计及未完成原因 我本想以webserviceaaa的形式封住成一个服务方法,没把可变参数进行xml配置也是为了在调用web服务的时候传递过来,然后进行bool类型值返回。问题:1.flex访问我的webservice时候出现跨域,使得我的服务不能被访问2.数据生成时间过长,导致服务响应太慢3地图配置与渲染3.1地图加载选择你数据库中的数据,点击add

温馨提示

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

评论

0/150

提交评论