Utilización del proxy en su aplicación web
Esta sección describe cómo utilizar el proxy en su aplicación web.
Importación del archivo ria.js
El primer paso es importar OpenLayers y la biblioteca principal API de JavaScript. Para esto, haga lo siguiente:
<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>
Reemplace localhost:8080 por el nombre de host real y el número de puerto en el que está instalada la API de JavaScript.
Para exponer públicamente los componentes API de JavaScript en su aplicación web, todos los recursos javascript que se descargarán deben estar en una URL de acceso público (y todas las URL dentro de esos archivos js también deben ser de acceso público).
Defina la ruta hacia su proxy.
Para indicar que las invocaciones entre dominios se deben enrutar a través de un proxy, la ruta del proxy se debe registrar de la siguiente manera:
ria.RestService.addProxy("/riaproxy/?url=");
En lugar de invocar una dirección URL directamente a un dominio diferente, el código de la biblioteca de JavaScript anexará la dirección URL codificada al extremo de la ruta registrada con anterioridad y usará el resultado para realizar la solicitud. El proxy toma la dirección URL desde el parámetro de la solicitud (por dirección url predeterminada), solicita el recurso relacionado con este y envía el resultado de vuelta hacia el código de la biblioteca de JavaScript sin ninguna modificación. La ruta exacta que se pasa para el método addProxy() depende de qué proxy se esté usando y cómo se implemente.
Ejemplo de código
Una página básica para realizar una búsqueda de características:
<!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
Pruebe esta aplicación web de ejemplo al visualizarla en su navegador y hacer clic en Search (Buscar).
Aparece un diálogo que muestra los resultados de la búsqueda de características:
En un depurador web como Fiddler, puede ver una lista de los 10 resultados:
{"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}}]}