我有一个 PostgreSQL 数据库,它在表的一列中包含 KML 数据。我用 postGIS 命令查询它,查询如下:
SELECT ST_geomFromKML(geometry)
ST_Intersects(ST_SetSRID(ST_Buffer(ST_MakePoint(11.255492,43.779251),0.002), 4326), ST_GeomFromKML(geometry)) as intersect,
ST_SetSRID(ST_Buffer(ST_MakePoint(11.255492,43.779251),0.002), 4326)
FROM mydb
WHERE
ST_Intersects(ST_SetSRID(ST_Buffer( ST_MakePoint(11.255492,43.779251),0.002), 4326), ST_GeomFromKML(geometry))
LIMIT 1
在geometry
列中,数据存储为 KML,如下所示:
<Polygon><outerBoundaryIs><LinearRing><coordinates>8.198905,40.667052 8.201007,40.667052 8.201007,40.665738 8.20127,40.665738 8.20127,40.664688 8.201532,40.664688 8.201532,40.663111 8.20127,40.663111 8.199956,40.663111 8.199956,40.663374 8.199693,40.663374 8.199693,40.664425 8.197591,40.664425 8.197591,40.665476 8.198905,40.665476 8.199168,40.665476 8.199168,40.666789 8.198905,40.666789 8.198905,40.667052</coordinates></LinearRing></outerBoundaryIs></Polygon>
所以我ST_geomFromKML
用来将数据转换为几何图形,然后搜索围绕该点创建的圆的交点。
我想将数据库迁移到 MySQL,并且想使用它的空间功能,但是我没有找到一种方法来使用/转换 MySQL 中的 KML 数据,就像我在 PostGIS 中所做的那样。
有没有办法做到这一点?