Построение данных на картах

Я пытаюсь написать приложение Windows Form для отображения данных на картах. Я могу успешно записать данные, если введу их вручную, но у меня возникают проблемы при загрузке данных через файл Excel. Я сохранил широту и долготу в файле Excel, и я читаю этот файл. Мой код отлично читает данные, но не выводит их на график. Однако, если я сохраню только один широту / долготу в этом файле Excel, он будет отображать это. Вот мой код для ручной подачи данных, который работает нормально.

private void btnsearch_Click(object sender, EventArgs e)
        {
            string lat = txtlat.Text;

            try
            {
                StringBuilder queryaddress = new StringBuilder();
                queryaddress.Append("https://www.here.com/search/");

                if (street != string.Empty)
                {
                    queryaddress.Append(street );
                }

                webBrowser1.Navigate(queryaddress.ToString());
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message.ToString(), "Error");
            }
        }

Когда я читаю данные из файла Excel по одному, они не отображаются на графике. Вот код:

private void btnmap_Click(object sender, EventArgs e)
        {

            for (int i = 1; i <=20; i++)
            {
                System.Threading.Thread.Sleep(3000);
                tb_display_content.Text = excel_getValue("A" + i);
                string lat = tb_display_content.Text;
                try
                {
                    StringBuilder queryaddress = new StringBuilder();

                    queryaddress.Append("https://www.here.com/search/");

                    if (lat != string.Empty)
                    {
                        queryaddress.Append(lat );
                    }

                    webBrowser1.Navigate(queryaddress.ToString());
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message.ToString(), "Error");
                }
            }
        }

Что не так в этом коде? пожалуйста, предложите.

2 ответа

  1. принимать StringBuilder queryaddress = new StringBuilder(); вне петли
  2. Очистить queryaddress для следующего цикла

Это должно позаботиться о вашей проблеме

У тебя две проблемы. Похоже, вы не правильно строите строку http-запроса. URL-адрес службы, которую вы пытаетесь использовать,...

https://www.here.com/search/testing?x=ep&map=41.56144,-71.59227,12,normal

Где "тестирование" - это поисковый термин, а "карта =41,56144,-71,59227" - центральное положение карты. Чтобы правильно отобразить лат / лонг, вам нужно скопировать его и заменить свой лат, лонг и поисковый термин. Что-то вроде...

var searchTerm = "kittens";
var lat = "41.2312";
var lon = "-72.102";
var finalURL = string.format(@"https://www.here.com/search/{0}?x=ep&map={1},{2},12,normal",searchTerm, lat, lon);

Вторая проблема заключается в том, что в примере с Excel вы определяете URL-адрес, запрашиваете этот URL-адрес, отображаете этот URL-адрес и затем повторяете процесс каждые 3000 мс. Этот код будет отображать только последнюю точку в вашей электронной таблице Excel, когда он завершит работу (если он вообще выполняется... подсказка... это не из-за вашей первой проблемы).

Вот некоторые рекомендуемые для вас чтения: HTTP Query Strings

Другие вопросы по тегам