日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Introduction to PostGIS 之线性参考、地理编码

發布時間:2025/7/25 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Introduction to PostGIS 之线性参考、地理编码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
今天學習了postGIS中的兩個很有用的方法:
  • ST_Line_Interpolate_Point

????????geometry ST_Line_Interpolate_Point(geometry a_linestring, float a_fraction):返回線上內插的一個點

?

返回線上20%處得一個點

  • ST_Line_Locate_Point

??????? float ST_Line_Locate_Point(geometry a_linestring, geometry a_point):返回a_point離a_linestring在上最近的點位置(這個位置表示為一個0到1浮點數)。點具體的位置我們可以使用前面介紹的ST_Line_Interpolate_Point取出。

?

?

返回給定點到線的最近點?

?????? 這兩個方法對于地理編碼(Geocoding)是很有用的,下面我就用上一篇導入的數據來做下試驗:

?????? 首先我這里用到了QGIS這個軟件使查詢結果可視化(另外OpenJUMP也可以查詢可視化)

????? 1.首先添加圖層

????? 2.添加完圖層之后,就開始執行我們的查詢了,這里用到了QGIS中的一個插件工具RT Sql Layer

?這個插件工具需要另外下載安裝:1)插件—>Fetch Python Plugins..

???????????????????????????????????????

????????????????????????????????????? ????2)點擊Fetch Python Plugins后找到RT Sql Layer? 安裝

????? 3.安裝完插件后? 點擊RT Sql Layer 連接到數據庫island,然后點擊Query Builder,在彈出的窗體中輸入如下查詢語句:

SELECT ST_Line_Interpolate_Point(
ln.the_geom,
ST_Line_Locate_Point(
ln.the_geom,
pt.the_geom
)
)
FROM road
as ln, features as pt;

?

????? ?4.得到如下結果:

從圖上就會看到 路上多了很多點,但是這個結果并不是我所要的,因為這樣的結果是把路兩邊的很遠的features都拉過來了。所以要做下限制,只返回離道路一定距離的點,執行以下SQL:

SELECT DISTINCT ON (pt.gid)

pt.name
AS pt_name,
pt.gid
AS pt_id,
ST_Line_Interpolate_Point(
ln.the_geom,
ST_Line_Locate_Point(ln.the_geom, pt.the_geom)
)
As snapped_point
FROM
features
AS pt INNER JOIN
road
AS ln
ON
ST_DWithin(pt.the_geom, ln.the_geom,
0.004)
ORDER BY
pt.gid;

這樣的結果就比較理想了,這里用到了ST_DWithin方法,這個方法也是很常用的,執行一些地物查找就會用到它。

注:如果你所用的POSTGIS是1.5+的話,ST_ClosestPoint將是一個更好的方法:

geometry ST_ClosestPoint(geometry g1, geometry g2),這個就簡潔了許多,g1不局限于線,g2不局限于點。

你可以用ST_ClosestPoint來替代ST_Line_Interpolate(ST_Line_Locate_Point ..? 效果是一樣的。

轉載于:https://www.cnblogs.com/shitao/archive/2011/07/05/2098206.html

總結

以上是生活随笔為你收集整理的Introduction to PostGIS 之线性参考、地理编码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。