ArcGISAPIForJavaScript官⽅⽂档(七)之编辑
ArcGIS API For JavaScript⽀持在Web上编辑地理数据。基于Web的编辑允许⼀组⼈在您的数据上进⾏添加与删除,这些⼈包括现场⼯作⼈员、公司其他部门的分析员,或者甚⾄是⼀受⼈欢迎的志愿者,他们可以通过简单的编辑界⾯为您的数据做出有价值的贡献。
API包含帮助您向应⽤程序添加编辑功能的⼩部件。您可以在地图和Web应⽤程序中进⾏⼀些设计⼯作,以简化编辑时的终端⽤户体验。例如,您可以在ArcGIS 10中预定义⼀组要素模板,以使⽤户更容易添加确切类型的相同要素。您还可以限制可以添加的属性,并在下拉列表中添加⼀些可⽤的属性选项,以⽅便准确、统⼀的数据输⼊。作为Web编辑应⽤程序的设计⼈员,您可以完全掌控您向⽤户呈现的编辑体验的难易程度。
Web编辑需要对feature service(要素服务)进⾏初始设置,以公开⼀个图层的要素的⼏何信息和属性信息。此外,geometry services(⼏何服务)也可以⽤来完成⼀些Web编辑任务,例如,为了使⽤主编辑部件,您必须有⼀个正在运⾏的geometry services。
1、使⽤ArcGIS Web API⾥的编辑功能能做什么?
ArcGIS Web API提供了简单的要素编辑,要素可能来⾃注册的数据库或者来⾃ArcGIS Online 、Portal for ArcGIS的托管要素服务。
使⽤Web API 编辑数据时,您可以添加、删除、移动、剪切、合并和重塑要素,还可以编辑要素的属性。如果您试图与其他⼈同时修改相同的要素,那么,最后进⾏的编辑内容将被提交到数据库。
对于某些Web编辑⼯作流,最好让让分析师使⽤ ArcGIS Desktop定期检查编辑内容以验证数据完整性。虽然编辑⼩部件可以执⾏某些数据验证,但其他任务(如拓扑验证)不能在Web上执⾏。
2、如何向应⽤程序添加编辑功能?
ArcGIS API for JavaScript提供了⼩部件以使您更容易将编辑功能添加到您的Web应⽤程序中。
以下是⼀些相关的⼩部件:
Editor widget
如果您想快速⼊门,或者您只想使⽤API中包含的默认编辑接⼝,那么可以使⽤,Editor widget结合其他⼩部件的功能来提供编辑图层所需的⼀切。您可以选择⼩部件上可⽤的⼯具的数量和类型。
Editor widget在编辑完成后⽴即保存所编辑的要素。例如,⼀旦绘制完多边形,该多边形就被保存。如果您决定不使⽤Editor widget,则必须⾃⾏确定何时和多久要应⽤编辑。
如果您不使⽤Editor widget,那么您需要编写⾃⼰的编辑体验。但是,您仍然可以利⽤Template Picker、Attribute Inspector和Attachment Editor⼩部件来帮助您。
Template Picker
显⽰⼀组预先配置的、⽤户可以创建的要素的模板。Template Picker是⼀种很好的⽅法,可以公开预配置的要素类型,以便于编辑和质量控制。Template Picker中可见的symbol可以来⾃您在要素服务地图中定义的编辑模板,也可以是您在应⽤程序中定义的⼀组symbol。
Editor wdiget中包含⼀个Template Picker。Template Picker可⽤作为地图的简单图例使⽤。单击查看使⽤Template Picker显⽰地图图例的⽰例。
Attribute Inspector
当您使属性可⽤在Web上进⾏编辑时,您需要为⽤户提供⼀个编辑属性的界⾯,并且您必须确保它们输⼊的数据是有效的。可以帮助您完成这两个任务。
Attribute Inspector 通过您的要素图层读取可⽤的属性字段,并提供⼀个⽤户界⾯以⽅便地更新这些字段。它还能验证输⼊到字段中的数据,确保输⼊的数据与预期的数据类型相匹配。例如,如果将数值值域应⽤于⼀个字段,则允许的值出现在下拉列表中,从⽽限制输⼊其他值的可能;如果⼀个字段需
要⽇期值,则会出现⽇历,帮助⽤户提供有效⽇期。
Attribute Inspector公开图层中的所有可⽤属性以供编辑。如果要限制可⽤属性,则必须编写⾃⼰的接⼝以供数据输⼊和数据验证。
Editor widget包含了⼀个Attribute Inspector。
Attachment Editor
在某些情况下,您可能希望将可下载的⽂件与要素关联起来。例如,您可能希望⽤户单击表⽰某⼀房地产的要素,然后看到⼀个指向契据标题的PDF⽂件的链接。在ArcGIS WebAPI中,这样的相关可下载⽂件被称为要素附件。
是帮助⽤户上传和查看要素附件的⼩部件。Attachment Editor包含了⼀系列当前附件,浏览器的按钮可以被⽤于添加更多附件。Attachment Editor放在info window中可以良好⼯作运⾏,但也可以放在页⾯的其他地⽅。
为了使⽤要素附件,必须在要素类上启⽤附件。您可以在ArcCatalog中启⽤某个要素类的附件,如果Editor widget检测到附件启⽤,它将包含⼀个Attachment Editor。
3、编辑是如何⼯作的?
ArcGIS Web API通过要素服务进⾏编辑,要素服务是ArcGIS 10提供的⼀种新型服务。编辑⼯作流也可以利⽤⼏何服务。
要素服务所扮演的⾓⾊
Web编辑需要⼀个要素服务来提供要素的符号和⼏何。要素服务只是⼀个具有要素访问能⼒的地图服务,该要素访问能⼒允许地图服务公开要素的⼏何和它们的符号以便于Web应⽤程序的使⽤和更新。
在构建Web编辑应⽤程序之前,您需要创建⼀个要素服务公开您想要编辑的图层。这包括设置⼀个地图⽂档,并可选择地为编辑定义⼀些模板,模板允许您预先配置⼀些常⽤要素类型的符号和属性。例如,为了准备编辑道路,您可以为“控制进出的⾼速公路”、“其他分隔公路”、”州公路“和”本地公路“配置模板。模板是可选的,但它们使应⽤程序的终端⽤户很容易创建共同的要素。
⼀旦您的地图完成,您需要将其发布到具有访问要素能⼒的ArcGIS Server上,这将创建地图服务和要素服务,且同时创建它们的REST URL和端点。您将使⽤这些URL在您的应⽤程序中引⽤这些服务。
在Web API中,要素服务可以通过⼀种称为(要素图层)的新类型图层来访问。feature layer可以做各种事情,可以引⽤地图服务或要素服务。但是,当您使⽤feature layer进⾏编辑时,您需要引⽤⼀个要素服务。
编辑时,您的Web 应⽤程序告诉feature layer哪些属性已经更改以及⼏何图形是如何变化的。feature layer还会在编辑后显⽰更新的要素,您可以在feaute layer上调⽤⽅法来应⽤这些编辑,然后将它们提交到数据库中。
⼏何服务所扮演的⾓⾊
ArcGIS Server的⼏何服务帮助执⾏常见的编辑操作,如创建、剪切和重塑地理要素。在使⽤Editor widget之前,您需要在ArcGIS Server上创建⼀个⼏何服务,然后,当您创建该⼩部件时,您必须提供⼏何服务的URL。⼩部件在幕后使⽤该服务,您将不必⾃⼰调⽤⼏何服务上的⽅法,除⾮您决定不使⽤该⼩部件。
如果您决定不使⽤Editor widget,您仍然可以使⽤⼏何服务来帮助您编写⾃⼰的编辑⼯具。⼏何服务还可以帮助您验证数据,例如,您可以使⽤⼏何服务对编辑执⾏检查,诸如,”不能在此框外编辑“,或者”多边形边界不能互相交叉“。(Editor widget⼩部件在将⼏何图形提交到数据库之前,实际上调⽤了⼏何服务的Simplify()⽅法)。尽管ArcGIS拓扑验证⽆法通过Editor widget或者与编辑相关的类实现,但⼏何服务可以通过这些类型的数据完整性检查帮助您获得类似的结果。
4、编辑⼯具条(The Edit toolbar)
是⼀个类,它帮助您编写vertices和graphic的放置和移动。这在不使⽤Editor widget的情况下⾮常有⽤,您需要编写⾃⼰的编辑逻辑,尤其是客户端的显⽰⾏为。与其他⼯具条(Draw和Navigation)⼀样,Edit toolbar不是⽤户界⾯⼯具条,相反,它是⼀个帮助类,它可以更容易地编写⼀些常见的相关功能。
5、设计您的编辑体验
当您在构建Web编辑应⽤程序时,重要的是要考虑谁将使⽤应⽤程序以及他们需要做什么。您应该为⽤户提供不少于他们所需的⼯具。在⼤多数情况下,您可以通过组合API中包含的编辑⼩部件为⽤户设计适合的编辑体验。请记住,尽管API包括⼀个全⾯的Editor widget来帮助您开始,但是这个特定的⼩部件可能不是最适合您的⽅案。
在某些⽅⾯,已经为您简化了API的编辑体验。⼩部件不包括⽤于启动和停⽌编辑会话以及保存编辑的按钮,您可以可选地提供这些功能,但⼤多数应⽤程序不是⼀定需要。
考虑以下设计Web编辑应⽤程序的⽅法,每种⽅法都有它⾃⼰的优点和最适合的应⽤类型。
要素草图
在这种类型的应⽤程序中,现场分析⼈员需要在地图上绘制简单的事件或想法,并添加关联的注释。
鸟瞰、设想的路径或提议的荒野区域,所有这些类型的要素都可以在这种应⽤程序中描绘出来。在这种场景中,易⽤和直观地在地图上绘制⽐更⾼的⼏何精度更重要。
在构建要素草图应⽤程序时,您可以使⽤Template Picker来限制⽤户可以绘制的要素类型。Attribute Inspector也很有⽤,它允许编辑器添加注释,⽆论是在边⾯板中,还是在要素被选中时出现的info window中。分割和合并要素、在X/Y位置添加点、抓取或上传要素附件的这些选项可能会使应⽤程序混乱,所以,除⾮绝对需要,否则应该避免。
单击查看演⽰如何构建要素草图应⽤程序的⽰例。
仅仅编辑属性
⼀些编辑应⽤程序包括地图组件,但不需要任何地理要素的改变。例如,您可能希望创建Web应⽤程序,允许任何办公室职员编辑数据库中的包裹要素的属性,您希望阻⽌它们编辑⼏何图形,将该任务留给您的GIS分析器。在这种情况下,您可以在应⽤程序中包含⼀张地图,但编辑功能只含有Attribute Inspector。⼀次简单的对地图上⼀个包裹的点击将显⽰可以编辑的属性。您不需要包括任何按钮或⼩部件来创建、删除或重塑要素。
单击查看演⽰如何构建属性编辑应⽤程序的⽰例。
公民参与,或者geo-wiki
如何下载javascript
这是要素草图场景的变体。在这种场景下,公民可以成为编辑者,通过在地图上放置点(包括照⽚或者简短描述等辅助信息),向政府机构报告问题。
这种应⽤程序的⽤户甚⾄不知道它们正在编辑GIS数据,只允许他们使⽤在Template Picker中预定义的事件类型要素向数据库中添加点要素。公民可以通过Attachment Inspector上传事件图像的附件。属性编辑可能被限制到⾮常有限的程度,以便公民能够描述事件。
在这种类型的应⽤程序中,您可能需要编写⼀些安全检查代码,以确保⽤户只能编辑或删除⾃⼰的事件。您还可以设计定期清除数据库的逻辑程序以及允许通过⾝份验证的⽤户的⼦集关闭或删除事件。
单击查看演⽰如何构建公民参与的应⽤程序的⽰例。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。