Карты с приложением Windows Forms - PullRequest
8 голосов
/ 15 ноября 2011

Я создаю приложение на C # / Winforms, для которого требуется карта (а-ля карты Google, карты Bing и т. Д.).Но меня ужасно смущает ТУ (лицензирование) - некоммерческое использование и т. Д.

Мои вопросы:

  1. Какого поставщика картографии вы бы предложили (желательно бесплатно)встроить в приложение winforms для коммерческих целей.

  2. Какой поставщик картографии вы бы порекомендовали, если приложение находится в автономном режиме, то есть не может получать плитки с сервера карт.

  3. Google Планета Земля выглядела довольно многообещающе, пока я не прочитал в пункте «Условия использования только для некоммерческого использования», знаете ли вы, можно ли этого избежать, купив лицензию?Любые коммерческие альтернативы?

Ответы [ 3 ]

7 голосов
/ 15 ноября 2011
  1. Для приложений Windows попробуйте поискать OpenStreetMap для интеграции форм Windows с помощью элемента управления браузера

  2. Для автономного решения вам потребуются данные карты. Одним из наиболее часто используемых форматов данных карты является Shapefiles, который является стандартом ESRI, вы можете загрузить данные OpenStreetMap и преобразовать их в Shapefiles, а затем импортировать их в свое приложение. Есть проект с открытым исходным кодом, который использует шейп-файлы для рендеринга карты и других функций ГИС. а именно SharpMap и DotSpatial (оба являются реализацией .Net)

  3. Вы можете искать Google Планета Земля Про, а также попробовать World Wind из НАСА (это бесплатно)

0 голосов
/ 10 декабря 2014

Попробуйте этот код Используя веб-браузер управляйте этим кодом, чтобы получить направление между двумя местоположениями

   System.Text.StringBuilder queryaddress = new System.Text.StringBuilder();
string sStreet = string.Empty;
string sCity = string.Empty;
string sState = string.Empty;
string sPincode = string.Empty;
string sProvider_no = string.Empty;
queryaddress.Append("https://www.google.com/maps/dir/");

if (!string.IsNullOrEmpty(txtprovider_no.Text)) {
    sProvider_no = txtprovider_no.Text.Replace(" ", "+");
    queryaddress.Append(sProvider_no + "," + "+");
}
if (!string.IsNullOrEmpty(txtState.Text)) {
    sState = txtState.Text.Replace("  ", "+");
    queryaddress.Append(sState + "," + "+");
}
if (!string.IsNullOrEmpty(txtCity.Text)) {
    sCity = txtCity.Text.Replace("  ", "+");
    queryaddress.Append(sCity + "," + "+");
}
if (!string.IsNullOrEmpty(txtPincode.Text)) {
    sPincode = txtPincode.Text.Replace("  ", "+");
    queryaddress.Append(sPincode);
}

queryaddress.Append("/");
sStreet = string.Empty;
sCity = string.Empty;
sState = string.Empty;
sPincode = string.Empty;
if (!string.IsNullOrEmpty(txtlindmark.Text)) {
    sStreet = txtlindmark.Text.Replace("  ", "+");
    queryaddress.Append(sStreet + "," + "+");
}
if (!string.IsNullOrEmpty(txtclient_city.Text)) {
    sCity = txtclient_city.Text.Replace("  ", "+");
    queryaddress.Append(sCity + "," + "+");
}
if (!string.IsNullOrEmpty(ttxtclient_city.Text)) {
    sPincode = ttxtclient_city.Text.Replace("  ", "+");
    queryaddress.Append(sPincode);
}
if (!string.IsNullOrEmpty(txtclient_state.Text)) {
    sState = txtclient_state.Text.Replace("  ", "+");
    queryaddress.Append(sState + "," + "+");
}


WBR.Navigate(queryaddress.ToString());
0 голосов
/ 31 января 2014

Это отлично, вы можете проверить разных поставщиков и выбрать того, который отвечает как юридическим, так и техническим требованиям: Великолепные карты для Windows Forms & Presentation

Просто скачайте код и посмотрите демо!

...