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

  • 相关阅读:
    11. Container With Most Water
    9. Palindrome Number
    375. 猜数字大小 II leetcode java
    leetcode 72 编辑距离 JAVA
    73. 矩阵置零 leetcode JAVA
    快速排序 JAVA实现
    63. 不同路径 II leetcode JAVA
    重写(override)与重载(overload)
    62 不同路径 leetcode JAVA
    leetcode 56 合并区间 JAVA
  • 原文地址:https://www.cnblogs.com/wangmengdx/p/9739466.html
Copyright © 2011-2022 走看看