【问题标题】:Creating Heat Maps for Bing Maps' Silverlight application为 Bing Maps 的 Silverlight 应用程序创建热图
【发布时间】:2010-06-30 13:25:19
【问题描述】:

尽可能多地寻找资源。我有一个不错的、简单的基于 Silverlight 的 Bing 地图应用程序,可以将图钉放入地图中。现在我有很多图钉,我想即时创建热图。我正在尝试寻找解释如何解决此问题的资源,但找不到任何东西。

那么,有什么想法吗?

【问题讨论】:

    标签: c# silverlight bing-maps


    【解决方案1】:

    你可能不会有太多事情要做。

    生成热图的一种快速方法是将图钉重新设置为一个圆形,该圆形填充了具有透明度渐变的背景,边缘完全透明,另一边为中等透明度。随着圆圈的叠加,颜色会更加强烈。

    编辑

    http://www.microsoft.com/maps/isdk/silverlight/#MapControlInteractiveSdk.Tutorials.TutorialCustomPushpin

    并将<m:Pushpin ... /> 替换为

    <Ellipse Width="40" Height="40" m:MapLayer.Position="48.8,2.1" m:MapLayer.PositionOrigin="Center">
      <Ellipse.Fill>
        <RadialGradientBrush>
          <GradientStop Color="#7FFF0000" Offset="0"/>
          <GradientStop Offset="1"/>
        </RadialGradientBrush>
          </Ellipse.Fill>
        </Ellipse>
    

    【讨论】:

    • 我怎么没想到呢?有时我可以非常厚。虽然我会留意代码,但我还是 XAML/Silverlight/WPF 游戏的新手。 >_
    • 这是个好主意。它适用于简单的解决方案。但是,如果您有大量数据,那么您仍然需要以某种方式生成图像以使用 TileSource 控件显示。
    【解决方案2】:

    这是个好主意,它适用于单色热图。正如约翰所说,颜色强度随着圆圈重叠而增加。我正在从代码中添加我的。这是我使用的代码...

    Ellipse e = new Ellipse() { MaxWidth = 40, MaxHeight = 40 };
            e.Width = 40;
            e.Height = 40;
            e.Fill = new RadialGradientBrush(Color.FromArgb(128, 255, 0, 0), Color.FromArgb(0, 0, 0, 0));
    

    ...我对如何将其扩展到从“冷”色到“热”色的多色热图非常感兴趣。目前我不知道该怎么做。这篇文章 (http://mapsys.info/44010/heat-mapping-crime-data-with-bing-maps-and-html5-canvas/) 对 HTML5 兼容浏览器中的 javascript 有一个想法。我不知道如何将它翻译成 Silverlight。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多