2016-06-01 9 views
0

Ich verwende Bing Maps, SOAP, c# und .net. Ich möchte GeocodeAddress() implementieren, aber der Typ oder Namespace-Namen 'Confidence' existiert nicht im Namensraum:Der Typ oder Namespace Name 'Confidence' existiert nicht im Namespace

private String GeocodeAddress(string address) 
     { 
      string results = ""; 
      string key = "insert your Bing Maps key here"; 
      GeocodeRequest geocodeRequest = new GeocodeRequest(); 

      // Set the credentials using a valid Bing Maps key 
      geocodeRequest.Credentials = new    DevExpress.Map.BingServices.Credentials(); 
      geocodeRequest.Credentials.ApplicationId = key; 

      // Set the full address query 
      geocodeRequest.Query = address; 

      // Set the options to only return high confidence results 
      ConfidenceFilter[] filters = new ConfidenceFilter[1]; 
      filters[0] = new ConfidenceFilter(); 

      filters[0].MinimumConfidence = GeocodeService.Confidence.High; 

      // Add the filters to the options 
      GeocodeOptions geocodeOptions = new GeocodeOptions(); 
      geocodeOptions.Filters = filters; 
      geocodeRequest.Options = geocodeOptions; 

      // Make the geocode request 
      GeocodeServiceClient geocodeService = new  GeocodeServiceClient(); 
      GeocodeResponse geocodeResponse =   geocodeService.Geocode(geocodeRequest); 

      if (geocodeResponse.Results.Length > 0) 
       results = String.Format("Latitude: {0}\nLongitude: {1}", 
        geocodeResponse.Results[0].Locations[0].Latitude, 
        geocodeResponse.Results[0].Locations[0].Longitude); 
      else 
       results = "No Results Found"; 

      return results; 
     } 
+0

Code sieht auf den ersten Blick identisch mit dem Code [hier] aus (https://msdn.microsoft.com/en-us/library/dd221354.aspx). Hast du etwas verändert? –

+0

ich ändere das nur: geocodeRequest.Credentials = new DevExpress.Map.BingServices.Credentials(); @Damien_The_Unbeliever – ccorcoy

+0

Und als Sie die Service-Referenz hinzugefügt haben, haben Sie sichergestellt, dass der Name, den Sie dem Service gegeben haben, 'GeocodeService' ist? I.e. Der erste Teil dieses Namens ist der Name, den Sie dem Dienstverweis gegeben haben, und es ist einfach, einfach 'ServiceReference1' als Name des Verweises zu akzeptieren. –

Antwort

0

Es sieht aus wie Sie die sehr alten SOAP-Dienste für Bing Maps verwenden. Das Bing Maps-Team hat empfohlen, diese vor über 6 Jahren zu verwenden. Die REST-Services von Bing Maps sind viel schneller, bieten mehr Funktionen und werden regelmäßig aktualisiert. Dokumentation über die REST-Services finden Sie hier: https://msdn.microsoft.com/en-us/library/ff701713.aspx

Es ist Dokumentation, wie hier die REST-Services in .NET verwenden: https://msdn.microsoft.com/en-us/library/jj819168.aspx

Ich empfehle auch hier die Best Practices-Dokument heraus überprüfen: https://msdn.microsoft.com/en-us/library/dn894107.aspx