本文整理汇总了C#中IPolygon.Project方法的典型用法代码示例。如果您正苦于以下问题:C# IPolygon.Project方法的具体用法?C# IPolygon.Project怎么用?C# IPolygon.Project使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IPolygon
的用法示例。
在下文中一共展示了IPolygon.Project方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: SetDynamicValues
//.........这里部分代码省略.........
if (boolLayerOrFC)
{
if (pFS.SelectionSet.Count > 0)
{
pFS.SelectionSet.Search(sFilter, false, out cCurs);
fCursor = cCurs as IFeatureCursor;
}
else
{
fCursor = sourceLayer.Search(sFilter, false);
}
}
else
{
fCursor = sourceLayer.FeatureClass.Search(sFilter, false);
}
sourceFeature = fCursor.NextFeature();
nearestFeature = null;
proxOp = (IProximityOperator)inFeature.Shape;
lastDistance = searchDistance;
if (sourceFeature != null)
{
AAState.WriteLine(A4LGSharedFunctions.Localizer.GetString("AttributeAssistantEditorChain83"));
while (sourceFeature != null)
{
if (sourceFeature.Class != inFeature.Class)
{
IGeometry pTempGeo = sourceFeature.ShapeCopy;
pTempGeo.Project(inFeature.Shape.SpatialReference);
distance = proxOp.ReturnDistance(pTempGeo);
pTempGeo = null;
if (distance <= lastDistance)
{
nearestFeature = sourceFeature;
lastDistance = distance;
}
}
else if (sourceFeature.Class == inFeature.Class && sourceFeature.OID != inFeature.OID)
{
IGeometry pTempGeo = sourceFeature.ShapeCopy;
pTempGeo.Project(inFeature.Shape.SpatialReference);
distance = proxOp.ReturnDistance(pTempGeo);
pTempGeo = null;
if (distance <= lastDistance)
{
nearestFeature = sourceFeature;
lastDistance = distance;
}
}
sourceFeature = fCursor.NextFeature();
}
}
if (nearestFeature != null)
{
AAState.WriteLine(A4LGSharedFunctions.Localizer.GetString("AttributeAssistantEditorChain84") + lastDistance + A4LGSharedFunctions.Localizer.GetString("AttributeAssistantEditorChain85") + nearestFeature.OID);
for (int i = 0; i < sourceFieldNums.Length; i++)
{
开发者ID:rlwarford,项目名称:local-government-desktop-addins,代码行数:67,代码来源:AttributeAssistantEditorExtension.cs
示例2: InstanceAoiHasBeenDrawn
/// <summary>
/// The instance AOI has been drawn.
/// </summary>
/// <param name="poly">
/// The poly.
/// </param>
/// <param name="elm">
/// The elm.
/// </param>
private void InstanceAoiHasBeenDrawn(IPolygon poly, IElement elm)
{
poly.Project(Jarvis.ProjectedCoordinateSystem);
this.ShapeAoi = poly;
}
示例3: SetDynamicValues
//.........这里部分代码省略.........
{
if (pFS.SelectionSet.Count > 0)
{
pFS.SelectionSet.Search(sFilter, false, out cCurs);
fCursor = cCurs as IFeatureCursor;
}
else
{
fCursor = sourceLayer.Search(sFilter, false);
}
}
else
{
fCursor = sourceLayer.FeatureClass.Search(sFilter, false);
}
sourceFeature = fCursor.NextFeature();
nearestFeature = null;
proxOp = (IProximityOperator)inFeature.Shape;
lastDistance = searchDistance;
if (sourceFeature != null)
{
AAState.WriteLine(" Features Found, looping for closest");
while (sourceFeature != null)
{
if (sourceFeature.Class != inFeature.Class)
{
//distance = proxOp.ReturnDistance(sourceFeature.Shape);
IGeometry pTempGeo = sourceFeature.ShapeCopy;
pTempGeo.Project(inFeature.Shape.SpatialReference);
distance = proxOp.ReturnDistance(pTempGeo);
pTempGeo = null;
if (distance <= lastDistance)
{
nearestFeature = sourceFeature;
lastDistance = distance;
}
}
else if (sourceFeature.Class == inFeature.Class && sourceFeature.OID != inFeature.OID)
{
//distance = proxOp.ReturnDistance(sourceFeature.Shape);
IGeometry pTempGeo = sourceFeature.ShapeCopy;
pTempGeo.Project(inFeature.Shape.SpatialReference);
distance = proxOp.ReturnDistance(pTempGeo);
pTempGeo = null;
if (distance <= lastDistance)
{
nearestFeature = sourceFeature;
lastDistance = distance;
}
}
sourceFeature = fCursor.NextFeature();
}
}
if (nearestFeature != null)
{
AAState.WriteLine(" Closest Feature is " + lastDistance + " Away with OID of " + nearestFeature.OID);
for (int i = 0; i < sourceFieldNums.Length; i++)
示例4: Expand
/**
* Creates a new SEE object representing the buffered union of the selection, unioned
* with this object and the newShape.
*
* If any parameters are null, this method should fail gracefully.
*/
public void Expand(IPolygon expansion, ISDUTExtension ext)
{
if(expansion == null)
return;
ITopologicalOperator2 op_expansion = (ITopologicalOperator2)expansion;
op_expansion.IsKnownSimple_2 = false;
try
{
op_expansion.Simplify();
}
catch (Exception e)
{
Logger.Warn(e);
}
if(shape == null)
{
shape = (IPolygon)((IClone)expansion).Clone();
if (shape.SpatialReference == null || shape.SpatialReference is IUnknownCoordinateSystem)
{
shape.SpatialReference = ext.FocusMap.SpatialReference;
}
return;
}
// buggy
// http://forums.esri.com/Thread.asp?c=93&f=1170&t=88297#242834
ITopologicalOperator2 op_shape = (ITopologicalOperator2)shape;
op_shape.IsKnownSimple_2 = false;
try
{
op_shape.Simplify();
}
catch (Exception e)
{
Logger.Warn(e);
}
if (shape.SpatialReference == null || shape.SpatialReference is IUnknownCoordinateSystem)
{
shape.SpatialReference = ext.FocusMap.SpatialReference;
}
if (expansion.SpatialReference == null || shape.SpatialReference is IUnknownCoordinateSystem)
{
expansion.SpatialReference = ext.FocusMap.SpatialReference;
}
expansion.Project(shape.SpatialReference);
ISpatialReference sr = shape.SpatialReference;
shape.SnapToSpatialReference();
expansion.SnapToSpatialReference();
shape = (IPolygon)(op_shape.Union((IPolygon)expansion));
shape.SpatialReference = sr;
if (shape.SpatialReference == null || shape.SpatialReference is IUnknownCoordinateSystem)
{
shape.SpatialReference = ext.FocusMap.SpatialReference;
}
op_shape = (ITopologicalOperator2)shape;
try
{
op_shape.Simplify();
}
catch (Exception e)
{
Logger.Warn(e);
}
return;
}
示例5: EventHandlerInstanceAoiHasBeenDrawn
private void EventHandlerInstanceAoiHasBeenDrawn(IPolygon poly, IElement elm)
{
// Now that the event has been heard stop listening for future events.
AggregationRelay.Instance.AoiHasBeenDrawn -= this.EventHandlerInstanceAoiHasBeenDrawn;
// re-select the previously enabled tool
ArcMap.Application.CurrentTool = this.PreviouslySelectedItem;
poly.Project(Jarvis.ProjectedCoordinateSystem);
this.ShapeAoi = poly;
}
示例6: SetDynamicValues
//.........这里部分代码省略.........
{
AAState.WriteLine(" Layer Found " + intersectLayerName);
if (intersectLayer.FeatureClass != null)
{
AAState.WriteLine(" Datasource is valid for " + intersectLayerName);
sFilter = new SpatialFilterClass();
AAState.WriteLine(" Checking source Geometry Type");
if (inFeature.Shape.GeometryType == esriGeometryType.esriGeometryPoint)
{
// esriSpatialRelIntersects does not work properly for point intersecting line.
// hence expand point envelope (code cribbed from below)
try
{
ISpatialReferenceResolution pSRResolution;
pSRResolution = ((sourceLayer.FeatureClass as IGeoDataset).SpatialReference) as ISpatialReferenceResolution;
// sFilter = new SpatialFilterClass();
double intTol = pSRResolution.get_XYResolution(false);
bool hasXY = ((sourceLayer.FeatureClass as IGeoDataset).SpatialReference).HasXYPrecision();
searchEnvelope = new EnvelopeClass();
searchEnvelope.XMin = 0 - intTol;
searchEnvelope.YMin = 0 - intTol;
searchEnvelope.XMax = 0 + intTol;
searchEnvelope.YMax = 0 + intTol;
searchEnvelope.CenterAt(inFeature.ShapeCopy as IPoint);
//searchEnvelope.SpatialReference = ((inFeature.Class as IFeatureClass) as IGeoDataset).SpatialReference;
searchEnvelope.SpatialReference = ((inFeature.Class as IFeatureClass) as IGeoDataset).SpatialReference;
searchEnvelope.SnapToSpatialReference();
searchEnvelope.Project(AAState._editor.Map.SpatialReference);
sFilter.Geometry = Globals.Env2Polygon(searchEnvelope);
}
catch
{
sFilter.Geometry = inFeature.ShapeCopy;
}
}
else
{
AAState.WriteLine(" Geoemetry is not a point, using shape envelope");
sFilter.Geometry = inFeature.ShapeCopy;
}
sFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelIntersects;
sFilter.GeometryField = intersectLayer.FeatureClass.ShapeFieldName;
AAState.WriteLine(" Searching " + intersectLayerName + "for intersected feature");
fCursor = intersectLayer.FeatureClass.Search(sFilter, true);
IFeature intsersectFeature;
int idx = 1;
while ((intsersectFeature = fCursor.NextFeature()) != null)
{
AAState.WriteLine(" Splitting Intersected Feature number: " + idx);
idx++;
IFeatureEdit featureEdit = intsersectFeature as IFeatureEdit;
ISet featset = featureEdit.Split(inFeature.Shape);
AAState.WriteLine(" Adding split features to array to call the AA ext");