示例#1
0
        async public Task <IDataset2> EmptyCopy()
        {
            var dataset = new MongoDbDataset();
            await dataset.SetConnectionString(ConnectionString);

            await dataset.Open();

            return(dataset);
        }
示例#2
0
        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);
        }