从 MySQL 数据库中提取 BLOB 多边形?
Extract BLOB polygon from MySQL database?
我正在开发一个使用 jsf 将多边形存储在数据库中的 Web 应用程序。我可以使用 MySQL 中的 POLYGON 数据类型将多边形存储在一行的字段中,然后多边形显示为BLOB 在数据库中。
但是我不确定如何使用 JDBC 中的行集访问每一行中的多边形。理想情况下,我想将此数据从 POLYGON BLOB 转换为 LatLng 数组 。
我知道它可以作为 WKT 使用 MYSQL
返回
(SELECT * ST_AsText(markers) FROM paddock)
但我不确定如何在 Java 中访问它。如果大家有什么想法,欢迎交流,谢谢。
我找到了问题的答案。我使用上面的 MySQL 语句 returns 一个字符串值并使用 java 正则表达式来提取坐标
Polygon polygon = new Polygon();
String value = rs.getString(1);
String valuereal = value.replaceAll("[^0-9 .,]+", "");
ArrayList<String> myList = new ArrayList<String>(Arrays.asList(valuereal.split(",")));
上面的正则表达式只允许MySQL中BLOB POLYGON类型的数字,点和逗号,然后使用拆分将其存储在字符串数组中。
我正在开发一个使用 jsf 将多边形存储在数据库中的 Web 应用程序。我可以使用 MySQL 中的 POLYGON 数据类型将多边形存储在一行的字段中,然后多边形显示为BLOB 在数据库中。
但是我不确定如何使用 JDBC 中的行集访问每一行中的多边形。理想情况下,我想将此数据从 POLYGON BLOB 转换为 LatLng 数组 。
我知道它可以作为 WKT 使用 MYSQL
返回(SELECT * ST_AsText(markers) FROM paddock)
但我不确定如何在 Java 中访问它。如果大家有什么想法,欢迎交流,谢谢。
我找到了问题的答案。我使用上面的 MySQL 语句 returns 一个字符串值并使用 java 正则表达式来提取坐标
Polygon polygon = new Polygon();
String value = rs.getString(1);
String valuereal = value.replaceAll("[^0-9 .,]+", "");
ArrayList<String> myList = new ArrayList<String>(Arrays.asList(valuereal.split(",")));
上面的正则表达式只允许MySQL中BLOB POLYGON类型的数字,点和逗号,然后使用拆分将其存储在字符串数组中。