当前位置:首页 > 基于udig(开源GIS软件)二次开发(4)
{ ShapefileDataStore myData = new
ShapefileDataStore(shpFile .toURI().toURL());
myData.setStringCharset(Charset.forName(\ SimpleFeatureType ft =
DataUtilities.createType(layerName,
layerFeatures); myData.createSchema( ft); //手动事物 发现有时候给自动回出些问题
Transaction tran = new DefaultTransaction(); fw = myData.getFeatureWriter(layerName, tran); GeometryFactory gf = new
GeometryFactory(); for(DemoPoint point : data)
{ Geometry geo = gf.createPoint(new Coordinate(point.getLon(), point.getLat()));
SimpleFeature sf = (SimpleFeature) fw.next(); sf.setDefaultGeometry(geo); //添加属性
sf.setAttribute(\ fw.write();
} fw.close(); tran.commit(); tran.close(); } catch (IOException e) { // TODO Auto-generated catch block
e.printStackTrace(); } catch (SchemaException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally
{ try { if(fw != null) fw.close(); } catch (IOException
e) { // TODO Auto-generated catch block
e.printStackTrace(); } } return shpFile.getAbsolutePath(); } d、 d 创建一个新的地图,加载我们刚才生成的shp图层文件 /** * 创建一个新地图并打开shp图层文件 * @param path 文件路径 */ protected void createMapAndOpenShp(String path) { IRepository local =
CatalogPlugin.getDefault().getLocal(); IService service = null;
List<IGeoResource> resources = null; try { service =
local.acquire( URLUtils.fileToURL(new
File(path)), new
NullProgressMonitor()); resources = (List<IGeoResource>) service.resources(new NullProgressMonitor()); //发布 ApplicationGIS.createAndOpenMap(resources); } catch (IOException e) { // TODO Auto-generated catch block
e.printStackTrace(); } } 5、注意事项插件中引用要因为udig的applicationgis类,并且需要生成图层,所以在当前插件里我们要引入5个插件(本次的开发环境udig为1.2的版本): 创建product文件后,最好引入udig的所有包(新手必须). 6、1、 好了 打开看看效果
共分享92篇相关文档