整理一下postgresql的擴充功能postgis和pgrouting的使用

來源:互聯網
上載者:User

標籤:integer   2.0   整理   har   blog   set   之間   sha   目錄   

postgis的安裝使用postgresql的bin目錄下的stackbuiler

postgis:

1.建表語句:

create table NODES (ID SERIAL not null,geometry geography(POINTZ, 4326) null); 欄位geometry表示的是三維空間的點,二維的點將POINTZ改為POINT即可create table EDGES (ID SERIAL not null,geometry geography(LINESTRINGZ, 4326) null);  欄位geometry表示的是三維空間的線,同理,二維的將LINESTRINGZ改為LINESTRING即可

2.插入語句:

insert into nodes(geometry) values(ST_GeographyFromText(‘SRID=4326; POINT(-110 30 40)‘));insert into edges(geometry) values(ST_GeographyFromText(‘SRID=4326; LINESTRING(-110 30 40,11 22 33)‘));

3.修改欄位類型:

alter table public.nodes alter column geometry set data type geography(PointZ,4326);

4.查詢語句:

select ST_AsText(geometry) from nodes;select ST_AsText(geometry) from edges;

有關pgrouting:

1.Windows下的安裝:  

  在官網下載和本機PostgreSQL對應版本的PGRouting,我這裡的版本的PostgreSQL 9.2,這個版本可以使用的PGRouting對應版本是2.0。

  下載PGRouing之後,可以看到裡面有3個檔案夾(bin、lib、share)和5個檔案,以後可能會有變動,將這三個檔案夾拷貝到PostgreSQL的安裝目錄下,和同名檔案夾合并。

2.讓資料庫支援pgrouting:

  CREATE EXTENSION pgrouting;

3.pgrouting需要在edges中加入一些基本的欄位

  columns ‘source‘, ‘target‘ must be of type int4, ‘cost‘ must be of type float8(也可以使用其他的欄位名,使用內建函數查詢的時候注意點就好了)

4.查詢兩個node之間的最短路徑:

  

select * from pgr_dijkstra(‘select id as id,source::integer,target::integer,length::double precision as cost from edges‘,30,60,false,false);

 

整理一下postgresql的擴充功能postgis和pgrouting的使用

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.