Построение данных на картах
Я пытаюсь написать приложение 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 ответа
- принимать
StringBuilder queryaddress = new StringBuilder();
вне петли - Очистить
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