0

我试图在 C# 中创建一个函数,该函数将返回一个随机的 IPoint 特征,该特征应该在一个选定的多边形内,但我对如何进行完全着迷。

理想情况下,函数的定义如下:

public IPoint Create_Random_Point(IGeometry inGeom)
4

2 回答 2

1

有一个名为 CreateRandomPoints 的地理处理工具,可用于在特定边界内生成点(例如在窗口范围内、多边形内或沿线)。看一看:

http://resources.arcgis.com/en/help/arcobjects-java/api/arcobjects/com/esri/arcgis/geoprocessing/tools/datamanagementtools/CreateRandomPoints.html

地理处理工具很容易在 arcobjects 代码中实现,但有时执行起来会有点慢。

于 2013-12-02T12:08:47.103 回答
-1

只是为了将来参考,我创建了一个自定义函数,试图在 polgon 的范围内找到一个随机点。

 private double GetRandomDouble(double Min, double Max)
        {
            //TODO:
            // seed
            Random random = new Random();
            return random.NextDouble() * (Max - Min) + Min;
        }



private IPoint Create_Random_Point(IGeometry inGeom)
        {

                double x = GetRandomDouble(inGeom.Envelope.XMin, inGeom.Envelope.XMax);
                double y = GetRandomDouble(inGeom.Envelope.YMin, inGeom.Envelope.YMax);


                IPoint p = new PointClass();
                p.X = x;
                p.Y = y;

                return p;
        }
于 2013-12-02T13:04:13.717 回答