当前位置: 首页>>代码示例>>Java>>正文


Java DataSource类代码示例

本文整理汇总了Java中org.gdal.ogr.DataSource的典型用法代码示例。如果您正苦于以下问题:Java DataSource类的具体用法?Java DataSource怎么用?Java DataSource使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


DataSource类属于org.gdal.ogr包,在下文中一共展示了DataSource类的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: createDataSource

import org.gdal.ogr.DataSource; //导入依赖的package包/类
public static DataSource createDataSource(final List<Node>       nodes,
                                          final List<Edge>       edges,
                                          final SpatialReference sourceSpatialReference)
{
   final DataSource dataSource = ogr.GetDriverByName("Memory")
                                     .CreateDataSource("vector data");

    try
    {
        final Layer edgeLayer = createEdgeLayer(dataSource,
                                                nodes,
                                                edges,
                                                sourceSpatialReference);
    }
    catch(final Throwable th)
    {
        dataSource.delete();
        throw th;
    }

    return dataSource;
}
 
开发者ID:GitHubRGI,项目名称:swagd,代码行数:23,代码来源:Utility.java

示例2: calculateAndWriteTerrainFactors

import org.gdal.ogr.DataSource; //导入依赖的package包/类
public static void calculateAndWriteTerrainFactors(final File                      terrainFactors,
                                                   final File                      output,
                                                   final List<Node>                nodes,
                                                   final List<Edge>                edges,
                                                   final CoordinateReferenceSystem coordinateReferenceSystem)
{
    final SpatialReference sourceSpatialReference = GdalUtility.createSpatialReference(coordinateReferenceSystem);

    final DataSource dataSource = Utility.createDataSource(nodes,
                                                           edges,
                                                           sourceSpatialReference);
    try
    {

    }
    finally
    {
        dataSource.delete();    // Also destroys edgeLayer
    }
}
 
开发者ID:GitHubRGI,项目名称:swagd,代码行数:21,代码来源:RoutingNetworkTerrainFactors.java

示例3: reprojectShapeFile

import org.gdal.ogr.DataSource; //导入依赖的package包/类
public static void reprojectShapeFile(String pathFile, String outPathFile) {
	ogr.RegisterAll();

	DataSource vector = ogr.Open(pathFile);

	SpatialReference src = new SpatialReference(WKTString.WKT3995);
	SpatialReference dst = new SpatialReference(WKTString.WKTWGS84);
	CoordinateTransformation tr = new CoordinateTransformation(src, dst);

	Driver drv = ogr.GetDriverByName("ESRI Shapefile");
	File file = new File(outPathFile);
	if (file.exists())
		drv.DeleteDataSource(outPathFile);

	DataSource outputDs = drv.CreateDataSource(outPathFile);
	Layer outLayer = outputDs.CreateLayer(outPathFile, dst);
	
	FieldDefn field_def = new FieldDefn("DN",ogr.OFTInteger);
	outLayer.CreateField(field_def);
	 
	Layer ll = vector.GetLayer(0);
	// Get the Layer's Feature Definition
	FeatureDefn featureDefn = ll.GetLayerDefn();
	
	int n = ll.GetFeatureCount();

	// outLayer.StartTransaction();
	for (int i = 0; i < n; i++) {
		Feature feat = ll.GetNextFeature();
		Geometry gg = feat.GetGeometryRef();
		Geometry newgg = new Geometry(ogr.wkbPolygon);

		int srcType = gg.GetGeometryType() ;//& (ogrConstants.wkb25DBit);
		if (srcType == ogr.wkbPolygon) {
			//int resg = gg.Transform(tr);
			newgg.AddGeometry(gg);
		} else if (srcType == ogr.wkbMultiPolygon) {
			int geomCount = gg.GetGeometryCount();
			for (int geomIndex = 0; geomIndex < geomCount; geomIndex++) {
				Geometry g=gg.GetGeometryRef(geomIndex);
				int resg = g.Transform(tr);
				newgg.AddGeometry(g);
			}
		}

		// create a new feature
		Feature f = new Feature(featureDefn);
		f.SetGeometry(newgg);
		// f.SetFID(i);
		for (int j = 0; j < feat.GetFieldCount(); j++) {
			String type = feat.GetFieldDefnRef(j).GetFieldTypeName(feat.GetFieldType(j));
			if (type.equals("String")) {
				f.SetField(feat.GetFieldDefnRef(j).GetName(), feat.GetFieldAsString(j));
			} else if (type.equals("StringList")) {

			} else if (type.equals("Integer")) {
				f.SetField(feat.GetFieldDefnRef(j).GetName(), feat.GetFieldAsInteger(j));
			} else if (type.equals("IntegerList")) {
			} else if (type.equals("Real")) {
				f.SetField(feat.GetFieldDefnRef(j).GetName(), feat.GetFieldAsDouble(j));
			} else if (type.equals("RealList")) {
			}
		}

		// Add new feature to output Layer
		int res = outLayer.CreateFeature(f);

		System.out.println("create feature:" + res);

		gg.delete();
		feat.delete();
	}
	// outLayer.CommitTransaction();

}
 
开发者ID:ec-europa,项目名称:sumo,代码行数:76,代码来源:GDALWarpReprojection.java

示例4: createEdgeLayer

import org.gdal.ogr.DataSource; //导入依赖的package包/类
private static Layer createEdgeLayer(final DataSource       dataSource,
                                     final Collection<Node> nodes,
                                     final Iterable<Edge>   edges,
                                     final SpatialReference spatialReference)
{
     final Map<Integer, Node> nodeMap = new HashMap<>(nodes.size());

    for(final Node node : nodes)
    {
        nodeMap.put(node.getIdentifier(), node);
    }

    final Layer edgeLayer = dataSource.CreateLayer("edges",
                                                   spatialReference,
                                                   ogrConstants.wkbLineString);

    try
    {
        for(final Edge edge : edges)
        {
            final Feature edgeFeature = new Feature(edgeLayer.GetLayerDefn());

            final Geometry line = new Geometry(ogrConstants.wkbLineString);

            final Node node0 = nodeMap.get(edge.getFrom());
            final Node node1 = nodeMap.get(edge.getTo());

            line.AddPoint(node0.getX(), node0.getY());
            line.AddPoint(node1.getX(), node1.getY());

            if(edgeFeature.SetGeometry(line) != gdalconstConstants.CE_None)
            {
                throw new RuntimeException(new GdalError().getMessage());
            }

            if(edgeLayer.CreateFeature(edgeFeature) != gdalconstConstants.CE_None)
            {
                throw new RuntimeException(new GdalError().getMessage());
            }
        }
    }
    catch(final Throwable th)
    {
        edgeLayer.delete();
        throw th;
    }

    return edgeLayer;
}
 
开发者ID:GitHubRGI,项目名称:swagd,代码行数:50,代码来源:Utility.java

示例5: write

import org.gdal.ogr.DataSource; //导入依赖的package包/类
@Override
public void write(final List<Node>                nodes,
                  final List<Edge>                edges,
                  final NodeDimensionality        nodeDimensionality,        // not used
                  final List<Pair<String, Type>>  nodeAttributeDescriptions, // not used
                  final List<Pair<String, Type>>  edgeAttributeDescriptions, // not used
                  final CoordinateReferenceSystem coordinateReferenceSystem) throws RoutingNetworkStoreException
{
    final SpatialReference sourceSpatialReference;

    try
    {
        sourceSpatialReference = GdalUtility.createSpatialReference(coordinateReferenceSystem);
    }
    catch(final RuntimeException ex)
    {
        throw new RoutingNetworkStoreException(ex);
    }

    final Dataset rasterDataset = this.createRaster(sourceSpatialReference);

    try
    {
        final DataSource dataSource = Utility.createDataSource(nodes,
                                                               edges,
                                                               sourceSpatialReference);
        try
        {
            final int rasterizeError = gdal.RasterizeLayer(rasterDataset,
                                                           new int[]{1, 2, 3, 4},
                                                           dataSource.GetLayer(0),
                                                           new double[]{ this.foreground.getRed(),
                                                                         this.foreground.getGreen(),
                                                                         this.foreground.getBlue(),
                                                                         this.foreground.getAlpha()
                                                                       },
                                                           null,                    // "options" vector. valid choices are described here: http://gdal.org/gdal__alg_8h.html#adfe5e5d287d6c184aab03acbfa567cb1
                                                           this.progressCallback);

            if(rasterizeError != gdalconstConstants.CE_None)
            {
                throw new RuntimeException(new GdalError().getMessage());
            }
        }
        finally
        {
            dataSource.delete();    // Also destroys edgeLayer
        }
    }
    finally
    {
        rasterDataset.delete();
    }
}
 
开发者ID:GitHubRGI,项目名称:swagd,代码行数:55,代码来源:ImageRoutingNetworkStoreWriter.java

示例6: checkValid

import org.gdal.ogr.DataSource; //导入依赖的package包/类
/**
    * Process a file 
    * @param pFile file to process
    * @return true if opened ok, false if not
    */
   @SuppressWarnings("unused")
public static boolean checkValid(File pFile) {

   	if(!pFile.exists()) return false;
   	
   	final String pszWHERE = null;
   	final Geometry poSpatialFilter = null;
   	Driver poDriver = null;
   	final String pszDataSource = pFile.getAbsolutePath();

   	/* -------------------------------------------------------------------- */
   	/*      Open data source.                                               */
   	/* -------------------------------------------------------------------- */

   	DataSource poDS = ogr.Open(pszDataSource, !bReadOnly);
   	if (poDS == null && !bReadOnly)	{
   		poDS = ogr.Open(pszDataSource, false);
   		if (poDS == null && bVerbose) {
   			if(bVerbose) System.out.println( "Had to open data source read-only.");
   		}
   	}

   	/* -------------------------------------------------------------------- */
   	/*      Report failure                                                  */
   	/* -------------------------------------------------------------------- */
   	if( poDS == null ) {
   		if(bVerbose) {
   			System.out.print("FAILURE: Unable to open datasource `"+pszDataSource+"' with the following drivers.\n");
   			for( int iDriver = 0; iDriver < ogr.GetDriverCount(); iDriver++ ) {
   				System.out.println( "  -> " + ogr.GetDriver(iDriver).GetName() );
   			}
   		}
   		return false;
   	}

   	poDriver = poDS.GetDriver();
   	
   	if(!poDriver.GetName().equalsIgnoreCase(OGR_NTF_DRIVER_NAME)) {
   		// i.e. this is not an NTF file
   		return false;
   	}

   	/* -------------------------------------------------------------------- */
   	/*      Some information messages.                                      */
   	/* -------------------------------------------------------------------- */
   	if( bVerbose ) {
   		System.out.println( "INFO: Open of `" + pszDataSource + "'\n" +
   				"      using driver `" + poDriver.GetName() + "' successful." );
   	}

   	/* -------------------------------------------------------------------- */
   	/*      Process each data source layer.                                 */
   	/* -------------------------------------------------------------------- */

   	for(int iLayer = 0; iLayer < poDS.GetLayerCount(); iLayer++) {
   		Layer poLayer = poDS.GetLayer(iLayer);

   		if(poLayer==null) {
   			if(bVerbose) System.out.println( "FAILURE: Couldn't fetch advertised layer " + iLayer + "!");
   			return false;
   		}

   		boolean layerOk = reportOnLayer( poLayer, pszWHERE, poSpatialFilter );
   		if(!layerOk) return false;
   		
   	}

   	// if we get this far then the file must be valid(ish)
   	return true;
   }
 
开发者ID:bl-dpt,项目名称:geolint,代码行数:76,代码来源:GDALWrapper.java


注:本文中的org.gdal.ogr.DataSource类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。