• [ArcGIS]ArcGIS Server环境搭建,发布服务,以及使用ArcGIS API for JavaScript


    环境搭建

    1. 安装Web服务器 IIS
      控制面板-程序-程序和功能-启用或关闭Windows功能,勾选以下
    2. 安装VisualStudio,选择包括ASP.NET模块
    3. 安装ArcGIS服务器 ArcGIS Server10
      资源及教程链接:
      https://blog.csdn.net/nominior/article/details/80211963。
    4. 安装ArcGIS Desktop
      ArcGIS Desktop 中包含ArcGatalog、ArcMap两个客户端软件,用来管理GIS服务。
      资源链接:
      https://malagis.com/arcgis-10-6-desktop-install-download.html
      安装ArcGIS Desktop遇到的问题:
      问题1:注意,安装的Arcgis Desktop必须和Arcgis Server是同一个版本号。
      问题2:安装后license无法启动
      解决:拿360把license和desktop卸了重安。license要重安到原路径。license360了卸了,再重安好几次终于正常。保证license可以启动,再关闭它,安desktop。
      第二次是license和desktop都安到默认路径搞好的。

    发布ArcGIS Server服务

    我的图层数据是.shp等ArcScence可打开的数据,而不是ArcMap可打开的.mxd格式,要发布服务,必须转为.mxd格式。
    做法:
    第一步,在ArcCatalog中:先连接mysql数据库,并把数据库升级到物理数据库;把.shp数据存到数据库。
    第二步,在ArcMap中:连接相应数据库;加载数据库中文件到ArcMap;发布服务。
    具体参考以下链接
    http://www.cnblogs.com/wangmengdx/p/9739466.html
    如下图即发布ArcGIS Server服务成功

    我们想要的即发布的服务的REST API,如下图

    使用ArcGIS API for JavaScript,在前端调用REST API,显示地图。

    在VS中,新建.Net项目,自动使用IIS作为Web服务器。
    调用接口,使用服务以显示图层代码如下。

    <!DOCTYPE html>
    <html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <meta charset="utf-8" />
        <meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no" />
        <title>building Map</title>
    
        <style>
            html,
            body,
            #viewDiv {
                padding: 0;
                margin: 0;
                height: 100%;
            }
        </style>
        <link rel="stylesheet" href="https://js.arcgis.com/3.12/esri/css/esri.css" />
        <script src="https://js.arcgis.com/3.12/"></script>
        <script>
            var myMap;
            require(["esri/map", "esri/layers/ArcGISTiledMapServiceLayer", "dojo/domReady!"], function (Map, ArcGISTiledMapServiceLayer) {
                myMap = new Map("viewDiv");
    
                var buildingUrl = "http://localhost:6080/arcgis/rest/services/BuildingServiceTest2/MapServer";
                var layer = new esri.layers.ArcGISDynamicMapServiceLayer(buildingUrl);
                myMap.addLayer(layer);
            });
        </script>
    </head>
    
    <body>
        <div id="viewDiv"></div>
    </body>
    </html>
    

    效果如下

    特别注意

    1 ArcGIS API for JavaScript的版本号不同可能带来差别。
    2 底图和叠加图层坐标范围差异过大可能造成不现实图层的问题。此例中,无底层,显示的图层为叠加的图层。
    3 在ArcCatalog和arcMap连接地理数据库的用户要一样,否则发布服务选Feature Access会报Error 0090。

  • 相关阅读:
    IEnumerable、ICollection、IList、List关系和区别
    在Winform界面中使用DevExpress的TreeList实现节点过滤查询的两种方式
    关键字Lock的简单小例子
    .NET Core DI简单介绍
    Linux服务器部署.Net Core笔记:六、安装MySQL
    表的透视变换
    ZedGraph怎样在生成曲线时随机生成不一样的颜色
    3、手写Unity容器--第N层依赖注入
    微信支付-小程序H5 公众号 Payment SDK
    WPF继续响应被标记为已处理事件的方法
  • 原文地址:https://www.cnblogs.com/coding-gaga/p/10640778.html
Copyright © 2020-2023  润新知