我现在刚好在开发 跟mapinfo的buffer功能一样,在添加一条路线后,对路线进行按 指定的 宽度进行扩充范围,得到扩充后的路线扩充点(该扩充点按顺序排,形成一个区域), 不知道哪位高手有没有做过类似的算法。 。 

解决方案 »

  1.   

    呵呵 虽然不清楚mapinfo的buffer是什么样子的 但是如果单纯的想扩充一个路线 使用gdi+比较方便,
    正好这两天都在弄这个方面的东西。
    参考图:网 址:http://msdn.microsoft.com/en-us/library/ms535572(VS.85).aspx我想你是想通过将路径加宽后判断某些地理位置是否在这个范围当中。上面GDI+的方法可以保证将路径扩充开来。
    形成的是一个GraphicsPath,通过GraphicsPath或者建立Region,通可以判断点是否是在这个范围当中。另外你说“扩充点按顺序排”,不清楚具体的排列是什么样子的,但是通过GraphicsPath的GetPathData方法
    可以得到的是一个PathData类型变量,里面是描述这条路径的所有点,在这个变量的Points数组中(是有顺序的)。使用上面所说的方法的过程当中是否需要进行经纬度与屏幕坐标的转换,考虑到精度的问题,楼主需要多考虑一些。