Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ważne
Interfejsy API platformy UWP MapControl i Windows Maps (Windows.Services.Maps.*) są przestarzałe i mogą nie być dostępne w przyszłych wersjach systemu Windows. Aby uzyskać więcej informacji, zobacz Zasoby dotyczące przestarzałych funkcji.
Ważne
Wycofanie usługi Mapy Bing dla przedsiębiorstw
MapControl platformy UWP i usługi map z przestrzeni nazw Windows.Services.Maps opierają się na mapach Bing. Mapy Bing dla przedsiębiorstw są przestarzałe i zostaną wycofane, wówczas kontrolka MapControl i usługi nie będą już odbierać danych.
Aby uzyskać więcej informacji, zobacz dokumentację Centrum deweloperów map Bing i Mapy Bing.
Uwaga / Notatka
MapControl i usługi mapowe wymagają klucza uwierzytelniania map o nazwie MapServiceToken. Aby uzyskać więcej informacji na temat pobierania i ustawiania klucza uwierzytelniania map, zobacz Żądanie klucza uwierzytelniania map.
W tym przewodniku pokazano, jak przekonwertować adresy uliczne na lokalizacje geograficzne (geokodowanie) i przekonwertować lokalizacje geograficzne na adresy uliczne (odwrotne geokodowanie), wywołując metody klasy MapLocationFinder w Windows.Services.Maps przestrzeni nazw.
Klasy związane z geokodowaniem i odwrotnym geokodowaniem są zorganizowane w następujący sposób.
- Klasa MapLocationFinder zawiera metody obsługujące geokodowanie (FindLocationsAsync) i odwrotne geokodowanie (FindLocationsAtAsync).
- Obie metody zwracają obiekt MapLocationFinderResult.
- Właściwość Locations obiektu MapLocationFinderResult uwidacznia kolekcję obiektów MapLocation.
- MapLocation obiekty mają zarówno właściwość Adres, która reprezentuje obiekt MapAddress odpowiadający adresowi ulicy, jak i właściwość Point, która reprezentuje obiekt Geopoint odpowiadający lokalizacji geograficznej.
Ważne
Aby można było korzystać z usług mapowania, należy określić klucz uwierzytelniania mapy. Aby uzyskać więcej informacji, zapoznaj się z sekcją Wnioskowanie klucza uwierzytelnienia map.
Uzyskiwanie lokalizacji (kod geograficzny)
W tej sekcji pokazano, jak przekonwertować adres ulicy lub nazwę miejsca na lokalizację geograficzną (geokodowanie).
- Wywołaj jedną z wersji przeciążonych metody FindLocationsAsync w klasie MapLocationFinder, używając nazwy miejsca lub adresu ulicy.
- Metoda FindLocationsAsync zwraca obiekt MapLocationFinderResult.
- Użyj właściwości LocationsMapLocationFinderResult, aby uwidocznić kolekcję obiektów MapLocation. Może istnieć wiele obiektów MapLocation, ponieważ system może znaleźć wiele lokalizacji odpowiadających danym danym wejściu.
using Windows.Services.Maps;
using Windows.Devices.Geolocation;
...
private async void geocodeButton_Click(object sender, RoutedEventArgs e)
{
// The address or business to geocode.
string addressToGeocode = "Microsoft";
// The nearby location to use as a query hint.
BasicGeoposition queryHint = new BasicGeoposition();
queryHint.Latitude = 47.643;
queryHint.Longitude = -122.131;
Geopoint hintPoint = new Geopoint(queryHint);
// Geocode the specified address, using the specified reference point
// as a query hint. Return no more than 3 results.
MapLocationFinderResult result =
await MapLocationFinder.FindLocationsAsync(
addressToGeocode,
hintPoint,
3);
// If the query returns results, display the coordinates
// of the first result.
if (result.Status == MapLocationFinderStatus.Success)
{
tbOutputText.Text = "result = (" +
result.Locations[0].Point.Position.Latitude.ToString() + "," +
result.Locations[0].Point.Position.Longitude.ToString() + ")";
}
}
Ten kod wyświetla następujące wyniki w polu tekstowym tbOutputText.
result = (47.6406099647284,-122.129339994863)
Uzyskiwanie adresu (odwrotny kod geograficzny)
W tej sekcji pokazano, jak przekonwertować lokalizację geograficzną na adres (odwrotne geokodowanie).
- Wywołaj metodę FindLocationsAtAsync klasy MapLocationFinder.
- Metoda FindLocationsAtAsync zwraca obiekt MapLocationFinderResult zawierający kolekcję pasujących obiektów MapLocation.
- Użyj właściwości LocationsMapLocationFinderResult, aby uwidocznić kolekcję obiektów MapLocation. Może istnieć wiele obiektów MapLocation, ponieważ system może znaleźć wiele lokalizacji odpowiadających danym danym wejściu.
- Uzyskaj dostęp do obiektów MapAddress za pośrednictwem właściwości Address każdej lokalizacji na mapie MapLocation.
using Windows.Services.Maps;
using Windows.Devices.Geolocation;
...
private async void reverseGeocodeButton_Click(object sender, RoutedEventArgs e)
{
// The location to reverse geocode.
BasicGeoposition location = new BasicGeoposition();
location.Latitude = 47.643;
location.Longitude = -122.131;
Geopoint pointToReverseGeocode = new Geopoint(location);
// Reverse geocode the specified geographic location.
MapLocationFinderResult result =
await MapLocationFinder.FindLocationsAtAsync(pointToReverseGeocode);
// If the query returns results, display the name of the town
// contained in the address of the first result.
if (result.Status == MapLocationFinderStatus.Success)
{
tbOutputText.Text = "town = " +
result.Locations[0].Address.Town;
}
}
Ten kod wyświetla następujące wyniki w polu tekstowym tbOutputText.
town = Redmond