我开发了一款可从GPS设备接收GPS位置的应用。 这部分还可以。
在我的应用程序中,我得到了一个Polygon列表,我想测试我的位置巫婆多边形中的每个位置。
我的多边形是文本格式:" 30.5,15.6; 25.4,15; ..."
我问巫婆librairie我可以用来确定我的GPS位置是否是多边形。
要做到这一点,我已经添加了对System.Spatial的引用,但我不知道如何创建一个新的GeometryPolygon和我可以使用的方法来确定我的点是否在多边形中。
答案 0 :(得分:0)
如果在 2D 中工作得足够好,您可以使用GraphicsPath
中的System.Drawing.Drawing2D
。
这是在GraphicsPath
应用程序中使用Console
的最小示例:
using System.Drawing;
using System.Drawing.Drawing2D;
class Program
{
static void Main(string[] args)
{
List<PointF> points = new List<PointF>();
points.Add(new PointF(30.5f, 15.6f));
points.Add(new PointF(25.4f, 5f));
points.Add(new PointF(0, 20));
float y = 11f;
for (int x = 0; x < 30; x++)
if (IsInPolygon(points, new PointF(x, y)))
Console.WriteLine("(" + x + ", y) is inside");
Console.ReadLine();
}
public static bool IsInPolygon(List<PointF> points, PointF location)
{
using (GraphicsPath gp = new GraphicsPath())
{
gp.AddPolygon(points.ToArray());
return gp.IsVisible(location);
}
}
}
您还需要添加对System.Drawing
的引用。