空间数据范围发生变化后如何更新数据的显示范围

30 篇文章 0 订阅
16 篇文章 1 订阅

    在数据编辑或者数据出现脏数据的情况下,空间数据的显示可能会出现全图显示无法完整的显示主要数据的问题,遇到这种情况需要更新数据范围才能正确显示全图数据范围,需要通过代码的方式更新数据范围,核心代码如下:

    c# engine:

 ISchemaLock schemaLock = (ISchemaLock)temp.FeatureClass;
            try
            {
                IFeatureClassManage featureClassManage = (IFeatureClassManage)temp.FeatureClass;
                featureClassManage.UpdateExtent();
                schemaLock.ChangeSchemaLock(esriSchemaLock.esriSharedSchemaLock);
            }
            catch (Exception e)
            {
                schemaLock.ChangeSchemaLock(esriSchemaLock.esriSharedSchemaLock);
            }

vba:

Public Sub UpdateFCExtent()
  Dim pApp As IGxApplication
  Dim pGxObj As IGxObject
  Dim pGXDataset As IGxDataset
  Set pApp = Application
  Set pGxObj = pApp.SelectedObject
  Set pGXDataset = pGxObj
   
  Dim pFC As IFeatureClass
  Set pFC = pGXDataset.Dataset

  Dim pFeatureClassManage As IFeatureClassManage
  Set pFeatureClassManage = pFC

  pFeatureClassManage.UpdateExtent
End Sub

[Visual Basic 6.0]:

Public Sub reCalcExt()
  Dim pGXApplication As IGxApplication
  Set pGXApplication = Application
 
  Dim pGxObject As IGxObject
  Set pGxObject = pGXApplication.SelectedObject
 
  If Not TypeOf pGxObject.InternalObjectName Is IFeatureClassName Then
    Exit Sub
  End If
 
  Dim pName As IName
  Set pName = pGxObject.InternalObjectName
  Dim pSchemaLock As ISchemaLock
  Set pSchemaLock = pName.Open
 
  pSchemaLock.ChangeSchemaLock esriExclusiveSchemaLock
  Dim pFeatureClassManage As IFeatureClassManage
  Set pFeatureClassManage = pSchemaLock
  pFeatureClassManage.UpdateExtent
 
  Exit Sub
 
ErrHandler:
  pSchemaLock.ChangeSchemaLock esriSharedSchemaLock
End Sub

Python:

# coding:cp936
import _winreg
import comtypes
from comtypes.client import GetModule
from comtypes.client import CreateObject
# 查找 ArcGIS 10 的安装路径,我的是64位系统所以有 Wow6432Node,32位系统的话就去掉那个节点
keyESRI = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, "SOFTWARE//Wow6432Node//ESRI//Desktop10.0")
ArcGISPath = _winreg.QueryValueEx(keyESRI, "InstallDir")[0] + "com//"
# 载入必要的库
GetModule(ArcGISPath + 'esriDataSourcesFile.olb')
GetModule(ArcGISPath + 'esriGeoDatabase.olb')
GetModule(ArcGISPath + 'esriSystem.olb')
GetModule((comtypes.GUID("{6FCCEDE0-179D-4D12-B586-58C88D26CA78}"), 1, 0)) # esriVersion
import comtypes.gen.esriDataSourcesFile as esriDataSourcesFile
import comtypes.gen.esriGeoDatabase as esriGeoDatabase
import comtypes.gen.esriSystem as esriSystem
import comtypes.gen.ArcGISVersionLib as esriVersion
# ArcGIS 10.0 以上需要先绑定版本,9.x 不用下面这两句
versionManager = CreateObject(esriVersion.VersionManager, interface = esriVersion.IArcGISVersion)
versionManager.LoadVersion(esriVersion.esriArcGISDesktop, "10.0")
# 初始化 Ao,和 C++ 里面一样的做法
aoInit = CreateObject(esriSystem.AoInitialize, interface = esriSystem.IAoInitialize)
pCode = esriSystem.esriLicenseProductCodeArcInfo
status = aoInit.IsProductCodeAvailable(pCode)
if status == esriSystem.esriLicenseAvailable:
    aoInit.Initialize(pCode)
shpFileWSFactory = CreateObject(esriDataSourcesFile.ShapefileWorkspaceFactory, interface = esriGeoDatabase.IWorkspaceFactory)
shpFileWS = shpFileWSFactory.openFromFile(r'D:/Temp/p/testtooldata', 0).QueryInterface(esriGeoDatabase.IFeatureWorkspace)
featureClass = shpFileWS.openFeatureClass("test1")
featureManger = featureClass.QueryInterface(esriGeoDatabase.IFeatureClassManage)
featureManger.UpdateExtent()
del featureManger
del featureClass

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
FAOSTAT温度变化是按国家/地区发布平均地表温度变化的统计数据,并进行年度更新。目前的期限为1961-2019年。可获得每月,季节性和每年平均温度异常的统计数据,即对应于1951-1980年的相对于基准气候的温度变化。还可以使用基线方法的温度变化的标准偏差。数据基于可公开获得的GISTEMP数据,这是美国国家航空航天局戈达德空间研究所(NASA-GISS)分发的全球表面温度变化数据。 统计概念和定义 统计标准:“温度变化”域中的数据不是明确的SEEA变量。但是,国家和地区计算使用的“土地面积”定义与SEEA土地使用定义一致,特别是SEEA CF表5.11“Land Use Classification”和SEEA AFF表4.8“Physical asset account for land use”。 FAOSTAT农业环境指标部分的温度变化范围符合环境统计发展框架(FDES 2013),对FDES组件1:环境条件和质量,子组件1.1:物理条件,主题1.1有所贡献。 1:大气,气候和天气,核心集/方法1统计a.1。 统计单位:国家和地区。 统计人口:国家和地区。 参考区域:世界所有国家和地区的区域。2019年:190个国家和其他37个领土实体。 代码参考区域:FAOSTAT,M49,ISO2和ISO3(http://www.fao.org/faostat/zh/#definitions)。粮农组织全球行政部门层(GAUL国家级–参考年,2014年。粮农组织地理空间数据存储库GeoNetwork。永久地址:http : //www.fao.org :80/geonetwork?uuid=f7e7adb0-88fd-11da-a88f-000d939bc5d8 。 代号-涵盖的国家/地区数:2019年:190个国家和37个其他领土实体。 时间范围:1961-2019 周期:每月,季节性,每年 基期:1951-1980年 计量单位:摄氏温度°C 参考期间:月,季节,气象年 气候变化是这个技术时代世界面临的重要问题之一。这种情况的最好证据是历史温度变化。你可以研究是否有阻止全球变暖的希望。 你能找到温度变化与任何其他变量之间的任何相关性吗? (使用ISO3代码合并其他任何国家/地区的数据集。) 温度变化的预测:国家/地区列表中还存在一个全球总体温度变化,称为“World”。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值