如何使用PostGIS创建包含地理点(纬度/经度)的表?那么,插入到这个表中的格式是什么(使用SQL/PostgreSQL)?
创建表时是否只需要以下内容:
CREATE TABLE x (geog geography(point, 4326))
如果是,point
是什么?什么时候使用ST_Point(X,Y)
这列应该有索引吗?
注意:之前回答的许多问题都详细介绍了如何转换。但我想从头开始创建一个空表,支持存储纬度和经度。
是的,用Geography创建表的语法就像CREATE TABLE x (geog geography(POINT,4326) );
一样简单
在该命令中,POINT
是该表将要存储的形状类型。其他可能性包括:
- 字符串
- 多边形
- 多点
- 多重限制
- 多极子
- 几何集合
在某些情况下,将Geography存储在表中是有意义的,因为它使您能够运行多个函数,这些函数将为您提供结果,就像您在球形地球上计算一样。例如,我可以将两个点存储为Geography(只知道每个点的长度),并且我可以很容易地在Meters 中找到它们之间的距离
ST_Point(X,Y)
只是一个函数,它接受两个数字,然后创建一个点,其中X是第一个数字,Y是第二个数字。它不需要是一双Lat长的。事实上,该点不知道它在哪个坐标参考系中。
创建表后,在表中插入记录非常简单:INSERT INTO X (geog) VALUES (ST_GeographyFromText('POINT(2.5559 49.0083)'));
在这里,您正在为巴黎创建一个地理点,纬度为49.0083N,经度为2.5559 E