¿Cómo hacer búsquedas de elementos en una zona concreta?

Sofia2 ofrece un API) que permite hacer búsquedas de elementos que estén dentro de una zona (circunferencia concreta).

Para esto habilita en el APISofia utilizable a través de los scripts el método findInCircle

Esta operación tiene esta sintaxis:

/**

* Consulta geoespacial

* Wrapper query MongoDB http://docs.mongodb.org/manual/reference/operator/query/nearSphere/

* Example db.MyOntology.find( { location : { $nearSphere : [ 7.0, 45.0 ], $maxDistance: 0.1 } })

* @param ontologyName String

* @param indexName String

* @param longitude double

* @param latitude double

* @param radio in metres int

*/

def findInCircle(ontologyName, indexName, longitude, latitude, radio) throws ScriptException;

y permite buscar los elementos de una ontología que están en un círculo a partir de un centro y un radio especificado en metros.

Como se ve en los comentarios del método realmente es un wrapper de la query geospacial de MongoDB

db.<ontologia>.find( { "<ontologia>.geometry": { $nearSphere : [ <longitud>,<latitude> ], $maxDistance: <radio en metros> } })

que sobre una ontología real podría quedar:

db.pt_bus.find( { "MobileElement.geometry": { $nearSphere : [-8.39,43.37], $maxDistance: 100 } })

Desde un script puedo utilizar el método findInCircle de la siguiente forma:

def api=new APISofia();

def attrib1= api.findInCircle(pt_bus”,”MobileElement.geometry”, 8.39, 43.37,100);

def var1=!(attrib1.size() > 0);

if(var1){
return true;
}else{
return false;
}

¿Cómo hacer búsquedas de elementos en una zona concreta?

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s