优化地图绘制

时间:2009-11-29 19:32:35

标签: c# map gdi+ drawing points

我在优化绘制类似谷歌的地图时遇到了问题。它适用于数百个点,但是当涉及到数千个更大的数量时,它会变得模糊和缓慢。也是unzoomed它看起来很奇怪。

我想知道如何优化绘图算法以绘制更少的地方,因此它看起来像是在谷歌地图上消失。

但是我也在地方之间绘制链接,我无法对其进行优化。

请发布您能想到的任何内容,我必须完成并明天发送。

以下是它的样子:

zoomed in zoomed out

3 个答案:

答案 0 :(得分:1)

以下是两个想法:

  1. 我们在地图上绘制的每个对象在数据库中都有一个额外的值,即“缩放级别”。当放大额外项目时,将根据该值显示。

  2. 第二种方法是使用分组。如果项目开始重叠,则显示[10项]的一个点。放大时仅显示其下方的项目。

答案 1 :(得分:0)

一些提示:

  1. 剪辑区域,仅在剪辑区域中绘制点
  2. 您可以查看opensource GIS项目,了解它们如何优化绘图。

答案 2 :(得分:0)

我想我会想要不画一条比阈值短的线(我的意思是这就视口而言,而不是绝对距离术语)。这意味着当地图缩小时,您将获得较少的绘制并且地图看起来不那么繁忙,并且当地图放大时,这些附近点之间的线将变得可见。编辑:实际上,再考虑一下,我想我只会在屏幕上有大量的行时应用这个长度限制 - 或者让长度阈值与屏幕上的行数一致。

我想我也不会想要从屏幕外的点(视口外)绘制线条,或者至少在离屏幕很远的地方(远离视口中心的阈值)绘制线条。我建议先尝试这个改变。

这些变化可能看起来像是隐藏信息(他们会),但是,就目前而言,地图非常繁忙,无论如何,这些信息几乎无用。