[postgis-users] meters to degrees

michal nagy lachim1989 at gmail.com
Mon Mar 7 09:56:31 PST 2011


>
> Ok,
>
> basically I have table location(id int, point geometry(POINT)) and function
> getallpointsincircle(longitude, latitude, radius) which gives set of
> internal indexes from location table if point in table is in the radius of
> parameters of function. Inside function I am using st_dwithin
>
> declare
> t2_row location%rowtype;
> po geometry;begin
> po:=st_geomfromtext('POINT('||lon||' '||lat||')',3044);
> for t2_row in select * from location
> loop
> if st_dwithin(t2_row.point,po, radius) is truethen return next t2_row.id;end if;end loop;return;end;
>
>
> idst_astext
> 12
> POINT(7.4545 44)
> 13
> POINT(7.49785 44)
> 14
> POINT(7.6845 44)
> 15
> POINT(7.96311 44)
> 16
> POINT(55.859755 9.847419)
>
> these are test values in location table, as you can see point(16) has
> measured coords, others are bogus.
> Now, when I execute my function select
> getallpointsincircle(56.162882,10.203944,45000.0), all the indexes are
> returned. Approximately the distance between these places is 40 km. But when
> I exchange 45000.0 with 0.46 i will get proper index(16 in this case).
>
>
>
> 2011/3/7 Mike Toews <mwtoews at gmail.com>
>
> You are using EPSG:3044, correct?
>> http://spatialreference.org/ref/epsg/3044/
>>
>> <http://spatialreference.org/ref/epsg/3044/>This projection has units of
>> metres. ST_DWithin and related functions use the same units of length as
>> defined in the projection, which in this case is metres, not degrees. You
>> may need to elaborate with an example.
>>
>> -Mike
>>
>>
>> On 7 March 2011 23:41, michal nagy <lachim1989 at gmail.com> wrote:
>>
>>> Well, it sitll does not solve my problem. As I said I am using
>>> geometry(planar) with SRID 3044, where units are degrees, therefore when
>>> using st_dwithin will still take input in degrees.
>>>
>>> 2011/3/7 Paragon Corporation <lr at pcorp.us>
>>>
>>>>  Use ST_DWithin instead.
>>>> http://www.postgis.org/documentation/manual-1.5SVN/ST_DWithin.html
>>>>
>>>> We cover this topic in detail in the first chapter of our book which is
>>>> a free download.
>>>>
>>>> http://www.postgis.us/chapter_01
>>>>
>>>> Leo and Regina
>>>>
>>>>  ------------------------------
>>>> *From:* postgis-users-bounces at postgis.refractions.net [mailto:
>>>> postgis-users-bounces at postgis.refractions.net] *On Behalf Of *michal
>>>> nagy
>>>> *Sent:* Monday, March 07, 2011 2:29 AM
>>>> *To:* postgis-users at postgis.refractions.net
>>>> *Subject:* [postgis-users] meters to degrees
>>>>
>>>>
>>>>   Hello everyone,
>>>>
>>>> I am new to Postgres and PostGIS. I have encountered one problem, that I
>>>> can not deal with.I have table with various points that have SRID=3044,
>>>> which should be UTM zone including Jutland. I have created function to
>>>> loop through all points in table and check if they are within given
>>>> radius(using geometry and function st_point_inside_circle). Now to the
>>>> problem, for some reason st_point_inside_circle takes radius in degrees,
>>>> which is very inconvenient for me. I would really need to  change to
>>>> metres. If anyone has a suggestion, pls let me know.
>>>>
>>>> Thank you for help
>>>>
>>>> Michal
>>>>
>>>> _______________________________________________
>>>> postgis-users mailing list
>>>>
>>>> postgis-users at postgis.refractions.net
>>>> http://postgis.refractions.net/mailman/listinfo/postgis-users
>>>>
>>>>
>>>
>>> _______________________________________________
>>> postgis-users mailing list
>>> postgis-users at postgis.refractions.net
>>> http://postgis.refractions.net/mailman/listinfo/postgis-users
>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/postgis-users/attachments/20110307/990e3d97/attachment.html>


More information about the postgis-users mailing list