zoukankan      html  css  js  c++  java
  • PostgreSQL 与 PostGIS

    PostgreSQL 是一种对象-关系型数据库管理系统(ORDBMS),也是目前功能最强大、特性最丰富和最复杂的自由软件数据库系统。它起源于伯克利(BSD)的数据库研究计划,目前是最重要的开源数据库产品开发项目之一, 有着非常广泛的用户。
    PostGIS在对象关系型数据库PostgreSQL上增加了存储管理空间数据的能力,相当于Oracle的spatial部分。PostGIS最大的特点是符合并且实现了OpenGIS的一些规范,是最著名的开源GIS数据库。
    可以说PostGIS是对象-关系型数据库系统PostgreSQL的一个扩展,具有管理空间数据库的能力。

    postgis安装:

    (1)将postgis-bundle-pg96-2.3.1x64.zip解压

    解压postgis-bundle-pg96-2.3.1x64.zip到没有中文或者空格的目录。

    (2)修改makepostgisdb_using_extensions.bat文件:set PGINSTALL=C:Program FilesPostgreSQL9.6(PostgreSQL的安装路径)

     修改完成后执行脚本文件(bat),开始安装 

    OK,到这里为止。PostgreSQL数据库和PostGIS扩展就已经安装完成了。然而我们还是发现了一件事,既然我们的插件已经安装成功了,为何数据库还是不支持geometry 这样的类型。不要着急,并不是我们安装失败了,而且我们没有给这个数据库开启PostGIS扩展。执行如下命名就可以搞定了:
    -- Enable PostGIS (includes raster)
    CREATE EXTENSION postgis;
    -- Enable Topology
    CREATE EXTENSION postgis_topology;
    -- Enable PostGIS Advanced 3D 
    -- and other geoprocessing algorithms
    -- sfcgal not available with all distributions
    CREATE EXTENSION postgis_sfcgal;
    -- fuzzy matching needed for Tiger
    CREATE EXTENSION fuzzystrmatch;
    -- rule based standardizer
    CREATE EXTENSION address_standardizer;
    -- example rule data set
    CREATE EXTENSION address_standardizer_data_us;
    -- Enable US Tiger Geocoder
    CREATE EXTENSION postgis_tiger_geocoder;
     
    上面的就是PostGIS的扩展列表,当然我们也根据自己的需要只加载部分的扩展。
     
    我们现在试着向创建一张内含地理信息几何类型列的表吧:
    create table t_demo_info (
       id                   int4                 not null,
       name           int2                 not null default 0,
       type            int2                 not null default 0,
       begin_time           timestamp without time zone null,
       end_time             timestamp without time zone null,
       lng                  numeric              null,
       lat                  numeric              null,
       lnglat               geometry             null,
       constraint pk_t_demo_info primary key (id)
    );
     
    创建成功。
     
    4、查看版本
    查询PostGIS版本:select postgis_full_version();
    查询PostgreSQL版本:select version();
    查看PostgreSQL客户端版本:psql –version
    查看PostgreSQL版本信息:show server_version;
    查看PostgreSQL版本信息(包括小版本号):show server_version_num;
    查看PostgreSQL版本信息(包括小版本号):select current_setting(‘server_version_num’);
    在这里需要注意的是,select current_setting(‘server_version_num’);返回的是text,如果需要将它转换为Integer,则需要这样写:SELECT current_setting(‘server_version_num’)::integer;
  • 相关阅读:
    寒假学习第六天
    寒假学习第五天
    寒假学习第四天
    spark生态体系了解学习(六)
    spark生态体系了解学习(五)
    spark生态体系了解学习(四)
    spark生态体系了解学习(三)
    spark生态体系了解学习(二)
    spark生态体系了解学习(一)
    共享
  • 原文地址:https://www.cnblogs.com/zhaoyanhaoBlog/p/10611425.html
Copyright © 2011-2022 走看看