加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 在边界框内获取点数

发布时间:2020-12-13 21:40:30 所属栏目:PHP教程 来源:网络整理
导读:我正在尝试从我的postgis db中选择位于某个边界框内的位置.我试图用这个查询来完成这个: //latlong - latitude,longitude of a placeSELECT * FROM places WHERE St_Contains(St_GeomFromText('Polygon((:top_left_long :top_left_lat,:bottom_right_long :
我正在尝试从我的postgis db中选择位于某个边界框内的位置.我试图用这个查询来完成这个:

//latlong - latitude,longitude of a place

SELECT * FROM places WHERE St_Contains(St_GeomFromText('Polygon((:top_left_long :top_left_lat,:bottom_right_long :bottom_right_lat))'),latlong);

首先 – 我收到以下错误:

Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: :top_left_lat

这是什么意思?第二个问题 – 我是否按顺序提供了这些参数?我的意思是 – 先经度,然后是纬度?

解决方法

这是我在旧项目中使用的查询:

SELECT param1,param2,... 
FROM messages 
WHERE ST_Contains( 
    ST_SetSRID(
        ST_MakeBox2D(
            ST_Point(0,50),ST_Point(50,0)
        ),4326
    ),the_geom
)

the_geom是我的几何列注意:MakeBox2D采用左上角和右下角

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读