async public Task <IDataset2> EmptyCopy() { var dataset = new MongoDbDataset(); await dataset.SetConnectionString(ConnectionString); await dataset.Open(); return(dataset); }
async static public Task <MongoDbFeatureClass> Create(MongoDbDataset dataset, Json.SpatialCollectionItem spatialCollectoinItem) { var fc = new MongoDbFeatureClass(); fc.Dataset = dataset; fc.Name = spatialCollectoinItem.Name; if (spatialCollectoinItem.GeometryDef != null) { fc.HasZ = spatialCollectoinItem.GeometryDef.HasZ; fc.HasM = spatialCollectoinItem.GeometryDef.HasM; fc.GeometryType = spatialCollectoinItem.GeometryDef.GeometryType; fc.SpatialReference = dataset._spatialReference; // ToDo } var fields = new Fields(); //fields.Add(new Field("_id", FieldType.ID)); fields.Add(new Field("_shape", FieldType.Shape)); if (spatialCollectoinItem.Fields != null) { foreach (var field in spatialCollectoinItem.Fields) { fields.Add(new Field() { name = field.Name, type = field.FieldType }); } } fc.Fields = fields; fc.MongoCollection = await dataset.GetFeatureCollection(fc); fc.Envelope = spatialCollectoinItem.FeatureBounds?.ToEnvelope() ?? new Envelope(-180, -90, 180, 90); fc.GeneralizationLevel = spatialCollectoinItem.GeneralizationLevel; return(fc); }