如何在mysql中实现地理空间参考系统
我想在一个经纬度为10米的点内创建一个缓冲区。所以我试过了如何在mysql中实现地理空间参考系统,mysql,geometry,buffer,gis,geojson,Mysql,Geometry,Buffer,Gis,Geojson,我想在一个经纬度为10米的点内创建一个缓冲区。所以我试过了 SET @json = ST_GeomFromGeoJSON('{"type": "Point", "coordinates": [139.445699080589, 35.507941895691]}'); SELECT ST_AsText(ST_Buffer(@json,10)); 但我有一个错误: [22001][3618] Data truncation: st_buffer(POINT, ...) has not been
SET @json = ST_GeomFromGeoJSON('{"type": "Point", "coordinates": [139.445699080589, 35.507941895691]}');
SELECT ST_AsText(ST_Buffer(@json,10));
但我有一个错误:
[22001][3618] Data truncation: st_buffer(POINT, ...) has not been implemented for geographic spatial reference systems.
在这种情况下如何实现地理空间???这不是作为用户可以实现的。这个错误告诉您MySQL本身没有为地理SRS实现ST_缓冲区功能 问题是有两种类型的SRS-投影(平面地图,也称为笛卡尔)和地理(在椭球体上)。在其他系统中,它们通常由单独的类型表示,即几何图形(平面)和地理图形(椭球体)。在MySQL中,它是一种具有投影或椭球SRS的类型 椭球体上的一些算法更复杂,所以MySQL spatial中的一些功能还没有实现 你的选择是 1) 如果可能,切换到适当的投射SRS 2) 切换到另一个平台,例如支持ST_Buffer的地理类型的PostgreSQL+PostGIS 3) 避免使用ST_Buffer(当应该使用ST_DWithin时,它经常被误用来检查缓冲交叉点,尽管我不知道您的具体用例)