You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jena.apache.org by Heidi McClure <he...@issinc.com> on 2014/03/03 21:17:24 UTC
Spatial withinCircle distances
Hello,
I'm using Jena version 2.11.1. When I use withinCircle, I don't see results that I would expect - I am able to plot a set of points in a geospatial application and measure the distance from point 1 to the other points - they are all within 700 miles of point 1. When I do a similar query using the withinCircle API in spatial Jena, I don't get any points! When I double 700 mi to 1400 miles I get the results I expected with 700 miles.
Am I using the API incorrectly? Does the withinCircle use the number I pass in as a diameter of a circle centered at the POINT and not a radius from the POINT?
thanks,
-heidi
Re: Spatial withinCircle distances
Posted by Andy Seaborne <an...@apache.org>.
Heidi,
Thanks for letting us know.
I'm currently at the W3C workshop on Linking Geospatial Data and exactly
this question came up when a presenter asked the audience which way
round it was for WKT. No one was prepared to say immediately (despite
the number of experts present) and eventually, someone checked online to
come up with the answer.
Andy
On 05/03/14 22:45, Heidi McClure wrote:
> UPDATE: <blush> There's a good chance this may be as simple as me
> flipping latitude and longitude around in my wktLiteral
> representation of a POINT. I've worked for so many years with
> lat/lon being the order... realized today that WGS84 flips them
> around.
>
> You may want to update JENA-649 to be OBE because of operator error
> ...
>
> -heidi
>
>
> -----Original Message----- From: Andy Seaborne
> [mailto:andy@apache.org] Sent: Tuesday, March 04, 2014 4:37 AM To:
> users@jena.apache.org Subject: Re: Spatial withinCircle distances
>
> Hi there,
>
> Thank you for the complete example.
>
> I've created JENA-649 to record this (so it does not get lost in
> email).
>
> Andy
>
> https://issues.apache.org/jira/browse/JENA-649
RE: Spatial withinCircle distances
Posted by Heidi McClure <he...@issinc.com>.
UPDATE: <blush> There's a good chance this may be as simple as me flipping latitude and longitude around in my wktLiteral representation of a POINT. I've worked for so many years with lat/lon being the order... realized today that WGS84 flips them around.
You may want to update JENA-649 to be OBE because of operator error ...
-heidi
-----Original Message-----
From: Andy Seaborne [mailto:andy@apache.org]
Sent: Tuesday, March 04, 2014 4:37 AM
To: users@jena.apache.org
Subject: Re: Spatial withinCircle distances
Hi there,
Thank you for the complete example.
I've created JENA-649 to record this (so it does not get lost in email).
Andy
https://issues.apache.org/jira/browse/JENA-649
On 03/03/14 22:27, Heidi McClure wrote:
> No, I don't think it's taking 700 and treating as km. When I use 1126 mi (yes, I tested with mi in this experiment because km gave me no results) where 1126 km is approximately 700 mi it gives me a few points but not all that I expect.
>
> Here is some data and queries that should work but don't along with some bad queries that do work using very large radii.
>
> Using http://www.freemaptools.com/measure-distance.htm
> Distance between Assault and Knife is approx. 93 mi.
> Distance between Assault and Robbery is approx. 250 mi.
> Point used for within query is the point of the Assault.
>
> data:
>
> <http://example.com/event#event_3> <http://example.com/event#type> "Knife"^^<http://www.w3.org/2001/XMLSchema#string> .
> <http://example.com/event#event_3> <http://www.opengis.net/ont/geosparql#asWKT> "POINT(35.46883 -104.39098)"^^<http://www.opengis.net/ont/geosparql#wktLiteral> .
> <http://example.com/event#event_3> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/event#type> .
> <http://example.com/event#event_4> <http://example.com/event#type> "Assault"^^<http://www.w3.org/2001/XMLSchema#string> .
> <http://example.com/event#event_4> <http://www.opengis.net/ont/geosparql#asWKT> "POINT(36.34 -103.13)"^^<http://www.opengis.net/ont/geosparql#wktLiteral> .
> <http://example.com/event#event_4> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/event#type> .
> <http://example.com/event#event_6> <http://example.com/event#type> "Robbery"^^<http://www.w3.org/2001/XMLSchema#string> .
> <http://example.com/event#event_6> <http://www.opengis.net/ont/geosparql#asWKT> "POINT(32.8657 -104.21235)"^^<http://www.opengis.net/ont/geosparql#wktLiteral> .
> <http://example.com/event#event_6> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/event#type> .
>
>
> simplistic test - returns all 3 records
>
> SELECT DISTINCT ?Event ?Location WHERE {
> ?Event <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/event#type> .
> ?Event <http://www.opengis.net/ont/geosparql#asWKT> ?Location }
>
>
> FAILS: withinCircle of 100 mi radius - returns no records - should
> return 2
>
> SELECT DISTINCT ?Event ?Location WHERE {
> ?Event <http://jena.apache.org/spatial#withinCircle> (36.34 -103.13 100 'mi') .
> ?Event <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/event#type> .
> ?Event <http://www.opengis.net/ont/geosparql#asWKT> ?Location }
>
> FAILS: withinCircle of 275 mi radius - returns no records - should
> return 3 records
>
> SELECT DISTINCT ?Event ?Location WHERE {
> ?Event <http://jena.apache.org/spatial#withinCircle> (36.34 -103.13 275 'mi') .
> ?Event <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/event#type> .
> ?Event <http://www.opengis.net/ont/geosparql#asWKT> ?Location }
>
>
> BAD: withinCircle of 9400 mi radius - returns 2 records
>
> SELECT DISTINCT ?Event ?Location WHERE {
> ?Event <http://jena.apache.org/spatial#withinCircle> (36.34 -103.13 9400 'mi') .
> ?Event <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/event#type> .
> ?Event <http://www.opengis.net/ont/geosparql#asWKT> ?Location }
>
>
> BAD: withinCircle of 9450 mi radius - returns all 3 records
>
> SELECT DISTINCT ?Event ?Location WHERE {
> ?Event <http://jena.apache.org/spatial#withinCircle> (36.34 -103.13 9450 'mi') .
> ?Event <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/event#type> .
> ?Event <http://www.opengis.net/ont/geosparql#asWKT> ?Location }
>
>
> thanks,
> -heidi
>
>
> -----Original Message-----
> From: Andy Seaborne [mailto:andy@apache.org]
> Sent: Monday, March 03, 2014 2:25 PM
> To: users@jena.apache.org
> Subject: Re: Spatial withinCircle distances
>
> On 03/03/14 20:17, Heidi McClure wrote:
>> Hello,
>>
>>
>> I'm using Jena version 2.11.1. When I use withinCircle, I don't see
>> results that I would expect - I am able to plot a set of points in a
>> geospatial application and measure the distance from point 1 to the
>> other points - they are all within 700 miles of point 1. When I do a
>> similar query using the withinCircle API in spatial Jena, I don't get
>> any points! When I double 700 mi to 1400 miles I get the results I
>> expected with 700 miles.
>>
>>
>>
>> Am I using the API incorrectly? Does the withinCircle use the number
>> I pass in as a diameter of a circle centered at the POINT and not a
>> radius from the POINT?
>>
>
> Heidi,
>
> I'm not sure but I'm afraid you may have tripped over another, fixed bug. Would if the engine was treating 700 as kilometres explain what you are seeing?
>
> This was fixed after the 2.11.1 version - it is available in development builds.
>
> https://repository.apache.org/content/repositories/snapshots/org/apach
> e/jena/
>
> The bug was in the query processing - the data is OK.
>
> If you try this, could let the list know whether it works; otherwise could you provide a complete, minimal example that can be debugged?
>
> https://issues.apache.org/jira/browse/JENA-623
>
> Andy
>
Re: Spatial withinCircle distances
Posted by Andy Seaborne <an...@apache.org>.
Hi there,
Thank you for the complete example.
I've created JENA-649 to record this (so it does not get lost in email).
Andy
https://issues.apache.org/jira/browse/JENA-649
On 03/03/14 22:27, Heidi McClure wrote:
> No, I don't think it's taking 700 and treating as km. When I use 1126 mi (yes, I tested with mi in this experiment because km gave me no results) where 1126 km is approximately 700 mi it gives me a few points but not all that I expect.
>
> Here is some data and queries that should work but don't along with some bad queries that do work using very large radii.
>
> Using http://www.freemaptools.com/measure-distance.htm
> Distance between Assault and Knife is approx. 93 mi.
> Distance between Assault and Robbery is approx. 250 mi.
> Point used for within query is the point of the Assault.
>
> data:
>
> <http://example.com/event#event_3> <http://example.com/event#type> "Knife"^^<http://www.w3.org/2001/XMLSchema#string> .
> <http://example.com/event#event_3> <http://www.opengis.net/ont/geosparql#asWKT> "POINT(35.46883 -104.39098)"^^<http://www.opengis.net/ont/geosparql#wktLiteral> .
> <http://example.com/event#event_3> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/event#type> .
> <http://example.com/event#event_4> <http://example.com/event#type> "Assault"^^<http://www.w3.org/2001/XMLSchema#string> .
> <http://example.com/event#event_4> <http://www.opengis.net/ont/geosparql#asWKT> "POINT(36.34 -103.13)"^^<http://www.opengis.net/ont/geosparql#wktLiteral> .
> <http://example.com/event#event_4> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/event#type> .
> <http://example.com/event#event_6> <http://example.com/event#type> "Robbery"^^<http://www.w3.org/2001/XMLSchema#string> .
> <http://example.com/event#event_6> <http://www.opengis.net/ont/geosparql#asWKT> "POINT(32.8657 -104.21235)"^^<http://www.opengis.net/ont/geosparql#wktLiteral> .
> <http://example.com/event#event_6> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/event#type> .
>
>
> simplistic test - returns all 3 records
>
> SELECT DISTINCT ?Event ?Location WHERE {
> ?Event <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/event#type> .
> ?Event <http://www.opengis.net/ont/geosparql#asWKT> ?Location }
>
>
> FAILS: withinCircle of 100 mi radius - returns no records - should return 2
>
> SELECT DISTINCT ?Event ?Location WHERE {
> ?Event <http://jena.apache.org/spatial#withinCircle> (36.34 -103.13 100 'mi') .
> ?Event <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/event#type> .
> ?Event <http://www.opengis.net/ont/geosparql#asWKT> ?Location }
>
> FAILS: withinCircle of 275 mi radius - returns no records - should return 3 records
>
> SELECT DISTINCT ?Event ?Location WHERE {
> ?Event <http://jena.apache.org/spatial#withinCircle> (36.34 -103.13 275 'mi') .
> ?Event <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/event#type> .
> ?Event <http://www.opengis.net/ont/geosparql#asWKT> ?Location }
>
>
> BAD: withinCircle of 9400 mi radius - returns 2 records
>
> SELECT DISTINCT ?Event ?Location WHERE {
> ?Event <http://jena.apache.org/spatial#withinCircle> (36.34 -103.13 9400 'mi') .
> ?Event <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/event#type> .
> ?Event <http://www.opengis.net/ont/geosparql#asWKT> ?Location }
>
>
> BAD: withinCircle of 9450 mi radius - returns all 3 records
>
> SELECT DISTINCT ?Event ?Location WHERE {
> ?Event <http://jena.apache.org/spatial#withinCircle> (36.34 -103.13 9450 'mi') .
> ?Event <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/event#type> .
> ?Event <http://www.opengis.net/ont/geosparql#asWKT> ?Location }
>
>
> thanks,
> -heidi
>
>
> -----Original Message-----
> From: Andy Seaborne [mailto:andy@apache.org]
> Sent: Monday, March 03, 2014 2:25 PM
> To: users@jena.apache.org
> Subject: Re: Spatial withinCircle distances
>
> On 03/03/14 20:17, Heidi McClure wrote:
>> Hello,
>>
>>
>> I'm using Jena version 2.11.1. When I use withinCircle, I don't see
>> results that I would expect - I am able to plot a set of points in a
>> geospatial application and measure the distance from point 1 to the
>> other points - they are all within 700 miles of point 1. When I do a
>> similar query using the withinCircle API in spatial Jena, I don't get
>> any points! When I double 700 mi to 1400 miles I get the results I
>> expected with 700 miles.
>>
>>
>>
>> Am I using the API incorrectly? Does the withinCircle use the number
>> I pass in as a diameter of a circle centered at the POINT and not a
>> radius from the POINT?
>>
>
> Heidi,
>
> I'm not sure but I'm afraid you may have tripped over another, fixed bug. Would if the engine was treating 700 as kilometres explain what you are seeing?
>
> This was fixed after the 2.11.1 version - it is available in development builds.
>
> https://repository.apache.org/content/repositories/snapshots/org/apache/jena/
>
> The bug was in the query processing - the data is OK.
>
> If you try this, could let the list know whether it works; otherwise could you provide a complete, minimal example that can be debugged?
>
> https://issues.apache.org/jira/browse/JENA-623
>
> Andy
>
RE: Spatial withinCircle distances
Posted by Heidi McClure <he...@issinc.com>.
No, I don't think it's taking 700 and treating as km. When I use 1126 mi (yes, I tested with mi in this experiment because km gave me no results) where 1126 km is approximately 700 mi it gives me a few points but not all that I expect.
Here is some data and queries that should work but don't along with some bad queries that do work using very large radii.
Using http://www.freemaptools.com/measure-distance.htm
Distance between Assault and Knife is approx. 93 mi.
Distance between Assault and Robbery is approx. 250 mi.
Point used for within query is the point of the Assault.
data:
<http://example.com/event#event_3> <http://example.com/event#type> "Knife"^^<http://www.w3.org/2001/XMLSchema#string> .
<http://example.com/event#event_3> <http://www.opengis.net/ont/geosparql#asWKT> "POINT(35.46883 -104.39098)"^^<http://www.opengis.net/ont/geosparql#wktLiteral> .
<http://example.com/event#event_3> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/event#type> .
<http://example.com/event#event_4> <http://example.com/event#type> "Assault"^^<http://www.w3.org/2001/XMLSchema#string> .
<http://example.com/event#event_4> <http://www.opengis.net/ont/geosparql#asWKT> "POINT(36.34 -103.13)"^^<http://www.opengis.net/ont/geosparql#wktLiteral> .
<http://example.com/event#event_4> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/event#type> .
<http://example.com/event#event_6> <http://example.com/event#type> "Robbery"^^<http://www.w3.org/2001/XMLSchema#string> .
<http://example.com/event#event_6> <http://www.opengis.net/ont/geosparql#asWKT> "POINT(32.8657 -104.21235)"^^<http://www.opengis.net/ont/geosparql#wktLiteral> .
<http://example.com/event#event_6> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/event#type> .
simplistic test - returns all 3 records
SELECT DISTINCT ?Event ?Location WHERE {
?Event <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/event#type> .
?Event <http://www.opengis.net/ont/geosparql#asWKT> ?Location }
FAILS: withinCircle of 100 mi radius - returns no records - should return 2
SELECT DISTINCT ?Event ?Location WHERE {
?Event <http://jena.apache.org/spatial#withinCircle> (36.34 -103.13 100 'mi') .
?Event <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/event#type> .
?Event <http://www.opengis.net/ont/geosparql#asWKT> ?Location }
FAILS: withinCircle of 275 mi radius - returns no records - should return 3 records
SELECT DISTINCT ?Event ?Location WHERE {
?Event <http://jena.apache.org/spatial#withinCircle> (36.34 -103.13 275 'mi') .
?Event <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/event#type> .
?Event <http://www.opengis.net/ont/geosparql#asWKT> ?Location }
BAD: withinCircle of 9400 mi radius - returns 2 records
SELECT DISTINCT ?Event ?Location WHERE {
?Event <http://jena.apache.org/spatial#withinCircle> (36.34 -103.13 9400 'mi') .
?Event <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/event#type> .
?Event <http://www.opengis.net/ont/geosparql#asWKT> ?Location }
BAD: withinCircle of 9450 mi radius - returns all 3 records
SELECT DISTINCT ?Event ?Location WHERE {
?Event <http://jena.apache.org/spatial#withinCircle> (36.34 -103.13 9450 'mi') .
?Event <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/event#type> .
?Event <http://www.opengis.net/ont/geosparql#asWKT> ?Location }
thanks,
-heidi
-----Original Message-----
From: Andy Seaborne [mailto:andy@apache.org]
Sent: Monday, March 03, 2014 2:25 PM
To: users@jena.apache.org
Subject: Re: Spatial withinCircle distances
On 03/03/14 20:17, Heidi McClure wrote:
> Hello,
>
>
> I'm using Jena version 2.11.1. When I use withinCircle, I don't see
> results that I would expect - I am able to plot a set of points in a
> geospatial application and measure the distance from point 1 to the
> other points - they are all within 700 miles of point 1. When I do a
> similar query using the withinCircle API in spatial Jena, I don't get
> any points! When I double 700 mi to 1400 miles I get the results I
> expected with 700 miles.
>
>
>
> Am I using the API incorrectly? Does the withinCircle use the number
> I pass in as a diameter of a circle centered at the POINT and not a
> radius from the POINT?
>
Heidi,
I'm not sure but I'm afraid you may have tripped over another, fixed bug. Would if the engine was treating 700 as kilometres explain what you are seeing?
This was fixed after the 2.11.1 version - it is available in development builds.
https://repository.apache.org/content/repositories/snapshots/org/apache/jena/
The bug was in the query processing - the data is OK.
If you try this, could let the list know whether it works; otherwise could you provide a complete, minimal example that can be debugged?
https://issues.apache.org/jira/browse/JENA-623
Andy
Re: Spatial withinCircle distances
Posted by Andy Seaborne <an...@apache.org>.
On 03/03/14 20:17, Heidi McClure wrote:
> Hello,
>
>
> I'm using Jena version 2.11.1. When I use withinCircle, I don't see
> results that I would expect - I am able to plot a set of points in a
> geospatial application and measure the distance from point 1 to the
> other points - they are all within 700 miles of point 1. When I do a
> similar query using the withinCircle API in spatial Jena, I don't get
> any points! When I double 700 mi to 1400 miles I get the results I
> expected with 700 miles.
>
>
>
> Am I using the API incorrectly? Does the withinCircle use the number
> I pass in as a diameter of a circle centered at the POINT and not a
> radius from the POINT?
>
Heidi,
I'm not sure but I'm afraid you may have tripped over another, fixed
bug. Would if the engine was treating 700 as kilometres explain what
you are seeing?
This was fixed after the 2.11.1 version - it is available in development
builds.
https://repository.apache.org/content/repositories/snapshots/org/apache/jena/
The bug was in the query processing - the data is OK.
If you try this, could let the list know whether it works; otherwise
could you provide a complete, minimal example that can be debugged?
https://issues.apache.org/jira/browse/JENA-623
Andy