2010-06-30 29 views
5

En busca de recursos tanto como cualquier cosa. Tengo una aplicación agradable, simple basada en Silverlight de Bing Maps que pone los alfileres en el mapa. Ahora que tengo muchos pines, me gustaría crear mapas de calor sobre la marcha. Estoy tratando de buscar recursos que expliquen cómo hacer esto, pero no puedo encontrar nada.Creación de mapas de calor para la aplicación Silverlight de Bing Maps

¿Alguna idea?

Respuesta

5

Probablemente no tenga mucho que hacer.

Una forma rápida de generar el mapa de calor sería volver a dibujar la chincheta como un círculo lleno de un fondo con un degradado de transparencia, completamente transparente en el borde y transparencia media en el otro. A medida que los círculos se acumulan, el color será más intenso.

EDITAR

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

y colocación de la <m:Pushpin ... /> por

<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> 
+0

¿Por qué demonios no pensé en eso? A veces puedo ser increíblemente grueso. Aunque estaré atento al código, todavía soy nuevo en el juego XAML/Silverlight/WPF. > _ < –

+0

Esta es una buena idea. Funcionaría para soluciones simples. Sin embargo, si tiene una TONELADA de datos, entonces aún necesitará generar imágenes de alguna manera para mostrarlas utilizando un control TileSource. –

0

Ésta es una buena idea y funciona muy bien para un mapa de calor monocromo. Como dijo Johan, la intensidad del color se agrega a medida que los círculos se superponen. Estoy agregando el mío desde el código. Aquí está el código que utilicé ...

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)); 

... Estoy muy interesado en la forma de extender esto a un mapa de calor de múltiples colores que va desde los colores 'cool' a colores 'calientes'. Por el momento no veo cómo hacer eso. Este artículo (http://mapsys.info/44010/heat-mapping-crime-data-with-bing-maps-and-html5-canvas/) tiene una idea para javascript en un navegador compatible con HTML5. No sé cómo traducir eso a Silverlight.

Cuestiones relacionadas