postgreSQL 修改字段类型为geometry

代码中用sparksql将数据存储了,geomtry的值已经转换为了16进制字符串

geometry处理为WKB字符的代码:

if (fldName.equalsIgnoreCase(Const.pg_field_geomtry)) {
    WKBWriter write = new WKBWriter();
    byte[] geoByte = write.write(feature.getGeometry());
    String string = WKBWriter.toHex(geoByte);
    objectList.set(i, string);
    break;
}

存储相关的代码:Dataset df 作为传入参数。

df.select("*").write().mode(SaveMode.Overwrite).jdbc(dcInfo.url, tableName, dcInfo.properties);

这样存储的表geometry是文本型,在QGIS中看不到。需要改字段类型,使用以下语句:

navi cat工具中,使用语句:

Alter TABLE table_name alter column field_name  TYPE geometry USING field_name ::geometry

代码中,创建带geometry字段的表,或者修改字段类型为geometry,需要用public.geometry,否则会报异常。

postgreSQL 修改字段类型为geometry_第1张图片

你可能感兴趣的:(gis,opengis)