Language: HTML | XAML

Schnellstart: Feststellen des Benutzerstandorts (XAML)

Applies to Windows and Windows Phone

In diesem Thema wird erläutert, wie der geografische Standort ermittelt wird.

Roadmap: Wie hängt dieses Thema mit anderen zusammen? Informationen finden Sie unter:

Ziel: Nach Abschluss dieser Schnellstartanleitung wissen Sie, wie Sie eine einfache App erstellen, die den aktuellen geografischen Standort von Benutzern bestimmt.

Voraussetzungen

Sie sollten mit XAML, Visual C# und Ereignissen vertraut sein.

Der Zugriff auf den Standort muss auf dem Gerät aktiviert werden.

Zeitaufwand: 20 Minuten.

Anweisungen

1. Öffnen von Microsoft Visual Studio

Öffnen Sie Visual Studio.

2. Erstellen eines neuen Projekts

Erstellen Sie ein neues Projekt, und wählen Sie aus den Projekttypen unter Visual C# > Store den Typ Anwendung aus.

3. Aktivieren der Positionsfunktion

Öffnen Sie die Datei Package.appxmanifest Ihres Projekts, zeigen Sie die Registerkarte Capabilities an, und aktivieren Sie das Kontrollkästchen für die Funktion Standort.

4. Ersetzen des C#-Codes

Öffnen Sie die Datei MainPage.xaml.cs des Projekts, und ersetzen Sie den vorhandenen Code durch den folgenden Code.


using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;
using Windows.Devices.Geolocation;

// The Blank Page item template is documented at http://go.microsoft.com/fwlink/p/?LinkID=234238

namespace App1
{
    /// <summary>
    /// An empty page that can be used on its own or navigated to within a Frame.
    /// </summary>
    public sealed partial class MainPage : Page
    {
        Geolocator geo = null;
        public MainPage()
        {
            this.InitializeComponent();
        }
    
        private async void button1_Click(
            object sender, RoutedEventArgs e)
        {
            if (geo == null)
            {
                geo = new Geolocator();
            }

            Geoposition pos = await geo.GetGeopositionAsync();
            textLatitude.Text = "Latitude: " + pos.Coordinate.Point.Position.Latitude.ToString();
            textLongitude.Text = "Longitude: " + pos.Coordinate.Point.Position.Longitude.ToString();
            textAccuracy.Text = "Accuracy: " + pos.Coordinate.Accuracy.ToString();
        }

    }
}



Sie müssen den Namespace im vorhergehenden Codeausschnitt durch den Namen ersetzen, den Sie für Ihr Projekt angegeben haben. Wenn Sie z. B. ein Projekt mit dem Namen GeolocationSample erstellt haben, ersetzen Sie namespace App1 durch namespace GeolocationSample.

5. Ersetzen des XAML-Codes

Öffnen Sie die Datei MainPage.xaml, und kopieren Sie den folgenden XML-Code in die Datei (ersetzen Sie den ursprünglichen Inhalt).


<Page
    x:Class="App1.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:App1"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">

    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
        <Button Content="Get Location Async" Click="button1_Click" 
            HorizontalAlignment="Left" Margin="11,164,0,0" Name="button1" VerticalAlignment="Top" />
        <TextBlock Margin="14,220,0,0" Text="Latitude" Name="textLatitude" />
        <TextBlock Margin="14,260,0,0" Text="Longitude" Name="textLongitude" />
        <TextBlock Margin="14,300,0,0" Text="Accuracy" Name="textAccuracy" />

    </Grid>
</Page>


Sie müssen den ersten Teil des Klassennamens im vorhergehenden Codeausschnitt durch den Namespace Ihrer App ersetzen. Wenn Sie z. B. ein Projekt mit dem Namen GeolocationSample erstellt haben, ersetzen Sie x:Class="App1.MainPage" durch x:Class="GeolocationSample.MainPage". Außerdem sollten Sie xmlns:local="using:App1" durch xmlns:local="using:GeolocationSample" ersetzen.

6. Erstellen der App

Klicken Sie auf Erstellen > Projektmappe erstellen, um das Projekt zu erstellen.

7. Testen der App

  1. Klicken Sie im Menü Debuggen auf Debugging starten, um die Projektmappe zu testen.
  2. Wenn Sie das Beispiel in Windows zum ersten Mal ausführen, werden Sie gefragt, ob die App Ihre Position verwenden darf. Wählen Sie die Option Zulassen aus.
  3. Klicken Sie auf die Schaltfläche Get Location, um die aktuelle Position abzurufen.

Hinweis  Wenn keine Standortdaten angezeigt werden, überprüfen Sie Folgendes:
  • Vergewissern Sie sich, dass Sie Zugriff auf Standortdaten haben, indem Sie im Projektmappen-Explorer die Datei package.appxmanifest öffnen und die Option Standort auf der Registerkarte Funktionen überprüfen.
  • In Windows hat die App, falls die Positionsdienste von einem Administrator deaktiviert wurden, keinen Zugriff auf die Position des Benutzers. Öffnen Sie in der Systemsteuerung die Option "Standorteinstellungen ändern", und überprüfen Sie, ob Plattform für Windows-Position aktivieren aktiviert ist.
  • In Windows Phone kann der Benutzer die Position in der App "Einstellungen" deaktivieren. Navigieren Sie zur App "Einstellungen", wählen Sie Ortung aus, und stellen Sie sicher, dass der Schalter für Ortungsdienste aktiviert ist.

Zusammenfassung

Im vorherigen Beispiel wird gezeigt, wie wenig Code Sie schreiben müssen, um den geografischen Standort in eine App zu integrieren.

Die App führt eine asynchrone Abfrage durch, um die geografischen Daten in der button1_Click-Methode abzurufen. Dies findet in der folgenden Zeile statt.


            Geoposition pos = await geo.GetGeopositionAsync();

Die neuen Geolocationdaten werden in den folgenden Zeilen erfasst.


            textLatitude.Text = "Latitude: " + pos.Coordinate.Point.Position.Latitude.ToString();
            textLongitude.Text = "Longitude: " + pos.Coordinate.Point.Position.Longitude.ToString();
            textAccuracy.Text = "Accuracy: " + pos.Coordinate.Accuracy.ToString();

Diese neuen Werte werden in die drei "TextBlock"-Abschnitte im XAML des Projekts geschrieben.


        <TextBlock Margin="14,220,0,0" Text="Latitude" Name="textLatitude" />
        <TextBlock Margin="14,260,0,0" Text="Longitude" Name="textLongitude" />
        <TextBlock Margin="14,300,0,0" Text="Accuracy" Name="textAccuracy" />

Verwandte Themen

Geolocation-Beispiel
Bing Maps-SDK – Beispiele
Windows.Devices.Geolocation
Richtlinien für die Verwendung von sensiblen Geräten
Roadmap für das Erstellen von Apps mit C#, C++ oder VB

 

 

Anzeigen:
© 2015 Microsoft