带有 Windows 窗体应用程序的地图

发布于 2024-12-15 15:06:48 字数 313 浏览 3 评论 0原文

我正在构建一个需要地图的 C#/Winforms 应用程序(例如 Google 地图、Bing 地图等)。但我对 ToU(许可)- 非商业使用等感到非常困惑。

我的问题:

  1. 您会建议哪个地图提供商(最好是免费的)嵌入 winforms 应用程序以用于商业目的。

  2. 如果应用程序“离线”,即无法从地图服务器获取图块,您会推荐什么地图提供商。

  3. Google 地球似乎很有前途,直到我读到仅限非商业用途的 ToU 条款,您知道是否可以通过购买许可证来放弃该条款?有商业替代方案吗?

I am building a C#/Winforms application that requires a map (a la Google maps, Bing maps etc.). But I am terribly confused by the ToU (licensing) - non-commercial use etc.

My questions:

  1. What mapping provider would you suggest (preferably free) to embed with a winforms application, for commercial purposes.

  2. What mapping provider would you recommend if the app is "offline" i.e. cannot get tiles from a mapping server.

  3. Google Earth seemed quite promising until I read in the ToU of non-commercial use only clause, would you know if that is waivable through purchase of a license? Any commercial alternatives?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

゛清羽墨安 2024-12-22 15:06:48
  1. 对于 Windows 应用程序,尝试查找 OpenStreetMap 使用浏览器控件进行 Windows 表单集成

  2. 对于离线解决方案,您将需要地图数据。最常用的地图数据格式之一是 Shapefiles,它是 ESRI 标准,您可以下载 OpenStreetMap 数据并将其转换为 Shapefiles,然后可以将它们导入到您的应用程序中。有一些开源项目使用 Shapefile 进行地图渲染和其他 GIS 功能。即 SharpMap 和 DotSpatial(两者都是 .Net 实现)

  3. 您可以搜索 Google Earth Pro,也可以尝试 NASA 的 World Wind(免费)

  1. For Windows application, try looking for OpenStreetMap for windows form integration using a browser control

  2. For offline solution you will require map data. One of the most used map data format is Shapefiles which is an ESRI standard, you can download OpenStreetMap data and convert it to Shapefiles and then you can import them in your application. There are open source project which are using Shapefiles for map rendering and other GIS functionalities. namely SharpMap and DotSpatial (Both are .Net implementation)

  3. You can search for Google Earth Pro, also try World Wind from NASA (which is free)

你怎么这么可爱啊 2024-12-22 15:06:48

这非常好,您可以检查不同的提供商并选择一个既满足法律要求又满足技术要求的提供商:
适用于 Windows 窗体和应用程序的出色地图演示

只需下载代码并查看演示即可!

This is excellent, you can check different providers and select one that meets both legal and tech requirenments:
Great Maps for Windows Forms & Presentation

Just download code and check out the demo!

柳若烟 2024-12-22 15:06:48

使用 Web 浏览器控件尝试此代码
此代码用于获取两个位置之间的方向

   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());

Try This Code Using Web browser control
this code to get direction between two location

   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());
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文