在学习了Oracle数据库基础以后,本想在ArcGIS中连接Oracle数据库(图解ArcSDE10.2 for Oracle 11g 安装-百度经验 (baidu.com)),
但在授权文件中出现arcgis server.ecp的相关信息,便对下面的工作造成困扰。于是,转而研究了一下ArcGIS Server的相关内容。
以往的知识储备告诉我,通过Server将制作好的地图数据发布,就可以在其他Web界面调用我发布的服务网址,融合其他的Web端操作,提供给用户基于此地图的多种功能。
首先按照以下方法安装了ArcGIS Server10.2:
(28条消息) ArcGIS server 10.2安装教程详细版_孙霸天-CSDN博客_arcgis安装教程10.2
在Arcmap中,任意打开了一份文件:Global Reservoirs and Dams (GRanD) version 1.01 Dataset(来源为http://sedac.ciesin.columbia.edu/pfs/grand.html)
于是,按照
的步骤进行连接,大致为:
- File-Save As Service-Publish a service(详细方法在1中)
- 在Choose a connection中发现还未找到我的服务点,于是点击右侧的加号,点击Administer GIS Server(详细方法在2中)。
- 查看位置是ArcGIS-Services Directory,也可以输入地址:http://localhost:6080/arcgis/rest/services。首页位置为:http://localhost:6080/arcgis/manager。
- 注意:重启计算机以后,在服务中需要开启ArcGIS Server,才可以再次连接上一次创建的服务端口(右键-connect)。
- 注意:计算机主机名查询方法:window+R-cmd,输入ipconfig/all,即可看到主机名一项。
![]()
【结果展示】:

发现这张地图连国界都没有,只是一个Feature文件,离一个完善的服务相差甚远,于是尝试将此服务进一步完善:
添加所有文件,构成完整的图层,将.mxd文件保存至非桌面的文件夹下,在Catalog窗口中找到这个文件夹,右键-发布服务,接下来步骤依然一样。
【结果展示】:

(注:图上的不同颜色代表建设时间,颜色越蓝,建设时间越晚,越红,建设时间越早)
上面提到发布地图服务的目的之一是为了在其他Web界面调用并融合其他功能。所以说在上面的地图数据发布完成以后,再学习如何调用它。
这里选用Openlayers(参考来源:OpenLayers示例代码:图像ArcGIS MapServer 开源地理空间基金会中文分会,OSGeo中文分会,OSGeo中国中心,开放地理空间实验室):
【代码展示】:
<%--
Document : index
Created on : 2021-5-10, 15:54:32
Author :
--%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
<!--引入Openlayers开发包-->
<script type="text/javascript" src="js/OpenLayers3.16.0/ol.js"></script>
<link rel="stylesheet" type="text/css" href="js/OpenLayers3.16.0/ol_my.css">
<!--引入jquery框架-->
<script type="text/javascript" src="js/jquery-easyui-1.4.2/jquery.min.js"></script>
<!--引入easyui前端开发包-->
<script type="text/javascript" src="js/jquery-easyui-1.4.2/jquery.easyui.min.js"></script>
<script type='text/javascript' src='js/jquery-easyui-1.4.2/locale/easyui-lang-zh_CN.js'></script>
<link rel="stylesheet" type="text/css" href="js/jquery-easyui-1.4.2/themes/default/easyui.css">
<link rel="stylesheet" type="text/css" href="js/jquery-easyui-1.4.2/themes/icon.css">
<link rel="stylesheet" type="text/css" href="js/jquery-easyui-1.4.2/themes/color.css">
<script type="text/javascript">
var proj = 'EPSG:4326'; //定义wgs84地图坐标系
var proj_m = 'EPSG:3857'; //定义墨卡托地图坐标系
var map;
var mapLayer;
function GetArcGIServer(){
var layers = [
new ol.layer.Image({
source: new ol.source.ImageArcGISRest({
ratio: 1,
params: {},
url: 'xxx'
})
})
];
var map = new ol.Map({
layers: layers,
target: 'mapdiv',
projection: proj,
view: new ol.View({
center: ol.proj.transform([101.46912, 36.24274], proj, proj_m),
zoom: 4
})
});
}
</script>
</head>
<body style="margin: 0;padding: 0;">
<div style="height:35px;width: 20%;">
<a class="easyui-linkbutton" href="javascript:GetArcGIServer()">ArcGIS Server地图服务</a>
</div>
<div id="mapdiv" style='width:800px;height:400px;border:1px solid black;'></div>
</body>
</html>
【结果展示】:

最后这一块的调用有2个学习心得,做一下总结:
1、Netbeans中需要建立的项目类别是Java Web,建立完成以后需要删除自动生成的index.html文件,新建一个index.jsp,这样才可以直接调用项目文件夹中的外部文件。

2、控制台显示"500 Internal Server Error",检查原因发现,Server中的服务显示“正在停止”,网上搜索原因,检查了一下4000-4002端口占用情况(pid中查看),发现并没有被占用。于是,重新启动服务,包括Arcmap、计算机服务中的ArcGIS Server服务,发现成功启动,程序运行成功。
对今天的学习,做一下总结:
- ArcGIS Server的使用流程为:制作专题图、发布服务、外部调用、实现其他你喜欢的/甲方喜欢的功能。
- 重启计算机以后,需要手动开启ArcGIS Server服务
- Server中服务会断开,重新连接即可
1143

被折叠的 条评论
为什么被折叠?



