在Laravel中使用laravel-mysql-spatial处理geometry空间类型数据
Publish: July 13, 2020 Category: 编程 No Comments
接之前一篇文章,我们使用mysql来处理geometry相关数据。用到了laravel-mysql-spatial来处理geometry数据。今天正好有时间整理了laravel-mysql-spatial完整的使用方法。机器翻译为主哈,使用通俗易懂的文字加以描述。原文在这里 https://github.com/grimzy/laravel-mysql-spatial
开始之前必须要了解的概念: SRID (空间引用识别号, 坐标系)
地球并不是平的,也不是正圆形,而是一个非标准的椭圆,在不同的经纬度位置,计算两点的距离没有一个完美的公式(即快速、有准确)。
所以坐标系应运而生,SRID是指数据的坐标系,例如: 在PostGIS中可以查到支持的SRID。查询与北京、中国有关的坐标系。
postgres=# select from spatial_ref_sys where srtext ~ 'beijing';
postgres=# select from spatial_ref_sys where srtext ~ 'china';数据可以在不同的坐标系之间转换,在进行GIS计算时,一定要在同一个坐标系中进行。
Laravel 包可轻松使用MySQL 空间数据类型和 MySQL 空间函数。
请检查 MySQL 版本的文档。MySQL 的空间数据扩展在 MySQL 5.5 中添加,但许多空间函数在 5.6 和 5.7 中已更改。
版本
- 1.x.x: MySQL 5.6 (也支持 MySQL 5.5, 但不是所有空间分析函数)
- 2.x.x: MySQL 5.7
- 3.x.x: MySQL 8.0,支持 SRID(当前分支)
此包还适用于 MariaDB。有关兼容性,请参阅 MySQL/MariaDB空间支持矩阵。