本文整理汇总了C#中ESRI.GetEnvironments方法的典型用法代码示例。如果您正苦于以下问题:C# ESRI.GetEnvironments方法的具体用法?C# ESRI.GetEnvironments怎么用?C# ESRI.GetEnvironments使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ESRI
的用法示例。
在下文中一共展示了ESRI.GetEnvironments方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: UpdateParameters
public void UpdateParameters(ESRI.ArcGIS.esriSystem.IArray paramvalues, ESRI.ArcGIS.Geoprocessing.IGPEnvironmentManager pEnvMgr)
{
IGPUtilities3 gpUtilities3 = new GPUtilitiesClass();
IGPParameter revisionTableParameter = paramvalues.get_Element(in_changesTablesNumber) as IGPParameter;
IGPValue revisionTableGPValue = gpUtilities3.UnpackGPValue(revisionTableParameter);
if (revisionTableGPValue.IsEmpty() == false)
{
if (gpUtilities3.Exists(revisionTableGPValue) == false)
{
IGPEnvironment workspaceEnvironment = gpUtilities3.GetEnvironment(pEnvMgr.GetEnvironments(), "workspace");
IGPValue workspace = workspaceEnvironment.Value;
if (workspace.IsEmpty() == false)
{
string old_locationValue = workspace.GetAsText() + System.IO.Path.DirectorySeparatorChar + revisionTableGPValue.GetAsText();
try
{
string location = gpUtilities3.QualifyOutputCatalogPath(old_locationValue);
if (location.Length != old_locationValue.Length)
{
revisionTableGPValue.SetAsText(location);
gpUtilities3.PackGPValue(revisionTableGPValue, revisionTableParameter);
}
}
catch { }
}
}
}
gpUtilities3.ReleaseInternals();
}
示例2: UpdateParameters
public void UpdateParameters(ESRI.ArcGIS.esriSystem.IArray paramvalues, ESRI.ArcGIS.Geoprocessing.IGPEnvironmentManager pEnvMgr)
{
IGPUtilities3 gpUtilities3 = new GPUtilitiesClass();
#region update the output point parameter based on the input of template point layer
IGPParameter inputPointLayerParameter = paramvalues.get_Element(in_osmPointLayerNumber) as IGPParameter;
IGPValue inputPointLayer = gpUtilities3.UnpackGPValue(inputPointLayerParameter);
IGPParameter3 outputPointLayerParameter = paramvalues.get_Element(out_osmPointLayerNumber) as IGPParameter3;
if (((inputPointLayer).IsEmpty() == false) && (outputPointLayerParameter.Altered == false))
{
IGPValue outputPointGPValue = gpUtilities3.UnpackGPValue(outputPointLayerParameter);
if (outputPointGPValue.IsEmpty())
{
IClone clonedObject = inputPointLayer as IClone;
IGPValue clonedGPValue = clonedObject.Clone() as IGPValue;
// if it is an internal group layer
IGPGroupLayer inputPointGroupLayer = clonedObject as IGPGroupLayer;
if (inputPointGroupLayer != null)
{
string proposedLayerName = "Points";
string tempLayerName = proposedLayerName;
int index = 1;
ILayer currentMapLayer = gpUtilities3.FindMapLayer(proposedLayerName);
while (currentMapLayer != null)
{
tempLayerName = proposedLayerName + "_" + index.ToString();
currentMapLayer = gpUtilities3.FindMapLayer(tempLayerName);
index = index + 1;
}
clonedGPValue.SetAsText(tempLayerName);
gpUtilities3.PackGPValue(clonedGPValue, outputPointLayerParameter);
}
else
{
IDELayer deLayer = clonedGPValue as IDELayer;
if (deLayer != null)
{
FileInfo sourceLyrFileInfo = new FileInfo(clonedGPValue.GetAsText());
// check the output location of the file with respect to the gp environment settings
sourceLyrFileInfo = new FileInfo(DetermineLyrLocation(pEnvMgr.GetEnvironments(), sourceLyrFileInfo));
if (sourceLyrFileInfo.Exists)
{
int layerFileIndex = 1;
string tempFileLyrName = sourceLyrFileInfo.DirectoryName + System.IO.Path.DirectorySeparatorChar + sourceLyrFileInfo.Name.Substring(0, sourceLyrFileInfo.Name.Length - sourceLyrFileInfo.Extension.Length) + "_" + layerFileIndex.ToString() + sourceLyrFileInfo.Extension;
while (File.Exists(tempFileLyrName))
{
tempFileLyrName = sourceLyrFileInfo.DirectoryName + System.IO.Path.DirectorySeparatorChar + sourceLyrFileInfo.Name.Substring(0, sourceLyrFileInfo.Name.Length - sourceLyrFileInfo.Extension.Length) + "_" + layerFileIndex.ToString() + sourceLyrFileInfo.Extension;
layerFileIndex = layerFileIndex + 1;
}
clonedGPValue.SetAsText(tempFileLyrName);
gpUtilities3.PackGPValue(clonedGPValue, outputPointLayerParameter);
}
else
{
clonedGPValue.SetAsText(sourceLyrFileInfo.FullName);
gpUtilities3.PackGPValue(clonedGPValue, outputPointLayerParameter);
}
}
}
}
}
#endregion
#region update the output line parameter based on the input of template line layer
IGPParameter inputLineLayerParameter = paramvalues.get_Element(in_osmLineLayerNumber) as IGPParameter;
IGPValue inputLineLayer = gpUtilities3.UnpackGPValue(inputLineLayerParameter);
IGPParameter3 outputLineLayerParameter = paramvalues.get_Element(out_osmLineLayerNumber) as IGPParameter3;
if (((inputLineLayer).IsEmpty() == false) && (outputLineLayerParameter.Altered == false))
{
IGPValue outputLineGPValue = gpUtilities3.UnpackGPValue(outputLineLayerParameter);
if (outputLineGPValue.IsEmpty())
{
IClone clonedObject = inputLineLayer as IClone;
IGPValue clonedGPValue = clonedObject.Clone() as IGPValue;
// if it is an internal group layer
IGPGroupLayer inputLineGroupLayer = clonedObject as IGPGroupLayer;
if (inputLineGroupLayer != null)
{
string proposedLayerName = "Lines";
string tempLayerName = proposedLayerName;
int index = 1;
ILayer currentMapLayer = gpUtilities3.FindMapLayer(proposedLayerName);
//.........这里部分代码省略.........