我有一個大的地理包。我想從中讀取與另一個地理包相交的功能。我正在嘗試這個,但我顯然做錯了什么:
box <- st_read("file1.gpkg", quiet=T) %>% st_bbox()
layer_name <- st_layers("file2.gpkg")$name
my_query <- glue("SELECT * FROM {layer_name} WHERE st_intersects(geom, st_polygon('{box$xmin} {box$ymin}, {box$xmax} {box$ymin}, {box$xmax} {box$ymax}, {box$xmin} {box$ymax}, {box$xmin} {box$ymin}'))")
st_read("file2.gpkg", query = my_query)
如果我列印它看起來像這樣的查詢,它的格式是否正確?
SELECT * FROM li_final_town_areas WHERE st_intersects(geom, st_polygon('9.25 47, 9.5 47, 9.5 47.25, 9.25 47.25, 9.25 47'))
我得到的錯誤是:
Error in CPL_read_ogr(dsn, layer, query, as.character(options), quiet, :
Query execution failed, cannot open layer.
uj5u.com熱心網友回復:
這種形式的查詢,使用st_polygonfromtext多邊形作為 WKT,對我有用:
q2 = "SELECT * FROM gadm36_BTN_2 WHERE st_intersects(geom, st_polygonfromtext('POLYGON(( 90 27, 91 27, 91 28, 90 28 , 90 27 ))' ))"
BTN2 = st_read(gpkg, query=q2)
這是在不丹 0 級內選定的不丹 2 級區域,并添加了選擇多邊形緯度和經度。似乎作業!

轉載請註明出處,本文鏈接:https://www.uj5u.com/net/525507.html
標籤:r格达尔科幻地理
