【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>
一、安装
sudo apt install postgis postgresql-11-postgis-3
这里需要根据服务器版本选择对应的包,如服务器是最新的12则:
sudo apt install postgis postgresql-12-postgis-3
二、创建数据库mygis使之具备Postgis功能
使你的OS登陆用户(这里mymotif),成为postgers数据库用户并具备建库权限:
sudo -u postgres psql -c "CREATE USER mymotif WITH PASSWORD 'wxwpxh' CREATEDB ;"
建立mygis数据库:
mymotif@DESKTOP-PRH2A6F:~$ createdb mygis
安装postgis以及其它的一些扩展:
mymotif@DESKTOP-PRH2A6F:~$ sudo -i -u postgres psql mygis
psql (12.0 (Ubuntu 12.0-2.pgdg18.04+1), 服务器 11.5 (Ubuntu 11.5-3.pgdg18.04+1))
输入 "help" 来获取帮助信息.
mygis=# CREATE EXTENSION postgis;
CREATE EXTENSION
mygis=# CREATE EXTENSION postgis_topology;
CREATE EXTENSION
mygis=# CREATE EXTENSION postgis_sfcgal;
CREATE EXTENSION
mygis=# CREATE EXTENSION fuzzystrmatch;
CREATE EXTENSION
mygis=# CREATE EXTENSION address_standardizer;
CREATE EXTENSION
mygis=# CREATE EXTENSION address_standardizer_data_us;
CREATE EXTENSION
mygis=# CREATE EXTENSION postgis_tiger_geocoder;
CREATE EXTENSION
mygis=#
授权
mygis=# GRANT ALL PRIVILEGES ON DATABASE mygis TO mymotif;
GRANT
mygis=# GRANT ALL ON schema topology TO mymotif;
GRANT
mygis=# \q
以mymotif用户连接mygis,验证:
mymotif@DESKTOP-PRH2A6F:~$ psql mygis
psql (12.0 (Ubuntu 12.0-2.pgdg18.04+1), 服务器 11.5 (Ubuntu 11.5-3.pgdg18.04+1))
输入 "help" 来获取帮助信息.
rm(st_geometryfromtext('POINT(116.4680989087 39.9486998528)',4326),3857));7961543 39.9486461337)',4326),3857),st_transfor
st_distance
------------------
34.5933990100333
(1 行记录)
337,116.4680989087 39.9486998528,116.4682182670 39.9483181633,116.4679312706 39.9482801227))',4326),4527));43 39.94864613
st_area
------------------
1101.47601544425
mygis=> select area(circle'((0,0),1)');
area
------------------
3.14159265358979
mygis=> SELECT st_distance(st_transform(st_geometryfromtext('POINT(116.4677961543 39.9486461337)',4326),4527),st_transform(st_geometryfromtext('POINT(116.4680989087 39.9486998528)',4326),4527));
st_distance
------------------
26.5520226666734
mygis=> SELECT ST_SetSRID(ST_Point(-87.71,43.741),4326),ST_GeomFromText('POINT(-87.71 43.741)',4326);
st_setsrid | st_geomfromtext
----------------------------------------------------+----------------------------------------------------
0101000020E61000003D0AD7A370ED55C0022B8716D9DE4540 | 0101000020E61000003D0AD7A370ED55C0022B8716D9DE4540
(1 行记录)
mygis=> SELECT PostGIS_Full_Version();
出现:
postgis_full_version
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
POSTGIS="3.0.0 r17983" [EXTENSION] PGSQL="110" GEOS="3.7.1-CAPI-1.11.1 27a5e771" SFCGAL="1.3.5" PROJ="Rel. 4.9.3, 15 August 2016" LIBXML="2.9.4" LIBJSON="0.12.1" LIBPROTOBUF="1.2.1" WAGYU="0.4.3 (Internal)" TOPOLOGY
(1 行记录)
(END)
这样mygis已经具备PostGis功能,即可以使用PostGis的数据结构、函数、过程等等
三、测试(也是以mymotif用户连接mygis)
1、建立表格(用到了PostGis中point类型)。
mygis=>CREATE TABLE location_city(name varchar(80), location point);
2、插入
mygis=> INSERT INTO location_city VALUES ('San Francisco', '(-194.0, 53.0)'), ('New York', '(-184.0, 43.0)'), ('北京', '(-94.0, 133.0)'), ('Los Angeles', '(-297.0, 63.0)'), ('Chicago', '(-94.0, 283.0)');
3、select
mygis=> SELECT * FROM location_city;
name | location
---------------+-----------
San Francisco | (-194,53)
New York | (-184,43)
北京 | (-94,133)
Los Angeles | (-297,63)
Chicago | (-94,283)
(5 行记录)
来源:oschina
链接:https://my.oschina.net/u/2245781/blog/3153499