簡體   English   中英

在C#中使用arcobjects在多邊形內創建隨機點?

[英]Create a random point within a polygon using arcobjects in C#?

我試圖在C#中創建一個函數,該函數將返回一個隨機的IPoint功能,該功能將在選定的多邊形內,但是我對如何進行操作完全滿意。

理想情況下,該函數的定義應如下所示:

public IPoint Create_Random_Point(IGeometry inGeom)

有一個名為CreateRandomPoints的地理處理工具,可用於生成特定邊界內的點(例如,在窗口范圍內,多邊形內或沿線)。 看一看:

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

地理處理工具相當容易實現到arcobjects代碼中,但是有時執行起來會有些慢。

僅供以后參考,我創建了一個自定義函數,該函數嘗試在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;
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM