Hey, I would sugger to read a little bit about geographical information <https://en.wikipedia.org/wiki/Spatial_reference_system> before using PostGIS. The unit depend on the way you measure, which depends on the Spatial Reference System.
If you want it is a bit like measuring the temperature in Celsius degrees and Kelvin. You measure the same things but you represent the measure differently. Cheers, Rémi-C 2015-03-22 15:42 GMT+01:00 Aaron Lewis <the.warl0ck.1...@gmail.com>: > Thanks Nicolas, > > I take a few tries, but it looks like ST_DWithin & ST_Distance all > deals in degrees, not meters ..: > > gis=# select nick, ST_AsText(location), ST_Distance(location, > st_setsrid(st_makepoint (46.3, 36.10), 2600)) from users where > ST_DWithin(users.location, st_setsrid(st_makepoint (46.3, 36.10), > 2600), 10); > nick | st_astext | st_distance > -------+------------------+------------------ > user1 | POINT(45.2 35.1) | 1.48660687473185 > user2 | POINT(45.2 35.2) | 1.42126704035518 > user3 | POINT(45.5 35.3) | 1.13137084989848 > > I tried to cast it to geography type but: > > ST_Distance(location::geography, st_setsrid(st_makepoint (46.3, > 36.10), 2600)::geography) > > Resulted in an error: > ERROR: Only lon/lat coordinate systems are supported in geography. > > So how should I get this distance in meters? > > > On Sun, Mar 22, 2015 at 8:44 PM, Nicolas Ribot <nicolas.ri...@gmail.com> > wrote: > > Hi Aaron, > > > > SRID is used to set a consistent coordinate system to the data. It > refers to > > an EPSG Coordinate Reference System (CRS). For instance, EPSG:2600: > > (http://spatialreference.org/ref/epsg/2600/) is a metric CRS. > > > > Coordinates (146.0, 138.19) are not valid in SRID 2600 (nor in lat/long > > coordinates). > > > > You would use st_setSRID when the coordinates are already in the correct > > CRS, and st_transform() to reproject coordinates from one CRS to another: > > > > -- Search inside a 100m circle for a point already in SRID=2600: > > SELECT * FROM users > > WHERE ST_DWithin (users.location, st_setsrid(st_makepoint (508560, > 6155116), > > 2600), 100); > > > > -- Search inside a 100m circle for a point in longitude/latitude, > projected > > into SRID=2600: > > SELECT * FROM users > > WHERE ST_DWithin (users.location, st_transform(st_setsrid(st_makepoint > (24.1 > > 55.5), 4326), 2600), 100); > > > > (users.location SRID should be 2600 in these examples) > > > > Nicolas > > > > > > > > On 22 March 2015 at 12:09, Aaron Lewis <the.warl0ck.1...@gmail.com> > wrote: > >> > >> Hi, > >> > >> I've been searching online for days. Trying to understand why SRID is > >> required. So I picked some random value. > >> > >> Now I'm need to retrieve POINTs within a circle range, e.g a circle at > >> (146.0, 138.19) with radius of 100 meters: > >> > >> SELECT * FROM users > >> WHERE ST_DWithin (users.location, st_setsrid(st_makepoint (146.0, > >> 138.19), 2600), 100); > >> > >> It's very simple, but the result seems wrong. I have a record contains > >> a POINT(55 43) that matches this query. > >> > >> Anyone know what's wrong with it? > >> > >> -- > >> Best Regards, > >> Aaron Lewis - PGP: 0x13714D33 - http://pgp.mit.edu/ > >> Finger Print: 9F67 391B B770 8FF6 99DC D92D 87F6 2602 1371 4D33 > >> _______________________________________________ > >> postgis-users mailing list > >> postgis-users@lists.osgeo.org > >> http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users > > > > > > > > _______________________________________________ > > postgis-users mailing list > > postgis-users@lists.osgeo.org > > http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users > > > > -- > Best Regards, > Aaron Lewis - PGP: 0x13714D33 - http://pgp.mit.edu/ > Finger Print: 9F67 391B B770 8FF6 99DC D92D 87F6 2602 1371 4D33 > _______________________________________________ > postgis-users mailing list > postgis-users@lists.osgeo.org > http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users >
_______________________________________________ postgis-users mailing list postgis-users@lists.osgeo.org http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users