Beispiel für GV-Service: Suchen nahe gelegener Features über ein Straßennetz

Komplexität: Anspruchsvoll Erforderliche Daten: ArcGIS Tutorial Data Setup Datenpfad: C:\ArcGIS\ArcTutor\GP Service Examples\ClosestFacilities Ziel: Erstellen, Veröffentlichen und Verwenden eines Geoverarbeitungs-Services, der Features, die einer bestimmten Position am nächsten gelegen sind, auf Grundlage der kürzesten Route in einem Straßennetz sucht.

Ordner

ClosestFacilities

Zweck

Ermittelt eine bestimmte Anzahl von nächstgelegenen Bibliotheken von einem Anfangspunkt basierend auf der Fahrzeit entlang des Straßennetzes, berechnet die kürzeste Route zu jeder nächstgelegenen Bibliothek und generiert eine Wegbeschreibung in einer Textdatei.

Services

  • SanFranciscoBaseMap (Karten-Service)
  • ClosestFacilitiesService (Geoverarbeitungs-Service)

Geoverarbeitungs-Task

Find Nearby Libraries

Eingaben

Ein oder mehrere vom Benutzer digitalisierte Punkte und die Anzahl der zu suchenden nächstgelegenen Bibliotheken.

Ausgaben

  1. Die nächstgelegenen Bibliotheken.
  2. Die kürzesten Routen zwischen den vom Benutzer angegebenen Punkten und den nächstgelegenen Bibliotheken, basierend auf der Fahrzeit.
  3. Eine Textdatei mit Wegbeschreibungen für jede Route.

Daten

Verwendet ein Straßennetz-Dataset und eine Feature-Class mit allen Bibliotheksstandorten für den Bereich San Francisco, die im Ordner "ToolData" bereitgestellt sind.

Erweiterungen

Network Analyst

Hinweis

Veranschaulicht die Verwendung eines berechneten Netzwerkanalyse-Layers zur weiteren Analyse.

Besonderheiten dieses Beispiels

Entsprechender Ordner

C:\arcgis\ArcTutor\GP Service Examples\ClosestFacilities enthält die fertigen Modelle und Daten.

Besonderheiten dieses Beispiels

Der in diesem Beispiel erstellte Service ClosestFacilitiesService zeigt, wie Geoverarbeitungs-Tasks veröffentlicht werden, die eine Analyse der nächstgelegenen Einrichtungen in einem Straßennetz ausführen. Der Task Find Nearby Libraries ermittelt die kürzeste Route zu einer benutzerdefinierten Anzahl von nächstgelegenen Bibliotheken anhand gegebener Punkte, basierend auf der Fahrzeit entlang des Straßennetzes. Der Task gibt außerdem Routen und Wegbeschreibungen zu den nächstgelegenen Bibliotheken aus.

Beispielausgabe aus dem Task "Find Nearby Libraries"
Beispielausgabe aus dem Task "Find Nearby Libraries"

Daten

Die Daten für dieses Beispiel stammen aus C:\arcgis\ArcTutor\GP Service Examples\ClosestFacilities.

Inhalt des Ordners "ClosestFacilities"
Inhalt des Ordners "ClosestFacilities"

Netzwerk-Dataset

Der Ordner "ToolData" enthält die File-Geodatabase SanFrancisco.gdb. Diese Geodatabase enthält im Feature-Dataset "Transportation" das Netzwerk-Dataset Streets_ND. Dieses Netzwerk-Dataset bildet das Straßennetz des Bereichs San Francisco ab. Es stellt das Netzwerkattribut "TravelTime" bereit, das die Fahrzeit zu jedem Straßenabschnitt angibt.

Grundkarte

Der Grundkarten-Layer in SanFranciscoBaseMap.mxd verfügt über den Layer "Streets" (siehe Abbildung unten). Dieser Layer stellt die Ausdehnung des Netzwerk-Datasets dar. Dies bedeutet, dass mit dem Task nur in dieser Ausdehnung die nahegelegenen Bibliotheken bestimmt werden können.

Grundkarte von San Francisco, die die Ausdehnung des Netzwerk-Datasets anzeigt
Grundkarte von San Francisco, die die Ausdehnung des Netzwerk-Datasets anzeigt

SanFranciscoBaseMap wird als Karten-Service veröffentlicht.

Toolbox und Kartendokument

Die Toolbox für den Geoverarbeitungs-Service lautet ClosestFacilitiesService, und das Quellkartendokument für den Service lautet ClosestFacilitiesService.mxd. ClosestFacilitiesService.mxd enthält die folgenden vier Quelldaten-Layer und den Werkzeug-Layer "Find Nearby Libraries":

  • Streets_ND: Das Netzwerk-Dataset.
  • "Library": Feature-Layer mit den Standorten aller Bibliotheken in und um San Francisco.
  • "ClosestLibrariesSymbology": Feature-Layer, der die Symbologie für die ausgegebenen Bibliotheken festlegt.
  • "OutputRoutesSymbology": Feature-Layer, der die Symbologie für die ausgegebenen Routen festlegt.

Modell

Überblick über das Modell

Nachfolgend wird das Modell "Find Nearby Libraries" veranschaulicht. Es gibt zwei Eingabevariablen:

  • Eingabepositionen, wobei es sich um benutzerdefinierte Punkte handelt, von denen aus die nächstgelegenen Bibliotheken gesucht werden.
  • Anzahl der zu suchenden Bibliotheken

Das Modell erstellt einen Netzwerkanalyse-Layer der nächstgelegenen Einrichtungen, fügt die Bibliotheksstandorte vom Feature-Layer mit den Bibliotheken als Einrichtungen hinzu, ergänzt die benutzerdefinierten Standorte als Ereignisse und führt eine Berechnung aus, um die Routen zu den nächstgelegenen Bibliotheken festzulegen, Wegbeschreibungen zu generieren und aus allen Bibliotheken, die als Einrichtungen geladen sind, nur die diejenigen zu suchen, die sich auf der Route befinden.

Element

Type

Beschreibung

Straßennetz

Netzwerk-Dataset-Layer

Der Netzwerk-Dataset-Layer.

Anzahl der zu suchenden Bibliotheken

Long, Eingabeparameter

Die Anzahl der zu suchenden Bibliotheken für jeden Eingabeort.

Layer der nächsten Einrichtung erstellen

Werkzeug

Erstellt einen Netzwerkanalyse-Layer für die nächstgelegenen Einrichtungen. Dieser Layer enthält Daten und Eigenschaften, die bestimmen, wie die nächstgelegenen Einrichtungen berechnet werden, sowie die Berechnungsergebnisse.

Closest Facility

Network Analyst-Layer

Layer der nächstgelegenen Einrichtungen.

Library

Feature-Layer

Die Point-Feature-Class mit allen Bibliotheksstandorten. Die Lage dieser Punkte im Straßennetz wurde bereits berechnet, wie im Abschnitt Vorausberechnen von Netzwerkstandorten für Bibliotheken beschrieben.

Standorte hinzufügen (Bibliotheken)

Werkzeug

Fügt die Bibliotheksstandorte als Einrichtungen zum Layer der nächstgelegenen Einrichtungen hinzu.

Closest Facility (1)

Network Analyst-Layer

Layer der nächstgelegenen Einrichtungen mit den Einrichtungen.

Input Locations

Feature-Set (Punkte), Eingabeparameter

Punkt-Features, von denen ausgehend die nächstgelegenen Bibliotheken bestimmt werden.

Standorte hinzufügen

Werkzeug

Fügt die Eingabepositionen als Ereignisse dem Layer der nächstgelegenen Einrichtungen hinzu.

Closest Facility (2)

Network Analyst-Layer

Layer der nächstgelegenen Einrichtungen mit den Einrichtungen und Ereignissen.

Berechnen

Werkzeug

Berechnet die nächstgelegenen Einrichtungen und bestimmt die kürzeste Route zu jeder Einrichtung.

Closest Facility (3)

Network Analyst-Layer

Layer der nächstgelegenen Einrichtungen mit allen Einrichtungen und der kürzesten Route zu den nächstgelegenen Einrichtungen.

SolveSucceeded

Boolesch

Die abgeleitete Ausgabe aus dem Werkzeug Berechnen, die angibt, ob die Berechnung erfolgreich war.

Wegbeschreibung

Werkzeug

Generiert die Wegbeschreibungen für die Routen zu den nächstgelegenen Einrichtungen.

Text Directions

Datei, Ausgabe-Parameter

Die Textdatei mit den Wegbeschreibungen.

Closest Facility (4)

Network Analyst-Layer

Layer der nächstgelegenen Einrichtungen mit allen Einrichtungen und der kürzesten Route zu den nächstgelegenen Einrichtungen.

Daten auswählen

Werkzeug

Wählt den Sublayer "Routes" aus dem Layer der nächstgelegenen Einrichtungen aus.

Routen

Feature-Layer

Der Layer "Routes" aus dem Network Analyst-Layer Closest Facility (3).

OutputRoutesSymbology

Layer

Der Symbologie-Layer, anhand dessen Symbologie auf den Feature-Layer Routes angewendet wird.

Symbologie aus Layer anwenden

Werkzeug

Wendet Symbologie aus dem OutputRoutesSymbology-Layer im Layer Routes an.

Closest Routes

Feature-Layer, Ausgabeparameter

Der Layer "Routes" mit entsprechender Symbologie.

Daten auswählen (Facilities)

Werkzeug

Wählt den Sublayer "Facilities" aus dem Layer der nächstgelegenen Einrichtungen aus.

Facilities

Feature-Layer

Der Layer "Facilities" aus dem Network Analyst-Layer Closest Facility (3).

Join-Felder

Werkzeug

Verbindet die Felder "FacilityID", "FacilityRank", "Total_TravelTime" und "Total_Meters" aus dem Layer "Routes" mit dem Layer "Facilities".

Facilities (3)

Tabellensicht

Der abgeleitete Layer "Facilities" enthält die verbundenen Felder.

Feature-Layer erstellen

Werkzeug

Wählt nur die Einrichtungen aus, bei denen der FacilityID-Wert nicht Null ist. Nur die für die Ausgabe-Einrichtungen benötigten Felder sind sichtbar.

Facilities_Layer

Feature-Layer

Der Feature-Layer "Facilities_Layer" enthält nur die Einrichtungen, die in den Routen enthalten sind.

ClosestLibrariesSymbology

Layer

Der Symbologie-Layer, anhand dessen Symbologie auf den Layer Facilities_Layer angewendet wird

Apply Symbology From Layer (1)

Werkzeug

Wendet Symbologie aus dem Layer "ClosestLibrariesSymbology" auf den Layer Facilities_layer an.

Closest Libraries

Feature-Layer, Ausgabeparameter

Der Facilities_Layer mit entsprechender Symbologie.

Modellelemente
Modell "Find Nearby Libraries"

Vorausberechnen von Netzwerkstandorten für Bibliotheken

Die Bibliotheksstandorte, die in der Analyse der nächstgelegenen Einrichtung verwendet werden, sind nicht temporär. Ihre Positionen im Netzwerk bleiben konstant. Daher ist es effektiver, ihre Netzwerkstandorte nur einmal zu berechnen, anstatt sie jedes Mal zu berechnen, wenn sie als Einrichtungen hinzugefügt werden.

Das Werkzeug Standorte berechnen kann verwendet werden, um die Netzwerkstandorte der Bibliotheken zu ermitteln und diese Informationen in den Feldern "SourceID", "SourceOID", "PosAlong" und "SideOfEdge" zu speichern. Diese Information kann dann mit dem Werkzeug Standorte hinzufügen verwendet werden, um Bibliotheken als Einrichtungen in den neuen Layer der nächstgelegenen Einrichtungen zu laden. Dies ist erheblich schneller, als Standorte hinzufügen zu verwenden, um als erstes den Netzwerkstandort der Bibliotheken zu bestimmen, und sie dann als Einrichtungen zu laden. Für den Layer "Library" wurden die Netzwerkstandorte basierend auf dem Netzwerk-Dataset-Layer "Streets_ND" mit Hilfe des Werkzeugs "Standorte berechnen" ermittelt.

Berechnen von Netzwerkstandorten für Bibliotheken
Berechnen von Netzwerkstandorten für Bibliotheken

Beachten Sie Folgendes: Falls die Einrichtungen in einem anderen Szenario temporär sind, müssen ihre Netzwerkstandorte jedes Mal neu festgelegt werden, wenn sie als Einrichtungen hinzugefügt werden. Das Vorausberechnen ihrer Netzwerkstandorte mit dem Werkzeug "Standorte berechnen" bietet daher keinen Performance-Vorteil.

Modellprozesse

Mit dem Werkzeug Layer der nächsten Einrichtung erstellen wird der neue Network Analyst-Layer (NA), "Closest Facility", erstellt, in dem die Analyseeigenschaften gespeichert werden, der auf den für die Analyse verwendeten Netzwerk-Dataset-Layer "Streets_ND" verweist und in dem die Eingabe-Einrichtungen, Ereignisse und Ausgaberouten gespeichert werden. Das Netzwerk-Dataset verfügt über das Netzwerkkostenattribut "TravelTime", das die zum Durchfahren der einzelnen Straßenabschnitte erforderliche Fahrzeit in Minuten angibt. Dieses Attribut wird als Impedanz-Attribut verwendet. Die Variable Anzahl der zu suchenden Bibliotheken gibt die Anzahl der zu suchenden Einrichtungen an.

Parameter des Werkzeugs "Layer der nächsten Einrichtung erstellen"
Parameter des Werkzeugs "Layer der nächsten Einrichtung erstellen"

Mit dem Werkzeug Standorte hinzufügen (Bibliotheken) werden die Bibliotheksstandorte dem Layer der nächstgelegenen Einrichtungen als Einrichtungen hinzugefügt. Da die Netzwerkstandorte der Bibliotheken bereits mithilfe des Werkzeugs Standorte berechnen berechnet wurden, wurde die Option Netzwerkstandortfelder statt Geometrie verwenden aktiviert.

Verwenden von Netzwerkstandortfeldern zum Hinzufügen von Einrichtungen
Verwenden von Netzwerkstandortfeldern zum Hinzufügen von Einrichtungen

Das Werkzeug Standorte hinzufügen fügt dem Layer der nächstgelegenen Einrichtungen die vom Benutzer digitalisierten Punkte als Ereignisse hinzu. Der Parameter Eingabepositionen ist vom Datentyp "Feature-Set", sodass das Modell die vom Benutzer digitalisierten Punkte interaktiv als Ereignisse übernehmen kann. Das Schema und die Symbologie für das Feature-Set werden aus der Datei InputLocations.lyr im Ordner "ToolData" abgeleitet.

Das Werkzeug Berechnen sucht eine bestimmte Anzahl von nächstgelegenen Einrichtungen zu jedem Ereignis und berechnet die kürzeste Route zu jeder Einrichtung anhand des Netzwerkattributs "TravelTime". Die berechneten Routen werden in den Sublayer "Routes" im Ausgabe-Layer der nächstgelegenen Einrichtungen geschrieben.

Der Network Analyst-Layer ist kein unterstützter Ausgabeparameter-Datentyp für ArcGIS Server-Clients. Daher wird der Sublayer "Routes" mit dem Werkzeug Daten auswählen aus dem Network Analyst-Layer der nächstgelegenen Einrichtungen abgerufen.

Der Sublayer "Routes" verwendet die Symbologie des Network Analyst-Layers. Um eine andere Symbologie anwenden zu können, so dass beispielsweise jede Route eine andere Farbe erhält, wird das Werkzeug Symbologie aus Layer anwenden verwendet, um die Symbologie aus dem Layer OutputRoutesSymbology auf den Sublayer "Routes" anzuwenden.

Mit dem Werkzeug Wegbeschreibung wird die Wegbeschreibung generiert und in eine Textdatei ausgegeben. Die Ausgabe-Textdatei mit der Wegbeschreibung wird mit Hilfe der Inline-Variablen %scratchworkspace% im Auftragsverzeichnis auf dem Server erstellt.

Der Sublayer "Routes" im Layer der nächstgelegenen Einrichtungen enthält das Feld "FacilityID", das die Objekt-ID der auf der Route liegenden Einrichtung angibt. Diese Informationen können verwendet werden, um unter allen Einrichtungen nur die auszuwählen, die auf der Route liegen. Das Werkzeug Join-Felder verbindet den Sublayer "Routes" mit Hilfe des Feldes "FacilityID" mit dem Einrichtungen-Layer. Das Werkzeug verbindet die Felder "FacilityID", "FacilityRank", "Total_TravelTime" und "Total_Meters" mit dem Sublayer der Einrichtungen anhand der Felder "FacilityID" im Sublayer "Routes" und "ObjectID" im Einrichtungen-Sublayer.

Parameter des Werkzeugs "Join-Felder"
Parameter des Werkzeugs "Join-Felder"

Die Ausgabe des Werkzeugs Join-Felder enthält das Feld "FacilityID" im Sublayer "Facilities". Das Feld hat den Wert "Null" für alle Einrichtungen, die nicht auf den Routen liegen. Bei der Verwendung des Werkzeugs Feature-Layer erstellen werden nur die Einrichtungen ausgewählt und an einen neuen Layer ausgegeben, deren Wert des Feldes "FacilityID" nicht Null ist.

Parameter des Werkzeugs "Feature-Layer erstellen"
Parameter des Werkzeugs "Feature-Layer erstellen"

Die Symbologie des Layers "Facilities" wird aus dem Layer "OutputLibrariesSymbology" mit Hilfe des Werkzeugs Symbologie aus Layer anwenden festgelegt.

Werkzeug-Layer

Der Werkzeug-Layer "Find Nearby Libraries" wird erstellt, indem das Modell "Find Nearby Libraries" in das Inhaltsverzeichnis von ArcMap gezogen wird.

Da die Ausgaben des Modells In-Memory-Feature-Layer sind, weisen die Sublayer "Closest Libraries" und "Routes" im Werkzeug-Layer eine defekte Datenquelle auf, wenn Sie zum ersten Mal die Datei ClosestFacilitiesService.mxd öffnen. Das Kartendokument wird dann unverändert veröffentlicht. Sie sollten jedoch den Werkzeug-Layer erneut ausführen und sicherstellen, dass das Modell funktioniert, bevor Sie den Service veröffentlichen.

Beachten Sie Folgendes: Wenn Sie die Symbologie für einen Ausgabe-Layer im Werkzeug-Layer verändern, wird die neue Symbologie nicht verwendet. Das liegt daran, dass die Ausgaben des Modells Feature-Layer sind und deren Symbologien bereits mit Hilfe des Werkzeugs Symbologie auf Layer anwenden im Modell definiert wurden.

Veröffentlichen

SanFranciscoBaseMap.mxd wird als Karten-Service veröffentlicht. ClosestFacilitiesService.mxd wird wie folgt als Geoverarbeitungs-Service ohne Karten-Service des Ergebnisses veröffentlicht:

  1. Klicken Sie im Fenster Katalog mit der rechten Maustaste auf SanFranciscoBaseMap.mxd, und klicken Sie auf Mit ArcGIS Server veröffentlichen.
  2. Übernehmen Sie alle Standardeinstellungen.
  3. Navigieren Sie im Fenster Katalog zur Anmeldung als Administrator beim Server unter dem Knoten GIS-Server, klicken Sie mit der rechten Maustaste, und wählen Sie dann Neuen Service hinzufügen aus. Weisen Sie dem Service den Namen ClosestFacilitiesService zu, und wählen Sie als Typ Geoverarbeitungs-Service aus.
  4. Klicken Sie auf Weiter.
  5. Wählen Sie im nächsten Fenster Synchron als Ausführungstyp aus. Wählen Sie für Die vom Geoverarbeitungsdienst bereitgestellten Werkzeuge sind gespeichert in die Option Einer Karte aus, und geben Sie "ClosestFacilitiesService.mxd" als Kartendokument an. Da Sie den Service testen, aktivieren Sie Meldungen anzeigen.
    Veröffentlichen des ClosestFacilitiesService
    Veröffentlichen des ClosestFacilitiesService
  6. Klicken Sie auf Weiter. Von nun an können Sie die vom Assistenten angegebenen Standardwerte übernehmen und den Service erstellen.

Verwenden

  1. Starten Sie ArcMap mit einem leeren Dokument.
  2. Erstellen Sie eine Benutzerverbindung zu ArcGIS Server im Fenster Katalog, wenn noch keine besteht.
  3. Fügen Sie dem Inhaltsverzeichnis von ArcMap den Karten-Service SanFranciscoBaseMap hinzu.
  4. Erweitern Sie im Fenster Katalog unter dem Knoten GIS-Server der Benutzerverbindung die Toolbox ClosestFacilitiesService, und öffnen Sie das Werkzeug "Find Nearby Libraries". In der Abbildung unten wird das Ergebnis dieser Schritte dargestellt:
    Der Task "Find Nearby Libraries" in einer ArcMap-Sitzung
  5. Fügen Sie einen Punkt hinzu, um eine Eingabeposition zu erstellen. Geben Sie als Anzahl der zu suchenden Bibliotheken 3 an, und klicken Sie auf OK, um den Task auszuführen.

    Nach dem Ausführen des Tasks enthält das Inhaltsverzeichnis wie unten dargestellt die Ausgabe-Layer "Closest Libraries" und "Routes". Die Eingabepositionen werden nicht von dem Task ausgegeben, sondern werden dem Inhaltsverzeichnis aus dem Knoten Eingaben im Fenster Ergebnisse hinzugefügt.

    Abgeschlossener Task
    Abgeschlossener Task
  6. Die Textdatei mit der Wegbeschreibung wird aus dem Auftragsverzeichnis auf dem Server in den Scratch-Workspace der aktuellen ArcMap-Sitzung kopiert. Diese Datei kann angezeigt werden, indem Sie im Fenster Ergebnisse darauf doppelklicken.

    Anzeigen der Wegbeschreibungsdatei
    Anzeigen der Wegbeschreibungsdatei

Verwandte Themen


3/6/2012