首页 > 解决方案 > 如何在从谷歌地图获取的 php MySQL 中存储多边形的坐标

问题描述

<?php $servername = "localhost";
$username = "root";
$password = "";
$db = "users";
$mysqli = new mysqli($servername, $username, $password, $db);
//    SET @g = 'POLYGON($_POST[coords])';
$coords = $_POST['coords'];
//$stmt = "INSERT INTO polygon_data (polygon_values) VALUES (PolygonFromText('POLYGON((30 10, 40 40, 20 40, 10 20, 30 10))'))";
$stmt = "INSERT INTO polygon_data (polygon_values) VALUES (PolygonFromText('$coords'))";
if ($mysqli->query($stmt) === TRUE) {
    echo "feedback sucessfully submitted";
} else {
    echo "Error: " . $stmt  . "<br>" . $mysqli->error;
}
$mysqli->close();
?>

当我在注释行中插入静态值时,成功存储在 MySql 中的数据以及我pollygon_values在 mysql 中的属性是 Polygon DataType。

标签: phpmysqlispatial

解决方案


代码很好,但我们需要注意,第一件事是您在 MySQL 上选择的数据类型是 Geometry 或 Polygon,第二件事您应该检查从 Google 获得的 Polygon 坐标值地图是准确的意味着它们的纬度和经度值是正确的并且也存在,这是我的问题,我没有得到谷歌地图上绘制的多边形的正确坐标。


推荐阅读