使用GraphicsPath在地图图像上绘制道路

时间:2013-01-27 17:02:27

标签: c# .net map overlay graphicspath

我有一个应用程序(WinForms C#),允许用户绘制一条线(自由绘图)来突出显示从谷歌地图中获取的位图感兴趣的道路。

我正在使用Mouse Down / Move / Up事件向GraphicsPath对象添加点。这适用于直线延伸道路,只能用两点表示。但是当鼠标按下按钮长时间转动时,会产生大量的点数据。

这不仅效率低,而且是绘制曲线的笨重方式(特别是当缩放级别太低时)。

问题:

  • 路径完成后,如何以编程方式减少点数而不会失去准确性。
  • 是否有更好的方法使用某种形式的几何构造来捕获点信息?

1 个答案:

答案 0 :(得分:2)

减少多边形曲线中点数的常用方法是Ramer–Douglas–Peucker algorithm。它非常适合减少地图绘制中的点数,例如路线。