public BingMapsConfigViewModel() { bingMapsKey = string.Empty; mapType = BingMapsMapType.Road; showMapTypeOptions = true; var baseMapDataPlugin = GisEditor.DataRepositoryManager.GetPlugins().OfType <BaseMapDataRepositoryPlugin>().FirstOrDefault(); if (baseMapDataPlugin != null && (bingMapDataRepositoryItem = baseMapDataPlugin.RootDataRepositoryItem.Children.OfType <BingMapDataRepositoryItem>().FirstOrDefault()) != null) { bingMapsKey = bingMapDataRepositoryItem.BingMapsKey; mapType = bingMapDataRepositoryItem.BingMapType; if (String.IsNullOrEmpty(bingMapsKey)) { byte[] keyBuffer = Convert.FromBase64String("QWk5SDVWVnQtZTI2VEdaRFgtakstVUVqOW5KeU9BdHF1OVAyalRURHdETXJTNS1CTUlzZVpxY01BVGpnSmtBeg=="); bingMapsKey = Encoding.UTF8.GetString(keyBuffer); } } }
private static bool Validate(string BingMapsKey, BingMapsMapType mapType) { bool result = false; string loginServiceTemplate = "http://dev.virtualearth.net/REST/v1/Imagery/Metadata/{0}?&incl=ImageryProviders&o=xml&key={1}"; try { string loginServiceUri = string.Format(CultureInfo.InvariantCulture , loginServiceTemplate, mapType, BingMapsKey); WebRequest request = WebRequest.Create(loginServiceUri); WebResponse response = request.GetResponse(); Stream stream = response.GetResponseStream(); if (stream != null) { XmlDocument xDoc = new XmlDocument(); xDoc.Load(stream); XmlNamespaceManager nsmgr = new XmlNamespaceManager(xDoc.NameTable); nsmgr.AddNamespace("bing", "http://schemas.microsoft.com/search/local/ws/rest/v1"); XmlNode root = xDoc.SelectSingleNode("bing:Response", nsmgr); XmlNode imageUrlElement = root.SelectSingleNode("bing:ResourceSets/bing:ResourceSet/bing:Resources/bing:ImageryMetadata/bing:ImageUrl", nsmgr); XmlNodeList subdomainsElement = root.SelectNodes("bing:ResourceSets/bing:ResourceSet/bing:Resources/bing:ImageryMetadata/bing:ImageUrlSubdomains/bing:string", nsmgr); if (imageUrlElement != null && subdomainsElement != null) { result = true; } } } catch (Exception ex) { MessageBox.Show(ex.Message, "Warning", MessageBoxButton.OK, MessageBoxImage.Warning); } return(result); }
private static bool Validate(string BingMapsKey, BingMapsMapType mapType) { bool result = false; string loginServiceTemplate = "http://dev.virtualearth.net/REST/v1/Imagery/Metadata/{0}?&incl=ImageryProviders&o=xml&key={1}"; try { string loginServiceUri = string.Format(CultureInfo.InvariantCulture , loginServiceTemplate, mapType, BingMapsKey); WebRequest request = WebRequest.Create(loginServiceUri); WebResponse response = request.GetResponse(); Stream stream = response.GetResponseStream(); if (stream != null) { XmlDocument xDoc = new XmlDocument(); xDoc.Load(stream); XmlNamespaceManager nsmgr = new XmlNamespaceManager(xDoc.NameTable); nsmgr.AddNamespace("bing", "http://schemas.microsoft.com/search/local/ws/rest/v1"); XmlNode root = xDoc.SelectSingleNode("bing:Response", nsmgr); XmlNode imageUrlElement = root.SelectSingleNode("bing:ResourceSets/bing:ResourceSet/bing:Resources/bing:ImageryMetadata/bing:ImageUrl", nsmgr); XmlNodeList subdomainsElement = root.SelectNodes("bing:ResourceSets/bing:ResourceSet/bing:Resources/bing:ImageryMetadata/bing:ImageUrlSubdomains/bing:string", nsmgr); if (imageUrlElement != null && subdomainsElement != null) { result = true; } } } catch (Exception ex) { MessageBox.Show(ex.Message, "Warning", MessageBoxButton.OK, MessageBoxImage.Warning); } return result; }