Delen via


Geocodering en omgekeerde geocodering uitvoeren

Belangrijk

De API's van het UWP MapControl - en Windows Maps-platform (Windows.Services.Maps.*) zijn afgeschaft en zijn mogelijk niet beschikbaar in toekomstige versies van Windows. Zie Resources voor afgeschafte functies voor meer informatie.

Belangrijk

Buitengebruikstelling van de service Bing Maps for Enterprise

De UWP MapControl - en kaartservices van de Windows.Services.Maps-naamruimten zijn afhankelijk van Bing Kaarten. Bing Kaarten voor Ondernemingen is afgeschaft en wordt buiten gebruik gesteld. Op dat moment ontvangen de MapControl- en services geen gegevens meer.

Voor meer informatie, zie het Bing Maps Developer Center en de Bing Maps-documentatie.

Opmerking

MapControl- en kaartservices vereisen een authenticatiesleutel voor kaarten, een MapServiceToken-genoemd. Zie Een kaartverificatiesleutel aanvragenvoor meer informatie over het ophalen en instellen van een verificatiesleutel voor kaarten.

Deze handleiding laat zien hoe u straatadressen converteert naar geografische locaties (geocodering) en geografische locaties converteert naar straatadressen (omgekeerde geocodering) door de methoden van de MapLocationFinder- klasse aan te roepen in de Windows.Services.Maps naamruimte.

De klassen die betrokken zijn bij geocodering en omgekeerde geocodering, worden als volgt ingedeeld.

Belangrijk

 U moet een verificatiesleutel voor kaarten opgeven voordat u kaartservices kunt gebruiken. Zie Een verificatiesleutel voor kaarten aanvragenvoor meer informatie.

Een locatie ophalen (geocode)

In deze sectie wordt beschreven hoe u een adres of een plaatsnaam converteert naar een geografische locatie (geocodering).

  1. Roep een van de overloads aan van de FindLocationsAsync methode van de MapLocationFinder klasse met een plaatsnaam of adres.
  2. De methode FindLocationsAsync retourneert een MapLocationFinderResult-object.
  3. Gebruik de eigenschap Locations van de MapLocationFinderResult- om een verzameling MapLocation-objecten beschikbaar te maken. Er kunnen meerdere MapLocation objecten zijn, omdat het systeem mogelijk meerdere locaties vindt die overeenkomen met de opgegeven invoer.
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() + ")";
   }
}

Met deze code worden de volgende resultaten weergegeven in het tekstvak tbOutputText.

result = (47.6406099647284,-122.129339994863)

Een adres ophalen (omgekeerde geocodering)

In deze sectie ziet u hoe u een geografische locatie converteert naar een adres (omgekeerde geocodering).

  1. Roep de methode FindLocationsAtAsync aan van de klasse MapLocationFinder.
  2. De methode FindLocationsAtAsync retourneert een MapLocationFinderResult--object dat een verzameling overeenkomende MapLocation--objecten bevat.
  3. Gebruik de eigenschap Locations van de MapLocationFinderResult- om een verzameling MapLocation-objecten beschikbaar te maken. Er kunnen meerdere MapLocation objecten zijn, omdat het systeem mogelijk meerdere locaties vindt die overeenkomen met de opgegeven invoer.
  4. Toegang tot MapAddress objecten via de eigenschap Address van elk 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;
   }
}

Met deze code worden de volgende resultaten weergegeven in het tekstvak tbOutputText.

town = Redmond