コード例 #1
0
 private void OnResultButtonClick(object sender, RoutedEventArgs e)
 {
     MapControl.SearchResult result = ((Button)sender).DataContext as MapControl.SearchResult;
     if (result != null)
     {
         this.NavigateTo(result);
     }
 }
コード例 #2
0
        private void NavigateTo(MapControl.SearchResult result)
        {
            this.resultsArea.IsExpanded = false;
            var callback = this.Navigate;

            if (callback != null)
            {
                callback(this, new NavigateEventArgs(result));
            }
        }
コード例 #3
0
ファイル: SearchProvider.cs プロジェクト: gahadzikwa/GAPP
 protected bool TryParseLatitudeLongitude(string text)
 {
     string[] tokens = text.Split(new char[] { ',', ' ', '°' }, StringSplitOptions.RemoveEmptyEntries);
     if (tokens.Length == 2)
     {
         double latitude, longitude;
         if (double.TryParse(tokens[0], out latitude) && double.TryParse(tokens[1], out longitude))
         {
             SearchResult result = new SearchResult(1);
             result.DisplayName = string.Format(CultureInfo.CurrentUICulture, "{0:f4}°, {1:f4}°", latitude, longitude);
             result.Latitude = latitude;
             result.Longitude = longitude;
             _results.Clear();
             _results.Add(result);
             this.OnSearchCompleted();
             return true;
         }
     }
     return false;
 }
コード例 #4
0
        protected override void OnDownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
        {
            if (e.Error != null) // Did an error occur with the download?
            {
                this.OnSearchError(e.Error.Message);
                return;
            }

            try
            {
                XmlDocument document = new XmlDocument();
                document.LoadXml(e.Result);
                int index = 1;
                _results.Clear();
                if (document.DocumentElement.SelectSingleNode("/GeocodeResponse/status").InnerText == "OK")
                {
                    foreach (XmlNode node in document.DocumentElement.SelectNodes("/GeocodeResponse/result"))
                    {
                        SearchResult result = new SearchResult(index++);
                        result.DisplayName = node.SelectSingleNode("formatted_address").InnerText;
                        result.Latitude = double.Parse(node.SelectSingleNode("geometry/location/lat").InnerText, CultureInfo.InvariantCulture);
                        result.Longitude = double.Parse(node.SelectSingleNode("geometry/location/lng").InnerText, CultureInfo.InvariantCulture);
                        _results.Add(result);
                    }
                }
                this.OnSearchCompleted();
            }
            catch (NullReferenceException) // One of the calls to GetNamesItem() couldn't find it and returned null
            {
                this.OnSearchError("XML data is invalid.");
            }
            catch (XmlException ex) // XmlDocument.LoadXml failed
            {
                this.OnSearchError(ex.Message);
            }
        }
コード例 #5
0
ファイル: SearchProviderOSM.cs プロジェクト: gahadzikwa/GAPP
        protected override void OnDownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
        {
            if (e.Error != null) // Did an error occur with the download?
            {
                this.OnSearchError(e.Error.Message);
                return;
            }

            try
            {
                XmlDocument document = new XmlDocument();
                document.LoadXml(e.Result);
                int index = 1;
                _results.Clear();
                foreach (XmlNode node in document.GetElementsByTagName("place"))
                {
                    SearchResult result = new SearchResult(index++);
                    result.DisplayName = node.Attributes.GetNamedItem("display_name").InnerText;
                    result.Latitude = double.Parse(node.Attributes.GetNamedItem("lat").InnerText, CultureInfo.InvariantCulture);
                    result.Longitude = double.Parse(node.Attributes.GetNamedItem("lon").InnerText, CultureInfo.InvariantCulture);
                    string[] boundingBox = node.Attributes.GetNamedItem("boundingbox").InnerText.Split(',');
                    if (boundingBox.Length == 4)
                    {
                        double height, width;
                        if (TryGetSize(boundingBox[0], boundingBox[1], out height) &&
                            TryGetSize(boundingBox[2], boundingBox[3], out width))
                        {
                            //result.Size = new Size(width, height);
                        }
                    }
                    _results.Add(result);
                }
                this.OnSearchCompleted();
            }
            catch (NullReferenceException) // One of the calls to GetNamesItem() couldn't find it and returned null
            {
                this.OnSearchError("XML data is invalid.");
            }
            catch (XmlException ex) // XmlDocument.LoadXml failed
            {
                this.OnSearchError(ex.Message);
            }
        }
コード例 #6
0
 /// <summary>Initializes a new instance of the NavigateEventArgs class.</summary>
 /// <param name="result">The SearchResult to navigate to.</param>
 internal NavigateEventArgs(MapControl.SearchResult result)
 {
     this.Result = result;
 }