发布和使用 ArcGIS Server 服务之--地图服务(Mapserver)

  • 1.什么是地图服务?
    • 1.1地图服务的数据源和支持方式
    • 1.2如何开始创建地图服务?
    • 1.3为什么要使用地图服务
    • 1.4.应该启用哪个服务功能?
    • 1.5使用地图服务方式和客户端
  • 2.服务准备/制作/发布/调用操作实例
    • 2.1.发布服务
      • 2.1.1 arcmap发布地图服务
      • 2.1.2 arcgis pro发布地图服务
    • 2.2.ArcGIS API for JavaScript调用服务

前面我们知道arcgis server都有那些服务以及这些服务是干什么的,有什么用,具体参考:
arcgis server的各种服务类型简要介绍
下面,我就以这个顺序来介绍一下:地图服务:发布和使用ArcGIS Server 服务之–地图服务(Mapserver)
要素服务:发布和使用 ArcGIS Server 服务之–要素服务(feature server)
影像服务:发布和使用 ArcGIS Server 服务之–影像服务(image server)
OGC 服务:发布和使用 ArcGIS Server 服务之–OGC服务(WMS/WMTS/WFS/WCS/WPS)
缓存服务:发布和使用 ArcGIS Server 服务之–缓存服务(TileServer)(一)
缓存服务:管理和迁移ArcGIS Server服务和缓存服务(TileServer)(二)
发布和使用ArcGIS Server 服务之–地理处理服务(Geoprocessing service)、
矢量切片服务:发布和使用 ArcGIS enterprise 服务之–矢量切片服务(vector server)
、场景服务
、地理数据服务、以及几何服务、KML 服务、地理编码服务、定位器Maritime Server、路径服务、Schematics 服务、流服务、公共设施网络服务、Workflow Manager 服务等;等,以及如何使用JS调用这些服务。

1.什么是地图服务?

地图服务是一种利用 ArcGIS 使地图可通过 Web 进行访问的方法。

您首先在 ArcMap 中制作地图,然后将地图作为服务发布到 ArcGIS Server 站点上之后,Internet 或 Intranet 用户便可在 web 应用程序、ArcGIS Desktop、ArcGIS Online 以及其他客户端应用程序中使用此地图服务。

1.1地图服务的数据源和支持方式

1)支持以下数据源:

数据库(请参阅ArcGIS 数据库管理系统要求,以获得支持的数据库和空间数据类型的列表)
通过 OLE DB 连接文件 (.odc) 访问的数据库
文件地理数据库
企业级和工作组级地理数据库
NetCDF 文件
网络数据集
插件式自定义数据类型
栅格
SDC 文件
Shapefile
文本文件
追踪数据源

这里大家可以打开,在我们发布地图服务的时候,数据源可以是多种多种类型的,所以地图服务也是我们最常用的服务。

2)图层符号系统

可用的图层符号系统选项如下:

图表/点密度/分级色彩/分级符号/比例符号/制图表达(建议仅在缓存地图中使用)/单一符号/唯一值/标注

3)支持的图层类型如下图层类型

注记图层/尺寸图层/要素图层/基于文件的栅格目录图层/地理数据库栅格目录图层/地统计图层/图层组/镶嵌图层/网络分析图层/宗地结构图层/查询图层/栅格图层/逻辑示意图图层/Terrain 图层/TIN 图层/追踪图层/XY 事件图层/路径事件图层/动态图层/动态图层允许客户端动态更改地图服务中的图层外观和行为。

4)使用动态图层可以完成以下操作:

从动态工作空间向地图添加新图层。
定义绘制图层标注的方式。
定义图层符号系统(简单的、唯一值、分类间隔)。
定义地图中图层的位置和顺序
修改与现有图层/表的连接。
从地图中移除现有图层。
向现有图层/表添加连接,或从动态工作空间添加图层/表。
即使切片缓存可用,也强制服务器执行动态绘制。
REST 客户端、COM 客户端和非 Esri SOAP 客户端支持动态图层。可作为

5)动态工作空间注册的数据源包括:

数据库(仅查询图层)/文件地理数据库(仅要素图层、栅格图层和表)
包含基于文件的栅格的文件夹/包含 shapefile 或 .dbf 文件的文件夹/地理数据库(仅要素图层、栅格图层、查询图层和表)/栅格符号系统/大部分栅格符号系统可用。栅格全色锐化过滤器也可用。不支持动态绘制山体阴影。

6)符号
大多数 2D 符号均可用,但不支持 3D 符号。可用的符号如下:

箭头标记符号/制图线符号/字符标记符号/渐变填充符号/混列线符号/线填充符号/标记填充符号/标记线状符号/多图层填充符号/多图层线状符号/多图层标记符号/图片线状符号/图片填充符号/图片标记符号/简单填充符号/简单线符号/简单标记符号/文本符号
虽然建议仅在缓存地图中将制图表达与地图服务配合使用,但仍支持制图表达规则。

7)其他可用的功能包括:

所有色带类型/所有颜色类型/所有数字格式/书签/注释/定义查询/查询表达式
注:
定义查询/查询表达式无法通过地图服务以编程方式修改。如果需要修改地图服务中指定的查询,则需要打开原始地图文档,更新查询,并覆盖地图服务。有关完整说明,请参阅在 ArcGIS Desktop 中覆盖服务。

HTML 弹出窗口/超链接/图例/地图提示/独立表/页面布局和显示表达式不可用。只能通过此服务的 Web 服务描述语言 (WSDL) 使用比例尺。

上述的这些,就需要我们自己在制作数据的时候,在arcmap或者arcgis Pro中对其进行符号化,配图,标注,注记等操作了。

1.2如何开始创建地图服务?

所有地图服务均需要首先在 ArcMap /ArcGIS Pro中创建相应的地图。

arcmap中是:
地图创建完成后如果准备与其他用户共享,请从主菜单中选择
文件 > 共享为 > 服务 > 发布服务

arcgis Pro中需要我们在需要发布的数据上面右键–共享为web图层:

共享为服务 对话框中的选项可帮助您将地图共享为服务。

1.3为什么要使用地图服务

通过地图服务,地图、要素和属性数据可在多种类型的客户端应用程序中使用。

地图服务的一种常见应用是在 ArcGIS Online、Bing Maps 或 Google Maps 中的底图切片上方显示商业数据。

对于同一地图服务,可同时由多个用户分别在 ArcMap 中、Web 应用程序中、ArcGIS Online 中和移动应用程序中使用。

以下是建立地图服务的一些常见理由。

1) 提供动态地图

动态地图会在用户发出请求时进行绘制。动态地图的速度不及缓存地图,但它们可适用于高关注度的 intranet 应用程序以及需要实时显示数据的应用程序。

2) 提供动态图层

地图服务具有内置功能,允许客户端(如 ArcGIS Web APIs)动态更改每个图层的行为和外观。这些动态图层可有效增加用户与 Web 地图的交互量。

3) 提供缓存地图

缓存地图服务(使用一组预创建图像的服务)是在 Web 上提供地图的最快捷的方式。这也是 ArcGIS Online、Google 地图、Bing 地图和其他许多服务显示地图的方式。

地图缓存不会自动创建;而需要在发布服务后手动创建缓存。

4) 提供要素

地图服务并不总是需要显示图像。建立地图服务的目的还可以是在应用程序中返回一组要使用的要素。您可以通过添加至应用程序中的任务来检索这些要素。

如果您希望建立一个地图服务来提供要素,应确保可进行“查询”和“数据”操作。

5) 提供网络分析功能

您可建立地图服务以基于服务器执行网络分析。如果您的地图文档中包含网络分析图层,则您在发布该服务时将会看到可启用的“网络分析”功能。

然后,您便可以在使用 ArcGIS Server 开发应用程序时执行网络分析操作。您可在地图文档中设置分析的默认属性,例如设施点和障碍。

6) 通过 KML 提供地图或要素

KML 是一种基于 XML 的开放式结构来表示地理数据和地图的方式。KML 通常在地理浏览器应用程序(例如 ArcGIS Earth)中用来显示地图叠加或要素,其属性有时会显示在信息性弹出窗口中。默认情况下,所有地图服务都能够返回 KML。

7) 通过 OGC 规范提供图像、要素或栅格

开放地理空间联盟发布了在 Web 上提供地图图像 (WMS)、矢量要素 (WFS)、栅格数据集 (WCS) 和 Web 地图切片 (WMTS) 的规范。

一些组织规定其地理数据和地图必须通过这种方式提供。地图服务可以配置为返回符合 OGC 规范的图像或数据。

描述:
这些仅是地图服务用途的一部分。在对地图服务的使用过程中,您可能会发现更多其他用途。所有地图服务都可通过 SOAP 和 REST 界面来显示,从而使它们可用于多种 Esri 和第三方应用程序。

1.4.应该启用哪个服务功能?

1)功能
使用功能选项卡可选择要在地图服务中启用的服务功能。这些功能可创建更多的服务,以与地图服务搭配使用。它们可使用户在更广泛的应用程序和设备中访问地图。服务功能使用户能够借助地图服务实现更多的功能,例如网络分析和要素访问。

此表列出了地图服务可以使用的功能以及有关启用相应功能的所有特殊要求。要了解有关设置每种服务功能的具体属性的详细信息,请单击以下链接。

功能 功能介绍 特殊要求
制图 通过 SOAP 和 REST URL 对地图文档的内容进行访问 对所有地图文档始终启用
WCS 使用地图文档中的栅格图层创建符合开放地理空间联盟 (OGC) 网络覆盖服务 (WCS) 规范的服务 需要栅格图层
WMS 使用地图文档创建符合 OGC 网络地图服务 (WMS) 规范的服务
要素访问 对地图中的矢量要素进行访问;通常在进行编辑时使用 需要矢量图层
切片地图 提高托管切片服务的重采样性能 仅适用于缓存地图或影像服务
逻辑示意图 允许查看、生成、更新和编辑逻辑示意图 需要逻辑示意图图层
网络分析 使用 ArcGIS Network Analyst extension 求解交通网分析问题 需要一个引用网络数据集的网络分析图层
KML 使用地图文档创建 KML 要素
WFS 使用地图文档中的图层创建符合 OGC 网络要素服务 (WFS) 规范的服务 需要矢量图层(栅格图层未包括在此服务中,因为 WFS 的目的是为矢量要素几何提供服务)

2)制图功能
制图功能始终处于启用状态。单击此功能时,您可以查看直接通过 REST 和 SOAP 访问服务 URL,并且可以切换 有关以下操作的切换按钮:

操作 描述
地图 允许使用导出地图、生成渲染器、查询图例和生成 KML 的方法。此操作不能关闭。
查询 允许使用查找、查询和查询相关记录的方法。
数据 允许使用识别的方法。

1.5使用地图服务方式和客户端

发布到 ArcGIS Server 的服务可用于本地和 web 客户端。由于地图服务具有很多功能,因此可在很多 Esri 和第三方客户端应用程序中使用。其中包括 Esri 客户端(如 ArcGIS Enterprise、ArcGIS Online、ArcGIS API for JavaScript、ArcGIS Earth 和 ArcGIS Desktop)以及第三方客户端(如 Google Earth、OGC 和 Autodesk AutoCAD 应用程序)。

Esri 客户端应用程序
以下介绍了可以使用地图服务功能的 Esri 客户端应用程序。

1)ArcGIS Enterprise

在 ArcGIS Enterprise 门户中,指定用户和 Internet 上的任何人(可选)可以查看和使用您在 Map Viewer 中提供的 GIS 内容。

如果您的 ArcGIS Server 站点与 ArcGIS Enterprise 门户联合,则从 ArcMap 发布的所有地图服务都会自动共享到门户。ArcGIS Pro 用户可以将 web 地图(由 ArcGIS Server 地图服务提供支持)直接共享到门户。

如果您有一个独立的 ArcGIS Server 站点,则您可以在 ArcGIS Enterprise 门户中将地图服务添加为外部服务,以使用这些服务。有关详细信息,请参阅连接到安全服务。

2) ArcGIS Online

您可以使用 ArcGIS Online 中的 Map Viewer 来构建和共享使用 ArcGIS Server 站点上托管的地图服务的 web 地图及应用程序。另外,您可以使用可用的底图、数据和应用程序(例如预配置模板或 ArcGIS Web AppBuilder)来共享您的内容。

3)ArcGIS Desktop 应用程序

ArcMap
ArcGIS Pro
ArcGIS Maps for Office
ArcGIS Maps for Office 通过 Microsoft 加载项在 Microsoft Office 中提供制图功能。可将此加载项与 Microsoft Office 组件配合使用,以创建可引用和显示 GIS Server 上的地图服务并可与这些地图服务进行交互的地图。可从 Esri 网站下载 ArcGIS Maps for Office。

4)ArcGIS Maps for SharePoint

ArcGIS Maps for SharePoint 提供可配置的交互式制图组件,以便您了解组织数据的地理空间视图。ArcGIS Maps for SharePoint 包括 Web 地图组件,允许您引用和显示 GIS 服务器上的地图服务以及与这些地图服务进行交互。

5)ArcGIS Earth

ArcGIS Earth 允许您浏览世界任何地方的地形、海洋和山脉,以 3D 模式显示地球上的数据。ArcGIS Earth 使用各种 2D 与 3D 地图数据格式来显示数据、创建草图、测量距离和面积并添加注记以讲述故事。

6)Explorer for ArcGIS

Explorer for ArcGIS 允许您组织中的每个人在其设备上查找、分析和共享地图服务。您可对数据进行可视化、在您的地图中搜索地点和要素、在地图上绘制草图以高亮显示重要的要素、与其他 Explorer for ArcGIS 用户共享地图以及通过交互式地图演示来讲述故事。

7)ArcGIS API for JavaScript 应用程序

ArcGIS API for JavaScript 可帮助您构建采用地图服务的 Internet 应用程序。ArcGIS API for JavaScript 具有完整的帮助文档,其中包含概念帮助、示例和 API 参考主题,可使编程变得更加轻松。有关详细信息,请参阅 ArcGIS API for JavaScript 主页。

8)ArcGIS Runtime SDKs

开发人员可以使用 ArcGIS Runtime SDK 在各种流行的平台和设备上构建和部署原生应用程序。有关详细信息,请参阅 ArcGIS for Developers 站点。

9)第三方客户端应用程序

以下第三方客户端可以使用地图服务功能:

Google Earth(以 KML 形式)
Web 覆盖服务客户端应用程序(作为 OGC WCS)
Web 要素服务客户端应用程序(作为 OGC WFS)
Web 地图服务客户端应用程序(作为 OGC WMS)
Web 地图切片服务客户端应用程序(作为 OGC WMTS)
Web 处理服务客户端应用程序(作为 OGC WPS)
AutoCAD(作为 ArcGIS for AutoCAD 插件应用程序)

2.服务准备/制作/发布/调用操作实例

2.1.发布服务

2.1.1 arcmap发布地图服务

1)首先加载数据
先连接上arcgis server


注:此处如果自己的机器只安装了一个arcgis server的话,那么我们只需要填写server站点的管理员账号和密码即可;

但是如果我们的机器环境是enterprise环境的话,此处填写的是portal的账号和密码;
什么是enterprise参安装教程:
ArcGIS Enterprise10.8.1部署在Linux环境下安装教程
Windows server2012配置enterprise10.8.1的Web_Adaptor_Java版安装详细教程

加载数据:
我们加载的是GDB中的feature class数据:其中配图什么的,可以在属性符号等里面进行操作,包括一系列的分析等都可以操作;


然后发布服务:

链接上我们的GIS Server服务:

新建一个文件夹,以便于我们寻找:

然后点击下一步就到了我们service Editor这个页面了:

点击Capabilities这个界面,可以勾选我们需要发布的服务类型,由于我们这里只需要发布地图服务,所以我们默认就行:

其他的直接默认即可:点击分析:


分析完只有没有错误,警告可以不用管它,直接点击发布即可;



出现这个界面即表示我们的地图服务发布完成了;

接下来,让我们去server manager这个位置上看一下:

同样,我们点进去 这个页面,就可以查看我们发布的REST服务,然后就可以实现一个rest服务操作:


对于想实现query查询的,我们只需要点击上去没有的Layers 0/1/2图层进去即可实现query操作了;

2.1.2 arcgis pro发布地图服务

pro发布 的服务的时候,我们需要先使用Pro链接上我们的portal,然后才能正常的共享为web图层:

加载数据,将相同的三个数据加载到arcgis Pro中:

这个地方,有些小伙伴会说,这个三个图层,可以一起发布成一个mapserver吗? 当然可以, 按着Ctrl键,然后右键共享为web图层,即一起发布成一个mapserver:

填写一些描述信息:选择copy数据的形式:

点击分析没有保存,然后点击发布即可:



可能细心的小伙伴会说,为什么arcmap发布的时候还有功能参数等这些设置,为什么pro没有呢,其实是是一样的,我们看看在哪里:




瞬间是不是感觉类似于arcmap发布地图服务的感觉;

那么我们一起看看portal的位置:


点击进去刚才发布的服务:

点击缩略图进去,即可看到我们发布的服务:


复制服务的rest服务的url到网页,同样可以进行rest的query查询,这个服务的url也是我们后期需要用JS调用的url;

2.2.ArcGIS API for JavaScript调用服务

我们在使用地图服务的时候,有很多种方式,本示例主要是使用ArcGIS API for JavaScript调用服务;

**MapImagerLayer 用来加载动态地图服务;**地图服务根据请求在服务器端动态输出地图图像;

MapImageLayer允许您显示和分析来自地图服务中定义的子图层的数据,并导出图像而不是要素。

地图服务图像是根据请求在服务器上动态生成的,该请求包括LOD(详细程度),边框,dpi,空间参考和其他选项。 导出的图像具有指定的整个地图范围。
与FeatureLayer不同,MapImageLayer处理由服务器而非客户端处理。 在某些情况下,将处理任务卸载到服务器可以使MapImageLayer以更高的性能呈现更多功能。

实例化MAPImageLayer的是这种:

具体代码如下:

<!DOCTYPE html>
<html><head><meta charset="utf-8" /><metaname="viewport"content="initial-scale=1,maximum-scale=1,user-scalable=no"/><title>Intro to MapImageLayer | Sample | ArcGIS API for JavaScript 4.16</title><linkrel="stylesheet"href="https://js.arcgis.com/4.16/esri/themes/light/main.css"/><script src="https://js.arcgis.com/4.16/"></script><style>html,body,#viewDiv {padding: 0;margin: 0;height: 100%;width: 100%;}</style><script>require(["esri/Map","esri/views/SceneView","esri/layers/MapImageLayer"], function (Map, SceneView, MapImageLayer) {/****************************************************************** Create a MapImageLayer instance pointing to a Map Service* containing data about pool permits in Southern California.*****************************************************************/var layer = new MapImageLayer({url:"https://t460p.esrichina.com/server/rest/services/NewFolder/MyMapServiceTest/MapServer"});/****************************************************************** Add the layer to a map*****************************************************************/var map = new Map({basemap: "dark-gray",layers: [layer]});var view = new SceneView({container: "viewDiv",map: map});/****************************************************************** Animate to the layer's full extent when the layer loads.*****************************************************************/permitsLayer.when(function () {view.goTo(permitsLayer.fullExtent).catch(function (error) {if (error.name != "AbortError") {console.error(error);}});});});</script></head><body><div id="viewDiv"></div></body>
</html>

加载出来在网页端的效果就是这样的:

发布和使用ArcGIS Server 服务之--地图服务(Mapserver)相关推荐

  1. ArcGIS Server中的各种服务

    ArcGIS Server中的各种服务 使用服务 通过服务可以在客户端之间更容易的共享资源.通过服务可以保证所有的客户端访问到同样的资源,而不用在他们的机器上单独进行安装. 服务器存储着资源,管理服务 ...

  2. 《水经注地图服务》地图服务与通用设置说明

    (本文首发于"水经注GIS"公号,关注公号免费领取地图数据) <水经注地图服务>(WeServer)是一款可快速发布全国乃至全球海量卫星影像的地图发布服务产品,该产品完 ...

  3. ArcGIS环境搭建及地图服务发布

    ArcGIS的环境需要如下文件: SQL Server2012 ArcGIS for Desktop ArcGIS for Server 目前网上提供的ArcGIS下载都是10.2.0版本.这个版本与 ...

  4. arcgis server 9.3 查看地图服务时出现No Content错误

    问题描述: 使用ArcGIS Server Manager的Add new service功能发布一个服务.然后启动服务 用浏览器访问该服务的地址http://localhost/ArcGIS/ser ...

  5. Arcgis加载离线地图服务二次开发

    ARCGIS搭建离线地图服务器,进行离线地图二次开发 1.     离线地图金字塔瓦片数据  (下载数据教程:http://www.bigemap.com/helps/doc20190312126.h ...

  6. echarts地图文字重叠解决方案_基于Echarts的百度地图叠加arcgis server的WMS图层服务...

    前言 前阵子利用echarts+百度地图做系统的门户首页,遇到一个要地图上叠加产业城影响范围示意图的需求.查阅文档之后,发现百度地图API确实提供了叠加自定义图层的方法,详情请看: 百度地图API的M ...

  7. ArcGIS Server 10.1发布结果地图服务——与10.0的区别及过程

    之前一直在研究ArcGIS Server插值,以及删格数据在Web端的展示,很多人问了我同一个问题,就是如何在Web端展示插值后的删格数据呢? 我们知道插值很多地方都会用到,它能教准确的预测和模拟事物 ...

  8. (一)ArcGIS Server之发布动态地图服务

    文章目录 1.引言 2.什么是地图服务? 3.地图服务之动态地图服务 4.利用ArcMap发布动态地图服务 4.1用ArcMap打开我们想要发布为服务的数据 4.2为了发布出来的数据好看一点,我们可以 ...

  9. 一、ArcGIS Server篇:利用ArcGIS Server发布动态地图服务

    写在前面的话:本篇博客参考 在WebGIS开发过程中,我们所需要的数据不仅仅来自于ArcGIS online,有时候我们需要发布自己的数据服务,在本篇博客中主要说明一下如何利用ArcGIS Serve ...

最新文章

  1. 20145234黄斐《Java程序设计》第五周
  2. Hive Error : Java heap space 解决方案
  3. 【机器学习】谷歌的速成课程(二)
  4. 鼠标滚轮(mousewheel)和DOMMouseScroll事件 (转载)
  5. leetcode53. 最大子数组和(动态规划)
  6. 利用nat123进行内网穿透
  7. 【神经网络】学习笔记五—循环神经网络RNN简介1.0
  8. python粒子群喷发_python3实现单目标粒子群算法
  9. 教你用Python自制拼图小游戏,一起来玩吧
  10. 教你玩转 sqlplus,工作效率提升 200%
  11. WHM系列:WHM数据迁移(WHM→WHM)
  12. 云手机互联网点评系列-华为云手机云服务cloud+初评
  13. 管理学十二(流程与制度的重要性)
  14. Android studio中如何利用Debug模式来调试程序
  15. 用C语言打印一个等腰三角形
  16. 系统可用性:SRE口中的3个9,4个9...到底是个什么东西?
  17. 2020.10.15-simulink入门-无线信道特性
  18. 年前找Java实习面试经历
  19. 国产麒麟(Kylin)系统编译Openldap
  20. “兼并”还是“合作” 宏碁方正各怀鬼胎

热门文章

  1. LeetCode笔记:Biweekly Contest 87
  2. python查看内存地址
  3. Calling non-final function sound in constructor
  4. vue后台管理系统项目标准完整的目录开发架构
  5. 大疆MSDK开发指南
  6. 重定向跟服务器内部转发总结
  7. net6创建Startup文件
  8. java 十六进制转为int_关于java:将十六进制字符串转换为int
  9. linux服务器CPU飙高排查
  10. 中国人民银行笔试计算机专业考什么,12月中国人民银行计算机类考试笔试经验...