Bing Maps Tutorial #1 – Account und ein erstes Hello Bing Maps World

Von Mario Meir-Huber Autor Feed 23. March 2010 00:37

Bing Maps wächst derzeit enorm in der Bedeutung. Besonders durch die Integration von Deep Zoom (Silverlight) und PhotoSynth hat Bing Maps starkes Aufsehen erregt. Doch auch für Software Entwickler kann Bing Maps sehr interessant sein. In dieser Tutorial Serie, welche mit “bingmaps tutorial” getagged ist, kann man sich durch sämtliche Posts durchklicken.

Mit diesem Artikel wollen wir uns ansehen, wie man die Bing Maps verwenden kann. Bevor wir starten ist jedoch noch ein Account bei Bing notwendig.

Einen Bing Maps Account kann man unter der Adresse https://www.bingmapsportal.com/ einrichten. Hierfür benötigt man eine gültige Windows Live ID. Im nächsten Schritt hat man bereits einen Account Key und man kann die SDK Tools verwenden.

image

Um die Bing Maps in Silverlight zu verwenden, muss vorher das Control geladen werden. Dies kann man unter http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=beb29d27-6f0c-494f-b028-1e0e3187e830 downloaden.

Das Control kann man nun auch bereits sehr einfach in Silverlight verwenden. Hierfür muss man lediglich 3 Dinge erledigen:

1. Das Assembly in das Projekt und der XAML-Deklaration einfügen
2. Die Credentials setzen
3. Die Karte anzeigen

Schritt 1: Referenzen hinzufügen

image

Wenn man das Control eingefügt hat, kann es auch schon richtig los gehen. Damit das Control nun auch angezeigt werden kann, wollen wir den Namespace in XAML einfügen.

<UserControl x:Class="_01___Silverlight_Sample.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:bing="clr-namespace:Microsoft.Maps.MapControl;assembly=Microsoft.Maps.MapControl"
    mc:Ignorable="d"
    d:DesignHeight="600" d:DesignWidth="600">

 

HINWEIS: Für das Beispiel wurde Silverlight 4 verwendet, es kann bei älteren Versionen etwas anders aussehen!

Im nächsten Schritt erstellen wir 2 Reihen (RowDefinitions) für die Anwendung, damit wir einige Steuerelemente und das Control in der Anwendung platzieren können. Das Control selbst kann jetzt sehr einfach mit “bing:Map” angesprochen werden.

        <Grid.RowDefinitions>
            <RowDefinition Height="100" />
            <RowDefinition />
        </Grid.RowDefinitions>
        
        <bing:Map Grid.Row="1" />

Führt man nun die Anwendung aus, so hat man auch schon gleich ein erstes Ergebnis. Was jedoch noch stört ist dieser Schriftzug in der Mitte, der die nicht gesetzten Credentials erwähnt. Spätestens beim Kunden würde dies zu Problemen führen ;).

image

Damit man dieses Problem umgeht, setzen wir in den Ressourcen des UserControls noch einen Credentials Provider.

    <UserControl.Resources>
        <bing:ApplicationIdCredentialsProvider x:Key="BingStorageCred" ApplicationId="VIEL_ZU_LANGER_WERT_DER_HIER_SONST_STEHT_!!!" />
    </UserControl.Resources>

In der Karte (Map) muss man diese Credentials nun nur noch setzen:

<bing:Map Grid.Row="1" CredentialsProvider="{StaticResource BingStorageCred}" />

Alternativ kann man die Credentials auch im CredentialsProvider angeben. Sollte man jedoch mehr Controls verwenden, welche die Credentials brauchen, so ist dies nicht von Vorteil. Nun kann der Entwicklung mit dem Control nichts mehr im Wege stehen.

Mario Meir-Huber

Web: www.meirhuber.de

Twitter: www.twitter.com/mario_mh

Comments (1) -

>

3/23/2011 10:02:31 AM #

Super Guide!! Hätte aber eine Frage: Gibt es noch irgendeinen Trick um die map im Visual Studio im Debug Modus anzuzeigen? Dort sehe ich nämlich nur die Pan- und Zoom Controls aber keine Map.
Bei der Entwicklung sehe ich die map allerdings.
Beim Holen eines Keys wird ja nach der Applikation und der URL gefragt. Muss man da auf irgendwas aufpassen?
XAML:
<UserControl x:Class="BingSilverlightApp1.MainPage"
    xmlns="schemas.microsoft.com/.../presentation";
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml";
    xmlns:d="schemas.microsoft.com/expression/blend/2008";
    xmlns:mc="schemas.openxmlformats.org/.../2006";
    xmlns:bing="clr-namespace:Microsoft.Maps.MapControl;assembly=Microsoft.Maps.MapControl"
    mc:Ignorable="d"
    dLaughingesignHeight="500" dLaughingesignWidth="700">

    <UserControl.Resources>
        <bing:ApplicationIdCredentialsProvider x:Key="BingStorageCred"  ApplicationId="Auv46xzfC1hRqWvr97q1TGRZJ_oi-8pjYxTlueQcbYEc2kK_U8asPi5HXM7GsZr4" />
    </UserControl.Resources>

    <Grid x:Name="LayoutRoot" Background="White">

        <Grid.RowDefinitions>
            <RowDefinition Height="100" />
            <RowDefinition />
        </Grid.RowDefinitions>

        <bing:Map Grid.Row="1" CredentialsProvider="{StaticResource BingStorageCred}" />
    </Grid>
</UserControl>

Wolfgang Scheer Österreich

Add comment

  Country flag

biuquote
  • Comment
  • Preview
Loading

www.microsoft.com/austria | © 2009 Microsoft Corporation. Alle Rechte vorbehalten.
BlogEngine.NET 2.5.0.6 powered by atwork