ao对象如geometry的保存

本文介绍了一种使用ArcGIS进行文件到Blob的转换方法及从Blob中加载数据的过程。通过IPersistStream接口实现数据的保存与加载,同时展示了如何与Access数据库进行交互,包括将Envelope对象保存为Blob类型字段以及从数据库中读取Blob数据并还原为Envelope对象。
  private static bool FileToBlob(IEnvelope pEnvelope)
        {
            try
            {
                IPersistStream pPersistStream = pEnvelope as IPersistStream;
                IMemoryBlobStream pMemoryBlobStream = new MemoryBlobStreamClass();
                pPersistStream.Save(pMemoryBlobStream, 0);
                IWorkspaceFactory pWorkspaceFactory = new AccessWorkspaceFactoryClass();
                IWorkspace pWorkspace = pWorkspaceFactory.OpenFromFile(@"E:/义乌实验数据.mdb", 0);
                IFeatureWorkspace pFeatureWorkspace = pWorkspace as IFeatureWorkspace;
                ITable pTable = pFeatureWorkspace.OpenTable("geo");
                IRow pRow = pTable.CreateRow();
                int d = pRow.Fields.FindField("FW");
                pRow.set_Value(d, pMemoryBlobStream);
                pRow.Store();
                return true;
            }
            catch 
            {
                return false;
            }
        }

        private void   Load2()
        {
            IWorkspaceFactory pWorkspaceFactory = new AccessWorkspaceFactoryClass();
            IWorkspace pWorkspace = pWorkspaceFactory.OpenFromFile(@"E:/义乌实验数据.mdb", 0);
            IFeatureWorkspace pFeatureWorkspace = pWorkspace as IFeatureWorkspace;
            ITable pTable = pFeatureWorkspace.OpenTable("geo");
            ICursor pCursor = pTable.Search(null, false);
            IRow pRow = pCursor.NextRow();
            if (pRow == null) return;
            IMemoryBlobStream pMemoryStream = pRow.get_Value(pRow.Fields.FindField("FW")) as IMemoryBlobStream;
            IEnvelope pEnvelope = new EnvelopeClass();
            IPersistStream pPersist = pEnvelope as IPersistStream;
            pPersist.Load(pMemoryStream);
            axMapControl1 .Extent =pEnvelope ;
        }

好的,我来为您介绍一下OpenLayers中Circle的geometry对象示例。 OpenLayers是一个用于创建交互式地图的JavaScript库。在OpenLayers中,Circle是一种特殊的几何对象,用于在地图上绘制圆形。以下是一个使用Circle geometry对象的例子: ```javascript // 创建一个Circle geometry对象 var circle = new ol.geom.Circle([0, 0], 1000000); // 创建一个feature,并将Circle geometry赋值给它 var feature = new ol.Feature({ geometry: circle, name: 'Circle' }); // 设置feature的样式 feature.setStyle(new ol.style.Style({ stroke: new ol.style.Stroke({ color: 'red', width: 2 }), fill: new ol.style.Fill({ color: 'rgba(255,0,0,0.1)' }) })); // 创建一个vector layer,并将feature添加到layer中 var vectorLayer = new ol.layer.Vector({ source: new ol.source.Vector({ features: [feature] }) }); // 创建一个map,将vector layer添加到map中 var map = new ol.Map({ target: 'map', layers: [ new ol.layer.Tile({ source: new ol.source.OSM() }), vectorLayer ], view: new ol.View({ center: [0, 0], zoom: 2 }) }); ``` 这个例子中,我们首先创建了一个Circle geometry对象,中心点位于坐标[0, 0],半径为1000000米。然后,我们创建了一个feature,并将这个Circle geometry赋值给它。接着,我们为这个feature设置了一个样式,包括描边和填充颜色。 最后,我们创建了一个vector layer,将这个feature添加到layer中。然后,我们创建了一个map,将这个vector layer和其他图层(如OpenStreetMap瓦片图层)一起添加到map中。 通过这个例子,我们可以在地图上看到一个红色的圆形。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值