简体   繁体   中英

How to translate a PostGIS query to MySQL spatial query

I need to translate this PostGIS query:

SELECT boundary
        ST_Intersects(ST_SetSRID(ST_Buffer(ST_MakePoint(11.255492,43.779251),0.002), 4326), ST_GeomFromKML(boundary)) as intersect,
FROM 
    mytable 
WHERE 
        ST_Intersects(ST_SetSRID(ST_Buffer( ST_MakePoint(11.255492,43.779251),0.002), 4326), ST_GeomFromKML(boundary))
LIMIT 1

to MySQL with spatial data.

I tried this, but it is not working:

SELECT 
    boundary, 
    ST_Intersects(Buffer('POINT(11.7094335,44.2754631)', 2), GeomFromText(boundary)) as intersect
FROM 
    mytable 
WHERE 
    ST_Intersects(Buffer('POINT(11.7094335,44.2754631)', 2), GeomFromText(boundary))

The MySQL boundary column contains data in this format:

POLYGON((11.752094222227 44.322710250414,11.753712975677 44.322710250414,11.753712975677 44.321900873689,11.752094222227 44.321900873689,11.752094222227 44.322710250414))

What am I doing wrong?

I found the answer by trying and trying again... This solved the problem:

SELECT 
        boundary, 
        ST_Intersects(GEOMFROMTEXT(boundary), ST_Buffer(POINT(11.752094222227, 44.322710250414), 2)) as intersect
FROM 
        mytable 
WHERE  
        ST_Intersects(GEOMFROMTEXT(boundary), ST_Buffer(POINT(11.752094222227, 44.322710250414), 2))

I hope this could be useful for future users.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM