我正在开发一个使用jsf将多边形存储在数据库中的Web应用程序。我可以使用 MySQL 中的 POLYGON 数据类型将多边形存储在行的字段中,然后多边形在 BLOB 中显示为数据库。
但是我不确定如何使用JDBC中的行集访问每行中的多边形。理想情况下,我想将此数据从POLYGON BLOB转换为 LatLng数组。
我知道它可以使用MYSQL作为 WKT 返回
(SELECT * ST_AsText(markers) FROM paddock)
但我不确定如何在Java中访问它。如果有人有任何想法,请随时分享,谢谢。
答案 0 :(得分:1)
我找到了问题的答案。我使用上面的MySQL语句返回一个字符串值并使用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类型的数字,点和逗号,然后使用分割将其存储在字符串数组中。