Laravel + Mysql:在边界框内检索POI

时间:2017-03-11 20:36:37

标签: php mysql laravel geocoding

我有一个带有POI的数据库表,我想连接我的Geo表(包含城市,国家)中的记录。

  • 在POI表中,我有一个Lat& Lon field。
  • 在Geo表中,我有4个坐标,分别为West / East和North / South

enter image description here

我正在使用Laravel 5 / Eloquent和Mysql。坐标存储为十进制(11,8)。如果需要,我可以添加多个列。

如何检查POI是否位于这4个坐标内?

1 个答案:

答案 0 :(得分:0)

Mysql支持spatial data typesfunctions,旨在简化此类计算。

将POI定义为POINT,将矩形定义为GEOMETRY。使用ST_Contains()函数测试该点是否在矩形内:

select * from yourtable
where st_contains(rectangle_field, point_field)

据我所知,Laravel并不直接支持这些日期类型和函数,所以你必须使用原始的sql。