zoukankan      html  css  js  c++  java
  • 在ArcMap中发布FeatureLayer(要素图层)

    FeatureLayer(要素图层)是ArcGIS Server发布的一种很重要的地图服务,发布后使用提供的url地址就可以在代码中调用并在地图上显示、编辑这个FeatureLayer。在HTML页面中,点击FeatureLayer的要素,还可以弹出相应的popup对话框以显示FeatureLayer字段值的信息(在编写代码时需要设置)。下面讲解用ArcMap发布FeatureLayer的过程。


    一、使用SQL Server创建一个数据库

      FeatureLayer中要素的字段信息保存在地理数据库中,我们可以使用SQL Server创建一个数据库,在ArcCatalog中升级成地理数据库。

      打开SSMS,使用Windows身份验证连接数据库,也可以使用SQL Server的身份登录,但要记住登录名和密码,后面会用到。连接面板中的Server name的值也要记住,后面会用到。创建一个新的数据库。

      打开SSMS

      创建数据库

    二、打开ArcCatalog,将数据库升级成地理数据库

      在ArcCatalog左侧的Catalog Tree(目录树)中,打开Database Connections文件夹,双击Add Database Connection。在打开的对话框中,Instance是刚才记住的Server name的名字,Authentication Type可以是Windows身份验证或SQL Server身份验证,最下方的数据库选择刚才新建的数据库。

      增加数据库连接

      数据库连接成功

      右键刚才添加的数据库连接,选择Enable Geodatabase,打开对话框。

      Enable Geodatabase

      这里要添加keycodes许可文件,它的目录地址是C盘-Program Files-ESRI-License 10.x-sysgen-keycodes。

      选择keycodes文件  keycodes目录地址

      添加keycodes文件成功

      添加keycodes文件后,点击确定,等待几秒钟后弹出数据库成功升级成地理数据库的提示框。

      数据库升级成地理数据库成功的提示框

      右键这个地理数据库,选择Import-FeatureClass(single)。

      导入要素到地理数据库中

      Input Features是要导入到地理数据库的数据,Output Location是这个地理数据库的位置路径,Output Feature Class是我们为导入到数据库后的数据起的名字。在Field Map面板中列出了要素包含的字段名,要注意字段名不能包含括号(读者可以试一试为字段名添加中文或英文括号,应该都是会报错的)。输入完成后点击确定,弹出导入成功的提示框。

      导入要素的对话框

      导入成功

      数据库中的这个数据就是我们要导入到ArcMap中,并发布成FeatureLayer的数据。这里有两点要注意的地方:①在ArcMap中不能使用普通的shapefile发布FeatureLayer,应该先将shapefile导入到地理数据库中,再将地理数据库中的这个数据发布成FeatureLayer ②在将普通shapefile导入到地理数据库中时,不能直接复制-粘贴,而要通过上面Import导入的方式。

      地理数据库中的数据

    三、打开ArcMap,发布FeatureLayer服务

      添加地理数据库中的数据。

      在ArcMap中添加地理数据库中的数据

      更改Table Of Contents(TOC,内容列表)中数据图层的名字和符号。这里根据“类别”这个字段进行了唯一值符号绘制。这里对数据图层的符号进行了更改,在发布成FeatureLayer后,FeatureLayer的要素符号也会这样显示。但在调用ArcGIS JavaScript API时可以编写代码进行符号的又一次渲染,而且渲染后的符号比在ArcMap中绘制的符号更饱满、好看。

      更改数据图层名字和符号

      更改数据图层名字和颜色后

      在ArcMap中,File-Share As-Service,打开发布服务的对话框。

      发布服务

      发布服务对话框1

      选择已有连接或者新建连接

      这里可以选择已有连接或者新建一个ArcGIS Server连接,这里选择Publish和Administer都可以。

      新建ArcGIS Server连接 

      输入url和账户密码

      这里有两种方法添加ArcGIS server的连接:

      ①在Server URL中输入ArcGIS Server的url。打开ArcGIS Server管理器,页面上方地址栏上的url去掉manager就是我们需要的url。在Authentication中输入ArcGIS Server的账号和密码。

      ArcGIS Server url

       ②如果已将ArcGIS Server托管到portal中,则也可以输入portal的url和账户密码。

      portal url

      下面输入ArcGIS Server的url及账户密码:

      输入ArcGIS Sever的url及账号密码

      新建ArcGIS Server连接成功

      输入portal的url及账户密码:

      新建portal连接 

      新建portal连接成功

      选择一个连接并更改Service name。选择服务发布到的文件夹,这里选择我们新建的test文件夹,也可以放在根目录(root)里。

      选择一个连接并更改服务名字

      选择服务发布的文件夹

      弹出发布服务的对话框。

      弹出发布服务的对话框

      在左侧的列表中,选择Capabilities,在右侧面板中勾选Feature Access。在Feature Access面板下,可以查看并设置相关信息,这里我们不进行更改。

      勾选Feature Access 

      Featue Access的相关信息

      点击上方"Analyze"进行分析检查,如果报错要改正。提示的警告可以不更改,但是会影响服务发布的质量。这里不进行警告的更改。

      analyze分析服务

      点击上方"Publish",因为刚才的第一条警告没有更改,所以等待一会儿后会弹出"Copying Data to Server"的提示框,点击确定进行下一步。进行等待。这里有个小提示,如果ArcMap很卡顿,等待的时间很长,那么服务很有可能发布不成功。我在发布服务时经常会出现服务发布失败的情况,也没有找到解决办法,过一段时间再发布就好了(是什么东西没有开启?)。

      publish 

      等待

      服务发布成功

      服务发布成功,打开ArcGIS Server管理器进行查看。

      在ArcGIS Server Manager中进行查看

      点击左侧“功能”,在“选择与配置功能”面板下选中“Feature Access”,下方的REST URL就是我们使用JS API在代码中调用的url。

      在ArcGIS Server Manager查看FeatureAccess

    文中使用SQL Server 2017、ArcCatalog10.6、ArcMap10.6,可能会与其他版本发布服务时出现不同。

    推荐文章:https://blog.csdn.net/LoveCarpenter/article/details/52462207

  • 相关阅读:
    Local File Manage in JavaScript Using FileSystemObject
    How to Register COM in VS
    Permission Error When Building C++ in VS2010
    Upload and Download File using Java
    JavaScript Interactive with ActiveX Control
    一个完整的Installshield安装程序实例
    一个.NET(C#)的双键字典类
    C#实现内存中字符串或byte[]的加解密
    判断请求是否来自 AJAX
    Reflector 7.3.018
  • 原文地址:https://www.cnblogs.com/wangmengdx/p/9739466.html
Copyright © 2011-2022 走看看