Allgemein


Erstellen interaktiver Landkarten mit MapPoint .NET
Veröffentlicht: 28. Nov 2002 | Aktualisiert: 21. Jun 2004
Von Michael Hedley

In diesem Artikel erfahren Sie mehr über den Einsatz der HotArea-Funktion von MapPoint .NET, um diese Funktionalität in Ihre Anwendung integrieren zu können. Wir verwenden einfache ASP.NET-Beispiele basierend auf HTML-Bildlandkarten und erläutern ein Verfahren zum Erstellen einer interaktiven Landkarte. Abgesehen davon werden weitere Vorschläge zum Einsatz von Microsoft Visual Basic® .NET oder Microsoft Visual C#T .NET vorgestellt.

Auf dieser Seite

 Einführung
 Anforderungen
 Pin-Übersicht
 Definition von HotAreas
 Erstellen einer einfachen interaktiven Landkarte in ASP.NET
 Zusammenfassung

Einführung

Das Erstellen von qualitativ hochwertigen Landkarten mit dem XML-Webdienst von Microsoft® MapPoint® .NET ist eine ausgezeichnete Möglichkeit geografische Anwendungen aufzubauen. Viele Anwendungen verlangen jedoch mehr Benutzerinteraktion als durch eine statische Landkarte auf einem Formular oder durch eine Webseite verfügbar wäre. Wenn Sie beispielsweise Benutzern die Möglichkeit bieten wollen, auf einen Punkt der Landkarte zu klicken und dabei eine Reaktion auf diese Eingabe auszulösen. In diesem Artikel erfahren Sie mehr über den Einsatz der HotArea-Funktion von MapPoint .NET, um diese Funktionalität in Ihre Anwendung integrieren zu können. Wir verwenden einfache ASP.NET-Beispiele basierend auf HTML-Bildlandkarten und erläutern ein Verfahren zum Erstellen einer interaktiven Landkarte. Abgesehen davon werden weitere Vorschläge zum Einsatz von Microsoft Visual Basic® .NET oder Microsoft Visual C#T .NET vorgestellt.

Anforderungen

  • Microsoft MapPoint .NET Basic Services 2.0

  • Microsoft Visual Studio® .NET

Pin-Übersicht

Pins sind kleine Symbole mit optionalen Textbeschriftungen zur Identifizierung von Schlüsselfunktionen oder geografischen Standorten auf Landkarten, die mit MapPoint .NET generiert wurden. Pins werden im Allgemeinen zur Standortangabe von interessanten Punkten auf einer Landkarte, wie beispielsweise Restaurants und Hotels, aber auch zum Angeben der Schlüsselkoordinaten von Längen- und Breitengraden auf einer gerenderten Landkarte verwendet.

In MapPoint .Net werden Pins mit dem Objekt Pushpin erstellt. Dieses Objekt enthält folgende Elemente:

Pin-Elemente

Beschreibung

HotArea

Eine Boolesche Variable, die angibt, ob Hotarea-Informationen für den Pin zurückgegeben werden sollen, wenn eine Landkarte gerendert wird.

IconDataSource

Eine Zeichenfolgevariable, die die Datenquelle mit dem gewünschten Symbol angibt.

IconName

Eine Zeichenfolge, die den Namen des anzuzeigenden Symbols angibt.

Label

Eine Zeichenfolgevariable, die den Text enthält, der als Beschriftung des Pins angezeigt werden soll.

LatLong

Längen- und Breitengradkoordinaten der gewünschten Pin-Position.

PinID

Eine Zeichenfolgevariable, die zur Identifizierung des Pins dient.

Pixel

Die Pixelkoordinatendarstellung der gewünschten Pin-Position.

Einzelheiten zum Objekt Pushpin und seinen Elementen finden Sie im MapPoint .NET Basic Services Software Development Kit (SDK) (englischsprachig) auf der MSDN®-Website.

Sie rendern Pins auf einer Landkarte, indem Sie ein optionales Array aus bis zu 100 Pins an die folgenden MapPoint .NET-Darstellungsmethoden übergeben: GetMap, GetRouteMap und GetBoundingMap. Für jeden Pin im Array rendert MapPoint .NET das angegebene Pin-Symbol an der Position, die in der Eigenschaft LatLong oder Pixel angeben wurde. Wenn Sie einen Wert für Label angegeben haben, wird die entsprechende Beschriftung in der Nähe des Symbols gezeichnet. Die Ausrichtung der Beschriftung hängt davon ab, wie viel Raum in der Umgebung des Pins zur Verfügung steht.

Anmerkung: Nur Pins, die sich innerhalb der geografischen Begrenzung der aktuellen Landkartenansicht befinden, werden auf der Landkarte angezeigt. Beim Schwenken oder Vergrößern/Verkleinern der Landkarte werden deshalb einige Pins aus der Ansicht entfernt oder zu dieser hinzugefügt.

Die Eigenschaft PinID wird zum Identifizieren eines bestimmten Pins verwendet. Wie an späterer Stelle in diesem Artikel deutlich wird, ist die PinID beim Einsatz von Hotareas in Anwendungen wichtig. Sie können mit dem Inhalt der Eigenschaft PinID die Aktion festlegen, die ausgeführt werden soll, wenn ein Benutzer auf einen Pin oder seine Beschriftung klickt.

Tipp: Die Eindeutigkeit der PinID wird von MapPoint .NET nicht erzwungen, weil in manchen Szenarien für eine Gruppe von Symbolen eine gemeinsame PinID verwendet werden soll. Beispielsweise könnten Sie für alle Pins vorgeben, die Restaurants einer bestimmten Kategorie darstellen, dass auf eine Benutzerinteraktion hin die gleiche Aktion erfolgt. In diesem Szenario verwenden Sie die gleiche PinID für alle Pins, die ein Restaurant jener Kategorie darstellen.

Definition von HotAreas

Wie bereits im vorangegangenen Abschnitt erwähnt, wird eine der optionalen Eigenschaften des Objekts Pushpin als HotArea bezeichnet (siehe Abbildung 1). Die Hotarea-Informationen werden bei Anforderung im Objekt MapImage.ActiveArea zurückgegeben. ActiveArea ist ein Array aus HotArea-Objekten. Diese Objekte stellen die Pins aus dem Landkartenausschnitt dar, für den Pushpin.HotArea = true gilt. Jedes Objekt HotArea enthält die folgenden Eigenschaften:

Eigenschaft

Beschreibung

IconRectangle

Ein Objekt PixelRectangle, das die Größe des Pin-Symbols definiert.

LabelRectangle

Ein Objekt PixelRectangle, das die Größe der Pin-Beschriftung definiert.

PinID

Eine Zeichenfolgevariable, die zum Identifizieren des Pins verwendet wird.

PixelRectangle-Objekte bestehen aus Eigenschaften, die die Pixelposition für bottom (unten), left (links), right (rechts) und top (oben) eines Rechtecks angeben. Die gelben Rechtecke in der folgenden Abbildung zeigen die ungefähre Größe und Form von IconRectangle und LabelRectangle des Pins, der auf der Landkarte dargestellt wird.

Bild01

Abbildung 1. Hotareas für einen typischen Pin

Tipp: Es kommt vor, dass ein Pin-Symbol auf der Landkarte angezeigt wird, die Beschriftung sich jedoch teilweise oder vollständig außerhalb des Landkartenausschnitts befindet. In diesen Fällen enthält LabelRectangle möglicherweise keine Pixelkoordinaten, Koordinaten, die größer als die Abmessungen des Bildes sind, oder negative Werte.

Wenn Sie eine Anwendung mit Hotareas schreiben, führen Sie normalerweise einen Loopthrough für die Sammlung der HotArea-Objekte im Array MapImage.ActiveArea durch, das mit jedem Landkartenbild zurückgegeben wird. Zusätzlich definieren Sie eine Aktion, die auftreten soll, wenn ein Benutzer in den Hotarea-Bereich klickt. Im Folgenden, sehr häufig auftretendem Szenario wird eine HTML-Bildlandkarte erstellt, die auf dem Pin-Symbol und der Beschriftung der Hotareas basiert.

Tipp: Die Reihenfolge der HotAreas im Array ActiveArea entspricht im Allgemeinen nicht der Reihenfolge, in der die Pins an die Methode Render übergeben wurden. Es kann sogar vorkommen, dass einige Pins nicht vorhanden sind, wenn sich diese außerhalb des Landkartenausschnitts befinden. Verwenden Sie die im Objekt HotArea zurückgegebene PinID, um den Pin zu identifizieren, der dem jeweiligen Objekt HotArea entspricht.

Erstellen einer einfachen interaktiven Landkarte in ASP.NET

In diesem Abschnitt wird eine einfache ASP.NET-Anwendung beschrieben, die Hotareas zum Erstellen einer HTML-Bildlandkarte verwendet. Die Anwendung besteht aus zwei ASPX-Seiten (HotAreas.aspx und MapFromSession.aspx), aus deren Kombination eine Webseite entsteht. Diese Webseite beinhaltet eine Landkarte, auf der sechs Ziele angezeigt werden, die eine fiktive Fluggesellschaft mit Sitz in Omaha anfliegt. Der Zweck der Webseite besteht darin, Kunden der Fluggesellschaft Informationen für Vielflieger anzubieten.

Wenn ein Benutzer auf ein Pin-Symbol oder eine Beschriftung für einen der Zielflughäfen klickt, berechnet die Anwendung die Luftlinienentfernung zwischen Omaha und dem ausgewählten Ziel. Dem Kunden wird dann die Anzahl der Meilen zwischen den beiden Städten angezeigt. Diese Entfernung entspricht der Anzahl der Vielfliegerbonusmeilen, die für diesen Flugabschnitt gutgeschrieben werden.

Bevor näher auf die Programmierlogik der ASP-Hauptseite (HotAreas.aspx) eingegangen wird, ist es wichtig Einblick in die Funktion der zweiten Seite (MapFromSession.aspx) zu nehmen. Der Zweck dieser Seite besteht darin, einem Bildsteuerelement auf der Hauptseite Bilder bereitzustellen. Das Steuerelement verweist auf MapFromSession.aspx in dem URL, der in ihrer Eigenschaft src gespeichert ist.

Dies geschieht, indem die Landkarte aus einer ASP-Variablen Session gelesen wird, in der sie nach einem Aufruf von GetMap auf der Hauptseite gespeichert wurde. Anschließend wird die Methode Response.BinaryWrite zum Senden der Binärinformationen an das Bildsteuerelement auf der Hauptseite verwendet.

Es ist eine gängige Technik, eine zweite ASP-Seite zum Generieren von Landkartenbildern einzusetzen. Diese Technik wird ausführlicher unter dem Thema "Rendering Maps on a Web Page" im MapPoint .NET Basic Services SDK beschrieben. Der Code für die Seite MapFromSession.aspx (englischsprachig), die in den MapPoint .NET-Beispielen verwendet wird, kann auf der MSDN-Webseite angezeigt werden.

Die Hauptseite HotAreas.aspx enthält sehr einfachen HTML-Inhalt sowie eine Zusatzseite mit dem Namen HotAreas.aspx.cs. Der HTML-Inhalt umfasst eine Überschrift, die "Frequent Flyer Mileage Calculator" lautet, ein Bildsteuerelement für die Landkarte, ein Steuerelement literal, zum Anzeigen der berechneten Entfernung, zwischen der vom Benutzer ausgewählten Stadt und Omaha, sowie ein zweites Steuerelement literal, zum Schreiben des Landkartenbilds auf der HTML-Seite. Abbildung 2 zeigt, wie die Seite HotAreas.aspx im Webbrowser aussieht.

Bild02

Abbildung 2. Die von der Beispielanwendung generierte Webseite

Beachten Sie, dass die folgenden Bestimmungsorte auf der Landkarte durch Pins angegeben werden: Seattle, Winnipeg, Syracuse, Los Angeles, Dallas, Jacksonville und Omaha. Da mit Ausnahme von Omaha die Symbole und Beschriftungen aller Städte in der mit dem Bild verknüpften Bildkarte enthalten sind, können diese vom Benutzer angeklickt werden.

Wenn ein Benutzer auf eine dieser Städte klickt, wird die Seite mit dem gleichen Titel und der gleichen Landkarte erneut gezeichnet, wobei eine zusätzliche Textzeile unter der Landkarte die Entfernung zwischen der ausgewählten Stadt und Omaha angibt. Wenn der Benutzer z. B. auf das Pin-Symbol oder die Beschriftung für Dallas klickt, wird folgender Text unter dem Landkartenbild angezeigt.
Dallas is 597 miles from Omaha.
Der Code für die Seite HotAreas.aspx ist in der Zusatzseite HotAreas.aspx.cs enthalten. Die Programmierlogik für diese Beispielanwendung befindet sich in der Funktion Page_Load und in der benutzerdefinierten CreateImageMap-Funktion.

Die Funktion Page_Load wird bei jeder Anforderung der Seite aufgerufen. Da diese Anwendung nur aus einer einzigen ASP-Hauptseite und der sekundären Seite MapFromSession.aspx besteht, wird immer die gleiche Seite angefordert, wenn ein Benutzer auf eines der Symbole oder eine Beschriftung der Landkarte klickt. In der folgenden Funktion CreateImageMap enthält jeder URL, der einem Symbol oder einer Beschriftung in der Bildlandkarte zugeordnet ist, einen Wert city für die Abfragezeichenfolge, z. B. http://localhost/hotareas/hotareas.aspx?city=Seattle.

Bei der erstmaligen Anforderung der Seite HotAreas.aspx durch einen Benutzer ist die Abfragezeichenfolge leer. Folgen Anforderungen nach einer Benutzerinteraktion, enthält die Abfragezeichenfolge die PinID, die den Symbolen oder Beschriftungen entspricht, auf die der Benutzer geklickt hat.

Der folgende C#-Code zeigt die wichtigen Elemente der Funktion Page_Load. Beachten Sie, dass die gesamte Funktion in eine if-Anweisung eingeschlossen ist, die leere Abfragezeichenfolgen überprüft. Der oberste Codeblock, der einer leeren Abfragezeichenfolge entspricht, wird bei der ersten Seitenanforderung ausgeführt. In diesem Codeblock werden die Pins für jede Stadt erstellt und GetMap wird aufgerufen, um die Landkarte anzufordern. Die daraus entwickelte Landkarte wird in einer Variablen Session gespeichert und die Funktion CreateImageMap wird aufgerufen.

In dem nach der Interaktion des Benutzers mit der Landkarte ausgeführten zweiten Codeblock wird CreateImageMap zum erneuten Erstellen der Bildlandkarte aufgerufen. Außerdem wird eine switch-Anweisung basierend auf dem Wert der Abfragezeichenfolge zum Berechnen der entsprechenden Luftlinienentfernung verwendet. Die berechnete Entfernung wird dem Wert Text des Steuerelements myDistanceLiteral zugewiesen und anschließend auf der Webseite angezeigt.

private void Page_Load(object sender, System.EventArgs e)
{
  try
  {
    //NOTE: Error handling code has been omitted to simplify 
    //this example.
    //Check QueryString to see if this is the first request.
    if (Request.QueryString.Count == 0)
    {
        .
        .
        .
        //Create a pushpin for the headquarters in Omaha.
        myPushPins[0].IconName = "42";
        myPushPins[0].HotArea = false;
        myPushPins[0].PinID = "Omaha";
        myPushPins[0].Label = "[Omaha]";
        myPushPins[0].IconDataSource = "MapPoint.Icons";
        myPinLatLongs[0].Latitude = 41.2;
        myPinLatLongs[0].Longitude = -95.9;
        myPushPins[0].LatLong = myPinLatLongs[0];
        .
        .
        .
        //Create a pushpin for the Syracuse airport.
        myPushPins[6].IconName = "513";
        myPushPins[6].HotArea = true;
        myPushPins[6].PinID = "Syracuse";
        myPushPins[6].Label = "Syracuse";
        myPushPins[6].IconDataSource = "MapPoint.Icons";
        myPinLatLongs[6].Latitude = 43.1;
        myPinLatLongs[6].Longitude = -76.1;
        myPushPins[6].LatLong = myPinLatLongs[6];
        //A try-catch block around GetMap may be used 
        //to log failures.
        myMapImage = 
            renderService.GetMap(myView, myMapOptions, 
                                    myPushPins);     
        //Store the map in the Session.
        Session["myMapImage"] = myMapImage[0];
        //Create the image map on the HTML page.
        CreateImageMap("SystemMap", myMapImage[0]);
    } 
    //QueryString had values so a user has clicked 
    //a pushpin or label.
    else
    {
        .
        .
        .
        //Declare a variable to store the calculated great 
        //circle distances.
        double[] myReturnDistances;
        //GetGreatCircleDistances returns results in 
        //kilometers. The MilesPerKilometer constant is 
        //used to convert to miles.
        GeoConstants myGeoConstants = new GeoConstants();
        //Re-create the image map using the map image stored 
        //in the Session variable.
        CreateImageMap("SystemMap",
            (HotAreas.MapPointService.MapImage)
                Session["myMapImage"]);
        //Set the latitude and longitude for the Omaha 
        //headquarters.
        myLatLong[0].Latitude = 41.2;
        myLatLong[0].Longitude = -95.9;
        //Switch on the QueryString "city" value.
        switch (Request.QueryString[0])
        {
        case "Seattle":
        myLatLong[1].Latitude = 47.6;
        myLatLong[1].Longitude = -122.6;
        myReturnDistances = 
            commonService.GetGreatCircleDistances(myLatLong);
        myDistanceLiteral.Text = 
            "<H3>Seattle is <U>" + (myReturnDistances[0] * 
            myGeoConstants.MilesPerKilometer).ToString("F0",null)
            + "</U> miles from Omaha.</H3>";
        break;
        case "Los Angeles":
        myLatLong[1].Latitude = 34.0;
        myLatLong[1].Longitude = -118.4;
        myReturnDistances = 
            commonService.GetGreatCircleDistances(myLatLong);
        myDistanceLiteral.Text = 
            "<H3>Los Angeles is <U>" + (myReturnDistances[0] * 
            myGeoConstants.MilesPerKilometer).ToString("F0",null)
            + "</U> miles from Omaha.</H3>";
        break;
        case "Dallas":
        myLatLong[1].Latitude = 32.6;
        myLatLong[1].Longitude = -96.9;
        myReturnDistances = 
            commonService.GetGreatCircleDistances(myLatLong);
        myDistanceLiteral.Text = 
            "<H3>Dallas is <U>" + (myReturnDistances[0] * 
            myGeoConstants.MilesPerKilometer).ToString("F0",null)
            + "</U> miles from Omaha.</H3>";
        break;
        case "Jacksonville":
        myLatLong[1].Latitude = 30.4;
        myLatLong[1].Longitude = -81.8;
        myReturnDistances = 
            commonService.GetGreatCircleDistances(myLatLong);
        myDistanceLiteral.Text = 
            "<H3>Jacksonville is <U>" + (myReturnDistances[0] * 
            myGeoConstants.MilesPerKilometer).ToString("F0",null)
            + "</U> miles from Omaha.</H3>";
        break;
        case "Winnipeg":
        myLatLong[1].Latitude = 49.9;
        myLatLong[1].Longitude = -97.1;
        myReturnDistances = 
            commonService.GetGreatCircleDistances(myLatLong);
        myDistanceLiteral.Text = 
            "<H3>Winnipeg is <U>" + (myReturnDistances[0] * 
            myGeoConstants.MilesPerKilometer).ToString("F0",null)
            + "</U> miles from Omaha.</H3>";
        break;
        case "Syracuse":
        myLatLong[1].Latitude = 43.1;
        myLatLong[1].Longitude = -76.1;
        myReturnDistances = 
            commonService.GetGreatCircleDistances(myLatLong);
        myDistanceLiteral.Text = 
            "<H3>Syracuse is <U>" + (myReturnDistances[0] * 
            myGeoConstants.MilesPerKilometer).ToString("F0",null) 
            + "</U> miles from Omaha.</H3>";
        break;          
        }
    }
  }
  catch(System.Exception exception)
  {
          //Process and log exceptions thrown by the script.
  }
}

Für die Funktion CreateImageMap sind zwei Eingabeparameter erforderlich: eine Zeichenfolge, die den Namen der Bildlandkarte enthält und ein Objekt MapImage. Die Ausgabe aus CreateImageMap ist eine Zeichenfolge, die die HTML-Bildlandkarte darstellt, welche dem Element Text des Steuerelements myMapLiteral zugewiesen wurde. Wenn die Seite an den Webbrowser des Clients zurückgegeben wird, erscheint die daraus entwickelte Bildlandkarte als Teil der HTML-Seite.

Der C#-Code für CreateImageMap ist nachstehend aufgeführt. Die Funktion durchläuft das Array MapImage.ActiveArea in einer Schleife und erzeugt Rechtecke in der Bildlandkarte für Pin-Symbole und die Beschriftungen. Beachten Sie, dass die PinID aus jeder ActiveArea in die Abfragezeichenfolge für die URLs eingeschlossen ist, welche mit jedem der Bildlandkarte hinzugefügten Bereich verknüpft sind.

Tipp: Die Funktion CreateImageMap im folgenden Beispiel enthält keinen Code zur Fehlerbehandlung. Fehlerbehandlungs-Programmlogik sollte jedoch integriert werden, um Situationen zu behandeln, in denen sich die Beschriftung außerhalb des Landkartenausschnitts befindet und aus diesem Grund keine Hotarea-Werte zurückgibt.

private void CreateImageMap(string MapName, 
                            MapPointService.MapImage myImage)
{
   //NOTE: Error-handling code has been omitted to simplify
   //this example.
   //Begin building a string that will contain the 
   //image map text.
   string myImageMap = "<MAP NAME=\"" + MapName.ToString()
                        + "\">";
   //For each ActiveArea item, create two RECTs in the 
   //image map.
   for (int myCount = 0; myCount < myImage.ActiveArea.Length; 
        myCount++)
   {
    //Create a rectangle in the image map for the icon.
    myImageMap += "<AREA SHAPE=\"RECT\" COORDS=\"";
    myImageMap += 
    myImage.ActiveArea[myCount].IconRectangle.left.ToString()
    + ",";
    myImageMap += 
    myImage.ActiveArea[myCount].IconRectangle.top.ToString()
    + ",";
    myImageMap += 
    myImage.ActiveArea[myCount].IconRectangle.right.ToString()
    + ",";     
    myImageMap += 
    myImage.ActiveArea[myCount].IconRectangle.bottom.ToString()
    + "\"";
    myImageMap += 
    " href=\"http://localhost/hotareas/hotareas.aspx?city="
    + myImage.ActiveArea[myCount].PinID.ToString() + "\">";     
    //Create a rectangle in the image map for the label.
    //NOTE: This code does not check for labels that 
    //are out of view.
    myImageMap += 
    "<AREA SHAPE=\"RECT\" COORDS=\"";
    myImageMap += 
    myImage.ActiveArea[myCount].LabelRectangle.left.ToString()
    + ",";
    myImageMap += 
    myImage.ActiveArea[myCount].LabelRectangle.top.ToString()
    + ",";
    myImageMap += 
    myImage.ActiveArea[myCount].LabelRectangle.right.ToString()
    + ",";     
    myImageMap += 
    myImage.ActiveArea[myCount].LabelRectangle.bottom.ToString()
    + "\"";
    myImageMap += 
    " href=\"http://localhost/hotareas/hotareas.aspx?city=" 
    + myImage.ActiveArea[myCount].PinID.ToString() + "\">";
   }
   //Create the closing tag for the image map.
   myImageMap += "</MAP>";
   //Write the image map text to the Literal control.
   myMapLiteral.Text = myImageMap;
}

Diese einfache Anwendung, die auf HTML-Bildlandkarten basiert, zeigt eine Methode zur Verwendung von Hotareas in einer MapPoint .NET-Anwendung. Hotareas sind jedoch für viele weitere Anwendungsbereiche geeignet. Sie können Hotarea-Informationen z. B. für Landkarten verwenden, die auf Windows-Formularen in Visual Basic- und Visual C#-Anwendungen gerendert werden. In diesen Szenarien reagieren Sie auf Benutzerinteraktionen, indem Sie die Pixelkoordinaten abrufen, die den Punkt angeben, an dem der Benutzer auf die Landkarte geklickt hat. Anschließend werden diese Koordinaten mit dem Array aus HotArea-Objekten im Array ActiveArea verglichen. Als Ergebnis kann die Anwendung ermitteln, auf welchen Pin der Benutzer geklickt hat, und entsprechend reagieren.

Zusammenfassung

Mit MapPoint .NET können Sie Landkartenanwendungen auf einfache Weise Benutzerinteraktionen hinzufügen. Dieser Artikel hat die Grundlagen von Pins und ihrer Verwendung sowie die Funktion HotAreas von MapPoint .NET erläutert. Diese Funktion ermöglicht Ihnen das Erstellen von Anwendungen, die reagieren, wenn ein Benutzer auf ein Pin-Symbol oder eine Beschriftung klickt. Es wurde eine einfache ASP.NET-Webanwendung vorgestellt, die Hotareas in MapPoint .NET einsetzt, und Vorschläge für andere Einsatzmöglichkeiten von Hotareas unterbreitet.

Wann Sie Hotareas in Anwendungen optimal einsetzen, hängt von Ihren individuellen Benutzerszenarien ab. Mit dieser einfachen Funktion von MapPoint .NET können Sie sowohl Ihre Benutzerkenntnisse ausbauen als auch Ihre Landkartenanwendungen noch leistungsfähiger gestalten.


Page view tracker