Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Mailing Lists -> Oracle-L -> Re:RE: longitude, latitude

Re:RE: longitude, latitude

From: <dgoulet_at_vicr.com>
Date: Fri, 6 Oct 2000 13:01:14 -0400
Message-Id: <10641.118702@fatcity.com>


OOOH, someone is going to force me to review those OLD navigation tech manuals I've. Well, for starters it does appear that the formula is the one used to calculate the distance between two points on the globe based on Lat & Long. I assume that the 'constants' are really variables entered by the user so that the formula becomes:

SELECT DISTINCT service_provider_id,

       SQRT(((:HOME_LAT - LATITUDE)*(:HOME_LAT - LATITUDE) +
             (:HOME_LONG - LONGITUDE)*(:HOME_LONG - LONGITUDE)) *
            5329) DIST

FROM provider_search
WHERE SPECIALTY_CATEGORY_ID = 'PH'
  AND ((:HOME_LAT - LATITUDE)*(:HOME_LAT - LATITUDE) +        (:HOME_LONG - LONGITUDE)*(:HOME_LONG - LONGITUDE)) * 5329 < 100*100 ORDER BY DIST; Given that I'd think that it would be better to do the algebra so that the where clause figures out the range of possible lat & longs that would fill the bill. (Sorry, algebra on short notice is NOT one of my strenghts.) And then indexing the latitude & longitude columns.

Dick Goulet

____________________Reply Separator____________________
Subject: RE: longitude, latitude
Author: Yosi_at_comhill.com
Date: 10/6/00 9:35 AM

John,

Since those strange numbers look static - why not create a function to return that value, and create a function based index on the function? If you're not in 8i, you could create additional columns (say, for the value and it's sqrt), populated and maintained by triggers, and index them. Sounds like a good idea to me.

hth,

Yosi

> -----Original Message-----
> From: jfedock_at_ixl.com [mailto:jfedock_at_ixl.com]
> Sent: Friday, October 06, 2000 12:41 PM
> To: Multiple recipients of list ORACLE-L
> Subject: longitude, latitude
>
>
> Hello all,
>
> Looking for some advice on the best way to use longitude and latitude.
> These values are stored in a table, along with other info.
>
> In order to get within a certain distance, our developers are
> using the
> following query. It actually runs well, with a few hints. I
> feel that we
> need to narrow down the long/lat in the where clause by a
> certain distance.
>
> I'll be the first to admit I don't know much about long/lat.
> I'm just trying
> to tune this query a bit.
>
> Anybody else out there deal with this before?
>
>
> SELECT DISTINCT service_provider_id,
> SQRT(((37.6715 - LATITUDE)*(37.6715 - LATITUDE) + (-77.5465 -
> LONGITUDE)*(-77.5465 - LONGITUDE)) * 5329) DIST
> FROM provider_search
> WHERE SPECIALTY_CATEGORY_ID = 'PH'
> AND ((37.6715 - LATITUDE)*(37.6715 - LATITUDE) + (-77.5465 -
> LONGITUDE)*(-77.5465 -LONGITUDE)) * 5329 < 100*100
> ORDER BY DIST
>
>
> Thanks.
>
> John
> jfedock_at_ixl.com
> --
> Please see the official ORACLE-L FAQ: http://www.orafaq.com
> --
> Author:
> INET: jfedock_at_ixl.com
>
> Fat City Network Services -- (858) 538-5051 FAX: (858) 538-5051
> San Diego, California -- Public Internet access / Mailing Lists
> --------------------------------------------------------------------
> To REMOVE yourself from this mailing list, send an E-Mail message
> to: ListGuru_at_fatcity.com (note EXACT spelling of 'ListGuru') and in
> the message BODY, include a line containing: UNSUB ORACLE-L
> (or the name of mailing list you want to be removed from). You may
> also send the HELP command for other information (like subscribing).
>

-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.com
-- 
Author: 
  INET: Yosi_at_comhill.com

Fat City Network Services    -- (858) 538-5051  FAX: (858) 538-5051
San Diego, California        -- Public Internet access / Mailing Lists
--------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: ListGuru_at_fatcity.com (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
Received on Fri Oct 06 2000 - 12:01:14 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US