Die folgende Übersicht entspricht den Schnittstellen in atlasFX 2.0.
Aktuelle Dokumente werden mit der Software ausgeliefert.
URL-Parameter
(als URL-Hash, also mit # vom eigentlichen URL-String getrennt)
Dem atlasFX JavaScript Client können verschiedene URL Parameter übergeben werden. Alle
Parameter sind optional. Der Client kann auch komplett ohne Parameter aufgerufen werden. Dann
muss allerding loadedConfig.mapId gesetzt sein.
mapId=<Map ID>
Dieser Parameter gibt die Map ID an. Er überschreibt die Map ID der Konfiguration
loadedConfig.mapId.
level=<Zoomstufe>
Bestimmt die Zoomstufe. Er hat eine Wertebereich von 1 – n. Es muss beachtet werden, dass die
Zoomstufen verschiedener Hintergrundkarten unterschiedlich sein können.
scale=<Maßstab>
Legt den Maßstab der Karte fest. Z.B für einen Maßstab von 1:250.000 ist der Maßstab 250000.
centerx=<X-Position>
Legt die initiale X-Position der Karte fest. Kann auch unabhängig von centery angegeben werden. Das
Koordinatensystem der Position muss im gleichen wie die Karte sein.
centery=<Y-Position>
Legt die initiale Y-Position der Karte fest. Kann auch unabhängig von centerx angegeben werden. Das
Koordinatensystem der Position muss im gleichen wie die Karte sein.
zoomtoposition=<X-Position>,<Y-Position>,<Maßstab>
Zoomt zu dem übergebenen Maßstab und zentriert die Karte an die übergebene Position. Die
übergebene Position wird markiert. Sobald die Karte bewegt wird, verschwindet die Markierung
wieder. Das Koordinatensystem der Position muss im gleichen wie die Karte sein.
feature=<atlasFX Layer ID>,<atlasFX Feature ID>,<InfoBubble?>,<Maßstab|auto>
Zentriert die Karte auf das übergebene Feature. Um das Feature eindeutig zu identifizieren muss die
entsprechende atlasFX Layer ID und die atlasFX Feature ID angegeben werden. Der dritte optionale
Parameter bestimmt ob das InfoBubble des Features geöffnet werden soll (nur falls dieses auch im
atlasFX CMS konfiguriert ist).
Der vierte optionale Parameter ist der Maßstab. Er kann nur genutzt werden wenn der dritte
Parameter gesetzt ist. Dieser kann auch auf auto gestellt werden. In diesem Fall wird der Maßstab der
Suche genutzt.
Ist das Feature ein Polygon oder eine Polylinie dann wird auf den entsprechenden Extent gezoomt.
Ist das Feature eine Punktgeometrie, kann keine Zoomstufe bestimmt werden. Dann wird nicht
gezoomt. Es wird die initiale Zoomstufe verwendet. Soll trotzdem auf eine bestimmte Zoomstufe oder
einen Maßstab gezoomt werden, kann feature mit den URL Parameter level oder scale kombiniert
werden.
search=<Suchtext>
Führt eine Suche durch. Es wird die Standard atlasFX Suche ausgeführt. Wird nur ein Suchergebnis
gefunden, dann wird standardmäßig auf dieses Suchergebnis zentriert. Es wird auf den im atlasFX
CMS konfigurierten Maßstab für Suchergebnisse gezoomt.
notepadid=<ID der Zeichnung>
Mit dem Map Notepad Tool kann man Zeichnungen auf die Karte legen. Diese können auf dem
atlasFX Server gespeichert werden. Es wird vom Server eine entsprechende ID zurückgegeben. Mit
dieser ID kann die Zeichnung später wieder geladen werden.
layers=<Layers ID>
Aus alle an und abgehakten Layer in der TOC wird eine ID berechnet, die den entsprechenden
Zustand bestimmt.
symbol=<symbol>,<size>,<color> oder
symbol=<url>,<width>,<height>
Zeichnet ein Symbol an die durch die Parameter centerX und centerY definierte Position. Fehlt einer
dieser Parameter, wird ein Fehler auf die Konsole ausgegeben.
Version 1: Gezeichnetes Symbol (esri.symbol.SimpleMarkerSymbol)
Alle Argumente sind optional. Bei Nichtangabe eines Parameterwertes wird der default-Wert des esri-
Objektes gesetzt. In jedem Fall müssen beide Kommata gesetzt sein.
Folgende symbol-Typen sind möglich: circle, square, diamond, cross, x.
Die size wird in Pixeln angegeben.
Color ist ein hexadezimaler RGB-Wert ohne das #-Zeichen.
Version 2: Grafik als Symbol (esri.symbol.PictureMarkerSymbol)
Alle Parameter sind zwingend anzugeben.
Breite und Höhe werden in Pixeln angegeben. Angaben müssen größer als null sein.
URL-Parameter muss mit der JavaScript-Funktion encodeURIComponent kodiert sein.
Als Bildformate erlaubt die ArcGIS-Schnittstelle für das PictureMarkerSymbol die Formate BMP und
EMF.
Die Parameter im Hash können im Browser verändert werden, ohne daß die Karte neu lädt. Beispiel:
atlasFX External Interface
Folgende Funktionen können von der Seite, in der die Atlas-swf eingebettet ist, per JavaScript aufgerfen werden:
REST-Schnittstelle
VORBEMERKUNGEN
Die REST-Schnittstelle von atlasFX wird typischer Weise über http angesprochen. Sollte das atlasFX hinter einem Proxy mit SSL-Verschüsselung geschützt sein, kann ebenfalls https verwendet werden. In dieser Dokumentation wird durchgängig http verwendet, obwohl die Aufrufe gegebenenfalls auch über https möglich sind.
SEARCH OPERATION
URL
http://<atlasFX-url>/spring/rest/maps/<mapId>/search
PARENT RESSOURCE
Map
DESCRIPTION
Diese Operation stellt eine Suchfunktionalität zu Verfügung, die es einbindenden Webseiten erlaubt ein vorschlagslistenunterstützendes Suchfeld mit Icons und Verlinkung zu einer atlasFX Karte zu implementieren.
New in 1.9.2
RESSOURCE HIERACHY
PARAMETERS
Parameter |
Details |
searchTerm |
Hier soll die Benutzereingabe bzw. der Suchbegriff übergeben werden |
urlTemplate |
In diesem Parameter soll die Vorlage (Template) für die aufzurufende Url übergeben werden. Die Aufrufmöglichkeiten sind bei den jeweiligen Clients dokumentiert. Diese Vorlage kann die drei Template-Variablen $mapId$, $layerId$ und $featureId$ enthalten die für jedes Ergebnis inividuell ersetzt werden. Dieser Mechanismus ermöglicht eine maximale flexibilität bei der Konfiguration der Karte. Damit sind alle Funktionalitäten der verschiedenen Clients in Kombination mit sämtlichen Netzwerkkonfigurationsmöglichkeiten verwendbar. |
useDefaultIcons |
Dieser Parameter ist optional. Hier kann gesteuert werden, ob die atlasFX Default Icons verwendet werden sollen, falls kein Icon am Layer konfiguriert wurde. Gültige Werte sind hier true oder false. |
JSON RESPONSE SYNTAX
[
{
"preview" : <previewText>,
"url" : <mapClientUrl>,
"iconId" : <iconId>
} //, ...
]
EXAMPLE
Es folgt ein Beispiel, das online unter http://roadshow.alta4cloud.com/atlasfx/js/index.html?mapId=530 nachvollzogen werden kann.
Erläuterung zum Testsystem
<atlasFX-url> |
http://roadshow.alta4cloud.com/atlasfx |
Dies ist die Url unter der der Context der atlasFX-Webapplication verfügbar ist. |
<mapId> |
530 |
In diesem Beispiel verwenden wir die Karte mit der Id 530. Diese Id identifiziert eine atlasFX-Karte. Sie kann einfach im atlasFX CMS abgelesen werden. |
Zunächst müssen die Parameter bestückt werden. Der erste Parameter searchTerm ist tivial. Hier wird der eingegebenen Suchbegriff übergeben. Bei verwendung von Http Get ist zu beachten, dass die Parameter für die Verwendung in der Url encodiert werden müssen (Url Encoding). Das atlasFX Backend verwendet UTF-8 als Uri Encoding. Daher müssen Umlaute zum Beispiel 'ö' als %C3%B6 kodiert werden.
Als zweiten Parameter muss ein Template für die zu generierenden Urls übergeben werden. Mit dieser Schnittstelle können Sie beliebige Urls generieren lassen, die mit Werten des Suchergebnisses Parametrisiert werden. In diesem Beispiel soll einfach der atlasFX JS-Client mit dem gefundenen Objekt aufgerufen werden. Die erste Herausforderung besteht darin, dass das atlasFX-Backen nicht weiß, unter welcher Url es vom Internet aus erreichbar ist. Daher geben wir die <atlasFX-url> im Template Parameter mit. In diesem Beipiel wäre das http://roadshow.alta4cloud.com/atlasfx. Da die atlasFX-url alleine nicht ausreicht um den JavaScript-Client aufzurufen wird an den Pfad noch /js/index.html angehangen. Das Url Template sieht nun wie folgt aus: http://roadshow.alta4cloud.com/atlasfx/js/index.html. Weiterhin ist es erforderlich dem JS-Client eine MapId zu übergeben. Hier kommt wieder unsere Beispie-MapId 530 zum Einsatz. Es ist wichtig die gleiche Karte aufzurufen, auf der auch die Suche selbst durchgeführt worden ist, da die Suchergebnisse eindeutig einer Karte zuzuordnen sind und in einer anderen Karte nicht aufgerufen werden können. Die MapId wird dem Client als Url Parameter mapId übergeben. Für weitere Informationen zum Aufruf des Clients schauen Sie bitte in der Dokumentation des Clients nach. Sie könne übrigens auf den Flex-Client nach gleichem Schema aufrufen. Hierzu ist eine etwas andere Url zu verwenden. Mit der MapId sieht unser Url Template nun so aus: http://roadshow.alta4cloud.com/atlasfx/js/index.html?mapId=530. Um Fehler zu vermeiden, können Sie auch die Template-Variable $mapId$ verwenden. Diese Variable wird durch die Id der Karte ersetzt auf der Sie die Suche ausführen. Unter Verwendung der Template-Variablen sieht das Url Template nun so aus: http://roadshow.alta4cloud.com/atlasfx/js/index.html?mapId=$mapId$. Nach der Prozessierung der Anfrage an die REST-Schnittstelle ist die Template-Variable durch den aktuellen Wert ersetzt worden. Für eine Anfrage unter Verwendung der Karte 530 würde die zurückgegebene Url nun so http://roadshow.alta4cloud.com/atlasfx/js/index.html?mapId=530 zurückgegeben werden. Meistens ist es Sinn und Zweck dieser Suchanfrage das gefundene Objekt, im GIS-Kontext Feature genannt in einer Karte darzustellen. Daher muss das darzustellende Feature an den Karten-Client übergeben werden. Der atlasFX-JS-Client stellt dazu die Url Parameter mapLayerId und featureId bereit. In atlasFX wird ein Feature durch eine Id, die innerhalb eines Layers eindeutig ist, und die entsprechende Layer Id eindeutig beschrieben. Diese beiden Ids stehen ebenfalls als Template-Variable zu Verfügung. Ergänzen wir nun abschießend unser Url Template zu http://roadshow.alta4cloud.com/atlasfx/js/index.html?mapId=$mapId$%26featureId=$featureId$%26mapLayerId=$layerId$. Bitte beachten Sie hier, dass wir das &-Zeichen innerhalb des Url Templates mit %26 escaped wurde, damit dieses nicht beim Aufruf der Suchschnittstelle ausgewertet wird.
Den optionalen Parameter useDefaultIcons lassen wir im ersten Beispiel weg.
Beispiel Parameter
Nehmen wir an, der Benutzer tippt 'Martin-Grundschule' in das Suchfeld ein.
Parameter |
Beispielwert |
searchTerm |
Martin-Grundschule |
urlTemplate |
In diesem Parameter soll die Vorlage (Template) für die aufzurufende Url übergeben werden. Die Aufrufmöglichkeiten sind bei den jeweiligen Clients dokumentiert. Diese Vorlage kann die drei Template-Variablen $mapId$, $layerId$ und $featureId$ enthalten die für jedes Ergebnis inividuell ersetzt werden. Dieser Mechanismus ermöglicht eine maximale flexibilität bei der Konfiguration der Karte. Damit sind alle Funktionalitäten der verschiedenen Clients in Kombination mit sämtlichen Netzwerkkonfigurationsmöglichkeiten verwendbar. |
useDefaultIcons |
http://roadshow.alta4cloud.com/atlasfx/js/index.html?mapId=$mapId$%26featureId=$featureId$%26mapLayerId=$layerId$ |
Daraus ergibt sich folgender Aufruf der atlasFX-REST-Schnittstelle http://roadshow.alta4cloud.com/atlasfx/spring/rest/maps/530/search?searchTerm=Martin-Grundschule&urlTemplate=http://roadshow.alta4cloud.com/atlasfx/js/index.html?mapId=$mapId$%26featureId=$featureId$%26mapLayerId=$layerId$"
Die Antwort des Suchservice
[
{
"iconId": 4,
"preview": "Trier,GS Trier Martin",
"url": "http://roadshow.alta4cloud.com/atlasfx/js/index.html?mapId=530&featureId=657&mapLayerId=2889"
}
]
Hier ist zu erkennen, dass lediglich ein Objekt zurückgeliefert wurde. Das Ergebnisobjekt weist die drei Properies iconId, preview und url auf. Wie Sie das Icon anhand seiner Id abfragen können wird im Abschnitt Icon Ressource erläutert. Das Property preview enthält eine Zeichenkette die das Ergebnis beschreibt. Sie kann zum Beispiel in der Vorschlagsliste dargestellt werden. Das Property url enthält die Url, die sich durch Variablenersetzung im Url Template entstanden ist. Diese kann zum Beispiel aufgerufen werden um den Karten-Client zu starten. Fließtext
BEISPIELANWENDUNG
QUELLTEXT
<!doctype html>
<html>
<head>
<title>atlasFX REST-Schnittstelle - search - demo</title>
<link rel="stylesheet" type="text/css"
href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css"/>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script type="text/javascript" src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<style>
.ui-autocomplete {
max-height: 400px;
overflow-y: auto;
overflow-x: hidden;
}
* html .ui-autocomplete {
height: 400px;
}
</style>
<script type="text/javascript">
$(function(){
var searchApi = "http://roadshow.alta4cloud.com/atlasfx/spring/rest/maps/530/search";
var urlTemplate = "http://roadshow.alta4cloud.com/atlasfx/js/index.html"
+ "?mapId=$mapId$%26feature=$layerId$,$featureId$,true";
var iconUrl = "http://roadshow.alta4cloud.com/atlasfx/spring/rest/icons";
function executeSearch(term, responseCallback) {
$.getJSON(searchApi, {
searchTerm: term,
urlTemplate: urlTemplate
}).fail(function() {
responseCallback([]);
}).done(function(data) {
$.each(data, function(i, item) {
item.label = item.preview;
item.value = term;
item.iconUrl = iconUrl + "/" + item.iconId;
})
responseCallback(data);
});
}
$("form").submit(function() {
return false;
})
$("#search").autocomplete({
source: function(request, responseCallback) {
executeSearch(request.term, responseCallback);
},
select: function(event, ui) {
window.location.href = decodeURIComponent(ui.item.url);
}
}).data("ui-autocomplete")._renderItem = function(ul, item) {
return $("<li>").append("<a><img src='" + item.iconUrl + "'/> " + item.label + "</a>")
.appendTo(ul);
};
});
</script>
</head>
<body>
<h1>Demoanwendung zur Suche mit der altasFX REST-Schnittstelle</h1>
<form>
<label for="search">Suche: </label><input type="text" id="search"/>
</form>
<!-- -->
</body>
</html>
ICON RESSOURCE
URL
http://<atlasFX-url>/spring/rest/icons/<iconId>
PARENT RESSOURCE
IconList
DESCRIPTION
Diese Ressource enthält die Bilddaten eines Icons.
NEW IN 1.9.2
RESSOURCE HIERACHY
Icon /<iconId>
PARAMETERS
Diese Ressource unterstützt keine Url Parameter.
RESPONSE
Die Bilddatei wird mit binär zurückgegeben. Die Responseheadder werden entsprechend gesetzt, sodass die Url direkt im Browser verwendet werden kann.
EXAMPLE
Es folgt ein Beispiel, das online unter http://roadshow.alta4cloud.com/atlasfx/js/index.html?mapId=530 nachvollzogen werden kann.
Erläuterung zum Testsystem
Parameter |
Beispielwert |
|
<atlasFX-url> |
http://roadshow.alta4cloud.com/atlasfx |
Dies ist die Url unter der der Context der atlasFX-Webapplication verfügbar ist. |
<iconId> |
4 |
In diesem Beispiel möchten wir das Icon 4 mit der Id 4 abrufen. |
Das Icon kann einfach unter http://roadshow.alta4cloud.com/atlasfx/spring/rest/icons/4 abgerufen werden.