How do I convert a latitude/longitude pair into a PostGIS geography type?
...sigh. Stupidity on my part. Apparently the correct order is longitude, latitude. I was fooled into thinking that both coordinates had the same range (-180 to 180) so thought something more subtle was going on.
Here are some different ways to make geography types:
Convert numeric
long
andlat
columns to ageog
geography type:UPDATE mytable SET geog = ST_SetSRID(ST_MakePoint(long, lat), 4326)::geography
Convert a
geom
geometry column (SRID=4326) to ageog
geography type using a simple cast:UPDATE mytable SET geog = geom::geography
Transform a projected
geom
geometry column to ageog
geography type:UPDATE mytable SET geog = ST_Transform(geom, 4326)::geography
Note that the last two examples work on any geometry type. Also, the conversion from geometry to geography is often implicit, and these examples work without ::geography
, however explicit casts are usually a good practice for these things.