欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

postgresql 計(jì)算距離的實(shí)例(單位直接生成米)

 更新時(shí)間:2021年01月26日 10:18:26   作者:duanmuxiao  
這篇文章主要介紹了postgresql 計(jì)算距離的實(shí)例(單位直接生成米),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

之前用的是ST_Distance 函數(shù),但是貌似需要進(jìn)行一次單位的轉(zhuǎn)換,而且網(wǎng)上有說那種轉(zhuǎn)換不是特別準(zhǔn)確,現(xiàn)在暫時(shí)將該算法記錄在此:

select st_distance(ST_GeomFromText('POINT(120.451737 36.520975)',900913),ST_GeomFromText('POINT(120.455636 36.520885)',900913))*60*1.852;

這里的計(jì)算方式倒是可以換坐標(biāo)系,但是,測(cè)試了兩個(gè)坐標(biāo)系都沒有起作用。而且該種方式轉(zhuǎn)換過單位后跟arcgis計(jì)算出的結(jié)果相差甚遠(yuǎn),最終決定使用下面的方式;

今天發(fā)現(xiàn)了另外一種方式來計(jì)算距離,這種方式可以直接生成單位為米的結(jié)果:

select ST_Length(Geography(ST_GeomFromText('LINESTRING(120.451737 36.520975,120.455636 36.520885)')));

這種方式的不便在于:

1.要把點(diǎn)轉(zhuǎn)換成線或者其他的圖形而不是點(diǎn);

2.geography函數(shù)現(xiàn)在只支持4326坐標(biāo)系,不能換成其他的。

追加:

上面的方式是計(jì)算點(diǎn)到點(diǎn)的距離,但是如果要想知道某一個(gè)點(diǎn)到某條線的距離是不是在某個(gè)范圍內(nèi),又該如何計(jì)算呢;如下:

select ST_Contains(St_Astext(ST_Buffer(geography(geomfromtext('MULTILINESTRING((線的坐標(biāo)點(diǎn)))')),25.00{以米為單位的距離})),st_astext(geography(geomfromtext('POINT(121.37805 37.54142)')))) as result

使用類似上面的方式,就可以輸入以米為單位的距離判斷某個(gè)點(diǎn)是否在某個(gè)距離范圍內(nèi);

補(bǔ)充:postgresql 搜索指定距離內(nèi)的記錄 按近到遠(yuǎn)排序 并返回距離

實(shí)例如下:

CREATE TABLE mylocation ( 
 id SERIAL PRIMARY KEY,
 geom GEOMETRY(Point, 4326),
 name VARCHAR(128),
 x double precision,
 y double precision
); 
 
INSERT INTO mylocation (geom,name,x,y) VALUES (
 ST_GeomFromText('POINT(0.0001 0)', 4326),'zhangsan',0.0001,0
);
INSERT INTO mylocation (geom,name,x,y) VALUES (
 ST_GeomFromText('POINT(0.001 0)', 4326),'zhangsan',0.001,0
);
INSERT INTO mylocation (geom,name,x,y) VALUES (
 ST_GeomFromText('POINT(0.001 0)', 4326),'zhangsan',0.001,0
);
INSERT INTO mylocation (geom,name,x,y) VALUES (
 ST_GeomFromText('POINT(0.1 0)', 4326),'zhangsan',0.1,0
); 
 
SELECT id, name,geom,x,y,  ST_DistanceSphere(
           geom,
           ST_GeometryFromText('POINT(0 0)')) distance
FROM mylocation
WHERE ST_DWithin(
 geom, 
 ST_GeomFromText('POINT(0 0)', 4326),
 0.001
)ORDER BY distance asc;;

查詢語句 下面距離單位為m

SELECT id, name,geom,x,y,  ST_DistanceSphere(
           geom,
           ST_GeometryFromText('POINT(0 0)')) distance
FROM mylocation
WHERE ST_DWithin(
 geom::geography, 
 ST_GeomFromText('POINT(0 0)', 4326)::geography,
 1000
) ORDER BY distance asc;

搜索結(jié)果

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • PostgreSQL用戶、數(shù)據(jù)庫及表的管理、操作與授權(quán)方式

    PostgreSQL用戶、數(shù)據(jù)庫及表的管理、操作與授權(quán)方式

    這篇文章主要介紹了PostgreSQL用戶、數(shù)據(jù)庫及表的管理、操作與授權(quán)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • PostgreSQL解析URL的方法

    PostgreSQL解析URL的方法

    盡管PostgreSQL中支持大量的數(shù)據(jù)類型,但是對(duì)于URL似乎并沒有一個(gè)相應(yīng)的類型能夠去存儲(chǔ)。那么對(duì)于URL的數(shù)據(jù)我們?cè)跀?shù)據(jù)庫中要怎么去處理呢?今天通過本文給大家介紹下,需要的朋友參考下吧
    2021-07-07
  • postgresql 性能參數(shù)配置方式

    postgresql 性能參數(shù)配置方式

    這篇文章主要介紹了postgresql 性能參數(shù)配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • 詳解PostgreSQL 語法中關(guān)鍵字的添加

    詳解PostgreSQL 語法中關(guān)鍵字的添加

    這篇文章主要介紹了詳解PostgreSQL 語法中關(guān)鍵字的添加的相關(guān)資料,這里說明下在parser語法解析模塊添加關(guān)鍵字,需要的朋友可以參考下
    2017-08-08
  • postgresql數(shù)據(jù)庫執(zhí)行計(jì)劃圖文詳解

    postgresql數(shù)據(jù)庫執(zhí)行計(jì)劃圖文詳解

    了解PostgreSQL執(zhí)行計(jì)劃對(duì)于程序員來說是一項(xiàng)關(guān)鍵技能,執(zhí)行計(jì)劃是我們優(yōu)化查詢,驗(yàn)證我們的優(yōu)化查詢是否確實(shí)按照我們期望的方式運(yùn)行的重要方式,這篇文章主要給大家介紹了關(guān)于postgresql數(shù)據(jù)庫執(zhí)行計(jì)劃的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • Postgresql 如何選擇正確的關(guān)閉模式

    Postgresql 如何選擇正確的關(guān)閉模式

    這篇文章主要介紹了Postgresl 如何選擇正確的關(guān)閉模式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • Postgresql 默認(rèn)用戶名與密碼的操作

    Postgresql 默認(rèn)用戶名與密碼的操作

    這篇文章主要介紹了Postgresql 默認(rèn)用戶名與密碼的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • 解決PostgreSQL日志信息占用磁盤過大的問題

    解決PostgreSQL日志信息占用磁盤過大的問題

    解決PostgreSQL日志信息占用磁盤過大的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • PostgreSQL 實(shí)現(xiàn)sql放入文件批量執(zhí)行

    PostgreSQL 實(shí)現(xiàn)sql放入文件批量執(zhí)行

    這篇文章主要介紹了PostgreSQL 實(shí)現(xiàn)sql放入文件批量執(zhí)行,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • Postgresql創(chuàng)建新增、刪除與修改觸發(fā)器的方法

    Postgresql創(chuàng)建新增、刪除與修改觸發(fā)器的方法

    這篇文章主要介紹了Postgresql創(chuàng)建新增、刪除與修改觸發(fā)器的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12

最新評(píng)論