Hi,

What is the correct / recommended way to use the result of distance() in a 
where clause ?

I know I can do something like this:
select distance(latitude, longitude, 51.4503729, 4.4914635) as distance 
from cities

But I can't do this:
select distance(latitude, longitude, 51.4503729, 4.4914635) as distance 
from cities where distance < 20

Of course I could do this:
select distance(latitude, longitude, 51.4503729, 4.4914635) as distance 
from cities where distance(latitude, longitude, 51.4503729, 4.4914635) < 20

But I can't imagine that would be the most optimal/recommended way, is it ?


Also, how can I send this distance value back together with the record 
itself when using the java OrientGraph API ?

Normally I'm doing something like this:

        OSQLAsynchQuery<Vertex> asyncQuery = new 
OSQLAsynchQuery<Vertex>("select from cities where distance(latitude, 
longitude, 51.4503729, 4.4914635) < 20");
        OCommandResultListener asyncListener = new OCommandResultListener() 
{
            int resultCount = 0;
            @Override
            public boolean result(Object iRecord) {
                resultCount++;
                Vertex doc = graphDb.getVertex(iRecord);
                System.out.println("new record received (" + resultCount + 
")");
                System.out.println(">> zipcode: " + 
doc.getProperty("zipcode"));
                return true;
            }

            @Override
            public void end() {
                System.out.println("All records received: " + resultCount);
            }
        };

But how do I add the distance to this ?
I could probably use something like this for the query: "select @this, 
distance(latitude, longitude, 51.4503729, 4.4914635) as distance from 
cities"

But what would be the result type in this case ?

Or do I have to perform separate querries for this (which would cause a 
significant overhead) ?


regards,

Santo

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"OrientDB" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to