none
Aus der MSDN-Entwickler-Hotline: Wie kann ich für eine Universal-App die Geocoordinaten aus einer Adresse bekommen? RRS feed

  • Allgemeine Diskussion

  • Hallo zusammen,
    heute wurde uns bei der MSDN-Entwickler-Hotline unter anderem folgende Frage gestellt:

    Wie kann ich für eine Universal-App die Geocoordinaten aus einer Adresse bekommen?

    Unsere Antwort bzw. unser Lösungsvorschlag darauf war:

    Der folgende Codeausschnitt beschreibt dieses Verhalten. Dabei wird eine Abstraktion der Map-Klassen für jeweils Windows Phone und Windows verwendet.

    public async Task<Tuple<double, double>> Geocode(string address, MapView instance)
    {
    #if WINDOWS_PHONE_APP
        BasicGeoposition queryHint = new BasicGeoposition();
        Geopoint hintPoint = new Geopoint(queryHint);
        MapLocationFinderResult result = await MapLocationFinder.FindLocationsAsync(address,hintPoint,3);
    #elif WINDOWS_APP
        GeocodeRequestOptions requestOptions = new GeocodeRequestOptions(address);
        SearchManager searchManager = instance._map.SearchManager;
        LocationDataResponse response = await searchManager.GeocodeAsync(requestOptions);
    #endif
        Tuple<double, double> coords = new Tuple<double, double>(0, 0);
    #if WINDOWS_PHONE_APP
        if (result.Status == MapLocationFinderStatus.Success)
        {
            coords = new Tuple<double, double>(result.Locations[0].Point.Position.Latitude, result.Locations[0].Point.Position.Longitude);
        }
    #elif WINDOWS_APP
        if (response.HasError == false) { 
            coords = new Tuple<double, double>(response.LocationData[0].GeocodeLocations[0].Location.Latitude, response.LocationData[0].GeocodeLocations[0].Location.Longitude);
        }
    #endif
        return coords;
    }

    public class MapView
    {
    #if WINDOWS_APP
        public Map _map {get;set;}
    #elif WINDOWS_PHONE_APP
        public MapControl _map {get;set;}
    #endif
        public MapView()
        {
    #if WINDOWS_APP
            _map = new Map();
    #elif WINDOWS_PHONE_APP
            _map = new MapControl();
    #endif
            this.Children.Add(_map);
        }
    }

    Wir hoffen, vielen Besuchern der MSDN Foren durch das Posten dieses Problems und einer möglichen Lösung weiterhelfen zu können.

    Viele Grüße,
    Hristo Valev
    Entwickler-Hotline für MSDN Online Deutschland

    Disclaimer:
    Bitte haben Sie Verständnis dafür, dass wir hier auf Rückfragen gar nicht oder nur sehr zeitverzögert antworten können.
    Bitte nutzen Sie für Rückfragen oder neue Fragen den telefonischen Weg über die MSDN-Entwickler-Hotline: http://www.msdn-online.de/Hotline
    MSDN-Entwickler-Hotline: Schnelle & kompetente Hilfe für Entwickler: kostenfrei!

    Es gelten für die MSDN-Entwickler-Hotline und dieses Posting diese Nutzungsbedingungen, Hinweise zu Markenzeichen, Informationen zur Datensicherheit sowie die gesonderten Nutzungsbedingungen für die MSDN-Entwickler-Hotline.



    • Bearbeitet Hristo Valev Donnerstag, 30. Oktober 2014 14:15
    Donnerstag, 30. Oktober 2014 14:06