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

2023-11-11

ArcGIS的环境需要如下文件:

  1. SQL Server2012
  2. ArcGIS for Desktop
  3. ArcGIS for Server

 

目前网上提供的ArcGIS下载都是10.2.0版本。这个版本与win7的某几个补丁有冲突,会导致PublishingTools服务无法启动,导致地图无法发布。官网提供了相关补丁下载,但最低版本是10.2.1,对于10.2.0版本是无效的。网上提供的各种解决方案,重启电脑,重启服务,修改注册表python路径,删除PublishingTools然后重构,重装ArcGIS for Server,排除端口占用等,经测试都无效。所以在windows系统上会大概率遇到该问题。一种未经测试的解决方案是卸载所有windows补丁,但成本太高。然而这个问题在win server操作系统上不存在。建议直接安装在win server操作系统上。

下面的安装说明都是基于win server

为了方便后文引用前文定义的内容,设置书签:

书签1:表示定义书签1。

书签1:表示引用定义的书签1

 

  • 准备工作
  1. 通常需要VC运行库,建议安装合集,从2005-2012。
  2. 在桌面的计算机图标上点右键,选择管理,会弹出服务器管理器。
  3. 选择角色→添加角色,点下一步,确保Web服务器(IIS)已安装。
  4. 选择功能→添加功能,确保.NET Framework 3.5.1是选中的。
  5. 选择配置→服务,右侧找到windows Installer,打开。
  6. 在硬盘上新建3个文件夹(书签1):
  • arcgisserver:用于存放ArcGIS Server相关文件。
  • arcgismap:用于存放地图相关文件。
  • arcgismxd:用于存放保存的地图文件。
  • 安装SQL Server 2012

网上下载的SQL Server 2012通常是Enterprise Server版本,序列号为:

748RB-X4T6B-MRM7V-RTVFF-CHC8H

  1. 双击setup安装。
  2. 点击右侧系统配置检查器。全部检查通过,点确定。
  3. 点击左侧的安装,选右侧第一项“全新 SQL Server独立安装或向现有安装添加功能”。然后会进行安装程序支持规则检查。全部通过后,点确定。
  4. 产品密钥界面,选择右侧第二个选项,输入产品密钥。即上面红色的序列号。
  5. 许可条款界面,选择接受许可条款,点下一步。
  6. 产品更新界面,默认勾选包括SQL Server产品更新,点下一步。
  7. 安装程序支持规则验证,全部通过。WIndows防火墙可能有警告,这个无所谓。点下一步。
  8. 设置角色界面,选“SQL Server”功能安装,点下一步。
  9. 功能选择界面,点全选,安装目录建议默认。点下一步。
  10. 安装规则验证,全部通过,点下一步。
  11. 实例配置界面,通常选“默认实例”。然而,若系统中已经安装了其他版本的SQL Server,则会产生冲突。此时需要选命名实例,自定义一个实例名。若采用默认实例,择实例名为MSSQLSERVER;若自定义实例名,建议填写MSSQLSERVER2012
  12. 磁盘空间和服务器配置都使用默认,点下一步。
  13. 数据库引擎配置,右侧选择混合模式(SQL Server身份验证和Windows身份验证),并定义sa用户的密码。点击左下角的“添加当前用户”选项,将当前用户指定为SQL Server管理员。
  14. Analysis Services配置,选择多维和数据挖掘模式。点击左下角的“添加当前用户”选项,将当前用户指定为具有对Analysis Services的管理权限。
  15. Reporting Services配置选项,默认即可,下一步。
  16. 分布式重播控制器,点击左下角的“添加当前用户”选项,点下一步。
  17. 后续都默认,全部点击下一步,通过安装配置规则验证后,点安装。等待安装完成。
  18. 安装成功,关闭安装程序。
  • 安装License Manager和ArcGIS desktop

点击ArcGIS for Desktop的exe安装文件:

首先要点下方ArcGIS License Manager的setup,安装完成后再点击上方的ArcGIS for Desktop。

  1. ArcGIS License Manager全部默认即可。等待安装完成。
  2. ArcGIS for Desktop也全部默认,等待安装完成。完成后会弹出ArcGIS Administrator Wizard窗口,用于选择product,例如ArcInfo浮动板。然而此时还没有破解,先不选,关闭。
  3. 点击ArcGIS for Desktop安装最后一步的Finish,可能会假死。直接用任务管理器关掉即可。
  4. 打开开始菜单,找到ArcGIS→License Manager→License Server Administrator,选中左侧的“启动/停止许可服务”,然后点击右侧的停止。
  5. 执行破解。下载的文件往往带有注册机。通常是将生成的注册码复制到service.text中,替换到ArcGIS/License10.2的安装目录下。
  6. 启动4中停止的许可服务,并重新读取许可。
  7. 打开开始菜单,找到ArcGIS→ArcGIS Administrator,弹出3中直接关闭的ArcGIS Administrator Wizard窗口,此时再选择Advanced(ArcInfo)浮动版,并将许可管理器更改为localhost。
  8. 若需要汉化,则将下载安装文件中附带的DesktopChinese_CN进行解压,然后双击运行即可。
  9. 最后,打开开始菜单,找到ArcGIS→License Manager→License Server Administrator,选中左侧的“启动/停止许可服务”,确保右侧是启动的。
  • 安装ArcGIS for Server

ArcGIS for Server用于发布地图服务。下载的版本通常为10.2.0,并附带了ecp授权文件。

  1. 首先对当前用户进行密码设置。
  2. 双击ArcGIS for Server的exe安装文件,选择ArcGIS for Server,并点击Setup。
  3. 提示输入ArcGIS Server运行所需要的用户名和密码,这个可自定义,或使用系统的用户名和密码。若自定义,会在系统中创建一个ArcGis运行所使用的账户;若使用系统的账户则不会创建。推荐使用系统账户。
    若使用了自定义账户,又在windows的账户管理中将自定义账户删除了,会导致ArcGIS Server服务无法启动,提示是用户无法登录。此时只要进入开始菜单,打开ArcGIS→ArcGIS for Server→Configure ArcGIS Server Account,重设一次用户名和密码即可。重设时,可以设置已存在的账户,也可以设置新账户。设置完成后,ArcGIS Server服务即可启动。
    ArcGIS Server服务启动后,由于更换了用户名和密码,需要登录下面6中Manager页面重启地图服务。
  4. 指定服务器位置,配置为指向(书签1)中的arcgisserver文件夹。
  5. 然后全部默认,一直下一步,直到授权界面。选中附带的授权文件(书签2)。
  6. 授权完成,浏览器会跳转到ArcGIS Server Manager页面。创建一个站点,需要设置登录这个Manager页面所使用的用户名和密码。这里设用户名为arcgis,密码为123456(书签3)。配置完成,重新登录。建议将该页面保存为浏览器收藏,后面还会经常用到。
  7. 在ArcGIS Server Manager页面的管理服务页面,会列出已发布的地图服务。默认有一个SampleWorldCities服务。
  8. 点击左侧的System,确保右侧的服务都处于“已启动”状态。特别是PublishingTools。
  9. 将PublishingTools右侧的小锁打开(编辑服务安全性)。
  • 准备数据库
  1. 打开开始菜单,找到SQL Server2012目录,打开下面的SQL Server Management Studio。
  2. 查看左侧的对象资源管理器,最上一级列出了本数据库的实例名,把这个实例名记下来(书签4)。下图的实例名为:WIN-OTF1M83B55R\MSSQLSERVER2012。注意是反斜线。
  3. 在左侧“数据库”节点上点右键,选“新建数据库”。自定义一个数据库名称,只要与已有数据库名称不冲突即可。其他选项可按需求修改。把这个名称记下来(书签5)。这里把数据库命名为arcgis。
  4. 数据库创建后就是一个空的数据库,没有任何表或其他数据结构。关闭即可。
  • 准备地图数据源

下载地图数据源,并放置到(书签1)中的arcgismap文件夹。

  • 导入地图并发布服务
  1. 打开开始菜单,找到ArcGIS→ArcMap10.2,打开,会默认提示打开一个空文件,取消即可。
  2. 点击上方工具栏中的ArcToolbox:
  3. 在弹出的ArcToolbox中选择:数据管理工具→地理数据库管理→创建企业级地理数据库。
  4. 在弹出的界面中填写相关信息:

    其中:
    • 据库平台:默认选择SQL_Server。
    • 实例:输入(书签4)中的实例名。
    • 数据库:输入(书签5)中的数据库名称。
    • 数据库管理员:默认sa。
    • 数据库管理员密码:sa所对应的密码。
    • 地理数据库管理员密码:与⑤相同。
    • 授权文件:选择ArcGIS for Server的授权文件,即(书签2)中的ecp文件。
  5. 等待创建完成。
  6. 打开右侧侧边栏的目录,选择数据库连接→添加数据库连接。

    在弹出的数据库连接界面中进行设置:
    • 数据库平台:默认选择SQL Server。
    • 实例:输入(书签4)中的实例名。
    • 身份验证类型:选择数据库身份验证,用户名为sa,密码为对应的数据库密码。选中“保存用户名和密码”。
    • 数据库:上面信息填写无误,数据库右侧选项就会列出所有可用数据库。选择(书签5)中专门为ArcGIS所创建的空数据库。
  7. 确定后,右侧就会列出刚添加的数据库。默认是没有连接的。双击连接。
  • 导入地图并发布服务
  1. 打开右侧侧边栏的目录,在“文件夹连接”上点右键,选择“连接到文件夹”。然后选中(书签1)中的arcgismap文件夹。下面就会列出该文件夹的文件。
  2. 打开地图文件夹后,会列出多个层级关系。将右侧的图层文件用鼠标直接拖动到左侧的图层中。

    这样,在中间的地图显示区域就能看到地图了。可以通过工具条上的比例设置,或者键盘上的+-键来控制地图的放缩。
  3. 在ArcMap中打开菜单文件→另存为,将当前文档另存为mxd文件,放在(书签1)中的arcgismxd文件夹下。文件名自定义,但通常会定义为与发布的地图服务名相同。
  4. 保存后,在ArcMap右侧侧边栏的“目录”选项下,查看默认工作目录,会列出刚才保存的mxd文件。在上面点右键,选择“共享为服务”。
  5. 选择“发布服务”,下一步。
  6. 第一次操作,点击右侧的图标来创建一个新连接,然后跳转到步骤7;后续操作,选择已创建的连接,并自定义服务名(默认是保存的mxd文件名),然后跳转到步骤10。
  7. 选择发布GIS服务,下一步。
  8. 在弹出的常规界面中,填写相关信息:

    其中:
    1. 服务器URL:格式为http://xxx:6080/arcgis,将其中的xxx替换为服务器的ip即可。
    2. 服务器类型:选择ArcGIS Server。
    3. 身份验证:填写(书签3)中配置的登陆ArcGIS Server的用户名和密码。
  9. 配置完成后,右侧侧边栏目录下的“GIS服务器”节点下就多了一个刚配置的服务器。默认是没有连接的,双击可打开连接,但现在无法点击,等步骤11时再连接。跳转回步骤6,选择刚才配置的连接。
  10. 发布服务,默认选择“使用现有文件夹”,右侧默认选择[根]。点击继续。
  11. 弹出服务编辑器,这是个模态窗,先不管这个弹窗,查看ArcMap右侧侧边栏目录下的“GIS服务器”节点,上面有9中新添加的服务器。若该服务器没有连接,则双击连接。然后查看服务编辑器弹窗,点右上角的分析按钮:
  12. 查看ArcMap下方的控制台,会列出分析出的问题。

    通常会列出一个严重性为“高”的问题,描述为“图层的数据源未注册到服务器,数据将被复制到服务器”。该问题会导致服务发布时数据源进行复制,占用大量时间。
    右键点击该行,在弹出的菜单中选“数据源注册到服务器”。

    在弹出的注册文件夹中,共享的文件夹路径就是(书签1)中设置的地图路径,不需要修改;名称可自定义。
  13. 注册完毕后,重复步骤11进行分析,在ArcMap下方的控制台中该问题已经不存在了:
  14. 然后回到服务编辑器界面,点右上角的“发布”按钮,等待发布成功。

    整个发布过程不会很长,通常在30秒内。
  • 查看发布结果

打开开始菜单,找到ArcGIS→ArcGIS 10.2 for Server→Manager(或者直接从保存的浏览器书签中打开),会弹出浏览器,打开ArcGIS Server Manager界面。输入(书签3)中的用户名和密码,会看到管理服务菜单下多了一个服务:

这就是刚才我们发布的地图服务。点击该地图,就会打开一个新页面,看到地图服务的具体内容了。

对于用户,复制刚才新页面的的地址,确认其ip是服务端的ip,然后用浏览器打开,也能看到地图服务。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ArcGIS环境搭建及地图服务发布 的相关文章

  • 如何通过 python 脚本在 ArcGIS 中添加 shapefile?

    我正在尝试使用 Python 自动执行 ArcGIS Desktop 通常使用 ArcMap 中的各种任务 并且我一直需要一种将形状文件添加到当前地图的方法 然后对其做一些事情 但那是另一个故事 到目前为止我能做的最好的就是添加一个laye
  • 为什么openfire的用户在会话中不存在SESSION的情况下仍保持在线

    I m developing an android app contains Messaging using OpenFire as an XMPP server and using Smack for android client All
  • ipython 服务器无法启动:没有名为 notebook.notebookapp 的模块

    我一直在尝试按照几个教程设置 ipython 服务器 因为没有一个完全符合我的情况 几天前 我确实设法将其启动 但随后无法通过 url 访问它 今天它不再启动了 我找不到太多关于我得到的这个特定错误的信息 Traceback most re
  • python创建DDE服务器并不断发送数据

    我正在尝试用 python 编写一个 DDE 服务器 它需要将不断变化的字符串发送到作为 DDE 客户端连接的程序 连接到 DDE 服务器的程序使用以下 DDE 设置来连接 服务 Orbitron 主题 Tracking 项目 Tracki
  • 在C中通过http发送图像到浏览器

    A 是 C 的新手 我正在尝试用 C 实现一个 Web 服务器 我可以成功地将 txt 和 html 文件发送到浏览器 但是 尽管我有正确的内容类型标头 可以识别图像为 jpg 但我无法发送任何图像 这是我用来查找内容类型的函数 char
  • 在计算机上找不到 MySQL

    我最近直接从网站 mysql 5 7 9 osx10 10 x86 64 dmg 安装了MySQL 并且在尝试更改给定密码时遇到了很大的困难 返回的错误是 警告 在命令行界面上使用密码可能会导致 没有安全感 mysqladmin 连接到 l
  • Paramiko 服务器:向客户端发出 stdout 已关闭的信号

    尝试在中实现测试服务器paramiko 无需修改客户端进行测试 我偶然发现了如何关闭的问题stdout流 使 stdout read 不会永远挂起 而不会在客户端的级别太低 到目前为止 我已经能够通过以下方式传达已完成的命令 简单文本输出到
  • 无法在运行 apache 服务器上访问 http://localhost:80

    在 ubuntu 14 04 中运行 apache 服务器时我得到 This webpage is not available 在浏览器中或 curl 7 Failed to connect to localhost port 80 Con
  • Tomcat 和 TomEE、TomEE 和 TomEE Plus 之间有什么区别

    我想在服务器中部署 EJB Ear 但我对选择服务器感到非常困惑tomcat TomEE and TomEE Plus 两者有什么区别Tomcat and TomEE 其中有哪些新功能TomEE and TomEE Plus 在什么情况下才
  • 当 URL 可在浏览器中访问时,SSH Curl 不起作用

    This post is linked with another post of mine still unsolved Laravel 作曲家更新 连接被拒绝 https stackoverflow com questions 52404
  • 保存到服务器后,隐藏字符“\u0”添加到文件中

    我正在使用 Apache 服务器为 Web 开发网站提供服务 这样我就可以不断保存和编辑文件 我使用 Gulp for Sass 来连接和丑化 css 和 js 文件 一个月前 我的 js 和 css 文件遇到问题 似乎在文件下面添加了随机
  • 套接字:监听积压并接受

    listen sock backlog 在我看来 参数backlog限制连接数量 这是我的测试代码 server initialize the sockaddr of server server sin family AF INET ser
  • Laravel Vue js spa 应用程序

    1 我想知道为什么人们使用两台服务器用 laravel 制作 vuejs SPA 我想我们可以用另一种方式 制定这样的路线 Route get any function return view index gt where any 并让 v
  • Grpc - 将消息从一个客户端发送到连接到同一服务器的另一个客户端

    是否可以将消息从一个客户端发送到连接到同一服务器的另一个客户端 我想将数据从一个客户端发送到服务器然后发送到特定客户端 我想我需要获取客户端 ID 但我不知道如何获取此 ID 以及如何从服务器将此消息发送到该客户端 我这里有一个样本 这是一
  • .htaccess 主要用于 localhost

    我在本地主机上使用 wamp server 虚拟主机名为www xyz com我有一个通过 git 设置的部署服务 它将代码部署到服务器上www xyz in 这是我的 htaccess 代码 RewriteEngine on Rewrit
  • PHP 和 ADODB 连接失败

    我的任务是迁移服务器 这包括移动我没有构建的应用程序 其中一些具有 ADODB connection 我似乎无法在新服务器上修复它 我只得到空白屏幕 我已经对 ADODB connection 与 PHP 进行了相当广泛的研究 但找不到明确
  • 如何将 CAD (DWG) 文件转换为 GeoJSON?

    我正在使用 OpenLayers 需要将 DWG 文件转换为 GeoJSON 格式 我怎样才能做到这一点 事实上 GDAL 拥有完成此任务所需的工具 ogr2ogr 是 GDAL 中包含的一个程序 可以转换多种格式 https gdal o
  • 代理阻止网络套接字?如何绕行

    我有一个用 Python 编写的正在运行的 websocket 服务器 来自https github com opiate SimpleWebSocketServer https github com opiate SimpleWebSoc
  • C:为什么这个服务器/客户端设置只能在一台计算机上运行?

    我是网络新手 我想知道为什么会这样TCP 服务器 客户端 C 语言实现 https www geeksforgeeks org tcp server client implementation in c 只能在一台计算机上运行 1 我的意思
  • Node.js Socket.IO 无法完全工作

    我运行一个侦听端口 5000 的独立服务器 当我通过 Netcat 或 Telnet 连接到它时 该应用程序不会在终端上打印任何内容 但在 Netcat Telnet 应用程序屏幕上 它显示连接已建立 var io require sock

随机推荐

  • qt下QString转换为const char*字符串

    概述 本文直在说明将QString类型的变量转换为const char 类型 实现 可以采用下面的方式来实现 QString toStdString c str 示例 下面是一个示例 const QString msg nis你好 cons
  • 10个Python爬虫入门实例,建议收藏!!

    1 爬取强大的BD页面 打印页面信息 第一个爬虫示例 爬取百度页面 import requests 导入爬虫的库 不然调用不了爬虫的函数 response requests get http www baidu com 生成一个respon
  • STM32 之八 在线升级(IAP)超详细图解 及 需要注意的问题解决

    IAP 是啥 IAP In Application Programming 即在应用编程 也就是用户可以使用自己的程序对MCU的中的运行程序进行更新 而无需借助于外部烧写器 其实ST官网也给出了IAP的示例程序 感兴趣的可以直接去官网搜索
  • 【PHPMailer SMTP connect() failed】

    PHPMailer发送邮件 报错 SMTP connect failed 第一种情况 端口问题 现在一般使用的就是ssl的端口465 第二种情况 参数里面有一个password参数 注意这里是授权码 不是邮箱登录密码
  • 3、34道MySQL练习题及答案

    作业 取得每个部门最高薪水的人员名称 第一步 取得每个部门最高薪水 按照部门编号分组 找出每一组最大值 select deptno max sal maxsal from emp group by deptno deptno maxsal
  • 微信小程序项目 npm安装构建

    project config json文件 setting 中增加 packNpmManually true packNpmRelationList packageJsonPath package json miniprogramNpmDi
  • 【笔记总结】C陷阱与缺陷

    第一章 词法 陷阱 是赋值运算符 是比较运算符 赋值运算符的优先级要低于逻辑运算符 和 的优先级要高于 运算符 比较运算符的结果只可能是0或者1 不可能小于0 字符是用单引号引起的实际代表一个整数 整数值对应于该字符在编译器采用的字符集的序
  • Zabbix 监控 CPU 使用率

    system cpu util
  • Delphi2009控件的安装

    delphi2009控件的安装和delphi7的有很大的差别 1 控件包 File gt Open gt 打开控件的包文件 gt project manager gt 右键 gt Install 2 PAS文件 New gt Package
  • 红帽Redhat—Linux基本命令行使用

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 一 什么是shell 二 基本命令 1 命令访问 2 参数 命令的作用对象 3 配置主机名 4 修改系统语言 5 用户名密码管理 6 cat 7 rm 删除文件命令
  • linux sh查看wifi状态,adb结合wpa_cli查看wifi状态命令集

    1 status 查看当前的WIFI状态 adb shell wpa cli iwlan0 g android wpa wlan0 IFNAME wlan0 status bssid 70 62 b8 62 2e c4 一个长度为48位二进
  • LR为什么用sigmoid函数,这个函数有什么优点和缺点?为什么不用其他函数?

    一 功能的基本性质 首先 Sigmoid的公式形式 公式图像 该函数的基本属性 定义域 值范围 1 1 1 1 函数是域内的连续且平滑的函数 它可以在任何地方被引导 并且导数是 f x f x 1 f x 最早的Logistic功能由Pie
  • python如何实现可视化热力图

    这篇文章主要介绍了python如何实现可视化热力图 小编觉得挺不错的 现在分享给大家 也给大家做个参考 一起跟随小编过来看看吧 热力图 1 利用热力图可以看数据表里多个特征两两的相似度 参考官方API参数及地址 seaborn heatma
  • IC617

    tip 个人日常笔记 解决的问题 导入一个由很多MOS晶体管组成的cdl网表 网表部分内容如下图所示 SUBCKT 512x2ESDA8 指的是 接下来将对512x2ESDA8这一模块进行定义 紧跟在后面的 A 8 A 7 是对这一模块管脚
  • 【Java多数据源实现教程】实现动态数据源、多数据源切换方式

    前言 本文为 Java多数据源实现教程 相关知识 由于自己最近在做导师的项目的时候需要使用这种技术 于是自学了相关技术原理与实现 并将其整理如下 具体包含 多数据源的典型使用场景 包含业务复杂场景 读写分离场景 多数据源实现原理及实现方法
  • JavaScript教程,零基础到入门,switch语句,case分组,类型,函数声明,局部变量,外部变量,参数,返回值,函数命名,

    switch 语句 switch 语句可以替代多个 if 判断 switch 语句为多分支选择的情况提供了一个更具描述性的方式 语法 switch 语句有至少一个 case 代码块和一个可选的 default 代码块 就像这样 switch
  • go 使用方式

    一 GO基本概念 Go是一个开源的编程语言 它能让构造简单 可靠且高效的软件变得容易 Go是从2007年末由Robert Griesemer 罗伯特 格利茨默 Rob Pike 罗伯 派克 gt Ken Thompson 肯 汤普森 主持开
  • C++预处理器

    预处理器是一些指令 指示编译器在实际编译之前所需完成的预处理 所有的预处理器指令都是以井号 开头 只有空格字符可以出现在预处理指令之前 不会以分号 结尾 define 预处理 define 预处理指令用于创建符号常量 该符号常量通常称为宏
  • Qt之程序发布以及打包成exe安装包

    1 简述 Qt 项目开发完成之后 需要打包发布程序 而因为用户电脑上没有 Qt 配置环境 所以需要将 release 生成的 exe 文件和所依赖的 dll 文件复制到一个文件夹中 然后再用 Inno Setup 打包工具打包成一个 exe
  • ArcGIS环境搭建及地图服务发布

    ArcGIS的环境需要如下文件 SQL Server2012 ArcGIS for Desktop ArcGIS for Server 目前网上提供的ArcGIS下载都是10 2 0版本 这个版本与win7的某几个补丁有冲突 会导致Publ