Después de una gran ayuda de Blah238.
He encontrado exactamente lo que es el problema.
He perdido unos días, revisando nuestros datos, y tratando de muchas cosas.
El problema que no puedo hacer la intersección entre dos polilíneas para dar un resultado de una nueva polilínea.
Estaba trabajando en la 9.3. Así que no estoy seguro si es que no se supone que funciona , o por qué no se trabaja en 10.1
Así que, he modificado el código para esto. Ahora este código está generando COM excepción en mi máquina.
Bla, puede usted por favor ayuda si usted puede
static void Main(string[] args)
{
//ESRI License Initializer generated code.
m_AOLicenseInitializer.InitializeApplication(new esriLicenseProductCode[] { esriLicenseProductCode.esriLicenseProductCodeStandard, esriLicenseProductCode.esriLicenseProductCodeAdvanced },
new esriLicenseExtensionCode[] { });
var geom1 = "LINESTRING (2 1, 7 1)".ToGeometry();
var geom2 = "LINESTRING (3 1, 6 1)".ToGeometry();
var targetOperator = (ITopologicalOperator)geom1;
targetOperator.Simplify();
IGeometry intersectGeometry = targetOperator.Intersect(geom2, geom2.Dimension);
Console.WriteLine(overlapped1.ToWellKnownText());
m_AOLicenseInitializer.ShutdownApplication();
}
static IGeometry GetOverlappedGeometry(IGeometry sourceGeometry, IGeometry targetGeometry, esriGeometryDimension dimension)
{
IGeometry overlappedGeometry = null;
IGeometry localSourceGeometry;
IGeometry localTargetGeometry;
if (sourceGeometry.GeometryType > targetGeometry.GeometryType)
{
localSourceGeometry = targetGeometry;
localTargetGeometry = sourceGeometry;
}
else
{
localSourceGeometry = sourceGeometry;
localTargetGeometry = targetGeometry;
}
var targetOperator = (ITopologicalOperator)localTargetGeometry;
if (targetOperator != null)
{
targetOperator.Simplify();
IGeometry intersectGeometry = targetOperator.Intersect(localSourceGeometry, dimension);
overlappedGeometry = intersectGeometry;
}
return overlappedGeometry;
}
Por favor, observe que el código es diferente que Bla código de abajo , que yo estoy usando la dimensión 1 es la intersección, y no dim0 Porque quiero una polilínea Cuál es el problema con la 10.1?
Por qué yo era capaz de hacerlo en 9.3?