里以湖北省荆州市为例说明如何用ArcGIS API发布离线谷歌卫星地图。
在万能地图下载器中选择湖北省荆州市的行政区划,然后点击“下载”按钮新建下载任务。
在新建任务对话框中选择需要下载的级别,一般是从当前行政区划显示的级别开始选择(这里是第9级),一直接选择到第19级(国内19级清晰度效果最佳,19级以上基于19级放大),由于数据量非常大,这里只为了说明如何用ArcGIS API发布离线卫星地图的方法,因此这里以选择到第14级为例。
在“新建任务”对话框中,点击“导出设置”可以设置相关导出参数,我们可以选择导出大图、导出瓦片和导出离线包等三种方式。由于这里我们用ArcGIS API发布离线卫星地图需要用的是瓦片格式,因此这里选择“导出瓦片”选项。
新建任务详细参数说明,请参阅:
新建地图下载任务参数说明
在“导出瓦片”选项的相关参数中,我们选择瓦片格式为“TMS瓦片”、文件格式为PNG,坐标坐标投影为墨认的“WGS84 Web 墨卡托投影”,选择“边界范围裁剪”,背景颜色为“透明”背景。
导出瓦片详细参数说明,请参阅:
导出瓦片参数说明
分别点击“确定”按钮开始下载任务,下载并自动导出后可以看到导出的瓦片目录为8到13级而不是我们选择的9到14级,这是因为软件中的级别编号是从1开始,而标准的TMS瓦片命名规则都是从0开始,因此该情况属于正常情况,瓦片的行列号编号规则同理。
在ArcGIS API发布离线卫星地图的源码示例中,将“arcgis_js_v321_api.zip”解压到当前文件夹。
打开解压后文件夹中的“install.html”可以查看ArcGIS API的安装布署说明。
ArcGIS API可以在Windows和Linux系统中安装布署,这里我们以Windows为例,点击“Windows”查看布署方法。
从ArcGIS API的安装布署说明中可以看到,需要将“\arcgis_js_api\library”文件复制到IIS默认站点下,该操作的目的是要将ArcGIS API放在Web站点中,说明它需要Web服务器支持。
另外,文档中说明了ArcGIS API有两个版本,一个是普通版,一个是精简版。
现在,我们需要布署一个Web服务器,用于布署ArcGIS API源码。
一般来讲,常用的Web服务器软件工具有IIS、Apache和Tomcat,这里我们以Windows自带的IIS为例。
如何开启IIS 功能,请参阅:
如何在Win10中开启IIS功能
IIS功能开启后,在电脑图标的右键菜单中选择“管理”菜单项。
在“计算机管理”的功能树列表中点击“服务和应用程序\Internet Information”项,然后在“网站”节点的右键菜单中选择“添加网站”项。
在显示的“添加网站”对话框中,可以为当前站点指定名称(这里为“WebGIS”),将物理路径设置为ArcGIS API解压后的目录,这里将端口号设置为“8080”,这样不会与访问Web页面的80端口冲突,如果没有布署过80端口的网站则不会有冲突。
点击新建的Web站点“WebGIS”后,再点击“内容视图”可以查看站点文件。
Web站点布署好之后,我们再回过头来看ArcGIS API的布署说明文档,文档中分别说明了普通版和精简版中都需要对相关文件作修改编辑,这里我们以普通版本为例。
根据ArcGIS API布署说明文档中的说明,在指定的源码路径中找到init.js文件,并在右键菜单中选择用记事本打开它。
按文档中的说明,将“https:/[HOSTNAME_AND_PATH_TO_JSAP]dojo”字符串修改为“https://<myserver>/arcgis_js_api/library/3.21/3.21/dojo”字符串。
其中的<myserver>表示服务器地址,由于我们这里是以在本机上布署为例,因此它要相应的改为本机地址,即127.0.0.1或localhost,同时需要加上端口号,即最后的替换结果为:
http://127.0.0.1:8080/arcgis_js_api/library/3.21/3.21/dojo
注意:文档中的Web地址头为“https”,如果你的服务器不支持安全加密访问,只需要将地址头改为“http”即可。
编辑修改成完成后,需要测试init.js文件是否可以通过Web地址正常访问。
在浏览器中如果打开以下地址显示init.js文件内容,说明布署正确。
http://127.0.0.1:8080/arcgis_js_api/library/3.21/3.21/init.js
ArcGIS API安装布署完成后,将ArcGIS API离线地图发布源码示例中的“extlayers”文件夹复制到“arcgis_js_v321_api\arcgis_js_api\library.21.21”路径下。
将下载的地图瓦片目录复制到ArcGIS API发布离线地图的源码示例中。
用专业的WebGIS开发工具Visual Studio Code打开“arcgis_js_v321_api\arcgis_js_api\library.21.21\extlayers\gaodelayer.js”文件,将第133行中的“gaodeTiles”字符串修改为当前的瓦片目录名称,即“荆州市谷歌地图TMS瓦片”。
Visual Studio Code下载安装教程,请参阅:
如何安装WebGIS开发工具Visual Studio Code
双击ArcGIS API离线地图发布源码中的“map.html”文件,可以在浏览器中打开ArcGIS API发布的离线地图结果。
在浏览器中打开离线地图发布结果如下图所示。
在该源码示例中,除了能离线显示谷歌卫星地图外,还包括了基本的地图标注等相关GIS功能。
ArcGIS API for JavaScript在线实例请参阅:
http://api.rivermap.cn/ArcGIS/map.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no" />
<title>Intro to MapView - Create a 2D map</title>
<!--<script src="/js/jsapi_vsdoc10_v38.js"></script>-->
<link rel="stylesheet" type="text/css" href="http://localhost:8080/epf-arcgis/3.16/esri/css/esri.css" />
<script type="application/javascript" src="http://localhost:8080/epf-arcgis/3.16/init.js"></script>
</head>
<body class="tundra">
<div id="mapDiv" style="width: 900px;height: 600px;border: 1px solid #000" >
</div>
<input type="button" onclick="setLayer()" value="筛选" />
<script type="application/javascript" >
var dyLayer;
require(["esri/map", "esri/layers/ArcGISDynamicMapServiceLayer"], function(Map,ArcGISDynamicMapServiceLayer) {
var map = new Map("mapDiv");
dyLayer =ArcGISDynamicMapServiceLayer("http://localhost:6080/arcgis/rest/services/EPF/居民收入空间分布/MapServer");
map.addLayer(dyLayer);
});
function setLayer(){
var layerDefinitions = [];
//layerDefinitions[0] = "GiZScore < -2.58";
layerDefinitions[0] = "GiZScore > 2.58";
dyLayer.setLayerDefinitions(layerDefinitions);
alert("ok");
}
</script>
</body>
</html>
1
估计是ESRI官方都看不下去我们用个天地图这么费劲,所以官方于4月27日在ArcGIS Online上更新了四个地图,真是太棒了。这次的升级可加载天地图矢量切片,告别了放大就模糊的困扰!
02
1、首先在浏览器输入以下网址:
https://www.arcgisonline.cn/arcgis/home/search.html?t=content&q=tags%3A%22%E5%A4%A9%E5%9C%B0%E5%9B%BE%22&start=1&num=20
2、点击上图中想要加载的地图
这里我选择的是第一栏:【切片服务】天地图-地形(含注记)(球面墨卡托投影)
3、下载item.pkinfo文件
选择下拉框在arcmap中打开,就直接进行文件下载。(示例:各个类型底图下载方法一致)
4、打开item.pkinfo文件
鼠标双击已经下载的item.pkinfo文件,arcmap就会自动打开文件,(我个人使用的版本为10.2.2)就会看到如下图所示的情况,内容列表已经添加了图层,但是交互窗口一片空白。
5、图层显现
首先右键单击底图,弹出对话框,选择取消分组,弹出如下图一片黑的底图,这是标注显示有问题,需要进行调整。
6、图层属性调整
右键单击地形注记图层,弹出对话框,单击属性,弹出图层属性对话框,选择高级选项卡,将图层透明度调整成为1%,应用-确定后就能正常显示底图啦!
戴尔基公众号
微信号 : dailiang1106
******************
点我打印二维码
*请认真填写需求信息,我们会在24小时内与您取得联系。