- ArcGIS Maritime模块是一个扩展模块,针对海图的制作和发布等操作提供了一个完整的解决方案。包括海图生产、水深测量、海图服务三大模块构成。它能够完成海量海底测深数据的集中管理、分析建模与水深模型发布;能够有效的管理海图信息并为电子海图产品生产提供完整的工作流程和质量控制解决方案;能够将电子海图数据快速发布为标准地图服务。
本系列将介绍ArcGIS Maritime海图模块,分为两个产品:桌面端和服务器端,因为是扩展模块,所以要给server授权两种许可,一个是保证server运行的GIS Server,一个是保证海图运行的海图许可
目录
拷贝完成后,再次重启对应的服务,看到sencs下有.senc文件产品,即代表服务发布成功
Server安装
Server安装没有特别的要求,只需要注意,不同的版本对电脑系统的要求不一样,只要满足系统要求就可以了,系统要求详见
Server扩展模块安装
以10.7.1为例,扩展的安装包为Mapping_and_Charting_Solutions_Server_1071_169359
需要注意,一定是先安装server,然后才能安装扩展模块,可以不必安装在默认路径,只需要保证安装路径中不要出现中文和空格即可。
将上述三个功能全部安装,一路下一步即可。在此期间,server会重启,这是正常现象。
以下是安装好以后的文件夹结构
Server扩展模块添加
添加的方式很简单,先打开server的manager页面,并点击站点--扩展--添加扩展
选择\MaritimeServer\Server10.7\Bin路径下的MaritimeServer.soe,具体位置根据server安装的位置而定,只要找到这样的目录结构就没有问题。
添加后的界面如下
发布海图服务
海图服务和普通的服务不太一样,并不是通过ArcMap连接ArcGIS Server走publish那一套,而是需要依赖一个已有的服务,像是王者荣耀里的一个叫【瑶】的英雄一样。
打开server自带的示例地图,点击左侧的功能,就能看到Maritime Chart Service接口,点击该接口,即可出现以下界面
默认情况下,上图中2、3、4中的路径为C:\arcgisserver\directories\maritimeserver\maritimechartservice\,即server配置目录的路径,我的server由于不在默认位置配置,因此需要修改,如需查看server配置目录路径,可点击下图所示位置查看
因此根据我的配置路径,我需要
1、在E:\arcgisserver\directories\目录下新建一个文件夹,起名为maritimeserver,结果为:
2、导航至:MaritimeServer\Server10.7\maritimechartservice,并将里面的文件全部复制过来
即上面图片中的文件,复制到下面图片中对应的目录
3、修改接口中2、3、4的路径,修改为:E:\arcgisserver\directories\maritimeserver\
4、点击按钮5,保存并启动即可。
复制数据到datasets文件夹中
在本文中,数据需要拷贝到此路径下:
拷贝完成后,再次重启对应的服务,看到sencs下有.senc文件产品,即代表服务发布成功
加载海图服务
点击海图接口中的连接,会显示如下页面
提供了三个子接口,接下来用MapServer去加载,代码见下方
3.31版本
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="initial-scale=1, maximum-scale=1,user-scalable=no" />
<title>3加载海图</title>
<link rel="stylesheet" href="http://192.168.100.92/3.31/esri/css/esri.css">
<style>
html,
body,
#map {
height: 100%;
margin: 0;
padding: 0;
}
</style>
<script src="http://192.168.100.92/3.31/init.js"></script>
<script>
var map;
require(["esri/map", "esri/layers/ArcGISDynamicMapServiceLayer", "dojo/domReady!"], function (Map, DynamicLayer) {
map = new Map("map");
var basemap = new DynamicLayer("https://localhost:6443/arcgis/rest/services/SampleWorldCities/MapServer");
map.addLayer(basemap);
var enc84 = new DynamicLayer("https://localhost:6443/arcgis/rest/services/SampleWorldCities/MapServer/exts/MaritimeChartService/MapServer");
map.addLayer(enc84);
});
</script>
</head>
<body>
<div id="map"></div>
</body>
</html>
4.14版本
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no" />
<title>4加载海图</title>
<style>
html,
body,
#viewDiv {
padding: 0;
margin: 0;
height: 100%;
width: 100%;
}
</style>
<link rel="stylesheet" href="http://192.168.100.92/4.14/esri/themes/light/main.css" />
<script src="http://192.168.100.92/4.14/init.js"></script>
<script>
require(["esri/Map", "esri/views/MapView", "esri/layers/MapImageLayer"], function (Map, MapView, MapImageLayer) {
var map = new Map();
var view = new MapView({
container: "viewDiv",
map: map
});
var url1 = "https://localhost:6443/arcgis/rest/services/SampleWorldCities/MapServer";
var url2 = "https://localhost:6443/arcgis/rest/services/SampleWorldCities/MapServer/exts/MaritimeChartService/MapServer";
var layer1 = new MapImageLayer(url1);
var layer2 = new MapImageLayer(url2);
map.add(layer1);
map.add(layer2);
});
</script>
</head>
<body>
<div id="viewDiv"></div>
</body>
</html>
效果
3.31版本
4.13版本