/** * Copy data from Shape File into a new table in specified connection. * * @param connection Active connection * @param tableReference [[catalog.]schema.]table reference * @param fileName File path of the SHP file or URI * @param forceEncoding Use this encoding instead of DBF file header encoding property. */ public static void readShape( Connection connection, String fileName, String tableReference, String forceEncoding) throws IOException, SQLException { File file = URIUtility.fileFromString(fileName); if (!file.exists()) { throw new FileNotFoundException("The following file does not exists:\n" + fileName); } SHPDriverFunction shpDriverFunction = new SHPDriverFunction(); shpDriverFunction.importFile( connection, TableLocation.parse(tableReference, true).toString(true), file, new EmptyProgressVisitor(), forceEncoding); }
private static LayerType createJAXBFromLayer(ILayer layer, MapContext mapContext) { ObjectFactory ows_context_factory = new ObjectFactory(); LayerType layerType = ows_context_factory.createLayerType(); Description description = layer.getDescription(); description.initJAXBType(layerType); layerType.setHidden(!layer.isVisible()); ILayer[] childrens = layer.getChildren(); for (ILayer child : childrens) { if (child.isSerializable()) { layerType.getLayer().add(createJAXBFromLayer(child, mapContext)); } } // If not a Layer Collection if (!(layer instanceof LayerCollection) && layer.getStyles() != null) { StyleListType slt = ows_context_factory.createStyleListType(); layerType.setStyleList(slt); for (Style style : layer.getStyles()) { StyleType st = ows_context_factory.createStyleType(); slt.getStyle().add(st); SLDType sltType = ows_context_factory.createSLDType(); st.setSLD(sltType); sltType.setAbstractStyle(style.getJAXBElement()); } } // Serialisation of dataSource as a DataUrl string // Create jaxb instances URLType dataURL = ows_context_factory.createURLType(); if (!(layer instanceof LayerCollection)) { OnlineResourceType resource = ows_context_factory.createOnlineResourceType(); dataURL.setOnlineResource(resource); String resourceSerialisation = ""; URI srcUri = layer.getDataUri(); if (srcUri != null) { // If file, use MapContext relative path if (srcUri.getScheme().equalsIgnoreCase("file") && mapContext.getLocation() != null) { srcUri = URIUtility.relativize(mapContext.getLocation(), srcUri); } resourceSerialisation = srcUri.toString(); } resource.setHref(resourceSerialisation); if (resource.isSetHref()) { layerType.setDataURL(dataURL); } } return layerType; }
/** * Copy data from Shape File into a new table in specified connection. The newly created table is * given the same name as the filename without the ".shp" extension. If such a table already * exists, an exception is thrown. * * @param connection Active connection * @param fileName File path of the SHP file or URI */ public static void readShape(Connection connection, String fileName) throws IOException, SQLException { final String name = URIUtility.fileFromString(fileName).getName(); readShape(connection, fileName, name.substring(0, name.lastIndexOf(".")).toUpperCase()); }