Skip To Content

Руководство пользователя: Публикация сервиса сетевого анализа

Доступно с лицензией Network Analyst.

В этом разделе
Уровень сложности: Начальный Требования к данным: Установлено с ПО Путь к данным: <ArcGIS for Server installation directory>\help\samples\data\network_analyst\SanFrancisco.gdb Задача: Опубликуйте сервис сетевого анализа на сервере ArcGIS Server и используйте его в веб-приложении.

Сетевой анализ может осуществляться для транспортной сети по Интернету путем размещения сервисов сетевого анализа на ArcGIS Server. Сюда входит писк ближайшего пункта обслуживания, лучшего маршрута для транспортного средства, лучшие маршруты для парка транспортных средств; нахождение пунктов обслуживания с помощью размещения-распределения; вычисление матрицы «источник-назначение» и создание областей обслуживания. В этом руководстве пошагово описывается создание документа карты, который можно использовать для сетевого анализа, и публикация этого документа в качестве сервиса сетевого анализа. Затем здесь предоставляются ссылки на справочные материалы по использованию сервиса сетевого анализа в ArcMap и в веб-приложении. Дополнительные сведения о различных типах сетевого анализа и их возможностях см. в разделе справки ArcGIS Типы сетевых анализов.

Действия перед выполнением этого руководства

Если ArcGIS Server был только что установлен, необходимо выполнить ряд подготовительных действий, прежде чем подключиться к серверу и начать публиковать сервисы.

Учебные данные

Данные для этого руководства установлены с ArcGIS for Server и расположены в <директория установки ArcGIS for Server>\help\samples\data\network_analyst.

Или же можно попытаться выполнить приведенные здесь действия, используя собственные данные.

Создание документа карты

Сервис сетевого анализа нуждается в картографическом сервисе, содержащем один или несколько слоев сетевого анализа. Это означает, что документы карты, опубликованный на сервере, должен содержать один или несколько слоев, являющихся слоями сетевого анализа, созданными с помощью инструментов на панели инструментов Network Analyst. Сервисы сетевого анализа поддерживают слои маршрутов, ближайших пунктов обслуживания и анализа областей обслуживания.

Выполните следующие действия для создания одного документа карты, способного выполнить все три типа сетевого анализа:

  1. Запустите ArcMap и откройте новый пустой документ карты.
  2. Щелкните Настройка > Дополнительные модули (Customize > Extensions) и отметьте ArcGIS Network Analyst, чтобы включить дополнительный модуль ArcGIS Network Analyst.
  3. Щелкните Настройка > Панели инструментов > Network Analyst (Customize > Toolbars > Network Analyst), чтобы сделать видимой панель инструментов Network Analyst.
  4. Добавьте в карту набор сетевых данных, который необходим для создания слоя сетевого анализа; для этого щелкните Добавить данныеДобавить данные на стандартной панели инструментов. Перейдите в набор сетевых данных Streets_ND, расположенный в базе данных SanFrancisco. При запросе на добавление всех классов пространственных объектов из Streets_ND на карту нажмите кнопку Нет (No).
  5. Добавьте на карту слой сетевого анализа маршрутов, щелкнув раскрывающееся меню Network Analyst на панели инструментов Network Analyst и выбрав пункт Новый маршрут (New Route).

    Панель инструментов Network Analyst

    При создании в ArcMap слоя сетевого анализа, он автоматически привязывается к активному набору сетевых данных. Сеть Сан-Франциско была активна при создании слоя анализа маршрутов, поэтому эти два слоя привязаны друг к другу. Кроме того, слой сетевого анализа содержит в пути ссылку на привязанный к нему набор сетевых данных, поэтому в ArcMap слой набора сетевых данных больше не нужен.

  6. Щелкните правой кнопкой мыши Streets_ND или имя слоя набора сетевых данных и выберите пункт Удалить (Remove). Хотя карта является пустой, на ней присутствует слой анализа маршрутов, который можно опубликовать в качестве сервиса. При последующем добавлении сервиса сетевого анализа на карту, объекты не будут отображаться до создания результатов. Чтобы предоставить дополнительный контекст при использовании сервиса сетевого анализа, можно также использовать кэшируемый картографический сервис, предоставляемый, к примеру, ArcGIS Online.
  7. Последовательно щелкните Файл > Сохранить как (File > Save As), чтобы сохранить документ карты.

Публикация сервиса сетевого анализа

После создания документа карты со слоем сетевого анализа можно опубликовать его в качестве сервиса сетевого анализа. Вы опубликуете документ карты в качестве сервиса и включите функцию сетевого анализа, создав, таким образом, одноименный сервис сетевого анализа.

Чтобы настроить и опубликовать документ карты на сервере ArcGIS Server с помощью ArcMap, выполните следующие действия.

  1. Не закрывая ArcMap, выберите в главном меню Файл > Опубликовать как > Сервис (File > Share As > Service).
  2. В окне Опубликовать как сервис (Share as Service) выберите Опубликовать сервис (Publish a service). Щелкните Далее.
  3. В диалоговом окне Опубликовать сервис щелкните Подключиться к ArcGIS ServerДобавить ArcGIS Server, чтобы создать новое подключение к серверу.
  4. В окне Добавить ArcGIS Server (Add ArcGIS Server) выберите Опубликовать ГИС-сервисы (Publish GIS Services). Щелкните Далее.
  5. Введите URL сайта ArcGIS Server, к которому нужно подключиться, в поле URL сервера (Server URL). Например, http://gisserver.domain.com:6080/arcgis.
  6. В раскрывающемся списке Тип сервера (Server Type) выберите ArcGIS Server.
  7. Во время публикации создается файл определения сервиса, который затем временно сохраняется на локальном диске. По завершении процесса публикации определение сервиса будет загружено на сервер, а локальный файл удален. Для этого упражнения примите папку размещения по умолчанию и продолжайте.
  8. Если администратор безопасности включил функции безопасности для сайта, введите Имя пользователя (User Name) и Пароль (Password). Щелкните Готово (Finish).
  9. При необходимости в окне Опубликовать сервис (Publish a Service) введите новое имя сервиса. Имя может содержать только цифры, буквы, подчеркивания и не может быть длиннее 120 символов. Щелкните Далее.
  10. По умолчанию сервисы публикуются в корневой папке (root) ArcGIS Server. Сервисы могут размещаться во вложенных папках корневой папки. Выберите папку, в которой требуется опубликовать сервис, или создайте для него новую папку. Нажмите кнопку Продолжить (Continue).
  11. Появится Редактор сервисов. Используйте Редактор сервисов для выбора, что именно пользователи могут делать с вашим сервисом сетевого анализа, а также для того, чтобы контролировать, как ваш сервис представляется сервером. Перейдите на закладку Функции (Capabilities).
  12. По умолчанию, картирование и KML включены. Поставьте отметку Сетевой анализ.
  13. На левой панели Редактора сервисов щелкните Сетевой анализ (Network Analysis) и просмотрите операции и свойства, включенные для сервиса сетевого анализа. В рамках данного руководства можно принять значения по умолчанию и продолжить работу. Однако, чтобы получить дополнительные сведения см. раздел Сервисы сетевого анализа. Дополнительные сведения об оптимальной настройке сервиса сетевого анализа для распространения см. в разделе Настройка и конфигурирование сервисов.
  14. Щелкните АнализироватьАнализировать (Analyze). Документ карты будет проанализирован на возможность публикации его на сервере.
    Подсказка:

    Чтобы расширить область просмотра при настойке сервиса сетевого анализа нажмите кнопку СвернутьСвернуть (Collapse) в верхней части Редактора сервисов.

  15. Исправьте все ошибкиОшибка (Error) в окне Подготовка; это необходимо сделать до публикации. При необходимости, можно разрешить предупреждения и информационные сообщения, чтобы улучшить производительность и внешний вид сервиса сетевого анализа. Более подробно об устранении этих неполадок см. Анализ ГИС-ресурса.
    Примечание:

    Можно зарегистрировать папки и базы геоданных на сайте ArcGIS Server, чтобы сервер мог распознать и использовать ваши данные. Выполнив следующие действия, все данные, указанные в документе карты, взятые из незарегистрированной папки или базы геоданных, будут скопированы на сервер во время публикации. Это мера предосторожности, гарантирующая, что сервер может получить доступ ко всем данным, используемым сервисом. Подробные инструкции по регистрации папки или базы геоданных на сайте ArcGIS Server см. в разделе Регистрация данных на ArcGIS Server с помощью ArcGIS for Desktop.

  16. После устранения ошибок в документе карты щелкните ОпубликоватьОпубликовать.

При публикации вашего документа карты на сервере ArcGIS Server будет создан картографический сервис и связанный с ним одноименный сервис сетевого анализа.

Использование сервиса сетевого анализа

Клиенты ArcGIS Server, например – ArcGIS for Desktop и веб-браузеры способны использовать сервисы сетевого анализа. В ArcMap кнопка Найти маршрутНайти маршрут позволяет использовать встроенные функции построения маршрутов, которые предусмотрены в вашем сервисе сетевого анализа. В веб-браузерах работа сервисов сетевого анализа реализуется на программном уровне посредством веб-приложений, встроенных в ArcGIS.com, Portal for ArcGIS и ArcGIS API for JavaScript. Более подробно об этих клиентах можно посмотреть в разделе Сервисы сетевого анализа.

Дополнительные сведения об использовании сервиса сетевого анализа в ArcGIS for Desktop или в базовом веб-приложении, созданном с помощью ArcGIS API for JavaScript, см. в следующих разделах:

Использование сервиса маршрутов в ArcMap

  1. Запустите ArcMap и откройте новый пустой документ ArcMap.
  2. При этом все равно требуется подключение к ArcGIS for Server, но вам также понадобится пользовательское подключение для применения этого сервиса в ArcMap. В окне Каталога (Catalog) разверните узел ГИС-серверы (GIS Servers) и дважды щелкните ArcGIS for Server, чтобы установить пользовательское подключение. Пошаговые инструкции по установлению соединения приведены в разделе Установка пользовательского соединения для ArcGIS for Server в ArcGIS for Desktop.
  3. В окне Каталог разверните узел ГИС-серверы (GIS Servers) и дважды щелкните новое подключение к ArcGIS for Server, которое заканчивается на "(user)".
  4. Подключившись к серверу, найдите картографический сервис, содержащий сервис сетевого анализа, и перетащите его в таблицу содержания.
  5. Несмотря на присутствие слоя в таблице содержания, карта все еще остается пустой. Чтобы задать контекст для этой карты, добавьте слой базовой карты из ArcGIS Online.
    1. Щелкните стрелку ниспадающего меню рядом с кнопкой Добавить данныеДобавить данные на панели инструментов Стандартные и выберите Добавить базовую карту.
    2. Дважды щелкните базовую карту, например Топографическую карту.
  6. Приблизьте полуостров Сан-Франциско, который располагается на юге карты, так как остановки, которые следует добавить, находятся в пределах набора сетевых данных Сан-Франциско, который используется для создания слоя сетевого анализа. Если вы не используете предоставленную базу данных SanFrancisco, можно пропустить это действие.
  7. На панели инструментов Инструменты щелкните Найти маршрутНайти маршрут.
  8. В диалоговом окне Найти маршрут (Find Route) перейдите на закладку Опции (Options).
  9. Щелкните раскрывающийся список Сервис маршрутов (Routing Service) и выберите пункт Маршрут <слои\[имя сервиса маршрутов]> (Route <Layers\[имя сервиса маршрутов])>.
  10. Щелкните закладку Остановки (Stops). Используйте элементы управления и параметры на закладке Остановки, чтобы предоставить входные данные для сетевого анализа.
  11. Если все готово для нахождения маршрута, щелкните Найти маршрут (Find Route).

Использование сервиса маршрутов в базовом веб-приложении

  1. Перед использованием сервиса сетевого анализа в веб-приложении, необходимо знать соответствующий URL. Перейдите в веб-браузере в Директорию сервисов ArcGIS Server, например: http://gisserver.domain.com:6080/arcgis/rest/services.
  2. В списке сервисов выберите сервис сетевого анализа. Все сервисы сетевого анализа имеют метку (NAServer). Если сервис расположен в папке, выберите его, перейдя в нужную папку.
  3. Отображается страница, на которой приведено имя сервиса, его описание и список доступных слоев анализа. Щелкните Маршрут (Route).
  4. Отображается страница, на которой приведены свойства слоя маршрутов. В адресной строке браузера скопируйте URL этой страницы и вставьте его в текстовый редактор. Это URL REST задачи маршрутов используемого сервиса сетевого анализа. URL будет иметь следующий формат: http://gisserver.domain.com:6080/arcgis/rest/services/folder/service/NAServer/Route.
  5. Скопируйте и вставьте пример кода внизу в текстовый редактор, например в Блокнот.

    <!DOCTYPE html>
    <html>
      <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=7, IE=9, IE=10">
        <!--The viewport meta tag is used to improve the presentation and behavior of the samples 
          on iOS devices-->
        <meta name="viewport" content="initial-scale=1, maximum-scale=1,user-scalable=no">
        <title>Simple Routing</title>
    
        <link rel="stylesheet" href="http://js.arcgis.com/3.6/js/dojo/dijit/themes/claro/claro.css">
        <link rel="stylesheet" href="http://js.arcgis.com/3.6/js/esri/css/esri.css">
        
        <script src="http://js.arcgis.com/3.6/"></script>
        <script>
          dojo.require("esri.map");
          dojo.require("esri.tasks.route");
    
          var map, routeTask, routeParams;
          var stopSymbol, routeSymbol, lastStop;
    
          function init() {
            map = new esri.Map("map", {
              basemap: "streets",
              center: [-122.44, 37.78],
              zoom: 12
            });
    
            dojo.connect(map, "onClick", addStop);
    
            routeTask = new esri.tasks.RouteTask("http://tasks.arcgisonline.com/ArcGIS/rest/services/NetworkAnalysis/ESRI_Route_NA/NAServer/Route");
            
            //set up the route parameters
            routeParams = new esri.tasks.RouteParameters();
            routeParams.stops = new esri.tasks.FeatureSet();
            routeParams.outSpatialReference = {"wkid":102100};
            
            dojo.connect(routeTask, "onSolveComplete", showRoute);
            dojo.connect(routeTask, "onError", errorHandler);
    
            //define the symbology used to display the route
            stopSymbol = new esri.symbol.SimpleMarkerSymbol().setStyle(esri.symbol.SimpleMarkerSymbol.STYLE_CROSS).setSize(15);
            stopSymbol.outline.setWidth(4);
            routeSymbol = new esri.symbol.SimpleLineSymbol().setColor(new dojo.Color([0,0,255,0.5])).setWidth(5);
          }
    
          //Adds a graphic when the user clicks the map. If 2 or more points exist, route is solved.
          function addStop(evt) {
            var stop = map.graphics.add(new esri.Graphic(evt.mapPoint, stopSymbol));
            routeParams.stops.features.push(stop);
    
            if (routeParams.stops.features.length >= 2) {
              routeTask.solve(routeParams);
              lastStop = routeParams.stops.features.splice(0, 1)[0];
            }
          }
    
          //Adds the solved route to the map as a graphic
          function showRoute(solveResult) {
            map.graphics.add(solveResult.routeResults[0].route.setSymbol(routeSymbol));
          }
    
          //Displays any error returned by the Route Task
          function errorHandler(err) {
            alert("An error occurred\n" + err.message + "\n" + err.details.join("\n"));
    
            routeParams.stops.features.splice(0, 0, lastStop);
            map.graphics.remove(routeParams.stops.features.splice(1, 1)[0]);
          }
          dojo.ready(init);
        </script>
    
      </head>
      <body class="claro">
        <div id="map" style="width:600px; height:400px; border:1px solid #000;"></div>
         <p>Click on the map to add stops to the route. The route from the last stop to the newly added stop is calculated. If a stop is not reachable, it is removed and the last valid point is set as the starting point.</p>
      </body>
    </html>

  6. Найдите параметр routeTask = new esri.tasks.RouteTask и замените URL в скобках, чтобы он соответствовал URL REST в задаче маршрутов сетевого анализа.
  7. Сохраните и закройте текстовый документ.
  8. Измените расширение файла документа с исходного расширения на .html. Например, измените Route.txt на Route.html.
  9. Откройте HTML-документ в веб-браузере. Следуйте инструкциям веб-приложения по использованию сервиса сетевого анализа.