获得点(纬度,长度)和特定区域

时间:2017-08-04 08:08:59

标签: postgresql geometry gis postgis latitude-longitude

我最近和 Postgis 一起使用了 Postgres ,我似乎无法弄清楚它的正确语法是什么。

问题:我需要一个特定区域内的点ID列表。 lat lon 是两列bigint类型,cluj.the_geompolygon

  

link_geometry:link_id | lat | lon

     

cluj:the_geom

SELECT link_id 
FROM rou_country_20656215.link_geometry r, cluj 
WHERE ST_Intersects(ST_PointFromText((CAST(r.lon AS float)/100000, CAST(r.lat AS float)/100000), 4326), cluj.the_geom)

我收到以下错误消息:

ERROR

我提到我无权修改表格。

1 个答案:

答案 0 :(得分:0)

围绕两个CAST表达式的括号以及它们之间的逗号会导致该表达式被解释为记录。这需要是一个字符串。假设您的纬度和经度值是文本(隐含在您的代码中),那么这应该产生您需要的表达式:

SELECT link_id 
FROM rou_country_20656215.link_geometry r, cluj 
WHERE 
    ST_Intersects(
        ST_PointFromText(cast(cast(r.lon AS float)/100000 as text) 
            || cast(cast(r.lat AS float)/100000 as text)), 4326)), 
            cluj.the_geom);