2010-06-30 4 views
5

Suchen Sie nach Ressourcen, so viel wie möglich. Ich habe eine schöne, einfache Silverlight-basierte Bing Maps-Anwendung, die Pins in die Karte steckt. Jetzt habe ich viele Pins, stattdessen möchte ich Heat Maps im Handumdrehen erstellen. Ich versuche nach Quellen zu suchen, die erklären, wie man das macht, aber ich kann nichts finden.Erstellen von Heat Maps für die Silverlight-Anwendung von Bing Maps

Also, irgendwelche Ideen?

Antwort

5

Sie werden wahrscheinlich nicht viel zu tun haben.

Ein schneller Weg, um die Heatmap zu erstellen, wäre, den Pin als einen Kreis mit einem Hintergrund mit einem Transparenzgradienten, vollständig transparent auf der Kante und mittlere Transparenz auf der anderen Seite zu reskin. Wenn sich die Kreise stapeln, wird die Farbe intensiver. Dies ist eine gute Idee,

EDIT

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

Und die <m:Pushpin ... /> von

<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

Warum auf der Erde habe ich nicht daran gedacht? Manchmal kann ich erstaunlich dick sein. Obwohl ich nach Code Ausschau halte, bin ich immer noch neu im XAML/Silverlight/WPF-Spiel. > _ < –

+0

Das ist eine gute Idee. Es würde für einfache Lösungen funktionieren. Wenn Sie jedoch eine TON-Datenmenge haben, müssen Sie dennoch Bilder generieren, die mithilfe eines TileSource-Steuerelements angezeigt werden. –

0

ersetzt und es funktioniert super für eine monochrome Heatmap. Wie Johan sagte, die Farbintensität addiert sich, wenn sich die Kreise überlappen. Ich füge meinen Code hinzu. Hier ist der Code, den ich verwenden ...

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

... Ich bin sehr daran interessiert, wie diese zu erweitern, um eine mehrfarbige Heatmap, die von ‚cool‘ Farben ‚heiße‘ Farben geht. Im Moment sehe ich nicht, wie das geht. Dieser Artikel (http://mapsys.info/44010/heat-mapping-crime-data-with-bing-maps-and-html5-canvas/) hat eine Idee für Javascript in einem HTML5-kompatiblen Browser. Ich weiß nicht, wie ich das in Silverlight übersetzen soll.