Verwenden des Proxys in Ihrer Webanwendung
In diesem Abschnitt wird beschrieben, wie der Proxy in Ihrer Webanwendung verwendet wird.
Importieren von „ria.js“
Im ersten Schritt müssen Sie „OpenLayers“ und die JavaScript-API-Hauptbibliothek importieren. Gehen Sie dazu wie folgt vor:
<script type="text/javascript" src="http://<server>:<port>/ria/openlayers/OpenLayers.js"></script>
<script type="text/javascript" src="http://<server>:<port>/ria/ria.js"></script>
Ersetzen Sie localhost:8080 durch den tatsächlichen Hostnamen und die tatsächliche Portnummer, unter dem bzw. unter der die JavaScript-API installiert ist.
Alle JavaScript-Ressourcen, die heruntergeladen werden sollen, müssen in einer öffentlich zugänglichen URL enthalten sein (und alle URLs innerhalb dieser JS-Dateien müssen auch öffentlich zugänglich sein), damit JavaScript-API-Komponenten in Ihrer Webanwendung öffentlich verfügbar gemacht werden können.
Definieren des Pfades zu Ihrem Proxy
Der Pfad zum Proxy muss wie folgt registriert werden, damit angegeben werden kann, dass domänenübergreifende Aufrufe über einen Proxy weitergeleitet werden sollen:
ria.RestService.addProxy("/riaproxy/?url=");
Statt direkt eine URL für eine andere Domäne aufzurufen, hängt der JavaScript-Bibliothekscode die codierte URL an das Ende des oben registrierten Pfades an und führt die Anforderung unter Verwendung des Ergebnisses durch. Der Proxy verwendet die URL aus dem Anforderungsparameter (standardmäßig URL), fordert die mit ihr verknüpfte zugeordnete Ressource an und sendet das Ergebnis ohne Änderungen wieder an den JavaScript-Bibliothekscode. Welcher Pfad genau an die Methode „addProxy()“ übergeben wird, hängt davon ab, welcher Proxy verwendet wird und wie der Proxy bereitgestellt wurde.
Codebeispiel
Eine einfache Seite zum Durchführen einer Feature-Suche:
<!DOCTYPE html>
<html>
<head>
<script src="http://<server>:<port>/ria/openlayers/OpenLayers.js"></script>
<script src="http://<server>:<port>/ria/ria.js"></script>
</head>
<body>
<button onclick="search();">Search</button>
<script>
ria.RestService.addProxy("/riaproxy/?url=");
function search() {
var fs = new ria.search.FeatureService(
"http://<server>:<port>/rest/Spatial/FeatureService");
var d = fs.searchNearest({
table: "/Samples/NamedTables/WorldcapTable",
geometry: new OpenLayers.Geometry.Point(12.875977, 47.813155),
srs: "epsg:4326",
attributes: ["Capital"],
withinDistance: "2000 mi",
distanceAttributeName: "dist",
maxFeatures: 10
});
d.addCallback(function(result) {alert(result.features.length + " result(s)")});
}
</script>
</body>
</html
Testen Sie diese Beispielwebanwendung, indem Sie sie in Ihrem Browser anzeigen und auf Suchen klicken.
Es wird ein Dialogfeld mit den Ergebnissen der Feature-Suche angezeigt:
In einem Web-Debugger wie Fiddler können Sie eine Auflistung der 10 Ergebnisse sehen:
{"type":"FeatureCollection","Metadata":[{"type":"String","name":"Capital"},
{"type":"Double","name":"dist"}],"features":[{"type":"Feature","properties"
:{"Capital":"Ljubljana","dist":143.84489998699985}},{"type":"Feature","properties"
:{"Capital":"Vienna","dist":161.4848812627603}},{"type":"Feature","properties"
:{"Capital":"Vaduz","dist":163.332701859974}},{"type":"Feature","properties"
:{"Capital":"Prague","dist":173.87473824107374}},{"type":"Feature","properties"
:{"Capital":"Bratislava","dist":198.09553406882614}},{"type":"Feature","properties"
:{"Capital":"Zagreb","dist":201.31855154101802}},{"type":"Feature","properties"
:{"Capital":"Bern","dist":260.92616074609}},{"type":"Feature","properties"
:{"Capital":"San Marino","dist":267.4791030110629}},{"type":"Feature","properties"
:{"Capital":"Budapest","dist":290.00905102083885}},{"type":"Feature","properties"
:{"Capital":"Berlin","dist":325.56576583498344}}]}