Here's my code:
SET @poly =
'Polygon((-98.07697478272888 30.123832577126326,
-98.07697478272888 30.535734310413392,
-97.48302581787107 30.535734310413392,
-97.48302581787107 30.123832577126326))';
SELECT name
FROM county_shapes
WHERE MBRContains(ST_GeomFromText(@poly), SHAPE);
Whenever I run that I get a "MySQL: Invalid GIS data provided to function st_geometryfromtext" error.
This returns the same error:
SELECT name
FROM county_shapes
WHERE MBRContains(ST_GeomFromText('Polygon((-98.07697478272888 30.123832577126326,
-98.07697478272888 30.535734310413392,
-97.48302581787107 30.535734310413392,
-97.48302581787107 30.123832577126326))'), SHAPE);
Any ideas?
You need to specify the first and last point as same.
Try this.
SET @poly =
'Polygon((-98.07697478272888 30.123832577126326,
-98.07697478272888 30.535734310413392,
-97.48302581787107 30.535734310413392,
-97.48302581787107 30.123832577126326,
-98.07697478272888 30.123832577126326,))';
SELECT name
FROM county_shapes
WHERE MBRContains(ST_GeomFromText(@poly), SHAPE);
AND
SELECT name
FROM county_shapes
WHERE MBRContains(ST_GeomFromText('Polygon((
-98.07697478272888 30.123832577126326,
-98.07697478272888 30.535734310413392,
-97.48302581787107 30.535734310413392,
-97.48302581787107 30.123832577126326,
-98.07697478272888 30.123832577126326))'), SHAPE);
来源:https://stackoverflow.com/questions/34524031/mysql-invalid-gis-data-provided-to-function-st-geometryfromtext